stock module - 18-03-2025

This commit is contained in:
vadivelJ96 2025-03-18 15:28:51 +05:30
parent 50cd3c0d19
commit e32f0c59bc

View File

@ -2473,21 +2473,34 @@ class StockController extends BaseController
public function updateResinStockDetails() public function updateResinStockDetails()
{ {
$postData = $this->request->getPost('updateResinStockDetails');
$updateResinStockDetailsData = json_decode($postData, true);
$postData = $this->request->getPost();
if (empty($updateResinStockDetailsData)) {
$updateResinStockDetailsData = json_decode($postData['updateResinStockDetails'], true); echo "No data provided";
return;
$updates = []; }
$inserts = []; $inserts = [];
$updates = [];
$dates = array_column($updateResinStockDetailsData, 'date');
$materialCodes = array_column($updateResinStockDetailsData, 'materialCode');
// Fetch existing records in bulk to reduce queries
$existingRecords = $this->resinStockDetails_model
->whereIn('date', $dates)
->whereIn('materialCode', $materialCodes)
->findAll();
$existingMap = [];
foreach ($existingRecords as $record) {
$existingMap[$record['date'] . '_' . $record['materialCode']] = $record['id'];
}
foreach ($updateResinStockDetailsData as $data) { foreach ($updateResinStockDetailsData as $data) {
$date = $data['date']; $key = $data['date'] . '_' . $data['materialCode'];
$materialCode = $data['materialCode'];
$dbData = [ $dbData = [
'date' => $data['date'], 'date' => $data['date'],
@ -2498,40 +2511,29 @@ class StockController extends BaseController
'used' => $data['used'], 'used' => $data['used'],
'balanceStock' => $data['balanceStock'], 'balanceStock' => $data['balanceStock'],
]; ];
$resultExists = $this->resinStockDetails_model if (isset($existingMap[$key])) {
->where('date', $date) $dbData['id'] = $existingMap[$key];
->where('materialCode', $materialCode)
->first();
if (empty($resultExists)) {
$inserts[] = $dbData;
} else {
$dbData['id'] = $resultExists['id'];
$updates[] = $dbData; $updates[] = $dbData;
} else {
$inserts[] = $dbData;
} }
} }
if (!empty($inserts)) { if (!empty($inserts)) {
$this->resinStockDetails_model->insertBatch($inserts); $this->resinStockDetails_model->insertBatch($inserts);
} }
if (!empty($updates)) { if (!empty($updates)) {
if ($this->resinStockDetails_model->updateBatch($updates, 'id') === false) {
$updateResult = $this->resinStockDetails_model->updateBatch($updates, 'id');
if ($updateResult === FALSE) {
echo "Error during update"; echo "Error during update";
} else {
echo "Data Updated Successfully";
return; return;
} }
} }
echo "Data Saved Successfully"; echo "Data Saved Successfully";
} }
public function createDummyEntryForResin($customisedMaterialCode, $startDate, $endDate) public function createDummyEntryForResin($customisedMaterialCode, $startDate, $endDate)
{ {
@ -2858,14 +2860,32 @@ class StockController extends BaseController
$updateBagStockDetailsData = json_decode($postData['updateBagStockDetails'], true); $updateBagStockDetailsData = json_decode($postData['updateBagStockDetails'], true);
if (empty($updateBagStockDetailsData)) {
echo "No data provided";
return;
}
$inserts = []; $inserts = [];
$updates = []; $updates = [];
$dates = array_column($updateBagStockDetailsData, 'date');
$materialCodes = array_column($updateBagStockDetailsData, 'materialCode');
// Fetch existing records in bulk to reduce queries
$existingRecords = $this->bagStockDetails_model
->whereIn('date', $dates)
->whereIn('materialCode', $materialCodes)
->findAll();
$existingMap = [];
foreach ($existingRecords as $record) {
$existingMap[$record['date'] . '_' . $record['materialCode']] = $record['id'];
}
foreach ($updateBagStockDetailsData as $data) { foreach ($updateBagStockDetailsData as $data) {
$date = $data['date']; $key = $data['date'] . '_' . $data['materialCode'];
$materialCode = $data['materialCode'];
$dbData = [ $dbData = [
'date' => $data['date'], 'date' => $data['date'],
@ -2877,18 +2897,12 @@ class StockController extends BaseController
'balanceStock' => $data['balanceStock'], 'balanceStock' => $data['balanceStock'],
]; ];
$resultExists = $this->bagStockDetails_model if (isset($existingMap[$key])) {
->where('date', $date) $dbData['id'] = $existingMap[$key];
->where('materialCode', $materialCode) $updates[] = $dbData;
->first(); } else {
$inserts[] = $dbData;
}
if (empty($resultExists)) {
$inserts[] = $dbData;
} else {
$dbData['id'] = $resultExists['id'];
$updates[] = $dbData;
}
} }
if (!empty($inserts)) { if (!empty($inserts)) {