diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 76dcf711..b355669b 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -322,6 +322,7 @@ $routes->post('ViewIGRDetails', 'Inwardgateregister::viewIGRDetails'); $routes->post('GetIGRLineItemDetails', 'Inwardgateregister::getIGRLineItemDetails'); $routes->post('SaveIGR', 'Inwardgateregister::SaveIGR');// Save IGR PAGE - Working $routes->post('UpdateIGR', 'Inwardgateregister::UpdateIGR'); +$routes->post('CancelIGR', 'Inwardgateregister::CancelIGR'); $routes->post('updateIGRWeight', 'Inwardgateregister::updateIGRWeight'); $routes->post('ViewIGRHistory', 'Inwardgateregister::ViewIGRHistory'); $routes->post('getCostCenterData', 'Inwardgateregister::getCostCenterData'); diff --git a/app/Controllers/Employeedetails.php b/app/Controllers/Employeedetails.php index c447fdab..a8a6a4d5 100755 --- a/app/Controllers/Employeedetails.php +++ b/app/Controllers/Employeedetails.php @@ -346,7 +346,7 @@ class Employeedetails extends BaseController 'esi_applicable' => $esi_applicable, 'pf_applicable' => $pf_applicable, 'work_location' => $work_location, - 'is_driver' => $is_driver, + 'is_driver' => ($is_driver === null || $is_driver === '') ? 0 : $is_driver, ); //print_r($Employee);die(); @@ -854,7 +854,7 @@ class Employeedetails extends BaseController 'ESI' => $esino, 'NomineeDetails' => $Nominee, 'is_management_team' => $is_management_team, - 'is_driver' => $is_driver, + 'is_driver' => ($is_driver === null || $is_driver === '') ? 0 : $is_driver, 'esi_applicable' => $esi_applicable, 'pf_applicable' => $pf_applicable, 'work_location' => $work_location, diff --git a/app/Controllers/Inwardgateregister.php b/app/Controllers/Inwardgateregister.php index fd4f21e9..d766856a 100755 --- a/app/Controllers/Inwardgateregister.php +++ b/app/Controllers/Inwardgateregister.php @@ -163,6 +163,7 @@ class Inwardgateregister extends BaseController // $data['PO_NO'] = array_filter($result, function($item) { // return !($item->status === 'ST027' && $item->IsOpenOrder === null); // }); + // dd($result); $data['PO_NO'] = array_filter($result, function($item) { return !($item->status === 'ST027'); }); @@ -611,14 +612,8 @@ class Inwardgateregister extends BaseController } } $totalReceivedqty = (int)$IsThisOpenOrderPO == 1 ? 0 : (int)$ReceivedQuantity + (int)$QuantityAsPerInvoice ; - // $totalReceivedqty = $ReceivedQuantity + $QuantityAsPerInvoice; - if(((int)$totalReceivedqty > 0) && ((int)$IsThisOpenOrderPO != 1)){ - $POLineItem = array('ReceivedQuantity' => $totalReceivedqty, 'Status' => $ItemStatus, 'UpdateBY' => $CreatedBy, 'UpdatedOn' => $createddt); - $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONO, $MaterialCode); - }else if((int)$IsThisOpenOrderPO == 1){ - $POLineItem = array('ReceivedQuantity' => $totalReceivedqty, 'Status' => $ItemStatus, 'UpdateBY' => $CreatedBy, 'UpdatedOn' => $createddt); - $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONO, $MaterialCode); - } + $POLineItem = array('ReceivedQuantity' => $totalReceivedqty, 'Status' => $ItemStatus, 'UpdateBY' => $CreatedBy, 'UpdatedOn' => $createddt); + $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONO, $MaterialCode); } } $this->inwardgateregister_model->UpdatePOMaster($PONO, $CreatedBy,$IGRStatus); @@ -630,7 +625,7 @@ class Inwardgateregister extends BaseController $this->inwardgateregister_model->POLineItemsupdatestatus($PONO, $Newstatus); $this->inwardgateregister_model->pomasterupdatestatus($PONO, $Newstatus); } else { - /*echo 'error' ;*/ + /*echo 'Open Order PO' ;*/ }} #finally $finalstatement = "Successfully Created IGR Number: $IGRNO \n"; @@ -799,6 +794,8 @@ function viewIGRDetails() function UpdateIGR() { + + # Step 1 : Gethering Data.. $IGRNo = $this->request->getPost('igr'); $PONo = $this->request->getPost('po'); @@ -817,22 +814,27 @@ function viewIGRDetails() $IGRStatus = (int)$this->request->getPost('status') == 1 ? IGR_CREATED : IGR_DRAFT; + # Here decode the tableData for IGRLineitem $tableData = $this->request->getPost('tableData'); if (is_string($tableData)) { $tableData = json_decode($tableData, true); } + $updateby = $this->session->get('userId'); + # path for file not available means create it $path = ROOTPATH.'public/uploads/Igrfiles/'; if(!is_dir($path)) { mkdir($path, 0777, true); } $MasterRemarks = $this->request->getPost('MasterRemarks'); $igrarr = array('DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt,'VehicleNo'=>$VehicleNo,'TransporterId'=>$TransporterId,'DriverMobileNumber'=>$DriverMobileNumber,'DriverName'=>$DriverName, 'IGRStatus' => $IGRStatus,'UpdateBY' => $updateby,'DeliveryChellanOrInvoiceNo'=>$DeliveryChellanOrInvoiceNo,'Remark'=>$MasterRemarks); + # master file $MasterFile = $this->request->getfile('MasterFile'); $fileupdated_count = 0; $fileupdated_name = []; + # file move to dest. path if (!empty($MasterFile)) { $requestMasterFileName = $MasterFile->getName(); if ($MasterFile && $MasterFile->isValid() && !$MasterFile->hasMoved()) { @@ -848,10 +850,12 @@ function viewIGRDetails() } } + # multiple file $fileNames = $this->request->getPost('file_name'); $files = $this->request->getFileMultiple('emp_file'); + # save and move the multiple file if(isset($files)) { foreach ($files as $index => $file) { @@ -877,17 +881,22 @@ function viewIGRDetails() } } } - + + # Step 2 : inserting IGR History $this->saveIGRMasterHistory($igrarr,$IGRNo); $getigrstatus = $this->inwardgateregister_model->getigrstatus($IGRNo); $getigrstatus = $getigrstatus->IGRStatus; - $updateigrmaster = $this->inwardgateregister_model->updateigr($igrarr, $IGRNo); + # Step 3 : Updating IGR master + $updateigrmaster = $this->inwardgateregister_model->updateigr($igrarr, $IGRNo); log_message('error', "Master updated successfully: " . $updateigrmaster); + + # Step 4 : loop starts here for IGRlineitem to save if(!empty($tableData )){ foreach ($tableData as $row) { - $quantityAsPerInvoice = $row['QuantityAsPerInvoice']; + $MaterialCode = $row['MaterialCode']; + $quantityAsPerInvoice = $row['QuantityAsPerInvoice']; // is also known as inward quantity $remarks = $row['Remarks']; $grossWeight = $row['GrossWeight']; $grossWeightDate = $row['GrossWeightDate']; @@ -898,6 +907,7 @@ function viewIGRDetails() $GrossWtDt = !empty($grossWeightDate) && strtolower($grossWeightDate) !== 'null' ? get_date_time_format($grossWeightDate) : NULL; $TareWtDt = !empty($tareWeightDate) && strtolower($tareWeightDate) !== 'null' ? get_date_time_format($tareWeightDate) : NULL; + # Step 4.0 : IGR Lineitem And History Array Formation $igrline = array( 'QuantityAsPerInvoice' => $quantityAsPerInvoice, 'Remarks' => $remarks, @@ -909,7 +919,11 @@ function viewIGRDetails() 'IGRItemNo' => $igrItemNo, 'UpdateBY' => $updateby ); + + # Step 4.1 : Save IGRlineitem History $this->saveIGRLineitemHistory($igrline, $IGRNo,$igrItemNo); + + # Step 4.2 : Netweight File Details // $WeightFile = $this->request->getfile('WeightFile'); // $requestWeightFileName = $WeightFile->getName(); @@ -925,6 +939,27 @@ function viewIGRDetails() // } // } + + # Step 4.3 : IGRlineitem affectedRow have value and MaterialCode have value means + # : updated the polineitem Qty + $OldQuantityAsPerInvoice = $this->inwardgateregister_model->getOldIgrReceivedQty($IGRNo, $igrItemNo,$MaterialCode); + + if ($MaterialCode != '' && ((int)$quantityAsPerInvoice != (int)$OldQuantityAsPerInvoice)) { + + $PolineitemQty = $this->inwardgateregister_model->getPOLineItemReceivedQty($PONo, $MaterialCode); + $POReceivedQuantity = 0.00; + if (count($PolineitemQty) > 0) { + foreach ($PolineitemQty as $key) { + $POReceivedQuantity = $key->ReceivedQuantity; + } + } + + $totalReceivedqty = ($POReceivedQuantity - $OldQuantityAsPerInvoice) + $quantityAsPerInvoice; + $POLineItem = array('ReceivedQuantity' => $totalReceivedqty); + $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONo, $MaterialCode); + } + + # Step 4.3 : Updating IGRlineitem $updateigrlineitem = $this->inwardgateregister_model->updateIGRLineItem($igrline, $igrItemNo); log_message('error', "lineitem updated successfully: " . $updateigrlineitem); log_message('error', 'UpdateIGR updateigrlineitem: ' . json_encode($igrline)); @@ -933,6 +968,10 @@ function viewIGRDetails() } + + # Step 5 : Mail Information + # : System Admin means send a mail to Accounts (role-id 1 -> 2 ) + # : Account means send a mail to System Admin (role-id 2 -> 1 ) if ($getigrstatus == 'ST027' && ($updateigrmaster > 0 || $updateigrlineitem > 0)) { if(session()->get('roleText') == 'System Administrator') // id is 1 @@ -1037,6 +1076,7 @@ function viewIGRDetails() } } + # Step 6 : Confimation alert message if ($updateigrmaster > 0) { $finalstatement = "Successfully Updated IGR Number: $IGRNo \n"; } else if($updateigrlineitem >0){ @@ -1045,6 +1085,7 @@ function viewIGRDetails() $finalstatement = "IGR Number: $IGRNo \n"; } + # Step 6.1 : Display the file names along with Confimation alert message if ($fileupdated_count > 0) { $finalstatement .= "Number of files updated: $fileupdated_count \n"; // $finalstatement .= "Files: \n" . implode(PHP_EOL, $fileupdated_name); @@ -1056,6 +1097,78 @@ function viewIGRDetails() echo $finalstatement; } + function CancelIGR(){ + + # Step 1 : Gethering Data.. + $IGRNo = $this->request->getPost('igr'); + $PONo = $this->request->getPost('po'); + $IGRStatus = IGR_CANCELLED; + $updateby = $this->session->get('userId'); + $igrarr = array('IGRStatus' => $IGRStatus,'UpdateBY' => $updateby); + + # Step 2 : Here decode the tableData for IGRLineitem + $tableData = $this->request->getPost('tableData'); + if (is_string($tableData)) { + $tableData = json_decode($tableData, true); + } + + # Step 3 : inserting IGR History + $this->saveIGRMasterHistory(array('IGRStatus' => $IGRStatus),$IGRNo); + + # Step 4 : Updating IGR master + $updateigrmaster = $this->inwardgateregister_model->updateigr($igrarr, $IGRNo); + + # Step 5 : loop starts here for IGRlineitem to save + if(!empty($tableData )){ + + foreach ($tableData as $row) { + $MaterialCode = $row['MaterialCode']; + $quantityAsPerInvoice = $row['QuantityAsPerInvoice']; // is also known as inward quantity + $igrItemNo = $row['IGRItemNo']; + + # Step 5.0 : IGR Lineitem And History Array Formation + $igrline = array( + 'QuantityAsPerInvoice' => 0, + 'UpdateBY' => $updateby, + 'mIGRStatus' => IGR_CANCELLED + ); + + # Step 5.1 : Save IGRlineitem History + $this->saveIGRLineitemHistory(array('QuantityAsPerInvoice'=>0,'mIGRStatus' => $IGRStatus), $IGRNo,$igrItemNo); + + # Step 5.2 : IGRlineitem affectedRow have value and MaterialCode have value means + # : updated the polineitem Qty + $oldQuantityAsPerInvoice = $this->inwardgateregister_model->getOldIgrReceivedQty($IGRNo, $igrItemNo,$MaterialCode); + if ($MaterialCode != '') { + + $PolineitemQty = $this->inwardgateregister_model->getPOLineItemReceivedQty($PONo, $MaterialCode); + $ReceivedQuantity = 0.00; + if (count($PolineitemQty) > 0) { + foreach ($PolineitemQty as $key) { + $ReceivedQuantity = $key->ReceivedQuantity; + } + } + + $totalReceivedqty = ($ReceivedQuantity-$quantityAsPerInvoice); + $POLineItem = array('ReceivedQuantity' => ($totalReceivedqty > 0) ? $totalReceivedqty : 0 ); + $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONo, $MaterialCode); + $POMasterStatus = array('Status' => PO_RELEASED); + $this->inwardgateregister_model->UpdatePOMasterStatus($PONo, $POMasterStatus); + } + + # Step 5.3 : Updating IGRlineitem + $updateigrlineitem = $this->inwardgateregister_model->updateIGRLineItem($igrline, $igrItemNo); + log_message('error', "lineitem updated successfully: " . $updateigrlineitem); + log_message('error', 'UpdateIGR updateigrlineitem: ' . json_encode($igrline)); + + } + + } + + echo "Successfully Cancelled IGR Number: $IGRNo \n"; + + } + function updateIGRWeight(){ @@ -1283,7 +1396,7 @@ function updateIGRWeight(){ $POMasterStatus = array('Status' => PO_RELEASED); - $this->inwardgateregister_model->UpdatePOMasterOGRStatus($pono, $POMasterStatus); + $this->inwardgateregister_model->UpdatePOMasterStatus($pono, $POMasterStatus); } } diff --git a/app/Controllers/Purchaseorder.php b/app/Controllers/Purchaseorder.php index c1d1223f..29221e11 100755 --- a/app/Controllers/Purchaseorder.php +++ b/app/Controllers/Purchaseorder.php @@ -585,7 +585,7 @@ class Purchaseorder extends BaseController $ReqType = $this->request->getVar('ReqType'); $Req = $this->purchaseorder_model->getRequistionNoFromPO($PONO); - + $data['ReqList'] = $Req; $result = array(); @@ -1461,13 +1461,12 @@ class Purchaseorder extends BaseController } } - $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $updatedBy, 'UpdatedOn' => $updateddt); - - - $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); $recqty = 0; if ($POStatus == SPECIAL_PO) { + + $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $updatedBy, 'UpdatedOn' => $updateddt); + $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); $recqty = $Quantity; @@ -1485,9 +1484,6 @@ class Purchaseorder extends BaseController $MaterialstockHistoryupdate = array('SupplierID' => $SupplierID, 'Quantity' => $Quantity, 'ItemValue' => $itemRate, 'UpdatedBY' => $updatedBy, 'UpdatedOn' => $updateddt); - - - $this->purchaseorder_model->updateMatStock( $itemNo, $MaterialstockHistoryupdate @@ -1510,17 +1506,26 @@ class Purchaseorder extends BaseController $this->inwardgateregister_model->addmaterialmaster($current_qty, $MaterialCode); } + /*------------------------------*/ + $this->requistion_model = new requistion_model(); + + $RetItemNo = $this->requistion_model->getItemNumber($Reqnumber, $MaterialCode); + + $ItemNo = ''; + if (count($RetItemNo) > 0) { + $ItemNo = $RetItemNo[0]['ItemNo']; + } + $getOldReqDetailsQuantity = $this->purchaseorder_model->getOldReqDetailsQuantity($Reqnumber, $MaterialCode,$ItemNo); + if($Quantity == $getOldReqDetailsQuantity){ + $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $updatedBy, 'UpdatedOn' => $updateddt); + $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); + } + /*------------------------------*/ + if ($SkipInsert == "False") { if (strlen((string)$POLineItemNo) == 0) { - $this->requistion_model = new requistion_model(); - - $RetItemNo = $this->requistion_model->getItemNumber($Reqnumber, $MaterialCode); - - $ItemNo = ''; - if (count($RetItemNo) > 0) { - $ItemNo = $RetItemNo[0]['ItemNo']; - } + $POLineItemList = array('PONO' => $PONO, 'ReqNo' => $Reqnumber, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'ReceivedQuantity' => $recqty, 'Rate' => $itemRate, 'Status' => $LineItemStatus, 'CreatedBy' => $updatedBy, 'CreatedDate' => $updateddt, 'CostCenterCode' => $CostCenter,'LineitemAuditorNotes'=>$LineitemAuditorNotes ); $POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList); @@ -2497,12 +2502,20 @@ class Purchaseorder extends BaseController /*------------------------------*/ - $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $CreateBy, 'UpdatedOn' => $updateddt); - //print_r($ReqDetails); - - $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); + + $this->requistion_model = new requistion_model(); + $RetItemNo = $this->requistion_model->getItemNumber($Reqnumber, $MaterialCode); + $ItemNo = ''; + if (count($RetItemNo) > 0) { + $ItemNo = $RetItemNo[0]['ItemNo']; + } + $getOldReqDetailsQuantity = $this->purchaseorder_model->getOldReqDetailsQuantity($Reqnumber, $MaterialCode,$ItemNo); + if($Quantity == $getOldReqDetailsQuantity){ + $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $CreateBy, 'UpdatedOn' => $updateddt); + $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); + } /*------------------------------*/ if ($SkipInsert == "False") { if (strlen((string)$POLineItemNo) == 0) { @@ -2595,7 +2608,8 @@ class Purchaseorder extends BaseController $store = array('Status' => $StatusCode, 'ApprovedOn' => $ApprovedDate, 'Approvedby' => $ApprovedBy, 'Remarks' => $Remarks); $this->purchaseorder_model->UpdatePO($store, $PONO); - echo "Successfully Approve the Purchase Order No: " . $PONO; + // echo "Successfully Approve the Purchase Order No: " . $PONO; + echo "The Purchase Order No: " . $PONO . " is Approved"; } else { $store = array('Status' => $StatusCode, 'OnHoldOn' => $ApprovedDate, 'OnHoldBy' => $ApprovedBy, 'Remarks' => $Remarks); $this->purchaseorder_model->UpdatePO($store, $PONO); @@ -2662,11 +2676,11 @@ class Purchaseorder extends BaseController $store = array('Status' => $StatusCode, 'ReleasedOn' => $ReleasedDate, 'ReleasedBy' => $ReleasedBy, 'Remarks' => $Remarks); $this->purchaseorder_model->UpdatePO($store, $PONO); // echo "Successfully Released the Purchase Order No: " . $PONO; - echo "The Purchase Order No: " . $PONO . "is Approved"; + echo "The Purchase Order No: " . $PONO . " is Approved"; } else { $store = array('Status' => $StatusCode, 'OnHoldOn' => $ReleasedDate, 'OnHoldBy' => $ReleasedBy, 'Remarks' => $Remarks); $this->purchaseorder_model->UpdatePO($store, $PONO); - echo "The Purchase Order No: " . $PONO . "is On Hold"; + echo "The Purchase Order No: " . $PONO . " is On Hold"; } } /* Add capital Po*/ @@ -3251,13 +3265,19 @@ class Purchaseorder extends BaseController } /*------------------------------*/ - $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $CreateBy, 'UpdatedOn' => $updateddt); - //print_r($ReqDetails); - - $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); - + $this->requistion_model = new requistion_model(); + $RetItemNo = $this->requistion_model->getItemNumber($Reqnumber, $MaterialCode); + $ItemNo = ''; + if (count($RetItemNo) > 0) { + $ItemNo = $RetItemNo[0]['ItemNo']; + } + $getOldReqDetailsQuantity = $this->purchaseorder_model->getOldReqDetailsQuantity($Reqnumber, $MaterialCode,$ItemNo); + if($Quantity == $getOldReqDetailsQuantity){ + $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $CreateBy, 'UpdatedOn' => $updateddt); + $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); + } /*------------------------------*/ diff --git a/app/Controllers/Requisitionform.php b/app/Controllers/Requisitionform.php index e6cd0c8d..7c3605b2 100755 --- a/app/Controllers/Requisitionform.php +++ b/app/Controllers/Requisitionform.php @@ -326,7 +326,7 @@ class Requisitionform extends BaseController $servicePeriod = $this->request->getPost('serviceSchedule'); // $noOfService = $this->request->getPost('noOfService'); $noOfService = 1; - $IsExists = $this->requistion_model->RequistionIsExists($Requestedby); + // $IsExists = $this->requistion_model->RequistionIsExists($Requestedby); $Request = array('ReqType' => $RequestType, 'Requestedby' => $Requestedby, 'ReqDate' => $createddt, 'CostCenterCode' => $CostCenter, 'Status' => $Status, 'CreatedDate' => $createddt, 'CreatedBy' => $CreateBy, 'Schedule_Type' => $serviceSchedule, 'NumberOfService' => $noOfService, 'Service_Period' => $servicePeriod, 'RequestedDept' => $RequestedbyDept); @@ -337,14 +337,10 @@ class Requisitionform extends BaseController $Request['ApprovedOn'] = get_current_date_time(); } - if (count($IsExists) == 0) { - $Req = $this->requistion_model->addRequisition($Request); - } else { - $UpdateReq = $this->requistion_model->UpdateRequistion($Request, $IsExists[0]['ReqNo']); - } + $Req = $this->requistion_model->addRequisition($Request); - $ReqNumber = (count($Req) > 0) ? $Req[0]['ReqNo'] - : $IsExists[0]['ReqNo']; + + $ReqNumber = $Req[0]['ReqNo']; $SkipInsert = "false"; for ($i = 1; $i <= $RowCount; $i++) { @@ -372,7 +368,7 @@ class Requisitionform extends BaseController if ($Status == REQ_DRAFT) { $display_message = "Successfully Saved the Requisition details in Draft!\nRequistion Number Is: ". $ReqNumber; // $display_message = "Requistion Saved as Draft!\nRequistion Number Is: ". $ReqNumber; - } else if($Status == REQ_APPROVED) { + }else if($Status == REQ_APPROVED) { $display_message = "Successfully Updated the Requistion details as Approved!\nRequistion Number Is: ". $ReqNumber; // $display_message = "Requistion Created Successfully!\nRequistion Number Is: ". $ReqNumber; }else{ diff --git a/app/Controllers/Servicepurchaseorder.php b/app/Controllers/Servicepurchaseorder.php index 85305bf9..a97bc3a3 100755 --- a/app/Controllers/Servicepurchaseorder.php +++ b/app/Controllers/Servicepurchaseorder.php @@ -490,8 +490,18 @@ class Servicepurchaseorder extends BaseController /*------------------------------ Quantity update the req details --*/ //if($MaterialCode!= ''){ - $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $updatedBy, 'UpdatedOn' => $updateddt); - $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); + $this->requistion_model = new requistion_model(); + $RetItemNo = $this->requistion_model->getItemNumber($Reqnumber, $MaterialCode); + + $ItemNo = ''; + if (count($RetItemNo) > 0) { + $ItemNo = $RetItemNo[0]['ItemNo']; + } + $getOldReqDetailsQuantity = $this->purchaseorder_model->getOldReqDetailsQuantity($Reqnumber, $MaterialCode,$ItemNo); + if($Quantity == $getOldReqDetailsQuantity){ + $ReqDetails = array('Quantity' => $Quantity, 'UpdatedBy' => $updatedBy, 'UpdatedOn' => $updateddt); + $this->purchaseorder_model->updateReqDetails($Reqnumber, $MaterialCode, $ReqDetails); + } // } /*------------------------------------------------------------------*/ diff --git a/app/Models/Dashboard_model.php b/app/Models/Dashboard_model.php index f51ae9ac..0e9fb889 100755 --- a/app/Models/Dashboard_model.php +++ b/app/Models/Dashboard_model.php @@ -1136,7 +1136,7 @@ group by month(created_date)"; } function category() { - $sql = "SELECT distinct Category FROM t_materialmaster;"; + $sql = "SELECT distinct Category,cd.ConfigValue as Category_name FROM t_materialmaster left join t_configdetails cd on cd.key = t_materialmaster.Category;"; $query = $this->db->query($sql); return $query->getResult(); } @@ -1395,11 +1395,13 @@ group by supplier_name,material_name function report_cum_month($sup = null, $mat = null) { - $sql = "SELECT sd.SupplierID as sid,mm.MaterialCode as mid,sd.SupplierName as supplier_name,ifnull(mm.MaterialName,'-') as material_name,IF(pl.Quantity IS NULL or pl.Quantity = '', 0, sum(pl.Quantity)) as tquantity,ifnull(sum(pl.Quantity * pl.Rate),0) as ttotal + $sql = "SELECT sd.SupplierID as sid,mm.MaterialCode as mid,sd.SupplierName as supplier_name,ifnull(mm.MaterialName,'-') as material_name,IF(pl.Quantity IS NULL or pl.Quantity = '', 0, sum(pl.Quantity)) as tquantity,ifnull(sum(pl.Quantity * pl.Rate),0) as ttotal, + cd.Key as category_id,cd.ConfigValue as category_name FROM t_purchaseorder_master pm left join t_purchaseorder_lineitem pl on pl.PONO = pm.PONO left join t_materialmaster mm on mm.MaterialCode = pl.MaterialCode left join t_supplierdetailsn sd on sd.SupplierID = pm.SupplierID +left join t_configdetails cd on cd.key = mm.category where pm.Status != 'ST030' and pm.Status != 'ST056' and pm.Status != 'ST027' and sd.SupplierName is not null and month(pm.PODate) = month(current_date()) and sd.SupplierID = '" . $sup . "' and mm.MaterialCode = '" . $mat . "' group by supplier_name,material_name"; $query = $this->db->query($sql); @@ -1445,7 +1447,7 @@ group by supplier_name,material_name"; { - $sql = "select im.IGRNO as igrn,pm.POType as potype,im.PONO as pono,date_format(im.CreatedDate,'%d-%m-%Y') as created_date,TIME_FORMAT(im.CreatedDate,'%l:%i %p') as created_time,mm.MaterialName as material_name,mm.Category as category,sd.SupplierName as supplier_name,mm.UOM as UOM, id.QuantityAsPerInvoice as quantity,pl.Rate as rate,round(id.QuantityAsPerInvoice * pl.Rate,2) as value,if(POType = 'IMPORT' or POType = 'CAPITAL',pm.ExchangeRate,0) as exchange_rate,date_format(im.MaterialRcvdDate,'%d-%m-%Y') as materialrcvddate, + $sql = "select cd.ConfigValue as category_name,im.IGRNO as igrn,pm.POType as potype,im.PONO as pono,date_format(im.CreatedDate,'%d-%m-%Y') as created_date,TIME_FORMAT(im.CreatedDate,'%l:%i %p') as created_time,mm.MaterialName as material_name,mm.Category as category,sd.SupplierName as supplier_name,mm.UOM as UOM, id.QuantityAsPerInvoice as quantity,pl.Rate as rate,round(id.QuantityAsPerInvoice * pl.Rate,2) as value,if(POType = 'IMPORT' or POType = 'CAPITAL',pm.ExchangeRate,0) as exchange_rate,date_format(im.MaterialRcvdDate,'%d-%m-%Y') as materialrcvddate, round(ifnull(if(POType = 'REVENUE', (id.QuantityAsPerInvoice * rt.AfterSGST / pl.Quantity), (id.QuantityAsPerInvoice * st.After_SGST / pl.Quantity)),0),2) as sgst, @@ -1496,6 +1498,7 @@ left join t_service_tax st on st.LineItemNo = pl.LineItemNo left join t_revenue_tax rt on rt.LineItemNo = pl.LineItemNo left join t_purchaseorder_billupload pb on pb.IGRNO=im.IGRNO left join t_inwardgateregister_fileupload infiles on infiles.IGRNO = im.IGRNO +left join t_configdetails cd on cd.key = mm.category where pm.Status != 'ST030' "; if ($cname != '') { @@ -1545,7 +1548,7 @@ where pm.Status != 'ST030' "; { - $sql = "select im.IGRNO as igrn,pm.POType as potype,im.PONO as pono,date_format(im.CreatedDate,'%d-%m-%Y') as created_date,TIME_FORMAT(im.CreatedDate,'%l:%i %p') as created_time,mm.MaterialName as material_name,mm.Category as category,sd.SupplierName as supplier_name,mm.UOM as UOM, id.QuantityAsPerInvoice as quantity,pl.Rate as rate,round(id.QuantityAsPerInvoice * pl.Rate,2) as value,if(POType = 'IMPORT' or POType = 'CAPITAL',pm.ExchangeRate,0) as exchange_rate,date_format(im.MaterialRcvdDate,'%d-%m-%Y') as materialrcvddate, + $sql = "select im.IGRNO as igrn,pm.POType as potype,im.PONO as pono,date_format(im.CreatedDate,'%d-%m-%Y') as created_date,TIME_FORMAT(im.CreatedDate,'%l:%i %p') as created_time,mm.MaterialName as material_name,mm.Category as category,sd.SupplierName as supplier_name,mm.UOM as UOM, id.QuantityAsPerInvoice as quantity,pl.Rate as rate,round(id.QuantityAsPerInvoice * pl.Rate,2) as value,if(POType = 'IMPORT' or POType = 'CAPITAL',pm.ExchangeRate,0) as exchange_rate,date_format(im.MaterialRcvdDate,'%d-%m-%Y') as materialrcvddate,cd.ConfigValue as category_name, round(ifnull(if(POType = 'REVENUE', (id.QuantityAsPerInvoice * rt.AfterSGST / pl.Quantity), (id.QuantityAsPerInvoice * st.After_SGST / pl.Quantity)),0),2) as sgst, @@ -1591,6 +1594,7 @@ left join t_purchaseorder_lineitem pl on pl.PONO = im.PONO join t_igr_details id on id.IGRNO = im.IGRNO and id.MaterialCode = pl.MaterialCode join t_purchaseorder_master pm on pm.PONO = pl.PONO left join t_materialmaster mm on mm.MaterialCode = pl.MaterialCode +left join t_configdetails cd on cd.Key = mm.category left join t_supplierdetailsn sd on sd.SupplierID = pm.SupplierID left join t_service_tax st on st.LineItemNo = pl.LineItemNo left join t_revenue_tax rt on rt.LineItemNo = pl.LineItemNo @@ -2018,8 +2022,9 @@ group by supplier_name,material_name"; $ab = $yearl; $fa = substr($ab, 0, -5); $aa = substr($ab, 5, 5); - $sql = "SELECT sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal + $sql = "SELECT sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.key = year.category where status != 'ST030' and (materialrcvddate >= '" . $fa . "-04-01' and materialrcvddate <= '" . $aa . "-03-31') and sid = '" . $sup . "' and mid= '" . $mat . "' @@ -2031,8 +2036,9 @@ group by supplier_name,material_name function ireport_cum_day($sup = null, $mat = null) { - $sql = "SELECT sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal + $sql = "SELECT sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.key = year.category where status != 'ST030' and date(materialrcvddate) = current_date() and sid = '" . $sup . "' and mid = '" . $mat . "' group by supplier_name,material_name"; @@ -2049,8 +2055,8 @@ group by supplier_name,material_name"; $ab = $yearl; $fa = substr($ab, 0, -5); $aa = substr($ab, 5, 5); - $sql = "SELECT cd.ConfigValue as category_id, - cd.key, year.category,year.quantity as quantity,year.total as total,month.mquantity as mquantity,month.mtotal as mtotal,today.tquantity as tquantity,today.ttotal as ttotal + $sql = "SELECT cd.ConfigValue as category_name,cd.key as category_id, + year.category,year.quantity as quantity,year.total as total,month.mquantity as mquantity,month.mtotal as mtotal,today.tquantity as tquantity,today.ttotal as ttotal FROM (SELECT category,sum(Quantity) as quantity,sum(value) as total FROM igr where status != 'ST030' and @@ -2085,8 +2091,9 @@ group by category "; $ab = $yearl; $fa = substr($ab, 0, -5); $aa = substr($ab, 5, 5); - $sql = "SELECT category,sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal + $sql = "SELECT category,sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.key = igr.category where status != 'ST030' and (materialrcvddate >= '" . $fa . "-04-01' and materialrcvddate <= '" . $aa . "-03-31') and category = '" . $cat . "' @@ -2098,8 +2105,9 @@ group by supplier_name,material_name"; function rawi_report_cum_month($cat = null) { - $sql = "SELECT category,sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal + $sql = "SELECT category,sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.Key = igr.category where status != 'ST030' and month(materialrcvddate) = month(current_date()) and category = '" . $cat . "' group by supplier_name,material_name"; @@ -2109,8 +2117,9 @@ group by supplier_name,material_name"; function rawi_report_cum_day($cat = null) { - $sql = "SELECT category,sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal + $sql = "SELECT category,sid,mid,supplier_name,material_name,IF(Quantity IS NULL or Quantity = '', 0, sum(Quantity)) as tquantity,sum(value) as ttotal,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.Key = igr.category where status != 'ST030' and date(materialrcvddate) = current_date() and category = '" . $cat . "' group by supplier_name,material_name"; @@ -2148,8 +2157,9 @@ SUM(IF(month(materialrcvddate) = 12, value, 0)) AS vDecember, SUM(IF(month(materialrcvddate) = 1, value, 0)) AS vJanuary, SUM(IF(month(materialrcvddate) = 2, value, 0)) AS vFebruary, SUM(IF(month(materialrcvddate) = 3, value, 0)) AS vMarch, -sum(value) as vtotal +sum(value) as vtotal,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.Key = igr.category where status != 'ST030' "; if ($cname != '') { @@ -2175,8 +2185,9 @@ where status != 'ST030' "; $sql = "select category,sid,supplier_name,mid,material_name, sum(Quantity) as quantity, -sum(value) as total +sum(value) as total,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.Key = igr.category where status != 'ST030' and monthname(materialrcvddate) = '" . $m . "' and category = '" . $cat . "' "; if ($fa and $aa != '') { @@ -2193,8 +2204,9 @@ monthname(materialrcvddate) = '" . $m . "' and category = '" . $cat . "' "; $sql = "select category,sid,supplier_name,mid,material_name, sum(Quantity) as quantity, -sum(value) as total +sum(value) as total,cd.ConfigValue as category_name FROM igr +left join t_configdetails cd on cd.Key = igr.category where status != 'ST030' and category = '" . $cat . "' "; if ($fa and $aa != '') { diff --git a/app/Models/Inwardgateregister_model.php b/app/Models/Inwardgateregister_model.php index f9b52eaa..2a37d7b7 100755 --- a/app/Models/Inwardgateregister_model.php +++ b/app/Models/Inwardgateregister_model.php @@ -148,7 +148,7 @@ class Inwardgateregister_model extends Model $query = $builder->get(); $result = $query->getResult(); - // echo $this->db->getLastQuery()->getQuery(); die; + // echo $this->db->getLastQuery()->getQuery(); die; return $result; } @@ -571,7 +571,7 @@ class Inwardgateregister_model extends Model MM.MaterialName,MM.UOM,MM.HSNCODE, sup.Address,sup.SupplierName, POL.Rate, - POM.ServiceDescription,POL.Quantity,POM.POType,POM.IsOpenOrder, + POM.ServiceDescription,POL.Quantity, (POL.Quantity - POL.ReceivedQuantity) as POPendingQty, POM.POType,POM.IsOpenOrder, POM.CapitalRange,POM.CapitalRange, st.CGST as service_cgst,st.SGST as service_sgst,st.IGST as service_igst, it.IGST as import_igst, @@ -616,7 +616,7 @@ class Inwardgateregister_model extends Model } - function UpdatePOMasterOGRStatus($pono, $POMasterStatuss) + function UpdatePOMasterStatus($pono, $POMasterStatuss) { $this->db->table('t_purchaseorder_master') ->where('PONO', $pono) @@ -721,6 +721,19 @@ class Inwardgateregister_model extends Model return $result; } + function getOldIgrReceivedQty($IGRitemNo,$IGR,$MaterialCode){ + $builder = $this->db->table('t_igr_details') + ->select('QuantityAsPerInvoice') + ->where('IGRItemNo', $IGRitemNo) + ->where('MaterialCode', $MaterialCode) + ->where('IGRNO', $IGR); + + $query = $builder->get()->getRow(); + + $QuantityAsPerInvoice = $query ? $query->QuantityAsPerInvoice : 0; + return $QuantityAsPerInvoice; + } + function GetMRIROutQty($MRIRNO, $MaterialCode) { @@ -1085,6 +1098,19 @@ class Inwardgateregister_model extends Model $r = $this->db->affectedRows(); return $r; } + function getQuantityAsPerInvoice($IGR,$IGRitemNo,$itemCode){ + $builder = $this->db->table('t_igr_details') + ->select('QuantityAsPerInvoice') + ->where('IGRItemNo', $IGRitemNo) + ->where('IGRItemNo', $itemCode) + ->where('IGRNO', $IGR); + + $query = $builder->get()->getRow(); + + $QuantityAsPerInvoice = $query ? $query->QuantityAsPerInvoice : 0; + return $QuantityAsPerInvoice; + + } function getpolineqty($NewPO) { $builder = $this->db->table('t_purchaseorder_lineitem') diff --git a/app/Models/Purchaseorder_model.php b/app/Models/Purchaseorder_model.php index 82deffbd..c4641b91 100755 --- a/app/Models/Purchaseorder_model.php +++ b/app/Models/Purchaseorder_model.php @@ -132,6 +132,18 @@ class Purchaseorder_model extends Model return $r; } + function getOldReqDetailsQuantity($Reqnumber, $MaterialCode,$ItemNo){ + $builder = $this->db->table('t_requestion_details') + ->select('Quantity') + ->where('ItemNo', $ItemNo) + ->where('ReqNo', $Reqnumber) + ->where('MaterialCode', $MaterialCode); + $query = $builder->get()->getRow(); + + $Quantity = $query ? $query->Quantity : 0; + return $Quantity; + } + function IGRDetailsupdate($PONO) { diff --git a/app/Models/Requistion_model.php b/app/Models/Requistion_model.php index 7bd246fb..aed5d729 100755 --- a/app/Models/Requistion_model.php +++ b/app/Models/Requistion_model.php @@ -380,14 +380,11 @@ class Requistion_model extends Model // } function addRequisition($Requisition) { - $this->db->transStart(); // Start transaction $result = $this->db->table('t_requestion_master')->insert($Requisition); $insert_id = $this->db->insertID(); $affected_rows = $this->db->affectedRows(); - $this->db->transComplete(); // Complete transaction - - try { + if ($affected_rows > 0) { $subQuery = 'SELECT ReqNo FROM t_requestion_master ORDER BY CreatedDate DESC LIMIT 1'; $query = $this->db->query($subQuery); @@ -396,12 +393,8 @@ class Requistion_model extends Model return $query->getResultArray(); } else { - throw new \Exception("Database error occurred, requisition master details not inserted"); + return []; } - } catch (\Exception $e) { - log_message('error', $e->getMessage()); - return false; - } } /** diff --git a/app/Views/EditservicePurchaseorder.php b/app/Views/EditservicePurchaseorder.php index a75ecd90..f9e97947 100755 --- a/app/Views/EditservicePurchaseorder.php +++ b/app/Views/EditservicePurchaseorder.php @@ -1399,11 +1399,15 @@ if (!empty($getlogpodtl)) { -