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(); }