stock module - 18-03-2025
This commit is contained in:
parent
50cd3c0d19
commit
e32f0c59bc
@ -2473,21 +2473,34 @@ class StockController extends BaseController
|
||||
|
||||
public function updateResinStockDetails()
|
||||
{
|
||||
|
||||
|
||||
$postData = $this->request->getPost();
|
||||
|
||||
$updateResinStockDetailsData = json_decode($postData['updateResinStockDetails'], true);
|
||||
|
||||
$updates = [];
|
||||
|
||||
$postData = $this->request->getPost('updateResinStockDetails');
|
||||
$updateResinStockDetailsData = json_decode($postData, true);
|
||||
|
||||
if (empty($updateResinStockDetailsData)) {
|
||||
echo "No data provided";
|
||||
return;
|
||||
}
|
||||
|
||||
$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) {
|
||||
|
||||
$date = $data['date'];
|
||||
$materialCode = $data['materialCode'];
|
||||
|
||||
$key = $data['date'] . '_' . $data['materialCode'];
|
||||
|
||||
$dbData = [
|
||||
'date' => $data['date'],
|
||||
@ -2498,40 +2511,29 @@ class StockController extends BaseController
|
||||
'used' => $data['used'],
|
||||
'balanceStock' => $data['balanceStock'],
|
||||
];
|
||||
|
||||
$resultExists = $this->resinStockDetails_model
|
||||
->where('date', $date)
|
||||
->where('materialCode', $materialCode)
|
||||
->first();
|
||||
|
||||
|
||||
if (empty($resultExists)) {
|
||||
$inserts[] = $dbData;
|
||||
} else {
|
||||
$dbData['id'] = $resultExists['id'];
|
||||
|
||||
if (isset($existingMap[$key])) {
|
||||
$dbData['id'] = $existingMap[$key];
|
||||
$updates[] = $dbData;
|
||||
} else {
|
||||
$inserts[] = $dbData;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!empty($inserts)) {
|
||||
$this->resinStockDetails_model->insertBatch($inserts);
|
||||
}
|
||||
|
||||
|
||||
if (!empty($updates)) {
|
||||
|
||||
$updateResult = $this->resinStockDetails_model->updateBatch($updates, 'id');
|
||||
|
||||
if ($updateResult === FALSE) {
|
||||
if ($this->resinStockDetails_model->updateBatch($updates, 'id') === false) {
|
||||
echo "Error during update";
|
||||
} else {
|
||||
echo "Data Updated Successfully";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo "Data Saved Successfully";
|
||||
}
|
||||
|
||||
|
||||
public function createDummyEntryForResin($customisedMaterialCode, $startDate, $endDate)
|
||||
{
|
||||
@ -2858,14 +2860,32 @@ class StockController extends BaseController
|
||||
|
||||
$updateBagStockDetailsData = json_decode($postData['updateBagStockDetails'], true);
|
||||
|
||||
if (empty($updateBagStockDetailsData)) {
|
||||
echo "No data provided";
|
||||
return;
|
||||
}
|
||||
|
||||
$inserts = [];
|
||||
$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) {
|
||||
|
||||
$date = $data['date'];
|
||||
$materialCode = $data['materialCode'];
|
||||
|
||||
$key = $data['date'] . '_' . $data['materialCode'];
|
||||
|
||||
$dbData = [
|
||||
'date' => $data['date'],
|
||||
@ -2877,18 +2897,12 @@ class StockController extends BaseController
|
||||
'balanceStock' => $data['balanceStock'],
|
||||
];
|
||||
|
||||
$resultExists = $this->bagStockDetails_model
|
||||
->where('date', $date)
|
||||
->where('materialCode', $materialCode)
|
||||
->first();
|
||||
|
||||
|
||||
if (empty($resultExists)) {
|
||||
$inserts[] = $dbData;
|
||||
} else {
|
||||
$dbData['id'] = $resultExists['id'];
|
||||
$updates[] = $dbData;
|
||||
}
|
||||
if (isset($existingMap[$key])) {
|
||||
$dbData['id'] = $existingMap[$key];
|
||||
$updates[] = $dbData;
|
||||
} else {
|
||||
$inserts[] = $dbData;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($inserts)) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user