From 6e04ecbdd699e347df7813fdfee15e53e3867ee5 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Fri, 23 May 2025 12:05:02 +0530 Subject: [PATCH] latest commit 20-05-2025 --- app/Controllers/Inwardgateregister.php | 103 +++++++++++++++++-------- 1 file changed, 69 insertions(+), 34 deletions(-) diff --git a/app/Controllers/Inwardgateregister.php b/app/Controllers/Inwardgateregister.php index 0895bebd..793553df 100755 --- a/app/Controllers/Inwardgateregister.php +++ b/app/Controllers/Inwardgateregister.php @@ -423,9 +423,9 @@ class Inwardgateregister extends BaseController $MasterRemarks = $this->request->getPost('MasterRemarks'); $createddt = get_current_date_time(); //$IGRStatus = IGR_CREATED;//old - $PreIGRStatus = (int)$this->request->getPost('hideIGRStatus') == 1 ? IGR_CREATED : IGR_DRAFT; - // $IGRStatus = ((int)$IsThisOpenOrderPO == 1) ? IGR_DRAFT : $PreIGRStatus; - $IGRStatus = $PreIGRStatus; + $changedIgrStatus = (int)$this->request->getPost('hideIGRStatus') == 1 ? IGR_CREATED : IGR_DRAFT; + // $IGRStatus = ((int)$IsThisOpenOrderPO == 1) ? IGR_DRAFT : $changedIgrStatus; + $IGRStatus = $changedIgrStatus; $igr = array(); // For IGR Master $paymentstatus = NO_PAIDIGR; @@ -612,20 +612,32 @@ class Inwardgateregister extends BaseController $totalReceivedqty = 0 ; - if(!$IsThisOpenOrderPO && $PreIGRStatus == "ST027"){ + if(!$IsThisOpenOrderPO && $changedIgrStatus == "ST027"){ - $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONO); + log_message('info','Inside Updation of POLineItem in SaveIgr '); + + $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONo); + + $currentIgrPreviousQty = 0 ; + + $currentIgrCurrentQty = $QuantityAsPerInvoice; + + $changeInQty = $currentIgrCurrentQty - $currentIgrPreviousQty; + + $quantityToBeUpdated = $changeInQty; $totalReceivedqty = $currentPoRecievedQuantity + $quantityToBeUpdated; + ; + $POLineItem = array('ReceivedQuantity' => $totalReceivedqty, 'Status' => $ItemStatus, 'UpdateBY' => $CreatedBy, 'UpdatedOn' => $createddt); $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONO, $MaterialCode); @@ -838,10 +850,13 @@ function viewIGRDetails() $DriverName = $this->request->getPost('driver'); $DriverMobileNumber = $this->request->getPost('driver_mobile'); - $PreIGRStatus = (int)$this->request->getPost('status') == 1 ? IGR_CREATED : IGR_DRAFT; + $changedIgrStatus = (int)$this->request->getPost('status') == 1 ? IGR_CREATED : IGR_DRAFT; $IsThisOpenOrderPO = $this->request->getPost('isOpenOrder'); - // $IGRStatus = ((int)$IsThisOpenOrderPO == 1) ? IGR_DRAFT : $PreIGRStatus; - $IGRStatus = $PreIGRStatus; + // $IGRStatus = ((int)$IsThisOpenOrderPO == 1) ? IGR_DRAFT : $changedIgrStatus; + $IGRStatus = $changedIgrStatus; + + $getigrstatus = $this->inwardgateregister_model->getigrstatus($IGRNo); + $previousIgrStatus = $getigrstatus->IGRStatus; # Here decode the tableData for IGRLineitem $tableData = $this->request->getPost('tableData'); @@ -973,20 +988,34 @@ function viewIGRDetails() # Step 4.3 : IGRlineitem affectedRow have value and MaterialCode have value means # : updated the polineitem Qty - if(!$IsThisOpenOrderPO && $PreIGRStatus == "ST027"){ + if(!$IsThisOpenOrderPO && $changedIgrStatus == "ST027"){ + + log_message('info','Inside Updation of POLineItem in UpdateIGR '); $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONo); - $currentIgrPreviousQty = $this->inwardgateregister_model->currentIgrPreviousQty($IGRNo , $MaterialCode); + + + $currentIgrPreviousQty = $previousIgrStatus == "ST074" + ? 0 + : $this->inwardgateregister_model->currentIgrPreviousQty($IGRNo , $MaterialCode); + + $currentIgrCurrentQty = $quantityAsPerInvoice; + + $changeInQty = $currentIgrCurrentQty - $currentIgrPreviousQty; + + $quantityToBeUpdated = $changeInQty; $totalReceivedqty = $currentPoRecievedQuantity + $quantityToBeUpdated; + ; + $POLineItem = array('ReceivedQuantity' => $totalReceivedqty); $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONo, $MaterialCode); @@ -1184,19 +1213,16 @@ function viewIGRDetails() $updateby = $this->session->get('userId'); $igrarr = array('IGRStatus' => $IGRStatus,'UpdateBY' => $updateby); + $getigrstatus = $this->inwardgateregister_model->getigrstatus($IGRNo); + $previousIgrStatus = $getigrstatus->IGRStatus; + # 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 + # Step 3 : loop starts here for IGRlineitem to save if(!empty($tableData )){ foreach ($tableData as $row) { @@ -1204,24 +1230,16 @@ function viewIGRDetails() $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 + # Step 3.0 : IGRlineitem affectedRow have value and MaterialCode have value means # : updated the polineitem Qty - if ($MaterialCode != '') { + if ($MaterialCode != '' && $previousIgrStatus == "ST027" ) { - $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONo); + log_message('info','Inside Updation of POLineItem in CancelIGR '); - $currentIgrPreviousQty = $this->inwardgateregister_model->currentIgrPreviousQty($IGRNo , $MaterialCode); + $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONo); + + $currentIgrPreviousQty = $this->inwardgateregister_model->currentIgrPreviousQty($IGRNo , $MaterialCode); $currentIgrCurrentQty = 0 ; @@ -1229,7 +1247,7 @@ function viewIGRDetails() $quantityToBeUpdated = $changeInQty; - $totalReceivedqty = $currentPoRecievedQuantity + $quantityToBeUpdated; + $totalReceivedqty = $currentPoRecievedQuantity + $quantityToBeUpdated ; $POLineItem = array('ReceivedQuantity' => $totalReceivedqty ); @@ -1237,7 +1255,18 @@ function viewIGRDetails() } - # Step 5.3 : Updating IGRlineitem + # Step 3.1 : IGR Lineitem And History Array Formation + $igrline = array( + 'QuantityAsPerInvoice' => 0, + 'UpdateBY' => $updateby, + 'mIGRStatus' => IGR_CANCELLED + ); + + # Step 3.2 : Save IGRlineitem History + $this->saveIGRLineitemHistory(array('QuantityAsPerInvoice'=>0,'mIGRStatus' => $IGRStatus), $IGRNo,$igrItemNo); + + + # Step 3.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)); @@ -1246,7 +1275,13 @@ function viewIGRDetails() } - echo "Successfully Cancelled IGR Number: $IGRNo \n"; + # Step 4 : inserting IGR History + $this->saveIGRMasterHistory(array('IGRStatus' => $IGRStatus),$IGRNo); + + # Step 5 : Updating IGR master + $this->inwardgateregister_model->updateigr($igrarr, $IGRNo); + + echo "Successfully Cancelled IGR Number: $IGRNo \n"; }