public function actionBookingform($isFancy = 0) { Yii::app()->getModule('apartments'); $this->modelName = 'Apartment'; $apartment = $this->loadModel(); $this->modelName = 'Booking'; $booking = new Booking(); $booking->scenario = 'bookingform'; if (isset($_POST['Booking']) && BlockIp::checkAllowIp(Yii::app()->controller->currentUserIpLong) && !$apartment->deleted) { $booking->attributes = $_POST['Booking']; $booking->apartment_id = $apartment->id; $booking->user_ip = Yii::app()->controller->currentUserIp; $booking->user_ip_ip2_long = Yii::app()->controller->currentUserIpLong; if ($booking->validate()) { $booking->time_inVal = $this->getI18nTimeIn($booking->time_in); $booking->time_outVal = $this->getI18nTimeOut($booking->time_out); if (issetModule('bookingtable')) { Bookingtable::addRecord($booking); } $types = Apartment::getI18nTypesArray(); $booking->type = $types[Apartment::TYPE_RENT]; $ownerApartment = User::model()->findByPk($apartment->owner_id); $booking->ownerEmail = $ownerApartment->email; $notifier = new Notifier(); $notifier->raiseEvent('onNewBooking', $booking, array('user' => $ownerApartment)); Yii::app()->user->setFlash('success', tt('Operation successfully complete. Your order will be reviewed by owner.')); $this->redirect($apartment->getUrl()); } } $user = null; if (!Yii::app()->user->isGuest) { $user = User::model()->findByPk(Yii::app()->user->getId()); } if ($isFancy) { $this->excludeJs(); $this->renderPartial('bookingform', array('apartment' => $apartment, 'model' => $booking, 'isFancy' => true, 'user' => $user), false, true); } else { $this->render('bookingform', array('apartment' => $apartment, 'model' => $booking, 'isFancy' => false, 'user' => $user)); } }
<?php $this->pageTitle .= ' - ' . tt('Booking applications', 'usercpanel'); $this->breadcrumbs = array(tc('Control panel') => Yii::app()->createUrl('/usercpanel'), tt('Booking applications', 'usercpanel')); if (issetModule('bookingcalendar')) { echo "<div class='flash-notice'>" . tt('booking_table_to_calendar', 'booking') . "</div>"; } ?> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'users-booking-grid', 'dataProvider' => $model->search(true), 'filter' => $model, 'columns' => array(array('name' => 'active', 'type' => 'raw', 'value' => 'Yii::app()->controller->returnBookingTableStatusHtml($data, "users-booking-grid", 1)', 'htmlOptions' => array('style' => 'width: 150px;'), 'sortable' => false, 'filter' => Bookingtable::getAllStatuses()), array('name' => 'apartment_id', 'type' => 'raw', 'value' => '(isset($data->apartment) && $data->apartment->id) ? CHtml::link($data->apartment->id, $data->apartment->getUrl()) : tc("No")', 'filter' => false, 'sortable' => false), array('name' => 'username', 'value' => '$data->username', 'filter' => true, 'sortable' => false), array('name' => 'email', 'value' => '$data->email', 'filter' => true, 'sortable' => false), array('name' => 'phone', 'value' => '$data->phone', 'filter' => true, 'sortable' => false), array('name' => 'comment', 'value' => 'truncateText($data->comment)', 'filter' => true, 'sortable' => false), array('name' => 'date_start', 'value' => '(isset($data->timein) && $data->time_in) ? $data->date_start . " (". $data->timein->getStrByLang("title").")" : "" ', 'filter' => true, 'sortable' => false, 'htmlOptions' => array('style' => 'width:150px;')), array('name' => 'date_end', 'value' => '(isset($data->timeout) && $data->time_out) ? $data->date_end . " (". $data->timeout->getStrByLang("title").")" : "" ', 'filter' => true, 'sortable' => false, 'htmlOptions' => array('style' => 'width:150px;')), array('header' => tt('Creation date', 'booking'), 'value' => '$data->date_created', 'type' => 'raw', 'filter' => false, 'sortable' => false)))); Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl . '/js/jquery.jeditable.js', CClientScript::POS_END); Yii::app()->clientScript->registerScript('editable_select_booking_table', "\n\t\tfunction ajaxSetBookingTableStatus(elem, id, id_elem, items){\n\t\t\t\$('#editable_select-'+id_elem).editable('" . Yii::app()->controller->createUrl("bookingtableactivate") . "', {\n\t\t\t\tdata : items,\n\t\t\t\ttype : 'select',\n\t\t\t\tcancel : '" . tc('Cancel') . "',\n\t\t\t\tsubmit : '" . tc('Ok') . "',\n\t\t\t\tstyle : 'inherit',\n\t\t\t\tsubmitdata : function() {\n\t\t\t\t\treturn {id : id_elem};\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t", CClientScript::POS_HEAD);
public static function getMenu() { $user = HUser::getModel(); if (param('useUserads')) { $menu[] = array('label' => tc('My listings'), 'url' => Yii::app()->createUrl('/usercpanel/main/index'), 'active' => Yii::app()->controller->menuIsActive('my_listings')); $menu[] = array('label' => tc('Add ad', 'apartments'), 'url' => Yii::app()->createUrl('/userads/main/create'), 'active' => Yii::app()->controller->menuIsActive('add_ad')); } if ($user->type == User::TYPE_AGENCY) { $countAwaitAgent = HUser::getCountAwaitingAgent($user->id); $bage = $countAwaitAgent ? ' (' . $countAwaitAgent . ')' : ''; $menu[] = array('label' => tt('My agents', 'usercpanel') . $bage, 'url' => Yii::app()->createUrl('/usercpanel/main/agents'), 'active' => Yii::app()->controller->menuIsActive('my_agents')); } $menu[] = array('label' => tc('My data'), 'url' => Yii::app()->createUrl('/usercpanel/main/data'), 'active' => Yii::app()->controller->menuIsActive('my_data')); $menu[] = array('label' => tt('Change your password', 'usercpanel'), 'url' => Yii::app()->createUrl('/usercpanel/main/changepassword'), 'active' => Yii::app()->controller->menuIsActive('my_changepassword')); if (issetModule('payment')) { $menu[] = array('label' => tt('My payments', 'usercpanel'), 'url' => Yii::app()->createUrl('/usercpanel/main/payments'), 'active' => Yii::app()->controller->menuIsActive('my_payments')); $menu[] = array('label' => tc('My balance') . ' (' . $user->balance . ' ' . Currency::getDefaultCurrencyName() . ')', 'url' => Yii::app()->createUrl('/usercpanel/main/balance'), 'active' => Yii::app()->controller->menuIsActive('my_balance')); } if (issetModule('bookingtable')) { $menu[] = array('label' => tt('Booking applications', 'usercpanel') . ' (' . Bookingtable::getCountNew(true) . ')', 'url' => Yii::app()->createUrl('/bookingtable/main/index'), 'active' => Yii::app()->controller->menuIsActive('booking_applications')); } return $menu; }
<?php $this->pageTitle = Yii::app()->name . ' - ' . tt('Booking apartment', 'booking'); $this->menu = array(array()); $this->adminTitle = tt('Booking apartment', 'booking'); ?> <?php if (issetModule('bookingcalendar')) { echo "<div class='flash-notice'>" . tt('booking_table_to_calendar', 'booking') . "</div>"; } ?> <?php $this->widget('CustomGridView', array('id' => 'admin-booking-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'afterAjaxUpdate' => 'function(){$("a[rel=\'tooltip\']").tooltip(); $("div.tooltip-arrow").remove(); $("div.tooltip-inner").remove();}', 'columns' => array(array('name' => 'id', 'htmlOptions' => array('class' => 'id_column')), array('name' => 'active', 'type' => 'raw', 'value' => 'Yii::app()->controller->returnBookingTableStatusHtml($data, "users-booking-grid", 1)', 'htmlOptions' => array('style' => 'width: 150px;'), 'sortable' => false, 'filter' => Bookingtable::getAllStatuses()), array('name' => 'apartment_id', 'type' => 'raw', 'value' => '(isset($data->apartment) && $data->apartment->id) ? CHtml::link($data->apartment->id, $data->apartment->getUrl()) : tc("No")', 'filter' => false, 'sortable' => false), array('name' => 'username', 'value' => '$data->username', 'sortable' => false), array('name' => 'email', 'value' => '$data->email', 'sortable' => false), array('name' => 'phone', 'value' => '$data->phone', 'sortable' => false), array('name' => 'comment', 'value' => '$data->comment', 'sortable' => false), array('name' => 'date_start', 'value' => '(isset($data->timein) && $data->time_in) ? $data->date_start . " (". $data->timein->getStrByLang("title").")" : "" ', 'filter' => false, 'sortable' => false, 'htmlOptions' => array('style' => 'width:150px;')), array('name' => 'date_end', 'value' => '(isset($data->timeout) && $data->time_out) ? $data->date_end . " (". $data->timeout->getStrByLang("title").")" : "" ', 'filter' => false, 'sortable' => false, 'htmlOptions' => array('style' => 'width:150px;')), array('header' => tt('Creation date', 'booking'), 'value' => '$data->date_created', 'type' => 'raw', 'sortable' => false)))); Yii::app()->clientScript->registerScriptFile(Yii::app()->request->baseUrl . '/js/jquery.jeditable.js', CClientScript::POS_END); Yii::app()->clientScript->registerScript('editable_select_booking_table_admin', "\n\t\tfunction ajaxSetBookingTableStatus(elem, id, id_elem, items){\n\t\t\t\$('#editable_select-'+id_elem).editable('" . Yii::app()->controller->createUrl("bookingtableactivate") . "', {\n\t\t\t\tdata : items,\n\t\t\t\ttype : 'select',\n\t\t\t\tcancel : '" . tc('Cancel') . "',\n\t\t\t\tsubmit : '" . tc('Ok') . "',\n\t\t\t\tstyle : 'inherit',\n\t\t\t\tsubmitdata : function() {\n\t\t\t\t\treturn {id : id_elem};\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t", CClientScript::POS_HEAD);
public function actionBookingTableActivate() { $field = isset($_GET['field']) ? $_GET['field'] : 'active'; if (Yii::app()->request->getParam('id') && Yii::app()->request->getParam('value') != null) { $this->scenario = 'update_status'; $action = Yii::app()->request->getParam('value', null); $id = Yii::app()->request->getParam('id', null); $availableStatuses = Bookingtable::getAllStatuses(); if (!array_key_exists($action, $availableStatuses)) { $action = 0; } } if (!(!$id && $action === null)) { $model = $this->loadModelUserBookingTable($id); if ($this->scenario) { $model->scenario = $this->scenario; } if ($model) { $model->{$field} = $action; $model->save(false); if (issetModule('bookingcalendar')) { if ($field == 'active' && $action == Bookingtable::STATUS_CONFIRM) { $modelBookingCalendar = new Bookingcalendar(); $modelBookingCalendar->date_start = $model->date_start; $modelBookingCalendar->date_end = $model->date_end; $modelBookingCalendar->status = Bookingcalendar::STATUS_BUSY; $modelBookingCalendar->apartment_id = $model->apartment_id; $modelBookingCalendar->save(false); } } } } echo CHtml::link($availableStatuses[$action]); }
$countComplainPending = ApartmentsComplain::getCountPending(); $bageComplain = $countComplainPending > 0 ? " <span class=\"badge\">{$countComplainPending}</span>" : ''; } $bageReviews = ''; if (issetModule('reviews')) { $countReviewsPending = Reviews::getCountModeration(); $bageReviews = $countReviewsPending > 0 ? " <span class=\"badge\">{$countReviewsPending}</span>" : ''; } $bageVacancy = ''; if (issetModule('vacancy')) { $countVacancyPending = Vacancy::getCountModeration(); $bageVacancy = $countVacancyPending > 0 ? " <span class=\"badge\">{$countVacancyPending}</span>" : ''; } $bageBooking = ''; if (issetModule('bookingtable')) { $countNewPending = Bookingtable::getCountNew(); $bageBooking = $countNewPending > 0 ? " <span class=\"badge\">{$countNewPending}</span>" : ''; } $bageMessages = ''; if (issetModule('messages')) { $countMessagesUnread = Messages::getCountUnread(Yii::app()->user->id); $bageMessages = $countMessagesUnread > 0 ? " <span class=\"badge\">{$countMessagesUnread}</span>" : ''; } ?> <div class="bootnavbar-delimiter"></div> <div class="container-fluid"> <div class="row-fluid"> <div class="span3"> <div class="well sidebar-nav"> <?php
public static function getMenu() { $user = HUser::getModel(); if (param('useUserads')) { $menu[] = array('label' => tc('My listings'), 'url' => Yii::app()->createUrl('/usercpanel/main/index'), 'active' => Yii::app()->controller->menuIsActive('my_listings')); $menu[] = array('label' => tc('Add ad', 'apartments'), 'url' => Yii::app()->createUrl('/userads/main/create'), 'active' => Yii::app()->controller->menuIsActive('add_ad')); } if ($user->type == User::TYPE_AGENCY) { $countAwaitAgent = HUser::getCountAwaitingAgent($user->id); $bage = $countAwaitAgent ? ' (' . $countAwaitAgent . ')' : ''; $menu[] = array('label' => tt('My agents', 'usercpanel') . $bage, 'url' => Yii::app()->createUrl('/usercpanel/main/agents'), 'active' => Yii::app()->controller->menuIsActive('my_agents')); } if (issetModule('messages')) { $bageMessages = ''; $countMessagesUnread = Messages::getCountUnread(Yii::app()->user->id); $bageMessages = $countMessagesUnread > 0 ? " ({$countMessagesUnread})" : ''; $menu[] = array('label' => tt('My mailbox', 'messages') . $bageMessages, 'url' => Yii::app()->createUrl('/messages/main/index'), 'active' => Yii::app()->controller->menuIsActive('my_mailbox')); if ($countMessagesUnread > 0) { Yii::app()->clientScript->registerScript('init-cnt-unr-messages', ' message("' . Yii::t('module_messages', 'You have {n} unread messages', $countMessagesUnread) . '", "message", 4000); ', CClientScript::POS_READY); } } $menu[] = array('label' => tc('My data'), 'url' => Yii::app()->createUrl('/usercpanel/main/data'), 'active' => Yii::app()->controller->menuIsActive('my_data')); $menu[] = array('label' => tt('Change your password', 'usercpanel'), 'url' => Yii::app()->createUrl('/usercpanel/main/changepassword'), 'active' => Yii::app()->controller->menuIsActive('my_changepassword')); if (issetModule('payment')) { if (issetModule('tariffPlans')) { $menu[] = array('label' => tc('Tariff Plans'), 'url' => Yii::app()->createUrl('/tariffPlans/main/index'), 'active' => Yii::app()->controller->menuIsActive('tariff_plans')); } $menu[] = array('label' => tt('My payments', 'usercpanel'), 'url' => Yii::app()->createUrl('/usercpanel/main/payments'), 'active' => Yii::app()->controller->menuIsActive('my_payments')); $menu[] = array('label' => tc('My balance') . ' (' . $user->balance . ' ' . Currency::getDefaultCurrencyName() . ')', 'url' => Yii::app()->createUrl('/usercpanel/main/balance'), 'active' => Yii::app()->controller->menuIsActive('my_balance')); } if (issetModule('bookingtable')) { $menu[] = array('label' => tt('Booking applications', 'usercpanel') . ' (' . Bookingtable::getCountNew(true) . ')', 'url' => Yii::app()->createUrl('/bookingtable/main/index'), 'active' => Yii::app()->controller->menuIsActive('booking_applications')); } return $menu; }
public static function addRecord(Booking $booking) { $dateStart = Yii::app()->dateFormatter->format('yyyy-MM-dd', CDateTimeParser::parse($booking->date_start, Booking::getYiiDateFormat())); $dateEnd = Yii::app()->dateFormatter->format('yyyy-MM-dd', CDateTimeParser::parse($booking->date_end, Booking::getYiiDateFormat())); $model = new Bookingtable(); $model->active = self::STATUS_NEW; $model->apartment_id = $booking->apartment_id; $model->username = $booking->username; $model->email = $booking->useremail; $model->phone = $booking->phone; $model->date_start = $dateStart; $model->date_end = $dateEnd; $model->time_in = $booking->time_in; $model->time_out = $booking->time_out; $model->comment = $booking->comment; $model->user_ip = $booking->user_ip; $model->user_ip_ip2_long = $booking->user_ip_ip2_long; $model->save(false); }