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