Exemplo n.º 1
0
 /**
  *
  * @return array
  */
 public function updateAction()
 {
     if ($this->getRequest()->isPost()) {
         //die("<pre>".print_r($this->getRequest()->getParams(), true)."</pre>");
         $idPurchaseOrder = $this->getRequest()->getParam("id_purchase_order");
         $params = array("invoice_number" => $this->getRequest()->getParam("commercial_invoice_number"), "id_courtyard" => $this->getRequest()->getParam("id_courtyard"), "status" => $this->getRequest()->getParam("status"));
         $warehouseStore = $this->getRequest()->getParam("warehouse_store", "");
         $purchaseOrder = PurchaseOrderQuery::create()->findByPKOrThrow($idPurchaseOrder, $this->i18n->_("The purchase order width id {$idPurchaseOrder} does not exist"));
         PurchaseOrderFactory::populate($purchaseOrder, $params);
         $purchaseOrderEntries = PurchaseOrderEntryQuery::create()->whereAdd(PurchaseOrderEntry::ID_PURCHASE_ORDER, $purchaseOrder->getIndex())->find();
         $purchaseOrderEntries->each(function (PurchaseOrderEntry $purchaseOrderEntry) use($warehouseStore) {
             $purchaseOrderEntry->setIdWarehouseStore($warehouseStore);
         });
         $SAPConnectionClient = new SAPConnectorClient();
         $result = $SAPConnectionClient->purchaseOrder($purchaseOrder, $purchaseOrderEntries);
         if ($result->purchaseOrderResult->code == 200) {
             try {
                 $this->getPurchaseOrderCommercialInvoiceCatalog()->beginTransaction();
                 $purchaseOrderFiles = PurchaseOrderFileQuery::create()->whereAdd(PurchaseOrderFile::ID_PURCHASE_ORDER, $result->purchaseOrderResult->id)->find();
                 $uploadPath = 'public/' . ($filePath = "files/purchase-order/" . $result->purchaseOrderResult->id);
                 if ($_FILES["commercial_invoice_file"]["name"] != "") {
                     $fileUploader = new FileUploader("commercial_invoice_file");
                     $fileUploader->saveFile($uploadPath, false);
                     $commercialInvoiceFile = PurchaseOrderFileFactory::createFromArray(array(PurchaseOrderFile::CONTENT => $filePath . $fileUploader->getFileName(), PurchaseOrderFile::TYPE => File::$typeFile["typeFile"], PurchaseOrderFile::DOCUMENT_TYPE => PurchaseOrderFile::$DocumentType["CommercialInvoice"], PurchaseOrderFile::ID_PURCHASE_ORDER => $result->purchaseOrderResult->id));
                     $this->getPurchaseOrderFileCatalog()->create($commercialInvoiceFile);
                     $oldCommercialInvoiceFiles = $purchaseOrderFiles->filterByDocumentType(PurchaseOrderFile::$DocumentType["CommercialInvoice"]);
                     while ($oldCommercialInvoiceFiles->valid()) {
                         $oldCommercialInvoiceFile = $oldCommercialInvoiceFiles->read();
                         $this->getPurchaseOrderFileCatalog()->deleteById($oldCommercialInvoiceFile->getIdPurchaseOrderFile());
                     }
                 }
                 if ($_FILES["packing_list_file"]["name"] != "") {
                     $fileUploader = new FileUploader("packing_list_file");
                     $fileUploader->saveFile($uploadPath, false);
                     $packingListFile = PurchaseOrderFileFactory::createFromArray(array(PurchaseOrderFile::CONTENT => $filePath . $fileUploader->getFileName(), PurchaseOrderFile::TYPE => File::$typeFile["typeFile"], PurchaseOrderFile::DOCUMENT_TYPE => PurchaseOrderFile::$DocumentType["PackingList"], PurchaseOrderFile::ID_PURCHASE_ORDER => $result->purchaseOrderResult->id));
                     $this->getPurchaseOrderFileCatalog()->create($packingListFile);
                     $oldPackingListFiles = $purchaseOrderFiles->filterByDocumentType(PurchaseOrderFile::$DocumentType["PackingList"]);
                     while ($oldPackingListFiles->valid()) {
                         $oldPackingListFile = $oldPackingListFiles->read();
                         $this->getPurchaseOrderFileCatalog()->deleteById($oldPackingListFile->getIdPurchaseOrderFile());
                     }
                 }
                 if ($_FILES["bl_house_file"]["name"] != "") {
                     $fileUploader = new FileUploader("bl_house_file");
                     $fileUploader->saveFile($uploadPath, false);
                     $BLHouseFile = PurchaseOrderFileFactory::createFromArray(array(PurchaseOrderFile::CONTENT => $filePath . $fileUploader->getFileName(), PurchaseOrderFile::TYPE => File::$typeFile["typeFile"], PurchaseOrderFile::DOCUMENT_TYPE => PurchaseOrderFile::$DocumentType["BLHouse"], PurchaseOrderFile::ID_PURCHASE_ORDER => $result->purchaseOrderResult->id));
                     $this->getPurchaseOrderFileCatalog()->create($BLHouseFile);
                     $oldBLHouseFile = $purchaseOrderFiles->filterByDocumentType(PurchaseOrderFile::$DocumentType["BLHouse"]);
                     while ($oldPackingListFiles->valid()) {
                         $oldBLHouseFile = $oldPackingListFiles->read();
                         $this->getPurchaseOrderFileCatalog()->deleteById($oldBLHouseFile->getIdPurchaseOrderFile());
                     }
                 }
                 $commercialInvoiceArray = array(PurchaseOrderCommercialInvoice::ID_PURCHASE_ORDER => $result->purchaseOrderResult->id, PurchaseOrderCommercialInvoice::COMMERCIAL_INVOICE_NUMBER => $this->getRequest()->getParam("commercial_invoice_number"), PurchaseOrderCommercialInvoice::NUM_BL_HOUSE => $this->getRequest()->getParam("num_bl_house"), PurchaseOrderCommercialInvoice::ID_PURCHASE_ORDER => $this->getRequest()->getParam("id_purchase_order"), PurchaseOrderCommercialInvoice::LOAD => $this->getRequest()->getParam("load"), PurchaseOrderCommercialInvoice::PAYLOAD => $this->getRequest()->getParam("payload"), PurchaseOrderCommercialInvoice::PIECES => $this->getRequest()->getParam("pieces"), PurchaseOrderCommercialInvoice::CARTONS => $this->getRequest()->getParam("cartons"));
                 $commercialInvoice = PurchaseOrderCommercialInvoiceQuery::create()->whereAdd(PurchaseOrderCommercialInvoice::ID_PURCHASE_ORDER, $purchaseOrder->getIndex())->findOne();
                 if ($commercialInvoice instanceof PurchaseOrderCommercialInvoice) {
                     PurchaseOrderCommercialInvoiceFactory::populate($commercialInvoice, $commercialInvoiceArray);
                     $this->getPurchaseOrderCommercialInvoiceCatalog()->update($commercialInvoice);
                 } else {
                     $purchaseOrderCommercialInvoice = PurchaseOrderCommercialInvoiceFactory::createFromArray($commercialInvoiceArray);
                     $this->getPurchaseOrderCommercialInvoiceCatalog()->create($purchaseOrderCommercialInvoice);
                 }
                 $this->getPurchaseOrderCommercialInvoiceCatalog()->commit();
                 $this->setFlash('ok', $this->i18n->_("The purchase Order with id {$result->purchaseOrderResult->id} was saved correctly"));
             } catch (Exception $e) {
                 $this->getPurchaseOrderCommercialInvoiceCatalog()->rollBack();
                 $this->setFlash('error', $this->i18n->_($e->getMessage()));
             }
         } else {
             $this->setFlash('error', $result->purchaseOrderResult->code . " - " . $result->purchaseOrderResult->message);
         }
     }
     $this->_redirect('purchase-order/list');
 }