コード例 #1
0
 /**
  * 
  * @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;
 }
コード例 #2
0
 /**
  * 
  * 
  * @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;
 }
コード例 #3
0
 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);
 }
コード例 #4
0
 /**
  * 
  * 
  */
 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));
 }
コード例 #5
0
 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);
 }