public function addStockWarehouseByIssue() { if (!empty($this->form_values['wh_id'])) { $wh_id = $this->form_values['wh_id']; } else { $wh_id = $this->_identity->getWarehouseId(); } $created_by = $this->_em->getRepository('Users')->find($this->_user_id); $tranaction_type = new Model_TransactionTypes(); $arr_types = $tranaction_type->getAll(); $array_types = array(); foreach ($arr_types as $arrtype) { $array_types[$arrtype['pkId']] = $arrtype['nature']; } if (isset($this->form_values['stock_id']) && !empty($this->form_values['stock_id'])) { $stock_id = $this->form_values['stock_id']; $stock_detail = new Model_StockDetail(); $stock_detail->pkId = $stock_id; $stock_detail_result = $stock_detail->findbyStockId(); $type_id = 1; if (isset($this->form_values['remarks']) && !empty($this->form_values['remarks'])) { $remarks = $this->form_values['remarks']; } if (isset($this->form_values['issue_no']) && !empty($this->form_values['issue_no'])) { $issue_no = $this->form_values['issue_no']; } if (isset($this->form_values['count']) && !empty($this->form_values['count'])) { $count_o = $this->form_values['count']; } if (isset($this->form_values['rec_date']) && !empty($this->form_values['rec_date'])) { $rec_date = $this->form_values['rec_date']; } if (isset($this->form_values['rec_ref']) && !empty($this->form_values['rec_ref'])) { $rec_ref = $this->form_values['rec_ref']; } if (isset($this->form_values['vvmstage']) && !empty($this->form_values['vvmstage'])) { $vvmstage = $this->form_values['vvmstage']; } if (isset($this->form_values['locations']) && !empty($this->form_values['locations'])) { $locations = $this->form_values['locations']; } if (count($stock_detail_result) > 0) { $stock_master = new StockMaster(); $time_arr = explode(' ', $rec_date); $time = date('H:i:s', strtotime($time_arr[1] . $time_arr[2])); $stock_master->setTransactionDate(new \DateTime(App_Controller_Functions::dateToDbFormat($time_arr[0]) . ' ' . $time)); $tran_type = $this->_em->getRepository('TransactionTypes')->find($type_id); $stock_master->setTransactionType($tran_type); $stock_master->setTransactionReference($rec_ref); $from_warehouse_id = $this->_em->getRepository('Warehouses')->find($stock_detail_result[0]['fromWarehouse']); $stock_master->setFromWarehouse($from_warehouse_id); $warehouse_id = $this->_em->getRepository('Warehouses')->find($wh_id); $stock_master->setToWarehouse($warehouse_id); $stock_master->setCreatedBy($created_by); $stock_master->setModifiedBy($created_by); $stock_master->setCreatedDate(App_Tools_Time::now()); $stock_master->setModifiedDate(App_Tools_Time::now()); $stock_master->setComments($remarks); $trans_no = $this->getTransactionNumber(1, $rec_date); $stock_master->setTransactionNumber($trans_no['trans_no']); if (!empty($stock_detail_result[0]['stakeholderActivity'])) { $stakeholder_activity = $this->_em->getRepository('StakeholderActivities')->find($stock_detail_result[0]['stakeholderActivity']); $stock_master->setStakeholderActivity($stakeholder_activity); } $stock_master->setDraft(0); $stock_master->setTransactionCounter($trans_no['id']); $stock_master->setParentId(0); $this->_em->persist($stock_master); $this->_em->flush(); $fk_stock_ID = $stock_master->getPkId(); } } if (isset($this->form_values['stockid']) && !empty($this->form_values['stockid'])) { $stock_ids = $this->form_values['stockid']; $count_stock_ids = count($stock_ids); foreach ($stock_ids as $index => $detail_id) { $stock_detail = new Model_StockDetail(); $stock_detail->stockReceived($detail_id); $stockBatch = $stock_detail->GetBatchDetail($detail_id); $stockDetail = $stock_detail->findByDetailId($detail_id); $array_missing = $this->form_values['missing']; $quantity = ABS($stockBatch['0']['quantity']); $obj_stock_batch = new Model_StockBatch(); $product_id = $stockBatch['0']['itemPackSize']; $array = array('number' => $stockBatch['0']['number'], 'item_id' => $product_id); $batch_id1 = $obj_stock_batch->checkBatch($array); if ($batch_id1 === 0) { $stock_batch = new StockBatch(); $stock_batch->setNumber(strtoupper($stockBatch['0']['number'])); $stock_batch->setExpiryDate(new \DateTime($stockBatch[0]['expiryDate'])); $stock_batch->setUnitPrice($stockBatch['0']['unitPrice']); $stock_batch->setProductionDate(new \DateTime($stockBatch[0]['productionDate'])); if (!empty($stockBatch['0']['stakeholderItemPackSize'])) { $pack_info_id = $this->_em->getRepository('PackInfo')->findOneBy(array("stakeholderItemPackSize" => $stockBatch['0']['stakeholderItemPackSize'])); $stock_batch->setPackInfo($pack_info_id); } if (!empty($stockBatch['0']['vvmType'])) { $vvm_id = $this->_em->getRepository('VvmTypes')->find($stockBatch['0']['vvmType']); $stock_batch->setVvmType($vvm_id); } $stock_batch->setModifiedBy($created_by); $stock_batch->setModifiedDate(App_Tools_Time::now()); $stock_batch->setCreatedBy($created_by); $stock_batch->setCreatedDate(App_Tools_Time::now()); $this->_em->persist($stock_batch); $this->_em->flush(); $batch_id2 = $stock_batch->getPkId(); $stock_batch_warehouses = new StockBatchWarehouses(); $stock_batch_warehouses->setQuantity($quantity); $stock_batch_warehouses->setStatus(Model_StockBatch::STACKED); $warehouse_id = $this->_em->getRepository('Warehouses')->find($wh_id); $stock_batch_warehouses->setWarehouse($warehouse_id); $stock_batch_id = $this->_em->getRepository('StockBatch')->find($batch_id2); $stock_batch_warehouses->setStockBatch($stock_batch_id); $stock_batch_warehouses->setModifiedBy($created_by); $stock_batch_warehouses->setModifiedDate(App_Tools_Time::now()); $stock_batch_warehouses->setCreatedBy($created_by); $stock_batch_warehouses->setCreatedDate(App_Tools_Time::now()); $this->_em->persist($stock_batch_warehouses); $this->_em->flush(); $batch_id1 = $stock_batch_warehouses->getPkId(); } $stock_detail = new StockDetail(); $sm_id = $this->_em->getRepository('StockMaster')->find($fk_stock_ID); $stock_detail->setStockMaster($sm_id); $sb_id = $this->_em->getRepository('StockBatchWarehouses')->find($batch_id1); $stock_detail->setStockBatchWarehouse($sb_id); $iu_id = $this->_em->getRepository('ItemUnits')->find($stockDetail['0']['itemUnit']); $stock_detail->setItemUnit($iu_id); $stock_detail->setQuantity($array_types[$type_id] . $quantity); $stock_detail->setTemporary(0); $vvms = $this->_em->getRepository("VvmStages")->find($vvmstage[$index]); $stock_detail->setVvmStage($vvms); $stock_detail->setIsReceived($detail_id); $stock_detail->setAdjustmentType($type_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(); $adj_stock_detail_id = $stock_detail->getPkId(); if (!empty($locations[$index])) { $placement = new Model_Placements(); $placement->form_values = array('vvmstage' => $vvmstage[$index], 'is_placed' => 1, 'quantity' => $array_types[$type_id] . $quantity, 'placement_loc_type_id' => 114, 'placement_loc_id' => $locations[$index], 'batch_id' => $batch_id1, 'detail_id' => $stock_detail->getPkId(), 'user_id' => $this->_user_id, 'created_date' => date("Y-m-d")); $placement->add(); } if (isset($array_missing[$index]) && !empty($array_missing[$index])) { $type = $this->form_values['types']; $stock_detail = new Model_StockDetail(); $stockDetail = $stock_detail->findByDetailId($detail_id); if (count($stockDetail) > 0) { $stock_master = new StockMaster(); $stock_master->setTransactionDate(new \DateTime(App_Controller_Functions::dateToDbFormat($rec_date))); $tran_type1 = $this->_em->getRepository('TransactionTypes')->find($type[$index]); $stock_master->setTransactionType($tran_type1); //$type_id; $stock_master->setTransactionReference($rec_ref); $warehouse_id = $this->_em->getRepository('Warehouses')->find($wh_id); $stock_master->setFromWarehouse($warehouse_id); $stock_master->setToWarehouse($warehouse_id); $stock_master->setCreatedBy($created_by); $stock_master->setModifiedBy($created_by); $stock_master->setCreatedDate(App_Tools_Time::now()); $stock_master->setModifiedDate(App_Tools_Time::now()); $stock_master->setComments($remarks); $trans_no = $this->getTransactionNumber($type[$index], $rec_date); $stock_master->setTransactionNumber($trans_no['trans_no']); $stock_master->setDraft(0); $stock_master->setTransactionCounter($trans_no['id']); $stock_master->setParentId($fk_stock_ID); $this->_em->persist($stock_master); $this->_em->flush(); $stock_id = $stock_master->getPkId(); } $stock_detail_a = new StockDetail(); $s_id = $this->_em->getRepository('StockMaster')->find($stock_id); $stock_detail_a->setStockMaster($s_id); $sb_id = $this->_em->getRepository('StockBatchWarehouses')->find($batch_id1); $stock_detail_a->setStockBatchWarehouse($sb_id); $iu_id = $this->_em->getRepository('ItemUnits')->find($stockDetail['0']['itemUnit']); $stock_detail_a->setItemUnit($iu_id); $stock_detail_a->setQuantity($array_types[$type[$index]] . $array_missing[$index]); $stock_detail_a->setAdjustmentType($type[$index]); $stock_detail_a->setTemporary(0); $stock_detail_a->setIsReceived($adj_stock_detail_id); $vvms = $this->_em->getRepository("VvmStages")->find($vvmstage[$index]); $stock_detail_a->setVvmStage($vvms); $stock_detail_a->setCreatedBy($created_by); $stock_detail_a->setModifiedBy($created_by); $stock_detail_a->setCreatedDate(App_Tools_Time::now()); $stock_detail_a->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($stock_detail_a); $this->_em->flush(); if (!empty($locations[$index])) { $placement2 = new Model_Placements(); $placement2->form_values = array('vvmstage' => $vvmstage[$index], 'is_placed' => 0, 'quantity' => $array_types[$type[$index]] . $array_missing[$index], 'placement_loc_type_id' => 115, 'placement_loc_id' => $locations[$index], 'batch_id' => $batch_id1, 'detail_id' => $stock_detail_a->getPkId(), 'user_id' => $this->_user_id, 'created_date' => date("Y-m-d")); $placement2->add(); } } $obj_stock_batch->adjustQuantityByWarehouse($batch_id1); $obj_stock_batch->autoRunningLEFOBatch($product_id); } } $warehouse_data = new Model_HfDataMaster(); $warehouse_data->addReport($stock_id, 1, 'wh'); return true; }
public function addStockDetailTemp($array) { $em = Zend_Registry::get('doctrine'); $action = Zend_Registry::get("action"); $form_values = $array; $end = $form_values['counter']; $row_array = array(); // App_Controller_Functions::pr($array); for ($i = 0; $i < $end; $i++) { $row = $form_values["rows" . $i]; // App_Controller_Functions::pr($row); $quantity = str_replace(",", "", $row['quantity']); if ($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); if ($array['type'] != 's') { $stock_detail->setTemporary(1); } if ($action == 'ajax-stock-issue-temp') { 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); //$type = $array['transaction_type_id']; $stock_detail->setAdjustmentType("{$type}"); //$stock_detail->setStakeholderItem($array['manufacturer_id']); 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(); $query = "SELECT AdjustQty(" . $stock_batch_id->getPkId() . "," . $this->_identity->getWarehouseId() . ") FROM DUAL"; $str_sql = $em->getConnection()->prepare($query); $str_sql->execute(); } } // App_Controller_Functions::pr($row_array); return $stock_detail->getPkId(); }
public function ajaxUpdatePhysicalCurrentQuantityAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(TRUE); $wh_id = $this->_identity->getWarehouseId(); $data = explode("|", substr($this->_request->data, 0, -1)); $count = count($data); $physical_quantity = 0; $current_quantity = 0; $em = Zend_Registry::get('doctrine'); $em->getConnection()->beginTransaction(); try { $created_by = $this->_em->find('Users', $this->_user_id); for ($i = 0; $i < $count; $i++) { $flag = 0; $placement_physical_summary = $this->_em->getRepository("PhysicalStockTakingDetail")->find($data[$i]); if ($placement_physical_summary->getStockBatch() != "") { //$physical_quantity = $placement_physical_summary->getQuantity(); $current_quantity = $placement_physical_summary->getStockBatch()->getQuantity(); $batch_id = $placement_physical_summary->getStockBatch()->getPkId(); $stk_master = new Model_StockMaster(); $physical_quantity = $stk_master->getPhysicalBatchQuantity($batch_id); /* $already_exists = $this->_em->getRepository("PhysicalStockTakingDetail")->findBy(array("stockBatch" => $batch_id, "warehouse" => $this->_identity->getWarehouseId())); if (count($already_exists) > 0) { foreach ($already_exists as $physical_stk) { if ($physical_stk->getPkId() != $placement_physical_summary->getPkId()) { $physical_quantity = $physical_quantity + $physical_stk->getQuantity(); } } } */ if ($current_quantity > $physical_quantity) { $quantity = $current_quantity - $physical_quantity; $type = 13; $placement_physical_summary->setCurrentQuantity($current_quantity); $placement_physical_summary->setModifiedBy($created_by); $placement_physical_summary->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($placement_physical_summary); $this->_em->flush(); } else { if ($current_quantity < $physical_quantity) { $quantity = $physical_quantity - $current_quantity; $type = 12; $placement_physical_summary->setCurrentQuantity($current_quantity); $placement_physical_summary->setModifiedBy($created_by); $placement_physical_summary->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($placement_physical_summary); $this->_em->flush(); } else { if ($current_quantity == $physical_quantity) { $flag = 1; $stock_detail = null; } } } } else { $stock_batch_model = new Model_StockBatch(); $batch_number = $placement_physical_summary->getBatchNumber(); $item_pack_size_id = $placement_physical_summary->getItemPackSize()->getPkId(); //$production_date = ($placement_physical_summary->getProductionDate() != null) ? $placement_physical_summary->getProductionDate()->format("d/m/Y") : ''; $expiry_date = $placement_physical_summary->getExpiryDate()->format("d/m/Y"); $vvm_type_id = 2; //$manufacturer_id = $this->_em->getRepository("StakeholderItemPackSizes")->findBy(array('itemPackSize' => $placement_physical_summary->getItemPackSize()->getPkId())); $array = array('number' => $batch_number, 'quantity' => $placement_physical_summary->getQuantity(), 'item_id' => $item_pack_size_id, 'production_date' => '', 'expiry_date' => $expiry_date, 'unit_price' => '0', 'vvm_type_id' => $vvm_type_id, 'manufacturer_id' => $placement_physical_summary->getStakeholderItemPackSize()); $batch_id = $stock_batch_model->createBatch($array); $type = 12; $quantity = 0; $multi_batches = $this->_em->getRepository("PhysicalStockTakingDetail")->findBy(array("batchNumber" => $batch_number, "warehouse" => $this->_identity->getWarehouseId(), "physicalStockTaking" => Model_PhysicalStockTakingDetail::STOCKID)); if (count($multi_batches) > 0) { foreach ($multi_batches as $add_batch_id) { $add_batch_id->setCurrentQuantity($current_quantity); $ba_id01 = $this->_em->getRepository('StockBatch')->find($batch_id); $add_batch_id->setStockBatch($ba_id01); $add_batch_id->setModifiedBy($created_by); $add_batch_id->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($add_batch_id); $this->_em->flush(); $quantity += $add_batch_id->getQuantity(); } } } if ($flag == 0) { $tranaction_type = new Model_TransactionTypes(); $type_nature = $tranaction_type->findById($type); $stock_batch_vvm = new StockBatchVvm(); $stock_batch_vvm->setQuantity($type_nature['0']['nature'] . $quantity); $stock_batch_vvm->setVvmStage($placement_physical_summary->getVvmStage()); $ba_id1 = $this->_em->getRepository('StockBatch')->find($batch_id); $stock_batch_vvm->setStockBatch($ba_id1); $stock_batch_vvm->setModifiedBy($created_by); $stock_batch_vvm->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($stock_batch_vvm); $this->_em->flush(); $stock_batch_vvm_id = $stock_batch_vvm->getPkId(); $stock_batch_vvm_history = new StockBatchVvmHistory(); $stock_batch_vvm_ID = $this->_em->getRepository('StockBatchVvm')->find($stock_batch_vvm_id); $stock_batch_vvm_history->setStockBatchVvm($stock_batch_vvm_ID); $stock_batch_vvm_history->setQuantity($type_nature['0']['nature'] . $quantity); $stock_batch_vvm_history->setVvmStage($placement_physical_summary->getVvmStage()); $ba_id2 = $this->_em->getRepository('StockBatch')->find($batch_id); $stock_batch_vvm_history->setStockBatch($ba_id2); $stock_batch_vvm_history->setModifiedBy($created_by); $stock_batch_vvm_history->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($stock_batch_vvm_history); $this->_em->flush(); $stock_master = new StockMaster(); $stock_master->setTransactionDate(new \DateTime(date('Y-m-d'))); $tran_type = $this->_em->getRepository('TransactionTypes')->find($type); $stock_master->setTransactionType($tran_type); $warehouse_id = $this->_em->getRepository('Warehouses')->find($wh_id); $stock_master->setFromWarehouse($warehouse_id); $stock_master->setToWarehouse($warehouse_id); $created_by = $this->_em->getRepository('Users')->find($this->_userid); $stock_master->setCreatedBy($created_by); $stock_master->setCreatedDate(new \DateTime(date("Y-m-d"))); $stock_master->setModifiedBy($created_by); $stock_master->setModifiedDate(App_Tools_Time::now()); $adjustment_date = date('d/m/Y'); $sm = new Model_StockMaster(); $trans = $sm->getTransactionNumber($type, $adjustment_date); $stock_master->setTransactionNumber($trans['trans_no']); $stock_master->setDraft(0); $stock_master->setTransactionCounter($trans['id']); $stock_master->setParentId(0); $this->_em->persist($stock_master); $this->_em->flush(); $stock_detail = new StockDetail(); $stock_detail->setStockMaster($stock_master); $b_id = $this->_em->getRepository('StockBatch')->find($batch_id); $stock_detail->setStockBatch($b_id); $stock_detail->setQuantity($type_nature[0]['nature'] . $quantity); $stock_detail->setAdjustmentType($type); $stock_detail->setVvmStage($placement_physical_summary->getVvmStage()); $stock_detail->setTemporary(0); $stock_detail->setItemUnit($placement_physical_summary->getItemPackSize()->getItemUnit()); $stock_detail->setCreatedBy($created_by); $stock_detail->setCreatedDate(App_Tools_Time::now()); $stock_detail->setModifiedBy($created_by); $stock_detail->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($stock_detail); $this->_em->flush(); $stock_ID = $stock_master->getPkId(); $stock_batch = new Model_StockBatch(); $warehouse_data = new Model_HfDataMaster(); $stock_batch->adjustQuantityBywarehouse($batch_id); $warehouse_data->addReport($stock_ID, $type); $placement_physical_summary->setStockMaster($stock_master); $placement_physical_summary->setCreatedBy($created_by); $placement_physical_summary->setCreatedDate(App_Tools_Time::now()); $placement_physical_summary->setModifiedBy($created_by); $placement_physical_summary->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($placement_physical_summary); $this->_em->flush(); } $already_exists = $this->_em->getRepository("PhysicalStockTakingDetail")->findBy(array("stockBatch" => $batch_id, "warehouse" => $this->_identity->getWarehouseId(), "physicalStockTaking" => Model_PhysicalStockTakingDetail::STOCKID)); if (count($already_exists) > 0) { foreach ($already_exists as $physical_stk) { if ($physical_stk->getPlacementLocation() != null && $physical_stk->getQuantity() > 0) { $placement = new Placements(); $placement->setQuantity($physical_stk->getQuantity()); $placement->setPlacementLocation($physical_stk->getPlacementLocation()); $placement->setStockBatch($physical_stk->getStockBatch()); // if ($stock_detail != null) { // $placement->setStockDetail($stock_detail); // } $type_id = $this->_em->getRepository("ListDetail")->find(114); $placement->setPlacementTransactionType($type_id); $created_by = $this->_em->getRepository("Users")->find($this->_userid); $placement->setCreatedBy($created_by); $placement->setModifiedBy($created_by); $placement->setModifiedDate(App_Tools_Time::now()); $placement->setIsPlaced(1); $placement->setCreatedDate(new \DateTime(date("Y-m-d"))); $vvm = $physical_stk->getVvmStage(); $placement->setVvmStage($vvm); $this->_em->persist($placement); $this->_em->flush(); } } } } $em->getConnection()->commit(); echo 1; } catch (Exception $e) { $em->getConnection()->rollback(); $em->close(); echo 0; } }
public function setCreatedBy(\Users $createdBy) { $this->__load(); return parent::setCreatedBy($createdBy); }
public function uploadReceiveConsignments() { $params = $this->form_values; $wh_id = $params['wh_id']; $rec_id = $params['rec_id']; $batch_no = $params['batch_no']; $qty = str_replace(",", "", $params['qty']); $voucher = $params['voucher']; $consignments_location = $this->_em->getRepository("PipelineConsignmentsPlacements")->findBy(array("pipelineConsignment" => $rec_id)); if (count($consignments_location) > 0) { foreach ($consignments_location as $cl) { $location_id[] = $cl->getPlacementLocation()->getPkId(); } } $str_qry = $this->_em->createQueryBuilder()->select("pc.masterId")->from("PipelineConsignments", "pc")->where("pc.voucherNumber = '" . $voucher . "'")->andWhere("pc.masterId > 0")->andWhere("pc.toWarehouse = " . $wh_id); $created_by = $this->_em->find('Users', $this->_user_id); $stock_master_id = $str_qry->getQuery()->getResult(); if (count($stock_master_id) > 0) { $master_id = $stock_master_id[0]['masterId']; } else { $master_id = 0; } $pipeline_consignments = $this->_em->getRepository("PipelineConsignments")->find($rec_id); /** * Record must exists */ if (count($pipeline_consignments) == 0) { $result_msg = array("message" => "Selected record id {$rec_id} does not exist in pipeline consignments. Please update your data."); App_FileLogger::info($result_msg['message']); return $result_msg; } /** * Check if we need to create new voucher or add detail entry in existing voucher * If 0 then New Voucher * If greater then 0 then Add in Existing voucher */ if ($master_id == 0) { $tr_date = date("d/m/Y"); $obj_master = new Model_StockMaster(); $trans = $obj_master->getTransactionNumber(1, $tr_date, $wh_id); $stock_master = new StockMaster(); $stock_master->setTransactionDate(new DateTime()); $stock_master->setTransactionNumber($trans['trans_no']); $stock_master->setTransactionCounter($trans['id']); $stock_master->setTransactionReference($pipeline_consignments->getReferenceNumber()); $stock_master->setDraft(0); $stock_master->setComments($pipeline_consignments->getDescription()); $type = $this->_em->getRepository("TransactionTypes")->find(1); $stock_master->setTransactionType($type); $stock_master->setFromWarehouse($pipeline_consignments->getFromWarehouse()); $stock_master->setToWarehouse($pipeline_consignments->getToWarehouse()); $stock_master->setParentId(0); $stock_master->setStakeholderActivity($pipeline_consignments->getStakeholderActivity()); $stock_master->setCreatedBy($pipeline_consignments->getCreatedBy()); $stock_master->setCreatedDate(new DateTime(date("Y-m-d H:i:s"))); $stock_master->setModifiedBy($pipeline_consignments->getCreatedBy()); $stock_master->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($stock_master); $this->_em->flush(); $master_id = $stock_master->getPkId(); } $array = array("item_id" => $pipeline_consignments->getItemPackSize()->getPkId(), "number" => $batch_no, "wh_id" => $pipeline_consignments->getToWarehouse()->getPkId()); $batch_id = $this->checkBatch($array); /** * Check if Batch exists or not * If 0 then create new batch * If greater then 0 then add quantity in existing batch */ if ($batch_id === 0) { $stock_batch = new StockBatch(); $stock_batch->setNumber(strtoupper($batch_no)); $stock_batch->setExpiryDate($pipeline_consignments->getExpiryDate()); $stock_batch->setUnitPrice(0); $stock_batch->setProductionDate($pipeline_consignments->getProductionDate()); $vvm_type = $this->_em->getRepository("VvmTypes")->find(2); $stock_batch->setVvmType($vvm_type); $stock_batch->setPackInfo($pipeline_consignments->getManufacturer()); $stock_batch->setCreatedBy($pipeline_consignments->getCreatedBy()); $stock_batch->setCreatedDate(App_Tools_Time::now()); $stock_batch->setModifiedBy($pipeline_consignments->getCreatedBy()); $stock_batch->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($stock_batch); $this->_em->flush(); $stock_batch_warehouses = new StockBatchWarehouses(); $stock_batch_warehouses->setQuantity($qty); $stock_batch_warehouses->setStatus('Stacked'); $stock_batch_warehouses->setStockBatch($stock_batch); $stock_batch_warehouses->setWarehouse($pipeline_consignments->getToWarehouse()); $this->_em->persist($stock_batch_warehouses); $this->_em->flush(); $batch_id = $stock_batch_warehouses->getPkId(); } /* * Add Entry in stock detail against selected master voucher */ $stock_detail = new StockDetail(); $stock_detail->setQuantity($qty); $stock_detail->setTemporary(0); $vvms = $this->_em->getRepository("VvmStages")->find(1); $stock_detail->setVvmStage($vvms); $stock_detail->setIsReceived(1); $stock_detail->setAdjustmentType(1); $stock_master = $this->_em->getRepository("StockMaster")->find($master_id); $stock_detail->setStockMaster($stock_master); $stock_batch = $this->_em->getRepository("StockBatchWarehouses")->find($batch_id); $stock_detail->setStockBatchWarehouse($stock_batch); $stock_detail->setItemUnit($pipeline_consignments->getItemPackSize()->getItemUnit()); $stock_detail->setCreatedBy($pipeline_consignments->getCreatedBy()); $stock_detail->setCreatedDate(App_Tools_Time::now()); $stock_detail->setModifiedBy($pipeline_consignments->getCreatedBy()); $stock_detail->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($stock_detail); $this->_em->flush(); if (count($location_id) > 0) { foreach ($location_id as $plac_id) { $plac_loc_id = $this->_em->getRepository("PlacementLocations")->find($plac_id); /* * Add entry in Placement table */ $placements = new Placements(); $placements->setQuantity($qty); $vvms = $this->_em->getRepository("VvmStages")->find(1); $placements->setVvmStage($vvms); $placements->setIsPlaced(1); $placements->setPlacementLocation($plac_loc_id); $placements->setStockBatchWarehouse($stock_batch); // $placements->setStockDetail($stock_detail); $trans_type = $this->_em->getRepository("ListDetail")->find(Model_ListDetail::STOCK_PLACEMENT); $placements->setPlacementTransactionType($trans_type); $placements->setCreatedBy($pipeline_consignments->getCreatedBy()); $placements->setModifiedBy($pipeline_consignments->getCreatedBy()); $placements->setCreatedDate(new DateTime(date("Y-m-d H:i:s"))); $placements->setModifiedDate(new DateTime(date("Y-m-d H:i:s"))); $this->_em->persist($placements); $this->_em->flush(); } } /* * Update Received Qty in Future Arrivals table */ //$update_qty = $pipeline_consignments->getReceivedQuantity() + $qty; //if ($update_qty <= $pipeline_consignments->getQuantity()) { $pipeline_consignments->setReceivedQuantity($qty); $pipeline_consignments->setMasterId($master_id); $pipeline_consignments->setCreatedBy($created_by); $pipeline_consignments->setCreatedDate(App_Tools_Time::now()); $pipeline_consignments->setModifiedBy($created_by); $pipeline_consignments->setModifiedDate(App_Tools_Time::now()); $this->_em->persist($pipeline_consignments); $this->_em->flush(); //} /* * Adjust Batch Quantity By Warehouse */ $this->adjustQuantityByWarehouse($batch_id, $pipeline_consignments->getToWarehouse()->getPkId()); /* * Adjust Warehouse data for selected month and item */ $warehouse_data = new Model_HfDataMaster(); $warehouse_data->form_values = array('report_month' => date("m"), 'report_year' => date("Y"), 'item_id' => $pipeline_consignments->getItemPackSize()->getPkId(), 'warehouse_id' => $pipeline_consignments->getToWarehouse()->getPkId(), 'created_by' => $pipeline_consignments->getCreatedBy()->getPkId()); $warehouse_data->adjustStockReport(); $stock_master = $this->_em->getRepository("StockMaster")->find($master_id); return "V" . base64_encode($stock_master->getTransactionNumber() . "|" . $stock_master->getPkId()); }