public static function useDefault($search_data = null, &$errors = array(), $defaults = null) { $search = new pogoodsreceivedSearch($defaults); // Search by Customer $search->addSearchField('plmaster_id', 'Supplier', 'select', 0, 'advanced'); $supplier = new PLSupplier(); $options = array('0' => 'All'); $suppliers = $supplier->getAll(null, false, true); $options += $suppliers; $search->setOptions('plmaster_id', $options); // Search by Stock Item $search->addSearchField('stitem_id', 'Stock Item', 'select', 0, 'advanced'); $stitems = new STItem(); $options = array('0' => 'All'); $stitems = $stitems->getAll(); $options += $stitems; $search->setOptions('stitem_id', $options); // Search by Despatch Number $search->addSearchField('gr_number', 'goods_received_number', 'equal', '', 'advanced'); // Search by Order Number $search->addSearchField('order_number', 'order_number', 'equal', '', 'advanced'); // Search by Invoice Number $search->addSearchField('invoice_number', 'invoice_number', 'equal', '', 'advanced'); // Search by Received Date $search->addSearchField('received_date', 'delivery_date_between', 'between', '', 'advanced'); // Search by Status $search->addSearchField('status', 'status', 'select', '', 'basic'); $poreceivedline = new POReceivedLine(); $options = array_merge(array('' => 'All'), $poreceivedline->getEnumOptions('status')); $search->setOptions('status', $options); $search->setSearchData($search_data, $errors); return $search; }
public function view() { if (!$this->loadData()) { $this->dataError(); sendBack(); } $transaction = $this->_uses[$this->modeltype]; $id = $this->_data['id']; $this->view->set('transaction', $transaction); $link = ''; switch ($transaction->process_name) { case 'D': $despatchline = new SOdespatchline(); $despatchline->loadBy('despatch_number', $transaction->process_id); if ($despatchline->isLoaded()) { $link = '"module":"despatch" ,"controller":"sodespatchlines" ,"action":"view" ,"id":"' . $despatchline->id . '"'; } break; case 'GR': $poreceivedline = new POReceivedLine(); $poreceivedline->loadBy('gr_number', $transaction->process_id); if ($poreceivedline->isLoaded()) { $link = '"module":"goodsreceived" ,"controller":"poreceivedlines" ,"action":"view" ,"id":"' . $poreceivedline->id . '"'; } break; case 'SC': case 'SI': $link = '"module":"sales_invoicing" ,"controller":"sinvoices" ,"action":"view" ,"id":"' . $transaction->process_id . '"'; break; case 'SO': $link = '"module":"sales_order" ,"controller":"sorders" ,"action":"view" ,"id":"' . $transaction->process_id . '"'; break; case 'WO': $link = '"module":"manufacturing" ,"controller":"mfworkorders" ,"action":"view" ,"id":"' . $transaction->process_id . '"'; break; } $this->view->set('linkto', $link); $sidebar = new SidebarController($this->view); $sidebarlist = array(); if ($transaction->status == 'E') { $sidebarlist['backflusherrors'] = array('tag' => 'All Backflush Errors', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'index', 'status' => 'E')); } $sidebarlist['alltransactions'] = array('tag' => 'All Transactions', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'index')); $sidebarlist['transactions_for_location'] = array('tag' => 'transactions_for_location', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'index', 'whlocation_id' => $transaction->whlocation_id, 'from' => fix_date(date(DATE_FORMAT, strtotime($transaction->created))), 'to' => fix_date(date(DATE_FORMAT, strtotime("+1 day", strtotime($transaction->created)))))); $sidebarlist['transactions_for_item'] = array('tag' => 'transactions_for_item', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'index', 'stitem_id' => $transaction->stitem_id, 'from' => fix_date(date(DATE_FORMAT, strtotime($transaction->created))), 'to' => fix_date(date(DATE_FORMAT, strtotime("+1 day", strtotime($transaction->created)))))); $sidebar->addList('Show', $sidebarlist); if ($transaction->status == 'E') { $sidebarlist = array(); $sidebarlist['resolve'] = array('tag' => 'Resolve Transaction', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'changeStatus', 'id' => $id, 'status' => 'R')); $sidebarlist['cancel'] = array('tag' => 'Cancel Transaction', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'changeStatus', 'id' => $id, 'status' => 'C')); $sidebar->addList('Actions', $sidebarlist); } $this->view->register('sidebar', $sidebar); $this->view->set('sidebar', $sidebar); }
public function save_grnote() { $flash = Flash::Instance(); $db = DB::Instance(); $db->StartTrans(); $gr_note = $this->_data['gr_note']; $errors = array(); $received = array(); $receivedline = array(); foreach ($this->_data['poreceivedlines'] as $key => $value) { $orderline = DataObjectFactory::Factory('POrderLine'); $orderline->load($key); if ($orderline) { $order = DataObjectFactory::Factory('SOrder'); $order->load($orderline->order_id); if ($order) { $receivedline['order_id'] = $order->id; $receivedline['orderline_id'] = $orderline->id; $receivedline['plmaster_id'] = $order->plmaster_id; $receivedline['stuom_id'] = $orderline->stuom_id; $receivedline['item_description'] = $orderline->description; $receivedline['tax_rate_id'] = $orderline->tax_rate_id; if ($orderline->stitem_id) { $receivedline['stitem_id'] = $orderline->stitem_id; } if ($orderline->productline_id) { $receivedline['productline_id'] = $orderline->productline_id; } $receivedline['received_qty'] = $orderline->os_qty; $receivedline['received_date'] = date(DATE_FORMAT); $receivedline['status'] = 'N'; $received[$order->id][] = $receivedline; } } } foreach ($received as $header) { foreach ($header as $line) { $line['gr_note'] = $gr_note; $saveline = POReceivedLine::Factory($line, $errors, 'POReceivedLine'); if ($saveline) { $result = $saveline->save(); if (!$result) { $flash->addError('Error creating goods received note'); $db->FailTrans(); sendBack(); } } $orderline = DataObjectFactory::Factory('POrderLine'); $result = $orderline->update($line['orderline_id'], 'gr_note', $gr_note); if ($result === false) { $flash->addError('Error updating order line'); $db->FailTrans(); sendBack(); } } } if (count($errors) === 0 && $db->CompleteTrans()) { $flash->addMessage('Goods Received Notes added successfully'); sendTo($this->name, 'index', $this->_modules); } else { $flash->addErrors($errors); $db->FailTrans(); sendBack(); } }