private function createFlightBookerWorkflow()
 {
     Yii::trace("Create FlightBooker", "FlightTripElementWorkflow.createFlightBookerWorkflow");
     $flightBookerComponent = new FlightBookerComponent();
     $flightBookerComponent->setFlightBookerFromFlightVoyage($this->item->flightVoyage, $this->item->searchParams);
     $currentFlightBookerComponent = $flightBookerComponent->getCurrent();
     $currentFlightBookerComponent->orderBookingId = self::$bookingContactInfo->id;
     if (!$currentFlightBookerComponent->save()) {
         $errMsg = "Could not save FlightBooker" . PHP_EOL . CVarDumper::dumpAsString($currentFlightBookerComponent->getErrors());
         $this->logAndThrowException($errMsg, 'OrderComponent.saveCredentialsForFlight');
     }
     Yii::trace("FlightBooker saved. FlighBooker id is " . $currentFlightBookerComponent->getPrimaryKey(), "OrderComponent.saveCredentialsForFlight");
     return $flightBookerComponent;
 }
Example #2
0
 public function startPaymentOld()
 {
     // perekluchaem v state startpayment
     // i proveraem
     $bookingModel = $this->getOrderBooking();
     //test states and time
     //make StartPayment State
     $validForPayment = true;
     $nowTime = time();
     /** @var $bookingModel OrderBooking */
     if ($bookingModel) {
         foreach ($bookingModel->flightBookers as $flightBooker) {
             $flightBookerComponent = new FlightBookerComponent();
             $flightBookerComponent->setFlightBookerFromId($flightBooker->id);
             $expiration = strtotime($flightBookerComponent->getCurrent()->timeout);
             if (appParams('time_for_payment') < $expiration - $nowTime) {
                 //next state
                 $status = strtolower($flightBookerComponent->getStatus());
                 if (strpos($status, 'waitingforpayment') !== false) {
                     $flightBookerComponent->status('startPayment');
                 } else {
                     $validForPayment = false;
                 }
             } else {
                 $validForPayment = false;
             }
         }
         foreach ($bookingModel->hotelBookers as $hotelBooker) {
             $hotelBookerComponent = new HotelBookerComponent();
             $hotelBookerComponent->setHotelBookerFromId($hotelBooker->id);
             $expiration = $hotelBookerComponent->hotel->cancelExpiration;
             if (appParams('time_for_payment') < $expiration - $nowTime) {
                 //next state
                 $status = $hotelBookerComponent->getStatus();
                 if (strpos($status, 'soft') !== false) {
                     $hotelBookerComponent->status('softStartPayment');
                 } elseif (strpos($status, 'hard') !== false) {
                     $hotelBookerComponent->status('hardStartPayment');
                 } else {
                     $validForPayment = false;
                 }
             } else {
                 $validForPayment = false;
             }
         }
     } else {
         return false;
     }
     return $validForPayment;
 }
 public function actionInjectTicketNumbers($bookingId)
 {
     $booking = new FlightBookerComponent();
     $booking->setFlightBookerFromId($bookingId);
     foreach ($_POST['tickets'] as $passId => $ticket) {
         $pass = FlightBookingPassport::model()->findByPk($passId);
         $pass->ticketNumber = $ticket;
         $pass->save();
     }
     $flightVoyage = $booking->getCurrent()->flightVoyage;
     foreach ($_POST['terminal'] as $fvkey => $value) {
         foreach ($value as $fkey => $terminalCode) {
             if ($terminalCode) {
                 $flightVoyage->flights[$fvkey]->flightParts[$fkey]->departureTerminalCode = $terminalCode;
             }
         }
     }
     //! force serialization, save will be called on later status change
     $booking->getCurrent()->flightVoyage = $flightVoyage;
     //! Fixme leave 1-2 steps max
     $booking->status('manualProcessing');
     $booking->status('manualTicketing');
     $booking->status('manualSuccess');
     $this->redirect(array('view', 'id' => $booking->getCurrent()->orderBookingId));
 }