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; }
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)); }