From ea1f2b88dd3215b7f0c4a0c1ced43655929dfde7 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Wed, 12 Mar 2025 17:22:33 +0530 Subject: [PATCH] changes in stock module 12-03-2025 --- app/Controllers/StockController.php | 107 ++++++++++-------- app/Views/stock/incomingSilicaSandDetails.php | 75 +++++++++--- 2 files changed, 116 insertions(+), 66 deletions(-) diff --git a/app/Controllers/StockController.php b/app/Controllers/StockController.php index cb7d78d9..da65cc4a 100644 --- a/app/Controllers/StockController.php +++ b/app/Controllers/StockController.php @@ -241,74 +241,81 @@ class StockController extends BaseController public function updateIncomingSilicaSandDetails() { - + $postData = $this->request->getPost(); - + $incomingSilicaSandDetailsData = json_decode($postData['incomingSilicaSandDetailsData'], true); - + + if (empty($incomingSilicaSandDetailsData)) { + echo "No data provided"; + return; + } + + $existingRecords = $this->incomingSilicaSandDetails_model + ->whereIn('id', array_column($incomingSilicaSandDetailsData, 'id')) + ->findAll(); + + $existingIds = array_column($existingRecords, 'id'); $inserts = []; $updates = []; - + foreach ($incomingSilicaSandDetailsData as $data) { - - $id = $data['id']; - + $id = !empty($data['id']) ? $data['id'] : null; + $dbData = [ - 'igrNo_fk' => $data['IGR No'], - 'materialCode' => $data['MaterialCode'], - 'grade' => $data['Grade'], - 'gradeCondition' => $data['Grade Condition'], - '_10' => $data['___10___'], - '_20' => $data['___20___'], - '_30' => $data['___30___'], - '_40' => $data['___40___'], - '_50' => $data['___50___'], - '_70' => $data['___70___'], - '_100' => $data['___100___'], - '_140' => $data['___140___'], - '_200' => $data['___200___'], - '_300' => $data['___300___'], - 'pan' => $data['PAN'], - 'total' => $data['Total'], - 'afsSpec' => $data['AFS Spec'], - 'afsActual' => $data['AFS Actual'], - 'plus20loss' => $data['Plus 20 loss%'], - 'plus30Loss' => $data['Plus 30 Loss %'], - 'moistureSpec' => $data['Moisture % Spec'], - 'moistureActual' => $data['Moisture Actual'], - 'moistureLoss' => $data['Moisture Loss'], - 'moistureLossQty' => $data['Moisture loss Qty'], - 'sieveLossQty' => $data['Sieve Loss Qty'], - 'salableQty' => $data['Salable Qty'], - 'remark' => $data['Remark'] - + 'igrNo_fk' => $data['igrNo'], + 'gradeCondition' => $data['gradeCondition'], + '_10' => $data['_10'], + '_20' => $data['_20'], + '_30' => $data['_30'], + '_40' => $data['_40'], + '_50' => $data['_50'], + '_70' => $data['_70'], + '_100' => $data['_100'], + '_140' => $data['_140'], + '_200' => $data['_200'], + '_300' => $data['_300'], + 'pan' => $data['pan'], + 'total' => $data['total'], + 'afsSpec' => $data['afsSpec'], + 'afsActual' => $data['afsActual'], + 'plus20loss' => $data['plus20loss'], + 'plus30Loss' => $data['plus30Loss'], + 'moistureSpec' => $data['moistureSpec'], + 'moistureActual' => $data['moistureActual'], + 'moistureLoss' => $data['moistureLoss'], + 'moistureLossQty' => $data['moistureLossQty'], + 'sieveLossQty' => $data['sieveLossQty'], + 'salableQty' => $data['salableQty'], + 'remark' => $data['remark'], + 'materialCode' => $data['materialCode'], + 'clayOrLossOfIgnition' => $data['clayOrLossOfIgnition'], + 'testedBy' => $data['testedBy'], + 'approvedBy' => $data['approvedBy'], + 'reportComments' => $data['reportComments'], + 'gradeRange' => $data['gradeRange'], + 'reportTime' => $data['reportTime'], ]; - - - - $resultExists = $this->incomingSilicaSandDetails_model - ->where('id', $id) - ->first(); - - if (!empty($resultExists)) { - $dbData['id'] = $resultExists['id']; + + if ($id && in_array($id, $existingIds)) { + $dbData['id'] = $id; $updates[] = $dbData; } else { $inserts[] = $dbData; } } - + if (!empty($updates)) { - $updated = $this->incomingSilicaSandDetails_model->updateBatch($updates, 'id'); + $this->incomingSilicaSandDetails_model->updateBatch($updates, 'id'); } - + if (!empty($inserts)) { - $inserted = $this->incomingSilicaSandDetails_model->insertBatch($inserts); + $this->incomingSilicaSandDetails_model->insertBatch($inserts); } - + echo "Data Saved Successfully"; } - + //This is particulary updated by the lab technichians public function updateLabReport() diff --git a/app/Views/stock/incomingSilicaSandDetails.php b/app/Views/stock/incomingSilicaSandDetails.php index 44b40b71..25e18ab7 100644 --- a/app/Views/stock/incomingSilicaSandDetails.php +++ b/app/Views/stock/incomingSilicaSandDetails.php @@ -369,9 +369,12 @@ Remark MaterialCode id + clayOrLossOfIgnition testedBy approvedBy - clayOrLossOfIgnition + reportComments + gradeRange + reportTime @@ -1413,21 +1416,7 @@ { $('#save').click(function() { - var incomingSilicaSandDetailsData = $("#incomingSilicaSandDetailsTable").tableToJSON(); - - - - $('#incomingSilicaSandDetailsTable tbody tr').each(function (index) { - - let row = incomingSilicaSandDetailsData[index]; - - row['Remark'] = $(this).find('.sand-status').val(); - row['Grade Condition'] = $(this).find('.grade-condition').val() - - }); - - - incomingSilicaSandDetailsData = JSON.stringify(incomingSilicaSandDetailsData); + var incomingSilicaSandDetailsData = incomingSilicaSandTableToJson(); $('#loader').show(); $.ajax({ @@ -1471,6 +1460,60 @@ + + +