コード例 #1
0
 public function issueSearchAction()
 {
     $form = new Form_StockIssueSearch();
     $this->view->form = $form;
     $stock_master = new Model_StockMaster();
     $from_edit = new Form_StockIssue();
     $em = Zend_Registry::get('doctrine');
     // Edit Issue Start
     if (!empty($this->_request->id)) {
         $detail_id = $this->_request->id;
         $issue = $this->_em->getRepository("StockDetail")->find($detail_id);
         $from_edit->item_id->setValue($issue->getStockBatch()->getItemPackSize()->getPkId());
         $from_edit->fillBatchCombo($issue->getStockBatch()->getItemPackSize()->getPkId());
         $from_edit->number->setValue($issue->getStockBatch()->getPkId());
         $from_edit->vvm_stage->setValue($issue->getVvmStage());
         $from_edit->quantity->setValue(abs($issue->getQuantity()));
         $from_edit->available_quantity->setValue($issue->getStockBatch()->getQuantity());
         $from_edit->expiry_date->setValue($issue->getStockBatch()->getExpiryDate()->format("d/m/Y"));
         $from_edit->transaction_number->setValue($issue->getStockMaster()->getTransactionNumber());
         $from_edit->transaction_date->setValue(date("d/m/Y", strtotime($issue->getStockMaster()->getTransactionDate()->format("Y-m-d"))));
         $from_edit->hdn_transaction_date->setValue(date("d/m/Y", strtotime($issue->getStockMaster()->getTransactionDate()->format("Y-m-d"))));
         $from_edit->warehouse_name->setValue($issue->getStockMaster()->getToWarehouse()->getWarehouseName());
         $from_edit->transaction_reference->setValue($issue->getStockMaster()->getTransactionReference());
         //$from_edit->activity_id->setValue($issue->getStockMaster()->getStakeholderActivity());
         $from_edit->makeFieldReadonly();
         $this->view->issueedit = true;
         $this->view->detail_id = $this->_request->id;
         $base_url = Zend_Registry::get('baseurl');
         switch ($this->_user_level) {
             case 1:
             case 2:
             case 3:
                 $this->view->menu_type = 1;
                 $this->view->inlineScript()->appendFile($base_url . '/js/all_level_combos.js');
                 break;
             case 4:
             case 5:
             case 6:
                 $this->view->menu_type = 2;
                 $this->view->inlineScript()->appendFile($base_url . '/js/level_combos.js');
                 break;
         }
     }
     // Edit Issue End
     if (!empty($this->_request->warehouse)) {
         $warehouse_id = $this->_request->warehouse;
     }
     if ($this->_request->isPost()) {
         if ($from_edit->isValid($this->_request->getPost())) {
             $editissue = $this->_request->getPost('issueedit');
             if ($editissue == "Yes") {
                 $d_id = $this->_request->getPost('detailid');
                 $obj_stock_detail = $em->getRepository("StockDetail")->find($d_id);
                 $data = $from_edit->getValues();
                 //     App_Controller_Functions::pr($data);
                 $obj_stock_master = $obj_stock_detail->getStockMaster();
                 $master_update = false;
                 $obj_stock_master = $obj_stock_detail->getStockMaster();
                 if (!empty($data['transaction_date'])) {
                     $trans = $stock_master->getTransactionNumber(2, $data['transaction_date']);
                     $obj_stock_master->setTransactionDate(new \DateTime(App_Controller_Functions::dateToDbFormat($data['transaction_date'])));
                     list($h_dd, $h_mm, $h_yy) = explode("/", $data['hdn_transaction_date']);
                     list($dd, $mm, $yy) = explode("/", $data['transaction_date']);
                     if ($h_mm != $mm || $h_yy != $yy) {
                         $obj_stock_master->setTransactionNumber($trans['trans_no']);
                         $obj_stock_master->setTransactionCounter($trans['id']);
                     }
                     $master_update = true;
                 }
                 $obj_stock_master->setTransactionReference($data['transaction_reference']);
                 if (!empty($warehouse_id)) {
                     $to_wh = $em->getRepository("Warehouses")->find($warehouse_id);
                     $obj_stock_master->setToWarehouse($to_wh);
                     $master_update = true;
                 }
                 if ($master_update) {
                     $em->persist($obj_stock_master);
                 }
                 $qunty = str_replace(",", "", $data['quantity']);
                 $obj_stock_detail->setQuantity("-" . $qunty);
                 $vvms = $this->_em->getRepository("VvmStages")->find($data['vvm_stage']);
                 $obj_stock_detail->setVvmStage($vvms);
                 $stock_b = $em->getRepository("StockBatch")->find($data['number']);
                 $obj_stock_detail->setStockBatch($stock_b);
                 if (!empty($data['item_unit_id'])) {
                     $item_unit = $em->getRepository("ItemUnits")->find($data['item_unit_id']);
                     $obj_stock_detail->setItemUnit($item_unit);
                 }
                 $em->persist($obj_stock_detail);
                 $em->flush();
                 list($dd, $mm, $yy) = explode("/", $data['transaction_date']);
                 $item_id = $data['item_id'];
                 $wh_id = $this->_identity->getWarehouseId();
                 $user_id = $this->_userid;
                 $query = "SELECT AdjustQty(" . $data['number'] . "," . $wh_id . ") FROM DUAL";
                 $str_sql = $em->getConnection()->prepare($query);
                 $str_sql->execute();
                 $query = "SELECT REPUpdateData({$mm},{$yy},{$item_id},{$wh_id},{$user_id}) FROM DUAL";
                 $str_sql = $em->getConnection()->prepare($query);
                 $str_sql->execute();
             }
         }
         if ($form->isValid($this->_request->getPost())) {
             $data = $form->getValues();
             $stock_master->form_values = $data;
         }
     }
     $dataset = $stock_master->stockIssueSearch();
     $this->view->result = $dataset;
     $this->view->from_edit = $from_edit;
     $this->view->vouchertype = $this->_request->getParam('voucher_type', 1);
 }