public function multipleAdjustmentAction() { $stock_master = new Model_StockMaster(); $stock_batch = new Model_StockBatch(); $stock_detail = new Model_StockDetail(); $warehouse_data = new Model_WarehousesData(); $form = new Form_MultipleAdjustment(); $form_values = array(); $temp = array(); $arr_data = array('transaction_number' => "", 'stock_id' => "", 'transaction_date' => date("d/m/Y"), 'warehouse_name' => "", 'success' => $this->_request->success); $form_values['transaction_type_id'] = 2; $form_values['adjustment_type'] = 2; $stock_id = ""; $master_id = ""; if (!empty($this->_request->hdn_stock_id)) { $stock_id = $this->_request->hdn_stock_id; } if (!empty($this->_request->hdn_master_id)) { $master_id = $this->_request->hdn_master_id; } if (!empty($this->_request->warehouse)) { $warehouse_id = $this->_request->warehouse; } if ($this->_request->isPost()) { $em = Zend_Registry::get('doctrine'); $em->getConnection()->beginTransaction(); try { if (!empty($master_id)) { //Start update issue period $array = $this->_request->getParams(); $stock_master->updateStockPeriod($master_id, $array); //End update issue period $transaction_number = $stock_master->updateStockMasterTemp($master_id, $this->_request->comments); $stock_detail->updateStockDetailTemp($master_id); //Save Data in warehouse_data table $warehouse_data->addReport($master_id, 2); /* * Auto Receive for 6th level * $stock_master->autoReceiveData($master_id); */ $this->view->msg = 'Stock has been issued successfully. Your voucher number is '; $this->view->voucher = $transaction_number; $this->view->master_id = $master_id; $em->getConnection()->commit(); } elseif ($form->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); $old_batch_id = $obj_stock_detail->getStockBatch()->getPkId(); $data = $form->getValues(); $obj_stock_master = $obj_stock_detail->getStockMaster(); $master_update = false; $arr_date = explode("/", $data['transaction_date']); if (intval($arr_date[1]) . "-" . intval($arr_date[2]) != intval($obj_stock_detail->getStockMaster()->getTransactionDate()->format("m")) . "-" . intval($obj_stock_detail->getStockMaster()->getTransactionDate()->format("Y"))) { $trans = $stock_master->getTransactionNumber(2, $data['transaction_date']); $obj_stock_master->setTransactionNumber($trans['trans_no']); $obj_stock_master->setTransactionCounter($trans['id']); $master_update = true; } $obj_stock_master->setTransactionDate(new \DateTime(App_Controller_Functions::dateToDbFormat($data['transaction_date']))); 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); $em->flush(); } $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 AdjustQty(" . $old_batch_id . "," . $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(); } else { $temp = $form->getValues(); $data = array_merge($temp, $form_values); $data['warehouse'] = $warehouse_id; if (empty($this->_request->transaction_number)) { $stock_id = $stock_master->addStockMaster($data); } if (isset($data['quantity']) && !empty($data['quantity'])) { $qty = str_replace(",", "", $data['quantity']); } if (isset($data['available_quantity']) && !empty($data['available_quantity'])) { $ava_qty = str_replace(",", "", $data['available_quantity']); } if ((int) $qty > (int) $ava_qty || (int) $qty == (int) $ava_qty) { $data['quantity'] = $ava_qty; $autorun = true; } list($batch_id, $priority) = explode("|", $this->_request->number); $form_values['item_unit_id'] = $this->_request->item_unit_id; $form_values['stock_master_id'] = $stock_id; $form_values['stock_batch_id'] = $batch_id; $data = array_merge($temp, $form_values); $detail_id = $stock_detail->addStockDetail($data); $stock_batch->adjustQuantityByWarehouse($batch_id); if ($autorun == true) { $stock_batch->autoRunningLEFOBatch($form->getValue('item_id')); $stock_batch->form_values['pk_id'] = $batch_id; $stock_batch->form_values['status'] = Model_StockBatch::FINISHED; $stock_batch->changeStatus(); } /* $placement = new Model_Placements(); $placement->form_values['stock_batch_id'] = $batch_id; $placement->form_values['quantity'] = $data['quantity']; $placement->form_values['placement_location_id'] = $data['pick_from']; $placement->form_values['stock_detail_id'] = $detail_id; $placement->addPlacement(); */ } $em->getConnection()->commit(); $this->redirect("/stock/multiple-adjustment"); // For Data Show $temp_stock_list = $stock_master->getTempStocksList(); if ($temp_stock_list != false) { // $form->transaction_number->setValue($temp_stock_list[0]['transaction_number']); $form->transaction_date->setValue(date("d/m/Y h:i A", strtotime($temp_stock_list[0]['transaction_date']))); $form->warehouse_name->setValue($temp_stock_list[0]['to_warehouse']); $form->transaction_reference->setValue($temp_stock_list[0]['transaction_reference']); $form->hdn_to_warehouse_id->setValue($temp_stock_list[0]['to_warehouse_id']); $form->product->setValue($temp_stock_list[0]['to_warehouse_id']); $arr_data['warehouse_name'] = $temp_stock_list[0]['to_warehouse']; // $arr_data['warehouse_name'] = $temp_stock_list[0]['to_warehouse']; $form->activity_id->setValue($temp_stock_list[0]['activity_id']); $arr_data['tempstocks'] = $temp_stock_list; $form->makeFieldReadonly(); } else { $form->transaction_date->setValue(date("d/m/Y h:i A")); } } } catch (Exception $e) { $em->getConnection()->rollback(); $em->close(); App_FileLogger::info($e); switch ($e->getMessage()) { case 'PLCD_QTY_GREATER_THAN_ISSUE_QTY': $this->view->status = false; $this->view->msg = "Issue quantity should not greater than placed quantity!"; break; } } $this->view->form = $form; $this->view->arr_data = $arr_data; if ($this->_request->type == 's') { $this->redirect("/stock/issue-search"); } } $stock_master->form_values = $form_values; $temp_stock = $stock_master->getTempStock(); if ($temp_stock != false) { $arr_data = array_merge($arr_data, $temp_stock); } if (!empty($temp_stock['stock_id'])) { $form->hdn_stock_id->setValue($temp_stock['stock_id']); $form->hdn_master_id->setValue($temp_stock['stock_id']); } elseif (!empty($stockid)) { $form->hdn_stock_id->setValue($stock_id); $form->hdn_master_id->setValue($stock_id); } $this->view->form = $form; $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 Start if (!empty($this->_request->id)) { $detail_id = $this->_request->id; $issue = $this->_em->getRepository("StockDetail")->find($detail_id); $form->transaction_number->setValue($issue->getStockMaster()->getTransactionNumber()); $form->transaction_date->setValue($issue->getStockMaster()->getTransactionDate()->format("d/m/Y h:i A")); $form->warehouse_name->setValue($issue->getStockMaster()->getToWarehouse()->getWarehouseName()); $form->transaction_reference->setValue($issue->getStockMaster()->getTransactionReference()); //$form->activity_id->setValue($issue->getStockMaster()->getStakeholderActivity()->getPkId()); $arr_data['warehouse_name'] = $issue->getStockMaster()->getToWarehouse()->getWarehouseName(); $form->item_id->setValue($issue->getStockBatch()->getItemPackSize()->getPkId()); $form->fillBatchCombo($issue->getStockBatch()->getItemPackSize()->getPkId()); $form->number->setValue($issue->getStockBatch()->getPkId()); $form->vvm_stage->setValue($issue->getVvmStage()); $form->quantity->setValue($issue->getQuantity()); $av_qty = $issue->getStockBatch()->getQuantity() + ABS($issue->getQuantity()); $form->available_quantity->setValue($av_qty); $form->expiry_date->setValue($issue->getStockBatch()->getExpiryDate()->format("d/m/Y")); $this->view->issueedit = true; $this->view->detail_id = $this->_request->id; } // Edit Issue End $this->view->arr_data = $arr_data; $this->view->type = $this->_request->getParam("t", "issue"); $this->view->wh_id = $this->_identity->getWarehouseId(); $this->view->params = array("province" => $this->_identity->getProvinceId(), "district" => $this->_identity->getDistrictId()); $this->view->role = $this->_identity->getRoleId(); }
public function ajaxExpiryScheduleAction() { $data_arr = explode('|', $this->_request->getParam('param')); $location = $data_arr[0]; $item = $data_arr[1]; $level = $data_arr[2]; $type = $data_arr[3]; if ($type == 1) { $title = "Stock Expiring in <= 6 Months"; } else { if ($type == 2) { $title = "Stock Expiring in <= 12 Months"; } else { if ($type == 3) { $title = "Stock Expiring in <= 18 Months"; } else { if ($type == 4) { $title = "Stock Expiring in > 18 Months"; } } } } $wh_data = new Model_WarehousesData(); $params["level"] = $level; $params["item_id"] = $item; $params["loc_id"] = $location; $params["type"] = $type; $wh_data->form_values = $params; $data = $wh_data->getExpiryScheduleByType(); $this->view->data = $data; $this->view->type = $type; $this->view->title = $title; }
public function getExplorerReport() { $warehouse_data = new Model_WarehousesData(); $warehouses = new Model_Warehouses(); $reports = new Model_Reports(); $temp = $this->temp; $temp = base64_decode(substr($temp, 1, strlen($temp) - 1)); $temp = explode("|", $temp); $wh_id = $temp[0]; $loc_id = $temp[1]; $report_date = $temp[2]; $is_new_report = $temp[3]; $tt = explode("-", $report_date); $yy = $tt[0]; $mm = $tt[1]; $dd = $tt[2]; if ($mm == '1') { $month = "Jan"; } if ($mm == '2') { $month = "Feb"; } if ($mm == '3') { $month = "Mar"; } if ($mm == '4') { $month = "Apr"; } if ($mm == '5') { $month = "May"; } if ($mm == '6') { $month = "Jun"; } if ($mm == '7') { $month = "Jul"; } if ($mm == '8') { $month = "Aug"; } if ($mm == '9') { $month = "Sep"; } if ($mm == '10') { $month = "Oct"; } if ($mm == '11') { $month = "Nov"; } if ($mm == '12') { $month = "Dec"; } $warehouses->form_values['pk_id'] = $wh_id; $stakeholder_id = $warehouses->getStakeholderIdByWarehouseId(); if ($is_new_report == 1) { $prev_month_date = $reports->getPreviousMonthReportDate($report_date); } else { $prev_month_date = $report_date; } $warehouses->form_values['location_id'] = $loc_id; $uc_centers = $warehouses->getAllUCCenters(); $warehouse_data->form_values['warehouse_id'] = $wh_id; $reports = $warehouse_data->getMonthYearByWarehouseId(); $warehouse_level = $warehouses->getWarehouseLevelById(); $array_data = array('wh_id' => $wh_id, 'loc_id' => $loc_id, 'rpt_date' => $report_date, 'is_new_rpt' => $is_new_report, 'yy' => $yy, 'mm' => $mm, 'dd' => $dd, 'prev_month_date' => $prev_month_date, 'stakeholder_id' => $stakeholder_id, 'month' => $month, 'warehouse_level' => $warehouse_level); return $array_data; }
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); $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"))); $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->setQuantity($qty); $stock_batch->setStatus('Stacked'); $stock_batch->setUnitPrice(0); $stock_batch->setProductionDate($pipeline_consignments->getProductionDate()); $stock_batch->setLastUpdate(new DateTime(date("Y-m-d"))); $stock_batch->setItemPackSize($pipeline_consignments->getItemPackSize()); $vvm_type = $this->_em->getRepository("VvmTypes")->find(2); $stock_batch->setVvmType($vvm_type); $stock_batch->setWarehouse($pipeline_consignments->getToWarehouse()); $stock_batch->setStakeholderItemPackSize($pipeline_consignments->getManufacturer()); $this->_em->persist($stock_batch); $this->_em->flush(); $batch_id = $stock_batch->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("StockBatch")->find($batch_id); $stock_detail->setStockBatch($stock_batch); $stock_detail->setItemUnit($pipeline_consignments->getItemPackSize()->getItemUnit()); $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->setStockBatch($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->setCreatedDate(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); $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_WarehousesData(); $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()); }
function editLedgerTranscationDate() { $id = $this->form_values['id']; $date = $this->form_values['date']; $stockMaster = $this->_em->getRepository("StockMaster")->find($id); $previous_month = $stockMaster->getTransactionDate()->format("m"); $previous_year = $stockMaster->getTransactionDate()->format("Y"); if (count($stockMaster) > 0) { $trans_type = $stockMaster->getTransactionType()->getPkId(); if ($trans_type == 1) { $wh_id = $stockMaster->getToWarehouse()->getPkId(); } else { $wh_id = $stockMaster->getFromWarehouse()->getPkId(); } $trans = $this->getTransactionNumber($trans_type, $date, $wh_id, $stockMaster->getPkId()); $stockMaster->setTransactionDate(new DateTime(date(App_Controller_Functions::dateToDbFormat($date)))); $stockMaster->setTransactionNumber($trans['trans_no']); $stockMaster->setTransactionCounter($trans['id']); $this->_em->persist($stockMaster); $this->_em->flush(); // REP Update data for updating warehouse_data table $wh_data = new Model_WarehousesData(); $stock_detail = $this->_em->getRepository("StockDetail")->findBy(array("stockMaster" => $id)); if (count($stock_detail) > 0) { // For Updated Date foreach ($stock_detail as $row1) { $wh_data->form_values = array('report_month' => $row1->getStockMaster()->getTransactionDate()->format("m"), 'report_year' => $row1->getStockMaster()->getTransactionDate()->format("Y"), 'item_id' => $row1->getStockBatch()->getItemPackSize()->getPkId(), 'warehouse_id' => $wh_id, 'created_by' => $row1->getStockMaster()->getCreatedBy()->getPkId()); $wh_data->adjustStockReport(); } // For Previous Date foreach ($stock_detail as $row2) { $wh_data->form_values = array('report_month' => $previous_month, 'report_year' => $previous_year, 'item_id' => $row2->getStockBatch()->getItemPackSize()->getPkId(), 'warehouse_id' => $wh_id, 'created_by' => $row2->getStockMaster()->getCreatedBy()->getPkId()); $wh_data->adjustStockReport(); } } } return true; }
public function stockAnalysisDistrictReportAction() { $form = new Form_Reports_MonthYear(); $this->_helper->layout->setLayout('reports'); $this->view->report_title = 'Monthly Stock Analysis Report'; if ($this->_request->isPost()) { if ($form->isValid($this->_request->getPost())) { $warehouse_data = new Model_WarehousesData(); $warehouse_data->form_values = $form->getValues(); $this->view->xml_store = $warehouse_data->getStockAnalysisDistrictWiseReport(); } } $this->view->form = $form; }