Esempio n. 1
0
 public function addStockDetail1($array)
 {
     $em = Zend_Registry::get('doctrine');
     $action = Zend_Registry::get("action");
     $form_values = $array;
     $end = $form_values['counter'];
     for ($i = 0; $i < $end; $i++) {
         $row = $form_values["rows" . $i];
         if ($row['quantity'] > 0) {
             $stock_detail = new StockDetail();
             $type = $array['transaction_type_id'];
             $type1 = $type;
             $quantity = str_replace(",", "", $row['quantity']);
             if ($type == Model_TransactionTypes::TRANSACTION_ISSUE) {
                 $quantity = "-" . $quantity;
             }
             $stock_id = $array['stock_master_id'];
             $stock_master_id = $this->_em->getRepository('StockMaster')->find($stock_id);
             $stock_detail->setStockMaster($stock_master_id);
             $row_item = $this->_em->getRepository('ItemPackSizes')->find($row['item_pack_size_id']);
             $item_unit = $row_item->getItemUnit()->getPkId();
             if (!empty($item_unit)) {
                 $item_unit_id = $this->_em->getRepository('ItemUnits')->find($item_unit);
                 $stock_detail->setItemUnit($item_unit_id);
             }
             $stock_detail->setQuantity($quantity);
             $stock_detail->setTemporary(0);
             if ($action == 'add-stock-issue') {
                 list($location, $vvm) = explode("|", trim($row['hdn_vvm_stage']));
                 if ($vvm == 0) {
                     $row['hdn_vvm_stage'] = 0;
                 } else {
                     if (!empty($vvm)) {
                         $row['hdn_vvm_stage'] = $vvm;
                     } else {
                         $row['hdn_vvm_stage'] = $location;
                     }
                 }
             }
             $vvms = $this->_em->getRepository("VvmStages")->find($row['hdn_vvm_stage']);
             $stock_detail->setVvmStage($vvms);
             $stock_detail->setAdjustmentType("{$type}");
             if ($type == 1) {
                 $str_sql = $this->_em->createQueryBuilder()->select("sbw.pkId")->from('StockBatchWarehouses', 'sbw')->join('sbw.stockBatch', 'sb')->join('sb.packInfo', 'pi')->join('pi.stakeholderItemPackSize', 'sip')->where("sip.itemPackSize = '" . $row['item_id'] . "' ")->andWhere("sb.number = '" . $row['number'] . "'  ")->andWhere("sbw.warehouse =  '" . $this->_identity->getWarehouseId() . "' ");
                 //this IF is for stock receive
                 $row_q = $str_sql->getQuery()->getResult();
                 $stock_batch_id = $this->_em->getRepository('StockBatchWarehouses')->find($row_q['0']['pkId']);
                 $stock_detail->setStockBatchWarehouse($stock_batch_id);
                 $stock_detail->setIsReceived(1);
             } else {
                 if ($type == 2) {
                     //this ELSE IF is for stock issue
                     $stock_batch_id = $this->_em->getRepository('StockBatchWarehouses')->find($row['number']);
                     $stock_detail->setStockBatchWarehouse($stock_batch_id);
                     $stock_detail->setIsReceived(0);
                 }
             }
             $created_by = $this->_em->getRepository('Users')->find($this->_user_id);
             $stock_detail->setModifiedBy($created_by);
             $stock_detail->setModifiedDate(App_Tools_Time::now());
             $stock_detail->setCreatedBy($created_by);
             $stock_detail->setCreatedDate(App_Tools_Time::now());
             $this->_em->persist($stock_detail);
             $this->_em->flush();
             //  echo $row['number'];
             //  exit;
             //  echo   $stock_batch_id->getPkId();
             //  exit;
             $query = "SELECT AdjustQty(" . $stock_batch_id->getPkId() . "," . $this->_identity->getWarehouseId() . ") FROM DUAL";
             $str_sql = $em->getConnection()->prepare($query);
             $str_sql->execute();
             if ($action == 'add-stock-issue' && !empty($location)) {
                 $placements = new Model_Placements();
                 $placements->form_values['placement_loc_id'] = $location;
                 $placements->form_values['batch_id'] = $row['number'];
                 $placements->form_values['vvmstage'] = $vvm;
                 $placements->form_values['is_placed'] = 1;
                 $placements->form_values['quantity'] = $quantity;
                 $placements->form_values['placement_loc_type_id'] = 115;
                 $placements->form_values['detail_id'] = $stock_detail->getPkId();
                 $placements->form_values['user_id'] = $this->_user_id;
                 $placements->form_values['created_date'] = date("Y-m-d");
                 $placements->addIssuePlacement();
             }
         }
     }
     return $stock_detail->getPkId();
 }