/** * * @author Erick Guevara Martíne< * @param PurchaseOrderEntryCollection $entries * @return array */ public function getCondensedPayments(PurchaseOrder $purchaseOrder) { $purchaseOrderPaymentTerms = PurchaseOrderPaymentTermQuery::create()->whereAdd(PurchaseOrderPaymentTerm::ID_PURCHASE_ORDER, $purchaseOrder->getIdPurchaseOrder())->find(); $purchaseOrderProgrammedPayments = PurchaseOrderProgrammedPaymentQuery::create()->whereAdd(PurchaseOrderProgrammedPayment::ID_PURCHASE_ORDER_PAYMENT_TERM, $purchaseOrderPaymentTerms->getPrimaryKeys())->find(); $events = EventQuery::create()->whereAdd(Event::ID_EVENT, $purchaseOrderPaymentTerms->getEventIds())->find(); $payments = array(); while ($purchaseOrderPaymentTerms->valid()) { $purchaseOrderPaymentTerm = $purchaseOrderPaymentTerms->read(); $event = $events->getByPK($purchaseOrderPaymentTerm->getIdEvent()); $purchaseOrderProgrammedPayments->filterByPurchaseOrderPaymentTerm($purchaseOrderPaymentTerm); $payments[$event->getIdEvent()]["event"] = $event->getName(); $payments[$event->getIdEvent()]["idEvent"] = $event->getIdEvent(); $payments[$event->getIdEvent()]["payment"] += $purchaseOrderPaymentTerm->getAmount(); $payments[$event->getIdEvent()]["currency"] = $purchaseOrderPaymentTerm->getCurrency(); if (!$purchaseOrderProgrammedPayments->isEmpty()) { $payments[$event->getIdEvent()]["noEdit"] = true; } } return $payments; }
/** * * * @author Erick Guevara Martínez * @param PurchaseOrder $purchaseOrder * @return PurchaseOrderEntryCollection */ public function getPurchaseOrderEntries(PurchaseOrder $purchaseOrder) { $purchaseOrderEntries = PurchaseOrderEntryQuery::create()->whereAdd(PurchaseOrderEntry::ID_PURCHASE_ORDER, $purchaseOrder->getIndex())->find(); return $purchaseOrderEntries; }
public function servicePurchaseOrder(PurchaseOrder $purchaseOrder, PurchaseOrderEntryCollection $purchaseOrderEntries) { $purchaseOrder->setSeries(PurchaseOrder::$Series['Default']); $parameters["purchaseOrderSachi"] = $purchaseOrder->toSAPArray(); $parameters["purchaseOrderSachi"]["Lines"] = $purchaseOrderEntries->toSAPArray(); $this->createLogrequest($parameters); return $this->soapClient->purchaseOrder($parameters); }
/** * * */ public function getQuarantineListResultsAction() { $page = $this->getRequest()->getParam('page') ?: 1; $warehouseEntries = WarehouseEntranceQuery::create()->whereAdd(WarehouseEntrance::ID_FOLIO_IMPORT, null, WarehouseEntranceQuery::NOT_EQUAL)->whereAdd(WarehouseEntrance::ID_FOLIO_IMPORT, '0', WarehouseEntranceQuery::NOT_EQUAL)->find(); $params = $this->getRequest()->getParams(); $params['id_purchase_order'] = PurchaseOrderQuery::create()->whereAdd(PurchaseOrder::SAP_DOCUMENT_NUMBER, $params['sap_document_number'])->fetchOne(); if (empty($params['id_purchase_order']) && !empty($params['sap_document_number'])) { $params['id_purchase_order'] = -1; } $warehouseEntryProductQuery = WarehouseEntranceProductQuery::create()->whereAdd(WarehouseEntranceProduct::ID_PURCHASE_ORDER, null, WarehouseEntranceProductQuery::NOT_EQUAL)->whereAdd(WarehouseEntranceProduct::STATUS, WarehouseEntranceProduct::$Status['Quarantine'], WarehouseEntranceProductQuery::EQUAL)->whereAdd(WarehouseEntranceProduct::ID_WAREHOUSE_ENTRANCE, $warehouseEntries->getPrimaryKeys(), WarehouseEntranceProductQuery::IN)->filter($params)->orderBy(WarehouseEntranceProduct::ID_WAREHOUSE_ENTRANCE, 'DESC')->findByPage($page, $this->getMaxPerPage()); $purchaseOrderCollection = PurchaseOrderQuery::create()->whereAdd(PurchaseOrder::ID_PURCHASE_ORDER, $warehouseEntryProductQuery->getPurchaseOrderIds(), PurchaseOrderQuery::IN)->find(); $purchaseOrderEntryCollection = PurchaseOrderEntryQuery::create()->whereAdd(PurchaseOrderEntry::ID_PURCHASE_ORDER, $purchaseOrderCollection->getPrimaryKeys(), PurchaseOrderEntryQuery::IN)->find(); $i = 0; $this->getCatalog('QuarantineCatalog')->beginTransaction(); while ($warehouseEntryLine = $warehouseEntryProductQuery->read()) { $warehouseEntry = WarehouseEntranceQuery::create()->whereAdd(WarehouseEntrance::ID_WAREHOUSE_ENTRANCE, $warehouseEntryLine->getIdWarehouseEntrance())->findOne(); if (TransferLineLogQuery::create()->whereAdd(TransferLineLog::BASEENTRY, $warehouseEntryLine->getIdWarehouseEntrance())->whereAdd(TransferLineLog::BASELINE, $warehouseEntryLine->getIdWarehouseEntranceProduct())->count()) { $transferLine = TransferLineLogQuery::create()->whereAdd(TransferLineLog::BASEENTRY, $warehouseEntryLine->getIdWarehouseEntrance())->whereAdd(TransferLineLog::BASELINE, $warehouseEntryLine->getIdWarehouseEntranceProduct())->findOne(); $warehouseEntryLines[$i]['warehouse'] = WarehouseStoreQuery::create()->whereAdd(WarehouseStore::CODE, $transferLine->getWhsCode())->findOne()->getName(); } else { $warehouseEntryLines[$i]['warehouse'] = $this->i18n->_('Not Available'); } $claimReport = $this->getClaimReport($warehouseEntryLine->getIdWarehouseEntrance(), $warehouseEntryLine->getIdWarehouseEntranceProduct()); $folioImport = $this->getWarehouseEntryFolioImport($warehouseEntry->getIdFolioImport()); $quarantine = $this->getQuarantine($warehouseEntryLine->getIdWarehouseEntrance(), $warehouseEntryLine->getIdWarehouseEntranceProduct()); $product = ProductQuery::create()->findByPK($warehouseEntryLine->getIdProduct()); $warehouseEntryLines[$i]['id_warehouse_entrance_product'] = $warehouseEntryLine->getIdWarehouseEntranceProduct(); $warehouseEntryLines[$i]['id_warehouse_entrance'] = $warehouseEntry->getIdWarehouseEntrance(); $warehouseEntryLines[$i]['id_folio_import'] = $folioImport->getIdFolioImport(); $warehouseEntryLines[$i]['folio_import'] = $folioImport->getFolio(); if (PurchaseOrderQuery::create()->whereAdd(PurchaseOrder::ID_PURCHASE_ORDER, $warehouseEntryLine->getIdPurchaseOrder())->find()->count()) { $purchaseOrder = PurchaseOrderQuery::create()->findByPK($warehouseEntryLine->getIdPurchaseOrder()); } else { $purchaseOrder = new PurchaseOrder(); } $purchaseOrderEntry = PurchaseOrderEntryQuery::create()->whereAdd(PurchaseOrderEntry::ID_PURCHASE_ORDER, $purchaseOrder->getIdPurchaseOrder())->whereAdd(PurchaseOrderEntry::LINE, (string) $warehouseEntryLine->getBaseLine())->findOneOrElse(new PurchaseOrderEntry()); $proformaInvoice = ProformaInvoiceQuery::create()->whereAdd(ProformaInvoice::ID_PROFORMA_INVOICE, $purchaseOrderEntry->getBaseEntry())->findOneOrElse(new ProformaInvoice()); $warehouseEntryLines[$i]['proforma_invoice'] = $proformaInvoice->getSapDocumentNumber(); $warehouseEntryLines[$i]['purchase_order'] = $purchaseOrder->getSapDocumentNumber(); $warehouseEntryLines[$i]['item_code'] = $product->getItemCode(); $warehouseEntryLines[$i]['item_name'] = $product->getItemName(); $warehouseEntryLines[$i]['original_quantity'] = $warehouseEntryLine->getQuantity(); $warehouseEntryLines[$i]['current_quantity'] = $currentQuantity = $quarantine->getQuantity(); if ($warehouseEntryLine->getLineStatus() == 'C') { // $warehouseEntryLines[$i]['cancelled'] = true; // $warehouseEntryLines[$i]['status'] = 'Cancelled'; // $warehouseEntryLines[$i]['statusRow'] = ' '; } else { $warehouseEntryLines[$i]['cancelled'] = false; if (!$currentQuantity) { $warehouseEntryLines[$i]['status'] = 'Debugged'; $warehouseEntryLines[$i]['statusRow'] = 'success'; } else { $warehouseEntryLines[$i]['status'] = $warehouseEntryLine->getStatusName(); $warehouseEntryLines[$i]['statusRow'] = 'warning'; } } $warehouseEntryLines[$i]['quarantine'] = $warehouseEntryLine->getStatusName(); $warehouseEntryLines[$i]['claimed_amount'] = $claimReport->getClaimedAmount(); $warehouseEntryLines[$i]['final_amount'] = $claimReport->getFinalAmount(); $warehouseEntryLines[$i]['claim_report_status'] = $claimReport->getStatusName(); $warehouseEntryLines[$i]['allow_debug'] = TransferLineLogQuery::create()->whereAdd(TransferLineLog::BASEENTRY, $warehouseEntryLine->getIdWarehouseEntrance())->whereAdd(TransferLineLog::BASELINE, $warehouseEntryLine->getIdWarehouseEntranceProduct())->count(); if ($warehouseEntryLine->getStatus() == WarehouseEntranceProduct::$Status['Quarantine']) { $quarantineProduct = $this->getQuarantine($warehouseEntryLine->getIdWarehouseEntrance(), $warehouseEntryLine->getIdWarehouseEntranceProduct()); $warehouseEntryLines[$i]['initial_quantity'] = $quarantineProduct->getQuantity(); } $i++; } $this->getCatalog('QuarantineCatalog')->commit(); die(json_encode($warehouseEntryLines)); }
public function receiveEntriesAction() { $id = $this->getRequest()->getParam('id'); $folioImport = FolioImportQuery::create()->findByPK($id); $folioImport->setStatus(FolioImport::$Status['Received']); $redirect = 'folio-import/details/id/' . $id; $this->getPurchaseOrderEntryCatalog()->beginTransaction(); try { $this->getCatalog('FolioImportCatalog')->update($folioImport); } catch (Exception $e) { $this->setFlash('error', $e->getMessage()); die; // $this->_redirect($redirect); } $purchaseOrderEntries = $this->getRequest()->getParam('purchaseOrderEntries'); foreach ($purchaseOrderEntries as $purchaseOrderEntryValues) { $purchaseOrderEntry = PurchaseOrderEntryQuery::create()->findByPK($purchaseOrderEntryValues['idPurchaseOrderEntry']); $purchaseOrderEntry->setCartons($purchaseOrderEntryValues['cartons']); $purchaseOrderEntry->setCartonParts($purchaseOrderEntryValues['cartonParts']); $purchaseOrderEntry->setLoosePieces($purchaseOrderEntryValues['loosePieces']); $purchaseOrderEntry->setTotal($purchaseOrderEntryValues['total']); $purchaseOrderEntry->setInvoiceTotal($purchaseOrderEntryValues['invoiceTotal']); $purchaseOrderEntry->setDiference($purchaseOrderEntryValues['diference']); $purchaseOrderEntry->setQuantityByWarehouse($purchaseOrderEntryValues['quantityByWarehouse']); $purchaseOrderEntry->setDocumentNumber($purchaseOrderEntryValues['documentNumber']); $purchaseOrderEntry->setStatus(PurchaseOrderEntry::$Status['Received']); $purchaseOrder = new PurchaseOrder(); $purchaseOrder->setIdPurchaseOrder($purchaseOrderEntry->getIdPurchaseOrder()); $purchaseOrder->setComments($this->getRequest()->getParam('commentaries')); $purchaseOrder->setStatus(PurchaseOrder::$Status['Received']); try { $this->getPurchaseOrderCatalog()->update($purchaseOrder); } catch (Exception $e) { $this->setFlash('error', $e->getMessage()); die; // $this->_redirect($redirect); } try { $this->getPurchaseOrderEntryCatalog()->update($purchaseOrderEntry); } catch (Exception $e) { print_r($e->getMessage()); $this->setFlash('error', $e->getMessage()); die; // $this->_redirect($redirect); } } $this->getPurchaseOrderEntryCatalog()->commit(); $this->setFlash('ok', $this->i18n->_('The Purchase Order has been updated.')); $this->_redirect($redirect); }