public function vvmManagementAction() { $form = new Form_VvmManagement(); if ($this->_request->isPost()) { $product_id = $this->_request->getPost('product'); $batch_id = $this->_request->getPost('batch'); $msg = ''; $em = Zend_Registry::get('doctrine'); $em->getConnection()->beginTransaction(); try { $quantity = $this->_request->quantity; $newvvm = $this->_request->newvvm; foreach ($quantity as $key => $value) { if (!empty($value) && $value > 0) { $updatedqty = $value; list($batchid, $vvmid, $locationid) = explode("_", $key); $batch_detail = $this->_em->getRepository("StockBatch")->find($batchid); $placement = new Model_Placements(); $placement->form_values = array('quantity' => "-" . $updatedqty, 'placement_loc_id' => $locationid, 'batch_id' => $batchid, 'placement_loc_type_id' => 116, 'user_id' => $this->_userid, 'created_date' => date("Y-m-d"), 'vvmstage' => $vvmid, 'is_placed' => 0); $placement->add(); $placement->form_values = array('quantity' => $updatedqty, 'placement_loc_id' => $locationid, 'batch_id' => $batchid, 'placement_loc_type_id' => 116, 'user_id' => $this->_userid, 'created_date' => date("Y-m-d"), 'vvmstage' => $newvvm[$key], 'is_placed' => 1); $placement->add(); //Log Entry START $history = new VvmTransferHistory(); $from_to_batch = $this->_em->getRepository("StockBatch")->find($batchid); $history->setBatch($from_to_batch); $from_vvmstages = $this->_em->getRepository("VvmStages")->find($vvmid); $history->setFromVvmStage($from_vvmstages); $to_vvmstages = $this->_em->getRepository("VvmStages")->find($newvvm[$key]); $history->setToVvmStage($to_vvmstages); $created_by = $this->_em->getRepository("Users")->find($this->_userid); $history->setCreatedBy($created_by); $history->setCreatedDate(new DateTime(date("Y-m-d"))); $history->setQuantity(ABS($updatedqty)); $this->_em->persist($history); $this->_em->flush(); //Log Entry END $msg = 'VVM has been changed successfully!'; $product_id = $batch_detail->getItemPackSize()->getPkId(); $batch_id = $batchid; } } $location = new Model_Locations(); $this->view->result = $location->getBatchVvmLocations($batch_id); $form->product->setValue($product_id); $this->view->batch = $batch_id; $em->getConnection()->commit(); } catch (Exception $e) { $em->getConnection()->rollback(); $em->close(); App_FileLogger::info($e); } $stock_detail = new Model_StockDetail(); $this->view->h_result = $stock_detail->getVvmTransferHistory($product_id); } $this->view->form = $form; $this->view->msg = $msg; }
public function uploadTransactionsAction() { try { $data = array(); $data['quantity'] = $this->_request->getParam('qty'); $data['placement_loc_id'] = $this->_request->getParam('placement_loc_id'); $data['placement_loc_type_id'] = $this->_request->getParam('placement_loc_type_id'); $data['batch_id'] = $this->_request->getParam('batch_id'); $data['detail_id'] = $this->_request->getParam('detail_id'); $data['created_date'] = $this->_request->getParam('created_date'); $data['user_id'] = $this->_request->getParam('user_id'); $data['vvmstage'] = $this->_request->getParam('vvmstage'); $placement = new Model_Placements(); $placement->form_values = $data; $result[]['id'] = $placement->add(); } catch (OptimisticLockException $e) { App_FileLogger::info($e); $result[]['message'] = "Failed"; } echo Zend_Json::encode($result); }
public function addStockDetail($array) { //$em = Zend_Registry::get('doctrine'); $action = Zend_Registry::get("action"); if ($array['rcvedit'] == "Yes") { $stock_detail = $this->_em->getRepository("StockDetail")->find($array['stock_detail_id']); } else { $stock_detail = new StockDetail(); } $type = $array['transaction_type_id']; $type1 = $type; if (!empty($array['hdn_stock_id'])) { $stock_id = $array['hdn_stock_id']; } else { $stock_id = $array['stock_master_id']; } $stock_master_id = $this->_em->getRepository('StockMaster')->find($stock_id); $stock_detail->setStockMaster($stock_master_id); if (!empty($array['item_unit_id'])) { $item_unit_id = $this->_em->getRepository('ItemUnits')->find($array['item_unit_id']); $stock_detail->setItemUnit($item_unit_id); } if ($array['type'] != 's') { $stock_detail->setTemporary(1); } $quantity = str_replace(",", "", $array['quantity']); if ($action == 'issue') { list($location, $vvm, $placd_qty) = explode("|", $array['vvm_stage']); if ($vvm == 0) { $array['vvm_stage'] = 0; } else { if (!empty($vvm)) { $array['vvm_stage'] = $vvm; } else { $array['vvm_stage'] = $location; } } if ($quantity > $placd_qty) { throw new Exception('PLCD_QTY_GREATER_THAN_ISSUE_QTY'); } } $vvms = $this->_em->getRepository("VvmStages")->find($array['vvm_stage']); $stock_detail->setVvmStage($vvms); //$type = $array['transaction_type_id']; if ($type == Model_TransactionTypes::TRANSACTION_ISSUE) { $quantity = "-" . $quantity; } $stock_detail->setQuantity($quantity); $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 = '" . $array['item_id'] . "' ")->andWhere("sb.number = '" . $array['number'] . "' ")->andWhere("sbw.warehouse = '" . $this->_identity->getWarehouseId() . "' "); //this IF is for stock receive $row = $str_sql->getQuery()->getResult(); // $stock_batch_id = $this->_em->getRepository('StockBatch')->find( // array('number' => $array['number'], // 'itemPackSize' => $array['item_id'], // 'warehouse' => $this->_identity->getWarehouseId()) // ); // echo $stock_batch_id->getPkId(); // exit; // App_Controller_Functions::pr($stock_batch_id); $stock_batch_id = $this->_em->getRepository('StockBatchWarehouses')->find($row['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($array['stock_batch_id']); $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(); //$stock_batch = new Model_StockBatch(); //$stock_batch->adjustQuantityByWarehouse($stock_batch_id->getPkId()); if ($action == 'issue' && !empty($location)) { $placements = new Model_Placements(); $placements->form_values['placement_loc_id'] = $location; $placements->form_values['batch_id'] = $array['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->add(); } return $stock_detail->getPkId(); }
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 addStockDetail($array) { $em = Zend_Registry::get('doctrine'); $action = Zend_Registry::get("action"); if ($array['rcvedit'] == "Yes") { $stock_detail = $this->_em->getRepository("StockDetail")->find($array['stock_detail_id']); } else { $stock_detail = new StockDetail(); } $type = $array['transaction_type_id']; $type1 = $type; if (!empty($array['hdn_stock_id'])) { $stock_id = $array['hdn_stock_id']; } else { $stock_id = $array['stock_master_id']; } $stock_master_id = $this->_em->getRepository('StockMaster')->find($stock_id); $stock_detail->setStockMaster($stock_master_id); if (!empty($array['item_unit_id'])) { $item_unit_id = $this->_em->getRepository('ItemUnits')->find($array['item_unit_id']); $stock_detail->setItemUnit($item_unit_id); } if ($array['type'] != 's') { $stock_detail->setTemporary(1); } $quantity = str_replace(",", "", $array['quantity']); if ($action == 'issue') { list($location, $vvm, $placd_qty) = explode("|", $array['vvm_stage']); if ($vvm == 0) { $array['vvm_stage'] = 0; } else { if (!empty($vvm)) { $array['vvm_stage'] = $vvm; } else { $array['vvm_stage'] = $location; } } if ($quantity > $placd_qty) { throw new Exception('PLCD_QTY_GREATER_THAN_ISSUE_QTY'); } } $vvms = $this->_em->getRepository("VvmStages")->find($array['vvm_stage']); $stock_detail->setVvmStage($vvms); //$type = $array['transaction_type_id']; if ($type == Model_TransactionTypes::TRANSACTION_ISSUE) { $quantity = "-" . $quantity; } $stock_detail->setQuantity($quantity); $stock_detail->setAdjustmentType("{$type}"); //$stock_detail->setStakeholderItem($array['manufacturer_id']); if ($type == 1) { //this IF is for stock receive $stock_batch_id = $this->_em->getRepository('StockBatch')->find(array('number' => $array['number'], 'itemPackSize' => $array['item_id'], 'warehouse' => $this->_identity->getWarehouseId())); // echo $stock_batch_id->getPkId(); // exit; // App_Controller_Functions::pr($stock_batch_id); $stock_detail->setStockBatch($stock_batch_id); $stock_detail->setIsReceived(1); } else { if ($type == 2) { //this ELSE IF is for stock issue $stock_batch_id = $this->_em->getRepository('StockBatch')->find($array['stock_batch_id']); $stock_detail->setStockBatch($stock_batch_id); $stock_detail->setIsReceived(0); } } $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(); if ($action == 'issue' && !empty($location)) { $placements = new Model_Placements(); $placements->form_values['placement_loc_id'] = $location; $placements->form_values['batch_id'] = $array['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->add(); } return $stock_detail->getPkId(); }