stock module latest today vadivel J 02-1-2025

This commit is contained in:
vadivelJ96 2025-01-02 18:09:01 +05:30
parent 2a46955917
commit 3f368e4570

View File

@ -1514,32 +1514,173 @@ class StockController extends BaseController
}
//Diesel Stock Summary Details
$data['summaryDetails'] = $this->factoryVehicleDieselStockSummary_model->select('date,opening_stock as opening_stock_0,purchase_diesel as purchase_diesel_0,total_filling_diesel as total_filling_diesel_0,balance_stock as balance_stock_0')->where('date >=', $data['startDate'])->where('date <=', $data['endDate'])->findAll();
$data['summaryDetails'] = $this->factoryVehicleDieselStockSummary_model->select('date,opening_stock as opening_stock_0,purchase_diesel as purchase_diesel_0,total_filling_diesel as total_filling_diesel_0,balance_stock as balance_stock_0')
->where('date >=', $data['startDate'])
->where('date <=', $data['endDate'])
->findAll();
if (!count($data['summaryDetails'])) {
//insert empty data
$tempInsert = [];
foreach ($monthData as $key => $value) {
array_push($tempInsert, ['date' => $value['database']]);
}
$this->factoryVehicleDieselStockSummary_model->insertBatch($tempInsert);
$data['summaryDetails'] = $this->factoryVehicleDieselStockSummary_model->where('date >=', $data['startDate'])->where('date <=', $data['endDate'])->findAll();
//before insert check previous month data present?
if (isset($data['startDate']) && !empty($data['startDate'])) {
// Extract the year and month part from the startDate
$startDate = substr($data['startDate'], 0, 7); // Get 'Y-m' part
$date = DateTime::createFromFormat('Y-m', $startDate);
if ($date) {
$previousMonth = $date->modify('-1 month')->format('Y-m');
$previousMonthStartDate = "$previousMonth-01";
$previousMonthEndDate = date("Y-m-t", strtotime($previousMonthStartDate));
}
}
// Now you can use $previousMonth, $previousMonthStartDate, and $previousMonthEndDate
$previousMonthData = $this->factoryVehicleDieselStockSummary_model
->where('date >=', $previousMonthStartDate)
->where('date <=', $previousMonthEndDate)
->orderBy('date', 'desc')
->first();
if (!empty($previousMonthData)) {
//insert empty data
$tempInsert = [];
foreach ($monthData as $key => $value) {
if($value['database'] == $previousMonthData['date']){ //add +1day to previous month date
array_push($tempInsert, [
'date' => $value['database'],
'opening_stock' => $previousMonthData['balance_stock'],
'purchase_diesel' => 0.00,
'total_filling_diesel' => 0.00,
'balance_stock' => $previousMonthData['balance_stock']]);
}else{
array_push($tempInsert, ['date' => $value['database']]);
}
}
dd('i am here');
$this->factoryVehicleDieselStockSummary_model->insertBatch($tempInsert);
$data['summaryDetails'] = $this->factoryVehicleDieselStockSummary_model->where('date >=', $data['startDate'])->where('date <=', $data['endDate'])->findAll();
}else{
//insert empty data
$tempInsert = [];
foreach ($monthData as $key => $value) {
array_push($tempInsert, ['date' => $value['database']]);
}
$this->factoryVehicleDieselStockSummary_model->insertBatch($tempInsert);
$data['summaryDetails'] = $this->factoryVehicleDieselStockSummary_model->where('date >=', $data['startDate'])->where('date <=', $data['endDate'])->findAll();
}
}
//Diesel Consumption Details
$data['dieselConsumptionDetails'] = $this->getDieselConsumptionPivot($data['machineDetails'], $data['startDate'], $data['endDate']);
$data['dieselConsumptionDetails'] = $this->getDieselConsumptionPivot($data['machineDetails'],$data['startDate'], $data['endDate']);
if (!count($data['dieselConsumptionDetails'])) {
//insert empty data
$tempInsert = [];
foreach ($monthData as $key => $value) {
array_push($tempInsert, ['date' => $value['database'], 'machine_id' => $data['machineDetails'][0]['id']]);
//before insert check previous month data present?
if (isset($data['startDate']) && !empty($data['startDate'])) {
// Extract the year and month part from the startDate
$startDate = substr($data['startDate'], 0, 7); // Get 'Y-m' part
$date = DateTime::createFromFormat('Y-m', $startDate);
if ($date) {
$previousMonth = $date->modify('-1 month')->format('Y-m');
$previousMonthStartDate = "$previousMonth-01";
$previousMonthEndDate = date("Y-m-t", strtotime($previousMonthStartDate));
}
}
$previousMonthData = $this->factoryVehicleDieselDetails_model
->where('date >=', $previousMonthStartDate)
->where('date <=', $previousMonthEndDate)
->orderBy('date', 'desc')
->first();
if (!empty($previousMonthData)) {
//insert empty data
$tempInsert = [];
foreach ($monthData as $key => $value) {
foreach($data['machineDetails'] as $machine){
$previousMonthDataFetched = $this->factoryVehicleDieselDetails_model
->where('date >=', $previousMonthStartDate)
->where('date <=', $previousMonthEndDate)
->where('machine_id', $machine['id'])
->orderBy('date', 'desc')
->first();
if($value['database'] == $previousMonthData['date']){ //add +1day to previous month date
array_push($tempInsert, [
'date' => $value['database'],
'machine_id' => $machine['id'],
'opening_reading' => $previousMonthDataFetched['closing_reading'],
'closing_reading' => $previousMonthDataFetched['closing_reading'],
'filling_diesel' => 0.00,
'consumption' => 0.00,
'running_hours' => 0.00,
'mileage' => 0.00]);
}else{
array_push($tempInsert, [
'date' => $value['database'],
'machine_id' => $machine['id'],
'opening_reading' => 0.00,
'closing_reading' => 0.00,
'filling_diesel' => 0.00,
'consumption' => 0.00,
'running_hours' => 0.00,
'mileage' => 0.00]);
}
}
}
}else{
$tempInsert = [];
foreach ($monthData as $key => $value) {
foreach($data['machineDetails'] as $machine){
array_push( $tempInsert,
['date' => $value['database'],
'machine_id' => $machine['id'],
'opening_reading' => 0.00,
'closing_reading' => 0.00,
'filling_diesel' => 0.00,
'consumption' => 0.00,
'running_hours' => 0.00,
'mileage' => 0.00]);
}
}
}
$this->factoryVehicleDieselDetails_model->insertBatch($tempInsert);
$data['dieselConsumptionDetails'] = $this->getDieselConsumptionPivot($data['machineDetails'], $data['startDate'], $data['endDate']);
}
$this->factoryVehicleDieselDetails_model->insertBatch($tempInsert);
$data['dieselConsumptionDetails'] = $this->getDieselConsumptionPivot($data['machineDetails'], $data['startDate'], $data['endDate']);
}
// Merge the two arrays
$mergedArray = [];
// Loop through the first array
@ -1560,7 +1701,9 @@ class StockController extends BaseController
$data['machineName'] = array_column($data['machineDetails'], 'machine_name');
$this->global['pageTitle'] = 'Drier Details';
$this->loadViews("factoryDieselMachineDetails", $this->global, $data, NULL);
}
public function getDieselConsumptionPivot($machineDetails, $startDate, $endDeate)