diff --git a/app/Controllers/Inwardgateregister.php b/app/Controllers/Inwardgateregister.php index 4a2ef07d..0895bebd 100755 --- a/app/Controllers/Inwardgateregister.php +++ b/app/Controllers/Inwardgateregister.php @@ -614,17 +614,17 @@ class Inwardgateregister extends BaseController if(!$IsThisOpenOrderPO && $PreIGRStatus == "ST027"){ - // $quantitiesReceived = $this->inwardgateregister_model->getOldIgrReceivedQty($MaterialCode,$PONO_array); + $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONO); - $oldQuantityReceived = 0 ; + $currentIgrPreviousQty = 0 ; - $newQuantitiesReceived = $QuantityAsPerInvoice; + $currentIgrCurrentQty = $QuantityAsPerInvoice; - $changeInQuantities = $newQuantitiesReceived - $oldQuantityReceived; + $changeInQty = $currentIgrCurrentQty - $currentIgrPreviousQty; - $quantityToBeUpdated = $changeInQuantities; + $quantityToBeUpdated = $changeInQty; - $totalReceivedqty = $oldQuantityReceived + $quantityToBeUpdated; + $totalReceivedqty = $currentPoRecievedQuantity + $quantityToBeUpdated; $POLineItem = array('ReceivedQuantity' => $totalReceivedqty, 'Status' => $ItemStatus, 'UpdateBY' => $CreatedBy, 'UpdatedOn' => $createddt); @@ -975,20 +975,19 @@ function viewIGRDetails() # : updated the polineitem Qty if(!$IsThisOpenOrderPO && $PreIGRStatus == "ST027"){ + $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONo); - // $quantitiesReceived = $this->inwardgateregister_model->getOldIgrReceivedQty($MaterialCode,$PONO_array);d + $currentIgrPreviousQty = $this->inwardgateregister_model->currentIgrPreviousQty($IGRNo , $MaterialCode); - $oldQuantityReceived = $this->inwardgateregister_model->getOldIgrReceivedIndividualQty($IGRNo , $MaterialCode ); + $currentIgrCurrentQty = $quantityAsPerInvoice; - $newQuantitiesReceived = $quantityAsPerInvoice; + $changeInQty = $currentIgrCurrentQty - $currentIgrPreviousQty; - $changeInQuantities = $newQuantitiesReceived - $oldQuantityReceived; - - $quantityToBeUpdated = $oldQuantityReceived + $changeInQuantities; + $quantityToBeUpdated = $changeInQty; - $totalReceivedqty = $quantityToBeUpdated; + $totalReceivedqty = $currentPoRecievedQuantity + $quantityToBeUpdated; - $POLineItem = array('ReceivedQuantity' => $totalReceivedqty); + $POLineItem = array('ReceivedQuantity' => $totalReceivedqty); $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONo, $MaterialCode); @@ -1219,20 +1218,23 @@ function viewIGRDetails() # : updated the polineitem Qty if ($MaterialCode != '') { + + $currentPoRecievedQuantity = $this->inwardgateregister_model->getCurrentPOreceivedQty($MaterialCode,$PONo); - $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); + $currentIgrPreviousQty = $this->inwardgateregister_model->currentIgrPreviousQty($IGRNo , $MaterialCode); + + $currentIgrCurrentQty = 0 ; + + $changeInQty = $currentIgrCurrentQty - $currentIgrPreviousQty; + + $quantityToBeUpdated = $changeInQty; + + $totalReceivedqty = $currentPoRecievedQuantity + $quantityToBeUpdated; + + $POLineItem = array('ReceivedQuantity' => $totalReceivedqty ); + + $this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONo, $MaterialCode); + } # Step 5.3 : Updating IGRlineitem diff --git a/app/Models/Inwardgateregister_model.php b/app/Models/Inwardgateregister_model.php index 5a2a97de..4d2755d8 100755 --- a/app/Models/Inwardgateregister_model.php +++ b/app/Models/Inwardgateregister_model.php @@ -754,26 +754,24 @@ class Inwardgateregister_model extends Model } - function getOldIgrReceivedQty( $MaterialCode, $PONO_array) { + function getCurrentPOreceivedQty( $MaterialCode, $PONO) { - $builder = $this->db->table('t_igr_details tigrd') - ->selectSum('tigrd.QuantityAsPerInvoice') - ->join('t_igr_master tigrm', 'tigrm.IGRNO = tigrd.IGRNO', 'inner') - ->whereIn('tigrm.PONO', $PONO_array) - ->where('tigrm.IGRStatus', 'ST027') - ->where('tigrd.MaterialCode', $MaterialCode) - ->groupBy('tigrd.MaterialCode'); + $builder = $this->db->table('t_purchaseorder_lineitem tpol') + ->selectSum('tpol.ReceivedQuantity') + ->where('tpol.PONO',$PONO) + ->where('tpol.MaterialCode', $MaterialCode) + ->groupBy('PONO,MaterialCode'); $result = $builder->get()->getRow(); - log_message('info', 'getOldIgrReceivedQty Second Query: ' . $this->db->getLastQuery()->getQuery()); + log_message('info', 'getCurrentPOreceivedQty Query: ' . $this->db->getLastQuery()->getQuery()); // Return the sum or 0 if no result from the second query - return $result ? $result->QuantityAsPerInvoice : 0; + return $result ? $result->ReceivedQuantity : 0; } - function getOldIgrReceivedIndividualQty($IGRNo , $MaterialCode){ + function currentIgrPreviousQty($IGRNo , $MaterialCode){ $builder = $this->db->table('t_igr_details tigrd') ->selectSum('tigrd.QuantityAsPerInvoice') @@ -784,7 +782,7 @@ class Inwardgateregister_model extends Model $result = $builder->get()->getRow(); - log_message('info', 'getOldIgrReceivedIndividualQty Query: ' . $this->db->getLastQuery()->getQuery()); + log_message('info', 'currentIgrPreviousQty Query: ' . $this->db->getLastQuery()->getQuery()); // Return the sum or 0 if no result from the second query return $result ? $result->QuantityAsPerInvoice : 0;