/** * * @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'); }
public function saveProgrammedPaymentAction() { $id = $this->getRequest()->getParam('id'); $paymentStatus = $this->getRequest()->getParam('payment_status'); $folioImport = FolioImportQuery::create()->findByPK($id); $sapConnector = new SAPConnectorClient(); $redir = $this->getBaseUrl() . '/' . $this->getRequest()->getParam('controller') . '/list'; $programmedPayments = $this->getRequest()->getParam('payment-term'); $date = \Zend_Date::now(); $results = array(); $this->getCatalog('ProgrammedPaymentCatalog')->beginTransaction(); foreach ($programmedPayments as $programmedPayment) { if (empty($programmedPayment['id_folios_import_programmed_payment'])) { $supplier = SapSupplierQuery::create()->findByPK($programmedPayment['id_company']); $servicePurchaseOrder = PurchaseOrderFactory::createFromArray(array('id_purchase_order' => "0", 'id_supplier' => $supplier->getCardCode(), 'purchase_order_date' => $date->get("yyyy-MM-dd"), 'delivery_estimate_date' => $date->get("yyyy-MM-dd"), 'invoice_number' => 'Pending', 'id_currency' => $programmedPayment['id_currency'], 'comments' => "Folio Import Service Purchase Order", 'groupnum' => $supplier->getGroupnum(), 'status' => PurchaseOrder::$Status["NewService"], 'id_courtyard' => -1, 'id_folio_import' => $programmedPayment['id_folio_import'])); $purchaseOrderEntries = new PurchaseOrderEntryCollection(); $linesCount = 0; $purchaseOrderEntry = PurchaseOrderEntryFactory::createFromArray(array('line' => $linesCount, "vis_order" => $linesCount, "id_product" => $programmedPayment['concept'], "quantity" => 1, "price" => $programmedPayment['ammount'], "id_warehouse_store" => '9999', "tax_code" => 'W3', 'lead_time' => -1, 'status' => PurchaseOrderEntry::$Status["ServiceEntry"], 'base_line' => -1, 'base_entry' => -1)); $purchaseOrderEntries->append($purchaseOrderEntry); $result = $sapConnector->servicePurchaseOrder($servicePurchaseOrder, $purchaseOrderEntries); $results[] = array('success' => $result->purchaseOrderResult->success, 'id_purchase_order' => $result->purchaseOrderResult->id, 'id_folio_import' => $id, 'message' => $result->purchaseOrderResult->message); if ($result->purchaseOrderResult->success) { $programmedPayment['doc_entry'] = $result->purchaseOrderResult->id; $idFolioImportProgrammedPayment = $programmedPayment['id_folios_import_programmed_payment']; if ($idFolioImportProgrammedPayment) { if ($programmedPayment['status']) { unset($programmedPayment['status']); $folioImportProgrammedPayment = FolioImportProgrammedPaymentFactory::createFromArray($programmedPayment); $folioImportProgrammedPayment->setType(ProgrammedPayment::$TypePayment['Folio']); $this->getCatalog('FolioImportProgrammedPaymentCatalog')->update($folioImportProgrammedPayment); } } else { $folioImportProgrammedPayment = FolioImportProgrammedPaymentFactory::createFromArray($programmedPayment); $folioImportProgrammedPayment->setType(ProgrammedPayment::$TypePayment['Folio']); $folioImportProgrammedPayment->setStatus(ProgrammedPayment::$TypeStatus['Pending']); $folioImportProgrammedPayment->setIdFolioImport($id); $folioImportProgrammedPayment->setFolio($folioImport->getFolio()); $this->getCatalog('FolioImportProgrammedPaymentCatalog')->create($folioImportProgrammedPayment); } } } } try { if ($this->setResponseMessage($results) && $paymentStatus == FolioImport::$PaymentStatus['Inactive']) { $this->setFlash('warning', 'The payments were closed'); $purchaseOrderQuery = PurchaseOrderQuery::create(); $purchaseOrders = $purchaseOrderQuery->whereAdd(PurchaseOrder::ID_FOLIO_IMPORT, $id)->whereAdd(PurchaseOrder::STATUS, PurchaseOrder::$Status['NewService'], PurchaseOrderQuery::NOT_EQUAL)->find(); $result = $sapConnector->createLandedCost($purchaseOrders); } else { $this->setFlash('warning', 'The payments were NOT closed'); } } catch (Exception $e) { $this->getCatalog("ProgrammedPaymentCatalog")->rollBack(); $this->setFlash('error', $this->i18n->_($e->getMessage())); } $this->newLogForPaymentAdded($folioImport); $this->getCatalog('ProgrammedPaymentCatalog')->commit(); $this->_redirect('folio-import/list'); }
/** * * makeBean * @param array $resultset * @return \Application\Model\Bean\PurchaseOrder */ protected function makeBean($resultset) { return PurchaseOrderFactory::createFromArray($resultset); }