public function load() { $this->initErrorMessages(); $this->initSuccessMessages(); $partnerId = intval(NGS()->args()->id); $partner = PartnerManager::getInstance()->selectbyPK($partnerId); if ($partner) { $this->addParam('currencies', CurrencyManager::getInstance()->selectAdvance('*', ['active', '=', 1], null, null, null, null, true)); $this->addParam('partner', $partner); $partnerSaleOrders = SaleOrderManager::mapDtosById(SaleOrderManager::getInstance()->getPartnerSaleOrders($partnerId)); $partnerPurchaseOrders = PurchaseOrderManager::mapDtosById(PurchaseOrderManager::getInstance()->getPartnerPurchaseOrders($partnerId)); $partnerPaymentTransactions = PaymentTransactionManager::mapDtosById(PaymentTransactionManager::getInstance()->getPartnerPaymentTransactions($partnerId)); $partnerBillingTransactions = PaymentTransactionManager::mapDtosById(PaymentTransactionManager::getInstance()->getPartnerBillingTransactions($partnerId)); $sales = $this->mapByIdAndGivenField('sale_', 'order_date', $partnerSaleOrders); $purchases = $this->mapByIdAndGivenField('purchase_', 'order_date', $partnerPurchaseOrders); $paments = $this->mapByIdAndGivenField('payment_', 'date', $partnerPaymentTransactions); $billings = $this->mapByIdAndGivenField('billing_', 'date', $partnerBillingTransactions); $allDeals = $this->mergeAllDeals($sales, $purchases, $paments, $billings, $partnerSaleOrders, $partnerPurchaseOrders, $partnerPaymentTransactions, $partnerBillingTransactions); $this->addParam('allDeals', $allDeals); $this->addParam('partnerSaleOrders', $partnerSaleOrders); $this->addParam('partnerPurchaseOrders', $partnerPurchaseOrders); $this->addParam('partnerPaymentTransactions', $partnerPaymentTransactions); $this->addParam('partnerBillingTransactions', $partnerBillingTransactions); } }
private function getPurchaseOrdersDatesMappedBySN($pol_searial_numbers) { $snMappedByPolIds = []; foreach ($pol_searial_numbers as $pol_searial_number) { $snMappedByPolIds[$pol_searial_number->getLineId()][] = $pol_searial_number->getSerialNumber(); } $polDtos = PurchaseOrderLineManager::getInstance()->selectByPKs(array_keys($snMappedByPolIds)); $poIdsMappedByPolId = $this->getPoIdsMappedByPolIds($polDtos); $poDtos = PurchaseOrderManager::getInstance()->getPurchaseOrdersFull($where = ['id', 'in', '(' . implode(',', array_unique(array_values($poIdsMappedByPolId))), ')']); $poDtosMappedByID = SaleOrderManager::mapDtosById($poDtos); $ret = []; foreach ($poIdsMappedByPolId as $polId => $poId) { foreach ($snMappedByPolIds[$polId] as $sn) { if (isset($poDtosMappedByID[$poId])) { $ret[$sn] = [$poDtosMappedByID[$poId]->getOrderDate(), $poDtosMappedByID[$poId]->getPartnerDto()->getName()]; } } } return $ret; }