Example #1
0
 /**
  * @param \DDD\Domain\Booking\BookingTicket $booking
  * @param array $data
  * @param array $permission
  */
 private function setGinosiComment($booking, $data, $permission)
 {
     /**
      * @var Logger $logger
      */
     $logger = $this->getServiceLocator()->get('ActionLogger');
     if ($permission['credit']) {
         if ($booking->getFunds_confirmed() != $data['finance_valid_card']) {
             $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_BOOKING_CC_STATUS, (int) $data['finance_valid_card'] + 1);
         }
     }
     if ($booking->isKiViewed() != (int) $data['finance_key_instructions']) {
         $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_KI_VIEWED, (int) $data['finance_key_instructions']);
     }
     if ($booking->getApartelId() != (int) $data['apartel_id']) {
         $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_APARTEL_ID, (int) $data['apartel_id']);
     }
     if ($booking->getPartnerSettled() != (int) $data['finance_paid_affiliate']) {
         $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_PARTNER_SETTLED, (int) $data['finance_paid_affiliate']);
     }
     if ($booking->getNo_collection() != (int) $data['finance_no_collection']) {
         $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_NO_COLLECTION, (int) $data['finance_no_collection']);
     }
     if ($booking->getCccaVerified() != (int) $data['ccca_verified']) {
         $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_CCCA_VERIFIED, (int) $data['ccca_verified']);
     }
     if ($permission['fin']) {
         if ($booking->getPayment_settled() != (int) $data['finance_reservation_settled']) {
             $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_RESERVATION_SETTLED, (int) $data['finance_reservation_settled']);
         }
     }
     if (isset($data['booking_statuses']) && $booking->getStatus() != $data['booking_statuses']) {
         $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_BOOKING_STATUSES, Objects::getBookingStatusMapping()[$data['booking_statuses']]);
     }
     if (isset($data['finance_booked_state']) && $booking->getArrivalStatus() != $data['finance_booked_state'] && ($booking->getArrivalStatus() != self::INSPECTED_STATE || $booking->getArrivalStatus() == self::INSPECTED_STATE && $data['finance_booked_state'] != self::CHECKOUT_STATE) && $data['finance_booked_state_changed'] == self::BOOKED_STATE_CHANGED) {
         $logger->save(Logger::MODULE_BOOKING, $booking->getId(), Logger::ACTION_CHECK_IN, $data['finance_booked_state']);
     }
     $msg = $data['booking_ginosi_comment'];
     if ($data['booking_ginosi_comment_team']) {
         $teamDao = $this->getServiceLocator()->get('dao_team_team');
         $teamName = $teamDao->getTeamNameById($data['booking_ginosi_comment_team']);
         $msg .= '</br><b>' . $teamName . ' Notified</b>';
     }
     if ($data['booking_ginosi_comment'] != '') {
         $logId = $logger->save(Logger::MODULE_BOOKING, $booking->getId(), empty($data['booking_ginosi_comment_frontier']) ? Logger::ACTION_COMMENT : Logger::ACTION_HOUSEKEEPING_COMMENT, $msg);
         if ($data['booking_ginosi_comment_team']) {
             $logsTeamDao = $this->getServiceLocator()->get('dao_action_logs_logs_team');
             $logsTeamDao->save(['action_log_id' => $logId, 'team_id' => $data['booking_ginosi_comment_team']]);
         }
     }
 }
 public function ajaxApplyCancelationAction()
 {
     /**
      * @var \DDD\Service\UniversalDashboard\Widget\PendingCancelation $pendingCancelationWidgetService
      */
     $pendingCancelationWidgetService = $this->getServiceLocator()->get('service_universal_dashboard_widget_pending_cancellation');
     $auth = $this->getServiceLocator()->get('library_backoffice_auth');
     $request = $this->getRequest();
     $result = ['status' => 'error', 'msg' => TextConstants::SERVER_ERROR];
     if (!$auth->checkUniversalDashboardPermission(UserService::DASHBOARD_PENDING_CANCELLATION)) {
         return $this->redirect()->toRoute('home');
     }
     $logger = $this->getServiceLocator()->get('ActionLogger');
     try {
         if ($request->isPost() && $request->isXmlHttpRequest()) {
             $params = $this->params()->fromPost();
             $resNumber = $params['res_number'];
             $bookingStatus = $params['booking_status'];
             $bookingId = $params['booking_id'];
             $resolveResult = $pendingCancelationWidgetService->applyCancelation($resNumber, $bookingStatus);
             if ($resolveResult) {
                 $bookingStatusesDao = new Statuses($this->getServiceLocator(), '\\ArrayObject');
                 $bookingStatuses = $bookingStatusesDao->getAllList();
                 $result['status'] = 'success';
                 $statusName = '';
                 foreach ($bookingStatuses as $status) {
                     if ($bookingStatus == $status['id']) {
                         $statusName = $status['name'];
                     }
                 }
                 $result['msg'] = 'Reservation with R# ' . $resNumber . ' marked as ' . $statusName;
                 $logger->save(Logger::MODULE_BOOKING, $bookingId, Logger::ACTION_BOOKING_STATUSES, Objects::getBookingStatusMapping()[$bookingStatus]);
             } else {
                 $result['msg'] = 'Problem during requested operation for R# ' . $resNumber;
             }
         }
     } catch (\Exception $e) {
         $result['msg'] = $e->getMessage();
     }
     return new JsonModel($result);
 }