public function load() { list($startDate, $endDate) = [NGS()->args()->startDate, NGS()->args()->endDate]; $expensePaymentOrders = PaymentTransactionManager::getInstance()->getPaymentListFull(['cancelled', '=', 0, 'AND', 'is_expense', '=', 1, 'AND', 'date', '>=', "'" . $startDate . "'", 'AND', 'date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['date'], 'DESC'); $this->addParam('currencies', CurrencyManager::getInstance()->mapDtosById(CurrencyManager::getInstance()->selectAdvance('*', ['active', '=', 1]))); $this->addParam("expensePaymentOrders", $expensePaymentOrders); }
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 prepareLineChartData($startDate, $endDate) { $begin = new DateTime($startDate); $end = (new DateTime($endDate))->modify('+1 day'); $interval = DateInterval::createFromDateString('1 day'); $period = new DatePeriod($begin, $interval, $end); $ret = []; foreach ($period as $dt) { $ret[$dt->format("Y-m-d")] = [0, 0, 0]; } $profitSaleOrders = SaleOrderManager::getInstance()->getSaleOrdersFull(['cancelled', '=', 0, 'AND', 'is_expense', '=', 0, 'AND', 'order_date', '>=', "'" . $startDate . "'", 'AND', 'order_date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['order_date'], 'DESC'); foreach ($profitSaleOrders as $profitSaleOrder) { $oDate = new DateTime($profitSaleOrder->getOrderDate()); $sDate = $oDate->format("Y-m-d"); $ret[$sDate][0] = $profitSaleOrder->getTotalProfit(); } $expenseSaleOrders = SaleOrderManager::getInstance()->getSaleOrdersFull(['cancelled', '=', 0, 'AND', 'is_expense', '=', 1, 'AND', 'order_date', '>=', "'" . $startDate . "'", 'AND', 'order_date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['order_date'], 'DESC'); foreach ($expenseSaleOrders as $expenseSaleOrder) { $oDate = new DateTime($expenseSaleOrder->getOrderDate()); $sDate = $oDate->format("Y-m-d"); $ret[$sDate][1] = $expenseSaleOrder->getTotalAmountInMainCurrency(); } $expensePaymentOrders = PaymentTransactionManager::getInstance()->getPaymentListFull(['cancelled', '=', 0, 'AND', 'is_expense', '=', 1, 'AND', 'date', '>=', "'" . $startDate . "'", 'AND', 'date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['date'], 'DESC'); foreach ($expensePaymentOrders as $expensePaymentOrder) { $oDate = new DateTime($expensePaymentOrder->getDate()); $sDate = $oDate->format("Y-m-d"); $ret[$sDate][2] = $expensePaymentOrder->getAmount() * $expensePaymentOrder->getCurrencyRate(); } return $ret; }
public function load() { list($date, $curr) = $this->getFormData(); $this->addParam('date', $date); $this->addParam('selectedCurrencyId', $curr); $this->addParam('currencies', CurrencyManager::getInstance()->selectAdvance('*', ['active', '=', 1], ['name'])); $paymentTransactionManager = PaymentTransactionManager::getInstance(); $nonCancelledPaymentOrdersByCurrency = $paymentTransactionManager->getNonCancelledPaymentOrdersByCurrency($date, $curr); $cashboxAmount = -$nonCancelledPaymentOrdersByCurrency; $this->addParam("amount", $cashboxAmount); }
public function load() { $this->initErrorMessages(); $this->initSuccessMessages(); $paymentId = NGS()->args()->id; $payments = PaymentTransactionManager::getInstance()->getPaymentListFull(['id', '=', $paymentId]); if (!empty($payments)) { $payment = $payments[0]; $this->addParam('payment', $payment); } }
public function service() { set_time_limit(120); $updateAllSaleOrderLinesCurrencyRates = SaleOrderManager::getInstance()->updateAllLinesCurrencyRates(); $updateAllPurchaseOrderLinesCurrencyRates = PurchaseOrderManager::getInstance()->updateAllLinesCurrencyRates(); $updateAllPaymentOrdersCurrencyRates = PaymentTransactionManager::getInstance()->updateAllOrdersCurrencyRates(); SaleOrderManager::getInstance()->updateAllOrderLines(); PurchaseOrderManager::getInstance()->updateAllOrderLines(); $this->addParam('status', true); $this->addParam('total_sale_orders', $updateAllSaleOrderLinesCurrencyRates); $this->addParam('total_purchase_orders', $updateAllPurchaseOrderLinesCurrencyRates); $this->addParam('total_payment_orders', $updateAllPaymentOrdersCurrencyRates); }
public function service() { try { list($id, $partnerId, $paymentMethodId, $currencyId, $amount, $date, $isExpense, $paid, $note, $signature) = $this->getFormData(); } catch (RedirectException $exc) { $_SESSION['error_message'] = $exc->getMessage(); $_SESSION['action_request'] = $_REQUEST; $this->redirect($exc->getRedirectTo()); } PaymentTransactionManager::getInstance()->updatePaymentOrder($id, $partnerId, $paymentMethodId, $currencyId, $amount, $date, $note, $signature, $paid, $isExpense); unset($_SESSION['action_request']); $_SESSION['success_message'] = 'Payment Successfully updated!'; $this->redirect('payment/' . $id); }
public function service() { $startDate = NGS()->args()->startDate; $endDate = NGS()->args()->endDate; $partnerId = intval(NGS()->args()->partner_id); $where = ['amount', '<', 0, 'and', 'cancelled', '=', 0, 'and', 'date', '>=', "'{$startDate}'", 'and', 'date', '<=', "'{$endDate} 23:59:59'"]; $partnerDto = null; if ($partnerId > 0) { $partnerDto = \crm\managers\PartnerManager::getInstance()->selectByPK($partnerId); $where = array_merge($where, ['and', 'partner_id', '=', $partnerId]); } $rows = \crm\managers\PaymentTransactionManager::getInstance()->getPaymentListFull($where, 'date', "DESC"); $this->exportCsv($rows, $startDate, $endDate, $partnerDto); }
public function service() { try { list($partnerId, $billingMethodId, $currencyId, $amount, $date, $note, $signature) = $this->getFormData(); } catch (RedirectException $exc) { $_SESSION['error_message'] = $exc->getMessage(); $_SESSION['action_request'] = $_REQUEST; $this->redirect($exc->getRedirectTo()); } $paymentTransactionManager = PaymentTransactionManager::getInstance(); $billingId = $paymentTransactionManager->createPaymentOrder($partnerId, $billingMethodId, $currencyId, -$amount, $date, $note, $signature); unset($_SESSION['action_request']); $_SESSION['success_message'] = 'Billing Successfully created!'; $this->redirect('billing/' . $billingId); }
public function load() { $this->initErrorMessages(); $this->initSuccessMessages(); $limit = 100; list($where, $offset, $sortByFieldName, $selectedFilterSortByAscDesc) = $this->initFilters($limit); $billing = PaymentTransactionManager::getInstance()->getPaymentListFull($where, $sortByFieldName, $selectedFilterSortByAscDesc, $offset, $limit); $this->addParam('billings', $billing); $count = PaymentTransactionManager::getInstance()->getLastSelectAdvanceRowsCount(); if (count($billing) == 0 && $count > 0) { $this->redirectIncludedParamsExeptPaging(); } $pagesCount = ceil($count / $limit); $this->addParam('pagesCount', $pagesCount); $this->addParam('partners', PartnerManager::getInstance()->selectAdvance('*', [], ['name'])); $this->addParam('currencies', CurrencyManager::getInstance()->selectAdvance('*', ['active', '=', 1], ['name'])); }
public function service() { if (isset(NGS()->args()->id)) { $paymentId = NGS()->args()->id; } else { $_SESSION['error_message'] = 'Billing ID is missing'; $this->redirect('billing/list'); } $paymentTransactionManager = PaymentTransactionManager::getInstance(); $paymentTransactionManager->deleteByPK($paymentId); $_SESSION['success_message'] = 'Billing Successfully deleted!'; if (strpos($_SERVER['HTTP_REFERER'], 'billing/list') === false) { $this->redirect('billing/list'); } else { $this->redirectToReferer(); } }
public function load() { $this->initErrorMessages(); $this->initSuccessMessages(); $id = intval(NGS()->args()->id); $paymentOrder = PaymentTransactionManager::getInstance()->selectByPK($id); if ($paymentOrder) { if (!isset($_SESSION['action_request'])) { $_SESSION['action_request'] = ['date' => $this->cutSecondsFromDateTime($paymentOrder->getDate()), 'partnerId' => $paymentOrder->getPartnerId(), 'billingMethodId' => $paymentOrder->getPaymentMethodId(), 'currencyId' => $paymentOrder->getCurrencyId(), 'note' => $paymentOrder->getNote(), 'signature' => $paymentOrder->getSignature(), 'amount' => $paymentOrder->getAmount(), 'isExpense' => $paymentOrder->getIsExpense(), 'paid' => $paymentOrder->getPaid()]; } $this->addParam("paymentOrder", $paymentOrder); $this->addParam('req', $_SESSION['action_request']); unset($_SESSION['action_request']); $this->addParam('payment_methods', PaymentMethodManager::getInstance()->selectAdvance('*', ['active', '=', 1], ['name'])); $this->addParam('currencies', CurrencyManager::getInstance()->selectAdvance('*', ['active', '=', 1], ['name'])); $this->addParam('partners', PartnerManager::getInstance()->selectAdvance('*', [], ['name'])); $this->addParam('defaultCurrencyId', SettingManager::getInstance()->getSetting('default_currency_id')); $this->addParam('defaultPaymentMethodId', SettingManager::getInstance()->getSetting('default_payment_method_id')); } }
public function load() { list($startDate, $endDate) = $this->getFormData(); $this->addParam('startDate', $startDate); $this->addParam('endDate', $endDate); $partnerSaleOrders = AdvancedAbstractManager::mapDtosById(SaleOrderManager::getInstance()->getSaleOrdersFull(['cancelled', '=', 0, 'AND', 'order_date', '>=', "'" . $startDate . "'", 'AND', 'order_date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['order_date'], 'DESC')); $partnerPurchaseOrders = AdvancedAbstractManager::mapDtosById(PurchaseOrderManager::getInstance()->getPurchaseOrdersFull(['cancelled', '=', 0, 'AND', 'order_date', '>=', "'" . $startDate . "'", 'AND', 'order_date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['order_date'], 'DESC')); $partnerPaymentTransactions = AdvancedAbstractManager::mapDtosById(PaymentTransactionManager::getInstance()->getPaymentListFull(['cancelled', '=', 0, 'AND', 'amount', '>', 0, 'AND', 'date', '>=', "'" . $startDate . "'", 'AND', 'date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['date'], 'DESC')); $partnerBillingTransactions = AdvancedAbstractManager::mapDtosById(PaymentTransactionManager::getInstance()->getPaymentListFull(['cancelled', '=', 0, 'AND', 'amount', '<', 0, 'AND', 'date', '>=', "'" . $startDate . "'", 'AND', 'date', '<=', "DATE_ADD('{$endDate}' ,INTERVAL 1 DAY)"], ['date'], 'DESC')); $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); $this->addParam('currencies', CurrencyManager::getInstance()->selectAdvance('*', ['active', '=', 1], null, null, null, null, true)); }
public function service() { if (isset(NGS()->args()->id)) { $billingId = NGS()->args()->id; } else { $_SESSION['error_message'] = 'Billing ID is missing'; $this->redirect('billing/list'); } $paymentTransactionManager = PaymentTransactionManager::getInstance(); $billingDto = $paymentTransactionManager->selectByPK($billingId); if (!isset($billingDto)) { $_SESSION['error_message'] = 'Billing with ID ' . NGS()->args()->id . ' does not exists.'; $this->redirect('billing/list'); } if ($billingDto->getCancelled() == 0) { $_SESSION['error_message'] = 'Billing with ID ' . NGS()->args()->id . ' is not cancelled.'; $this->redirect('billing/list'); } $paymentTransactionManager->undoCancelPayment($billingId); $_SESSION['success_message'] = 'Billing successfully restored!'; $this->redirectToReferer(); }
public function load() { $this->initErrorMessages(); $this->initSuccessMessages(); $partnerId = intval(NGS()->args()->id); $partner = PartnerManager::getInstance()->getPartnerFull($partnerId); if ($partner) { $this->addParam('partner', $partner); $partnerSaleOrders = SaleOrderManager::getInstance()->getPartnerSaleOrders($partnerId); $partnerPurchaseOrders = PurchaseOrderManager::getInstance()->getPartnerPurchaseOrders($partnerId); $partnerPaymentTransactions = PaymentTransactionManager::getInstance()->getPartnerPaymentTransactions($partnerId); $partnerBillingTransactions = PaymentTransactionManager::getInstance()->getPartnerBillingTransactions($partnerId); $partnerInitialDept = PartnerInitialDeptManager::getInstance()->getPartnerInitialDept($partnerId); $this->addParam('partnerSaleOrders', $partnerSaleOrders); $this->addParam('partnerPurchaseOrders', $partnerPurchaseOrders); $this->addParam('partnerPaymentTransactions', $partnerPaymentTransactions); $this->addParam('partnerBillingTransactions', $partnerBillingTransactions); $dept = CalculationManager::getInstance()->calculatePartnerDeptBySalePurchaseAndPaymentTransations($partnerSaleOrders, $partnerPurchaseOrders, $partnerPaymentTransactions, $partnerBillingTransactions, $partnerInitialDept); $this->addParam('partnerDept', $dept); $currencyManager = CurrencyManager::getInstance(); $this->addParam('currencies', $currencyManager->mapDtosById($currencyManager->selectAdvance('*', ['active', '=', 1], ['name']))); } }
public function service() { if (isset(NGS()->args()->id)) { $paymentId = NGS()->args()->id; } else { $_SESSION['error_message'] = 'Payment ID is missing'; $this->redirect('payment/list'); } $paymentTransactionManager = PaymentTransactionManager::getInstance(); $paymentDto = $paymentTransactionManager->selectByPK($paymentId); if (!isset($paymentDto)) { $_SESSION['error_message'] = 'Payment with ID ' . NGS()->args()->id . ' does not exists.'; $this->redirect('payment/list'); } if ($paymentDto->getCancelled() == 1) { $_SESSION['error_message'] = 'Payment with ID ' . NGS()->args()->id . ' is already cancelled.'; $this->redirect('payment/list'); } $note = NGS()->args()->note; $paymentTransactionManager->cancelPayment($paymentId, $note); $_SESSION['success_message'] = 'Payment Successfully cancelled!'; $this->redirectToReferer(); }
public function load() { $this->initErrorMessages(); $this->initSuccessMessages(); $limit = 100; list($offset, $sortByFieldName, $selectedFilterSortByAscDesc) = $this->initFilters($limit); $partnerManager = PartnerManager::getInstance(); $partners = $partnerManager->selectAdvance('*', [], $sortByFieldName, $selectedFilterSortByAscDesc, $offset, $limit); $partnerIds = $partnerManager->getDtosIdsArray($partners); $partnersSaleOrdersMappedByPartnerId = []; $partnersPurchaseOrdersMappedByPartnerId = []; $partnersTransactionsMappedByPartnerId = []; $partnersInitialDept = []; if (!empty($partnerIds)) { $partnersSaleOrdersMappedByPartnerId = SaleOrderManager::getInstance()->getPartnersSaleOrders($partnerIds); $partnersPurchaseOrdersMappedByPartnerId = PurchaseOrderManager::getInstance()->getPartnersPurchaseOrders($partnerIds); $partnersPaymentTransactionsMappedByPartnerId = PaymentTransactionManager::getInstance()->getPartnersPaymentTransactions($partnerIds); $partnersBillingTransactionsMappedByPartnerId = PaymentTransactionManager::getInstance()->getPartnersBillingTransactions($partnerIds); $partnersInitialDept = PartnerInitialDeptManager::getInstance()->getPartnersInitialDept($partnerIds); } $partnersDept = CalculationManager::getInstance()->calculatePartnersDeptBySalePurchaseAndPaymentTransations($partnersSaleOrdersMappedByPartnerId, $partnersPurchaseOrdersMappedByPartnerId, $partnersPaymentTransactionsMappedByPartnerId, $partnersBillingTransactionsMappedByPartnerId, $partnersInitialDept); $this->addParam('partnersSaleOrdersMappedByPartnerId', $partnersSaleOrdersMappedByPartnerId); $this->addParam('partnersPurchaseOrdersMappedByPartnerId', $partnersPurchaseOrdersMappedByPartnerId); $this->addParam('partnersPaymentTransactionsMappedByPartnerId', $partnersPaymentTransactionsMappedByPartnerId); $this->addParam('partnersBillingTransactionsMappedByPartnerId', $partnersBillingTransactionsMappedByPartnerId); $this->addParam('partnersDept', $partnersDept); $this->addParam('partners', $partners); $count = PartnerManager::getInstance()->getLastSelectAdvanceRowsCount(); if (count($partners) == 0 && $count > 0) { $this->redirectIncludedParamsExeptPaging(); } $pagesCount = ceil($count / $limit); $this->addParam('pagesCount', $pagesCount); $currencyManager = CurrencyManager::getInstance(); $this->addParam('currencies', $currencyManager->mapDtosById($currencyManager->selectAdvance('*', ['active', '=', 1], ['name']))); }
public function calculatePartnerDeptBySalePurchaseAndPaymentTransations($id) { $partnerSaleOrders = SaleOrderManager::getInstance()->getPartnerSaleOrders($id); $partnerPurchaseOrders = PurchaseOrderManager::getInstance()->getPartnerPurchaseOrders($id); $partnerPaymentTransactions = PaymentTransactionManager::getInstance()->getPartnerPaymentTransactions($id); $partnerBillingTransactions = PaymentTransactionManager::getInstance()->getPartnerBillingTransactions($id); $partnerInitialDept = PartnerInitialDeptManager::getInstance()->getPartnerInitialDept($id); return CalculationManager::getInstance()->calculatePartnerDeptBySalePurchaseAndPaymentTransations($partnerSaleOrders, $partnerPurchaseOrders, $partnerPaymentTransactions, $partnerBillingTransactions, $partnerInitialDept); }