diff --git a/app/Controllers/StockController.php b/app/Controllers/StockController.php index 4e6f72a5..c7d83dc1 100644 --- a/app/Controllers/StockController.php +++ b/app/Controllers/StockController.php @@ -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)