stock module latest today vadivel J 29-01-2025

This commit is contained in:
vadivelJ96 2025-01-29 11:23:20 +05:30
parent b8a1490d76
commit 2406b0fa71

View File

@ -1409,7 +1409,9 @@ class StockController extends BaseController
$inserts = $this->generateDummyData($startDate, $endDate);
$data['trpProductionMaintenanceData'] = $this->updateTrpProductionDetails($inserts);
$freshEntry = true ;
$data['trpProductionMaintenanceData'] = $this->updateTrpProductionDetails($inserts ,$freshEntry);
}
@ -1443,8 +1445,8 @@ class StockController extends BaseController
public function updateTrpProductionDetails($inserts) {
public function updateTrpProductionDetails($inserts, $freshEntry = false)
{
$postData = $this->request->getPost();
if (empty($postData['updateTrpProductionDetails'])) {
@ -1455,25 +1457,35 @@ class StockController extends BaseController
}
}
$updateTrpProductionDetails = $postData['updateTrpProductionDetails'];
// Extract all dates from input data
$dates = array_column($updateTrpProductionDetails, 'Date');
$formattedDates = array_map(fn($date) => $this->convertToDateWithFlexibleFormats($date, ["d-m-Y", "Y-m-d", "m/d/Y", "m-d-Y"], "Y-m-d"), $dates);
// Fetch all existing records in a single query per table
$existingMaintenance = $this->TrpProductionMaintenance_model->whereIn('date', $formattedDates)->findAll();
$existingProduction = $this->TrpProduction_model->whereIn('date', $formattedDates)->findAll();
$existingWaste = $this->TrpProductionWaste_model->whereIn('date', $formattedDates)->findAll();
// Map existing records by date for quick lookup
$existingMaintenanceMap = array_column($existingMaintenance, null, 'date');
$existingProductionMap = array_column($existingProduction, null, 'date');
$existingWasteMap = array_column($existingWaste, null, 'date');
$insertMaintenance = [];
$updateMaintenance = [];
$insertProduction = [];
$updateProduction = [];
$updateMaintanence = [];
$insertWaste = [];
$updateWaste = [];
$insertProduction = [];
$insertMaintanence = [];
$insertWaste = [];
foreach ($updateTrpProductionDetails as $data) {
$date = $this->convertToDateWithFlexibleFormats($data['Date'], ["d-m-Y", "Y-m-d", "m/d/Y", "m-d-Y"], "Y-m-d");
$data['date'] = $this->convertToDateWithFlexibleFormats($data['Date'], ["d-m-Y", "Y-m-d", "m/d/Y", "m-d-Y"], "Y-m-d");
$date = $data['date'];
// Data arrays
$dbDataTrpMaintenance = [
'date' => $data['date'],
'date' => $date,
'openingTime' => $data['openingTime'],
'closingTime' => $data['closingTime'],
'totalHours' => $data['totalHours'],
@ -1491,7 +1503,7 @@ class StockController extends BaseController
];
$dbDataTrpProduction = [
'date' => $data['date'],
'date' => $date,
'gasReceiptBg' => $data['gasReceiptBg'],
'gasReceiptPg' => $data['gasReceiptPg'],
'physicalGasConsumption' => $data['physicalGasConsumption'],
@ -1511,7 +1523,7 @@ class StockController extends BaseController
];
$dbDataTrpWaste = [
'date' => $data['date'],
'date' => $date,
'msSeperation' => $data['msSeperation'],
'edWaste' => $data['edWaste'],
'coolerBags' => $data['coolerBags'],
@ -1519,67 +1531,63 @@ class StockController extends BaseController
'cycloneWaste' => $data['cycloneWaste'],
];
$trpMaintenanceResultExists = $this->TrpProductionMaintenance_model
->where('date', $date)
->first();
$trpProductionResultExists = $this->TrpProduction_model
->where('date', $date)
->first();
$trpWasteResultExists = $this->TrpProductionWaste_model
->where('date', $date)
->first();
if (empty($trpMaintenanceResultExists)) {
$insertMaintanence[] = $dbDataTrpMaintenance;
$insertProduction[] = $dbDataTrpProduction;
$insertWaste[] = $dbDataTrpWaste;
// Check if data already exists
if (isset($existingMaintenanceMap[$date])) {
$dbDataTrpMaintenance['id'] = $existingMaintenanceMap[$date]['id'];
$updateMaintenance[] = $dbDataTrpMaintenance;
} else {
$dbDataTrpMaintenance['id'] = $trpMaintenanceResultExists['id'];
$dbDataTrpProduction['id'] = $trpProductionResultExists['id'];
$dbDataTrpWaste['id'] = $trpWasteResultExists['id'];
$insertMaintenance[] = $dbDataTrpMaintenance;
}
$updateMaintanence[] = $dbDataTrpMaintenance;
if (isset($existingProductionMap[$date])) {
$dbDataTrpProduction['id'] = $existingProductionMap[$date]['id'];
$updateProduction[] = $dbDataTrpProduction;
} else {
$insertProduction[] = $dbDataTrpProduction;
}
if (isset($existingWasteMap[$date])) {
$dbDataTrpWaste['id'] = $existingWasteMap[$date]['id'];
$updateWaste[] = $dbDataTrpWaste;
} else {
$insertWaste[] = $dbDataTrpWaste;
}
}
// Start the transaction
// Start transaction
$this->db->transBegin();
try {
if (!empty($insertMaintanence)) {
$this->TrpProductionMaintenance_model->insertBatch($insertMaintanence);
// Insert new records in batch
if (!empty($insertMaintenance)) {
$this->TrpProductionMaintenance_model->insertBatch($insertMaintenance);
}
if (!empty($insertProduction)) {
$this->TrpProduction_model->insertBatch($insertProduction);
}
if (!empty($insertWaste)) {
$this->TrpProductionWaste_model->insertBatch($insertWaste);
}
if (!empty($updateMaintanence)) {
$this->TrpProductionMaintenance_model->updateBatch($updateMaintanence, 'id');
// Update existing records in batch
if (!empty($updateMaintenance)) {
$this->TrpProductionMaintenance_model->updateBatch($updateMaintenance, 'id');
}
if (!empty($updateProduction)) {
$this->TrpProduction_model->updateBatch($updateProduction, 'id');
}
if (!empty($updateWaste)) {
$this->TrpProductionWaste_model->updateBatch($updateWaste, 'id');
}
// Commit the transaction if all operations are successful
// Commit transaction if successful
$this->db->transCommit();
echo "Data Saved Successfully";
if (!$freshEntry) {
echo "Data Saved Successfully";
}
} catch (\Exception $error) {
// Rollback the transaction in case of any errors
// Rollback transaction on error
$this->db->transRollback();
echo "An error occurred: " . $error->getMessage();
}
@ -1587,6 +1595,8 @@ class StockController extends BaseController
public function generateDummyData($startDate, $endDate)
{
$datesInMonth = [];
@ -1606,41 +1616,41 @@ class StockController extends BaseController
$inserts[] = [
'Date' => $dateInMonth,
'openingTime' => '00:00',
'closingTime' => '00:00',
'totalHours' => '00:00',
'coldStart' => '00:00',
'breakdownHours' => '00:00',
'burnerFiringHours' => '00:00',
'sandFeedingHours' => '00:00',
'workingPersonEngineers' => 0,
'workingPersonSupervisiors' => 0,
'workingPersonOperators' => 0,
'rollerDrivers' => 0,
'openingTime' => " ",
'closingTime' => " ",
'totalHours' => " ",
'coldStart' => " ",
'breakdownHours' => " ",
'burnerFiringHours' => " ",
'sandFeedingHours' => " ",
'workingPersonEngineers' => " ",
'workingPersonSupervisiors' => " ",
'workingPersonOperators' => " ",
'rollerDrivers' => " ",
'natureOfMaintenance' => '',
'location' => '',
'description' => '',
'gasReceiptBg' => 0,
'gasReceiptPg' => 0,
'physicalGasConsumption' => 0,
'trpPlusDrierGasConsumption' => 0,
'trpPhysicalGasPerTon' => 0,
'panelGasConsumption' => 0,
'panelGasPerTon' => 0,
'edRunningHours' => 0,
'edProduction' => 0,
'edUsage' => 0,
'trpProduction' => 0,
'trpProductionPerHour' => 0,
'waterReceipt' => 0,
'waterConsumption' => 0,
'ebReading' => 0,
'ebReadingPerUnitTon' => 0,
'msSeperation' => 0,
'edWaste' => 0,
'coolerBags' => 0,
'edPlus20Waste' => 0,
'cycloneWaste' => 0
'gasReceiptBg' => " ",
'gasReceiptPg' => " ",
'physicalGasConsumption' => " ",
'trpPlusDrierGasConsumption' => " ",
'trpPhysicalGasPerTon' => " ",
'panelGasConsumption' => " ",
'panelGasPerTon' => " ",
'edRunningHours' => " ",
'edProduction' => " ",
'edUsage' => " ",
'trpProduction' => " ",
'trpProductionPerHour' => " ",
'waterReceipt' => " ",
'waterConsumption' => " ",
'ebReading' =>" ",
'ebReadingPerUnitTon' =>" ",
'msSeperation' => " ",
'edWaste' => " ",
'coolerBags' =>" ",
'edPlus20Waste' => " ",
'cycloneWaste' => " "
];
}