示例#1
0
 public function allocate()
 {
     if (!$this->loadData()) {
         $this->dataError();
         sendBack();
     }
     $supplier = $this->_uses[$this->modeltype];
     $transaction = DataObjectFactory::Factory('PLTransaction');
     $transactions = new PLTransactionCollection($transaction, 'pl_allocation_overview');
     $sh = new SearchHandler($transactions, false);
     $db = DB::Instance();
     $sh->addConstraint(new Constraint('status', 'in', '(' . $db->qstr($transaction->open()) . ',' . $db->qstr($transaction->partPaid()) . ')'));
     $sh->addConstraint(new Constraint('plmaster_id', '=', $supplier->id));
     $sh->setOrderby(array('supplier', 'our_reference'));
     $transactions->load($sh);
     $this->view->set('allocated_total', 0);
     $this->view->set('transactions', $transactions);
     $this->view->set('no_ordering', true);
 }
示例#2
0
 public function select_for_payment()
 {
     $errors = array();
     $supplier = DataObjectFactory::Factory('plsupplier');
     if (isset($this->_data['plmaster_id'])) {
         $supplier->load($this->_data['plmaster_id']);
     }
     // Search
     $s_data = array();
     // Set context from calling module
     if ($supplier) {
         $s_data['plmaster_id'] = $supplier->id;
     }
     $params = DataObjectFactory::Factory('GLParams');
     $s_data['currency_id'] = $params->base_currency();
     $paytype = DataObjectFactory::Factory('PaymentType');
     $cc = new ConstraintChain();
     $cc->add(new Constraint('method_id', 'is not', 'NULL'));
     $paytypes = $paytype->getAll($cc);
     $paytype_ids = array_keys($paytypes);
     $s_data['payment_type_id'] = $paytype_ids[0];
     $this->setSearch('pltransactionsSearch', 'select_payments', $s_data);
     // End of search
     $cc = '';
     if (isset($this->search)) {
         $cc = new ConstraintChain();
         $cc = $this->search->toConstraintChain();
     }
     $transaction = DataObjectFactory::Factory('PLTransaction');
     $transactions = new PLTransactionCollection($transaction, 'pl_allocation_overview');
     $sh = new SearchHandler($transactions, false);
     $sh->addConstraint(new Constraint('status', '=', 'O'));
     $sh->addConstraintChain($cc);
     $sh->setOrderby(array('supplier', 'our_reference'));
     $transactions->load($sh);
     $this->view->set('transactions', $transactions);
     $this->view->set('no_ordering', true);
     $sidebar = new SidebarController($this->view);
     $sidebarlist = array();
     $this->sidebarIndex($sidebarlist);
     $this->sidebarAllPayments($sidebarlist);
     $sidebar->addList('Actions', $sidebarlist);
     $this->view->register('sidebar', $sidebar);
     $this->view->set('sidebar', $sidebar);
 }
示例#3
0
 public function hasCurrentActivity()
 {
     $db = DB::Instance();
     // Check that no orders/invoices have been raised
     $model = DataObjectFactory::Factory('POrder');
     $collection = new POrderCollection($model);
     $sh = new SearchHandler($collection, FALSE);
     $sh->addConstraint(new Constraint('plmaster_id', '=', $this->id));
     $sh->addConstraint(new Constraint('status', 'NOT IN', '(' . $db->qstr($model->cancelStatus()) . ', ' . $db->qstr($model->invoiceStatus()) . ')'));
     if (count($collection->load($sh, null, RETURN_ROWS)) > 0) {
         return TRUE;
     }
     $model = DataObjectFactory::Factory('PInvoice');
     $collection = new PInvoiceCollection($model);
     $sh = new SearchHandler($collection, FALSE);
     $sh->addConstraint(new Constraint('plmaster_id', '=', $this->id));
     $sh->addConstraint(new Constraint('status', '!=', $model->paidStatus()));
     if (count($collection->load($sh, null, RETURN_ROWS)) > 0) {
         return TRUE;
     }
     $model = DataObjectFactory::Factory('PLTransaction');
     $collection = new PLTransactionCollection($model);
     $sh = new SearchHandler($collection, FALSE);
     $sh->addConstraint(new Constraint('plmaster_id', '=', $this->id));
     $sh->addConstraint(new Constraint('status', '!=', $model->paid()));
     if (count($collection->load($sh, null, RETURN_ROWS)) > 0) {
         return TRUE;
     }
     return FALSE;
 }