/** * * @return array */ public function updateAction() { extract($_POST); // echo '<pre>'; // print_r($_POST); // die; $booking = new Booking(); $booking->setIdBooking($id_booking); $booking->setEta($eta); $booking->setEtaWarehouse($warehouse_eta); $booking->setEtd($etd); $booking->setTrackingNumber($tracking_number); $booking->setNameVessel($vessel_name); $booking->setCarrier($carrier); $booking->setContainerNumber($container_number); $booking->setSize($size); $booking->setCartons($cartons); $booking->setCubicMeters($bookingCbm); $booking->setWeight($bookingWeight); $this->getCatalog('BookingCatalog')->beginTransaction(); try { $this->getCatalog('BookingCatalog')->update($booking); } catch (Exception $e) { echo $e; print_r($booking->toArray()); $this->getCatalog('FolioImportCatalog')->rollBack(); $this->setFlash('error', $e->getMessage()); $this->_redirect('folio-import/list'); } try { $folioImport = FolioImportQuery::create()->findByPK($id_folio_import); $folioImport->setStatus(FolioImport::$Status['Assigned']); $this->getCatalog('FolioImportCatalog')->update($folioImport); } catch (Exception $e) { $this->getCatalog('FolioImportCatalog')->rollBack(); $this->setFlash('error', $e->getMessage()); $this->_redirect('folio-import/list'); } $idBooking = $booking->getIdBooking(); $itineraries = $this->getRequest()->getParam('itineraries'); foreach ($itineraries as $itinerary) { extract($itinerary); $myItinerary = new Itinerary(); $myItinerary->setIdBooking($idBooking); $myItinerary->setOrigin($origin); $myItinerary->setDestination($destination); $myItinerary->setType($type); $myItinerary->setDays($days); $myItinerary->setEtd($etd); $myItinerary->setEta($eta); try { if (isset($itinerary['idItinerary'])) { if ($itinerary['status'] == 1) { $myItinerary->setIdItinerary($itinerary['idItinerary']); $this->getCatalog('ItineraryCatalog')->update($myItinerary); } else { if ($itinerary['status'] == 0) { $this->getCatalog('ItineraryCatalog')->deleteById($itinerary['idItinerary']); } } } else { $this->getCatalog('ItineraryCatalog')->create($myItinerary); } } catch (Exception $e) { $this->setFlash('error', $e); $this->_redirect('booking/list'); } } $this->setFlash('ok', $this->i18n->_($this->UPDATE_OK)); $this->getCatalog('BookingCatalog')->commit(); $this->_redirect('folio-import/list'); }