diff --git a/app/Controllers/StockController.php b/app/Controllers/StockController.php index faab92de..952f5bc0 100644 --- a/app/Controllers/StockController.php +++ b/app/Controllers/StockController.php @@ -129,7 +129,6 @@ class StockController extends BaseController $data['month'] = $formattedDate; return $this->loadViews("CoatingMachineDetail", $this->global, $data, NULL); - } public function addNewCoatingMachineDetails() @@ -194,7 +193,6 @@ class StockController extends BaseController // Set flashdata for success message return redirect()->to("/coatingMachineDetails?month=$month") ->with('success', $message1 . " " . $message2 . " " . $message3); - } catch (\Exception $error) { $this->db->transRollback(); return redirect()->back()->with('error', ' ' . $error->getMessage()); @@ -239,7 +237,6 @@ class StockController extends BaseController $message2 = 'And updated gas stock consumption.'; $message3 = "Warning..!! Kindly Update the next subsequent month Gas Stock If older month Gas Stock Updated..!!"; - } // Commit the transaction if all queries succeed @@ -255,7 +252,6 @@ class StockController extends BaseController // Set flashdata for success message return redirect()->to("/coatingMachineDetails?month=$month") ->with('success', $message1 . " " . $message2 . " " . $message3); - } else { throw new \Exception('Failed to update Coating machine details.'); } @@ -263,11 +259,6 @@ class StockController extends BaseController $this->db->transRollback(); return redirect()->back()->with('error', ' ' . $error->getMessage()); } - - - - - } public function deleteCoatingMachineDetails() @@ -316,9 +307,8 @@ class StockController extends BaseController $materialCodes = $this->rawmaterialdetails_model->getAllSilicaRawMaterialCode(); if (!empty($materialCodes)) { - $data['igrDetails'] = $this->inwardGateRegister_model->findIgrDetailsForIncomingSilicaSand($materialCodes, $month,$remark); - - } else { + $data['igrDetails'] = $this->inwardGateRegister_model->findIgrDetailsForIncomingSilicaSand($materialCodes, $month, $remark); + } else { $data['igrDetails'] = []; } @@ -331,7 +321,6 @@ class StockController extends BaseController $data['remark'] = $remark; return $this->loadViews("incomingSilicaSandDetails", $this->global, $data, NULL); - } public function updateIncomingSilicaSandDetails() @@ -345,7 +334,7 @@ class StockController extends BaseController $updates = []; foreach ($incomingSilicaSandDetailsData as $data) { - + $id = $data['id']; $dbData = [ @@ -379,84 +368,81 @@ class StockController extends BaseController ]; - + $resultExists = $this->incomingSilicaSandDetails_model ->where('id', $id) ->first(); - if(!empty($resultExists)){ - $dbData['id'] = $resultExists['id']; - $updates[] = $dbData ; - }else{ - $inserts[] = $dbData; - } - - + if (!empty($resultExists)) { + $dbData['id'] = $resultExists['id']; + $updates[] = $dbData; + } else { + $inserts[] = $dbData; + } } - if(!empty($updates)){ - $updated = $this->incomingSilicaSandDetails_model->updateBatch($updates,'id'); + if (!empty($updates)) { + $updated = $this->incomingSilicaSandDetails_model->updateBatch($updates, 'id'); } - if(!empty($inserts)){ + if (!empty($inserts)) { $inserted = $this->incomingSilicaSandDetails_model->insertBatch($inserts); } echo "Data Saved Successfully"; - } - public function updateLabReport(){ + public function updateLabReport() + { - $postData = $this->request->getPost(); + $postData = $this->request->getPost(); - $id = $postData['id']; + $id = $postData['id']; - $dbData = [ - 'igrNo_fk' =>$postData['igrNo'], - 'materialCode' => $postData['materialCode'], - '_10' => $postData['10Mm'], - '_20' => $postData['20Mm'], - '_30' => $postData['30Mm'], - '_40' => $postData['40Mm'], - '_50' => $postData['50Mm'], - '_70' => $postData['70Mm'], - '_100' => $postData['100Mm'], - '_140' => $postData['140Mm'], - '_200' => $postData['200Mm'], - '_300' => $postData['300Mm'], - 'pan' => $postData['pan'], - 'total' => $postData['total'], - 'plus20loss' => $postData['plus20Loss'], - 'plus30Loss' => $postData['plus30Loss'], - 'moistureSpec' => $postData['moistureSpec'], - 'moistureActual' => $postData['moistureActual'], - 'moistureLoss' => $postData['moistureLoss'], - 'moistureLossQty'=> $postData['moistureLossQty'], - 'sieveLossQty' => $postData['sieveLossQty'], - 'salableQty' => $postData['salableQty'], + $dbData = [ + 'igrNo_fk' => $postData['igrNo'], + 'materialCode' => $postData['materialCode'], + '_10' => $postData['10Mm'], + '_20' => $postData['20Mm'], + '_30' => $postData['30Mm'], + '_40' => $postData['40Mm'], + '_50' => $postData['50Mm'], + '_70' => $postData['70Mm'], + '_100' => $postData['100Mm'], + '_140' => $postData['140Mm'], + '_200' => $postData['200Mm'], + '_300' => $postData['300Mm'], + 'pan' => $postData['pan'], + 'total' => $postData['total'], + 'plus20loss' => $postData['plus20Loss'], + 'plus30Loss' => $postData['plus30Loss'], + 'moistureSpec' => $postData['moistureSpec'], + 'moistureActual' => $postData['moistureActual'], + 'moistureLoss' => $postData['moistureLoss'], + 'moistureLossQty' => $postData['moistureLossQty'], + 'sieveLossQty' => $postData['sieveLossQty'], + 'salableQty' => $postData['salableQty'], - ]; + ]; - $resultExists = $this->incomingSilicaSandDetails_model - ->where('id', $id) - ->first(); - if($resultExists){ + $resultExists = $this->incomingSilicaSandDetails_model + ->where('id', $id) + ->first(); + if ($resultExists) { $updated = $this->incomingSilicaSandDetails_model - ->update($id,$dbData); - }else{ + ->update($id, $dbData); + } else { $updated = $this->incomingSilicaSandDetails_model - ->insert($dbData); + ->insert($dbData); } - - if($updated){ - return redirect()->back()->with('success','Data Saved Successfully..!!'); - }else{ - return redirect()->back()->with('error','Error Saving Data..!!'); - } - + + if ($updated) { + return redirect()->back()->with('success', 'Data Saved Successfully..!!'); + } else { + return redirect()->back()->with('error', 'Error Saving Data..!!'); + } } @@ -545,10 +531,8 @@ class StockController extends BaseController $distinctMaterialCodes[] = $result[$index]['materialCode']; } $bagMaterials = $this->rawmaterialdetails_model->getSelectedBagMaterialCode($distinctMaterialCodes); - } else { $bagMaterials = $this->rawmaterialdetails_model->getAllBagMaterialCode(); - } @@ -576,7 +560,6 @@ class StockController extends BaseController $data['month'] = $formattedDate; return $this->loadViews("bagStockDetails", $this->global, $data, NULL); - } public function updateBagStockDetails() @@ -613,11 +596,9 @@ class StockController extends BaseController if (empty($resultExists)) { $inserts[] = $dbData; - } else { $dbData['id'] = $resultExists['id']; $updates[] = $dbData; - } } @@ -634,11 +615,9 @@ class StockController extends BaseController echo "Data Updated Successfully"; return; } - } echo "Data Saved Successfully"; - } @@ -679,7 +658,6 @@ class StockController extends BaseController $data['month'] = $formattedDate; return $this->loadViews("dustAndRoughStockDetails", $this->global, $data, NULL); - } public function updateDustAndRoughStockDetails() @@ -713,7 +691,6 @@ class StockController extends BaseController if (empty($resultExists)) { $inserts[] = $dbData; - } else { $updates[] = $dbData; } @@ -736,7 +713,6 @@ class StockController extends BaseController } echo "Data Saved Successfully"; - } @@ -825,11 +801,8 @@ class StockController extends BaseController $distinctMaterialCodes[] = $result[$index]['materialCode']; } $resinMaterials = $this->rawmaterialdetails_model->getSelectedResinMaterialCode($distinctMaterialCodes); - } else { $resinMaterials = $this->rawmaterialdetails_model->getAllResinMaterialCode(); - - } @@ -855,7 +828,6 @@ class StockController extends BaseController $data['month'] = $formattedDate; return $this->loadViews("resinStockDetails", $this->global, $data, NULL); - } public function updateResinStockDetails() @@ -898,7 +870,6 @@ class StockController extends BaseController $dbData['id'] = $resultExists['id']; $updates[] = $dbData; } - } @@ -919,7 +890,6 @@ class StockController extends BaseController } echo "Data Saved Successfully"; - } @@ -960,9 +930,10 @@ class StockController extends BaseController $endDate = date("Y-m-t", strtotime($startDate)); $data['gasStockDetails'] = $this->gasStockDetails_model - ->select('t_gasStockDetails.*, - t_drierMachineDetails.total_gas_consumption AS drierMachineGasConsumption, - t_drierMachineDetails.sand_dried_qty AS sandDried, + ->select( + 't_gasStockDetails.*, + drier_summary.drierMachineGasconsumption AS drierMachineGasConsumption, + drier_summary.driedSand AS sandDried, coating_summary.coatingMachineGasconsumption, coating_summary.coatedSand' ) @@ -981,10 +952,15 @@ class StockController extends BaseController 'left' ) ->join( - 't_drierMachineDetails', - 't_drierMachineDetails.date = t_gasStockDetails.date - AND t_drierMachineDetails.date >= ' . $this->db->escape($startDate) . ' - AND t_drierMachineDetails.date <= ' . $this->db->escape($endDate), + '(SELECT date, + SUM(total_gas_consumption) AS drierMachineGasconsumption, + SUM(sand_dried_qty) AS driedSand + FROM t_drierMachineDetails + WHERE date >= ' . $this->db->escape($startDate) . ' + AND date <= ' . $this->db->escape($endDate) . ' + GROUP BY date + ) AS drier_summary', + 'drier_summary.date = t_gasStockDetails.date', 'left' ) @@ -1108,8 +1084,6 @@ class StockController extends BaseController $updates[] = $result; - - } if (!empty($updates)) { @@ -1118,7 +1092,6 @@ class StockController extends BaseController } else { return 0; } - } else { @@ -1181,8 +1154,6 @@ class StockController extends BaseController ]; $opening = $balanceStock; - - } if (!empty($inserts)) { @@ -1191,7 +1162,6 @@ class StockController extends BaseController } else { return 0; } - } } @@ -1256,7 +1226,11 @@ class StockController extends BaseController $data['timeDropdown'] = $this->generateTimeOptions(); $data['supplierData'] = $this->supplier_model->supplierlisting(); - $data['drierDetails'] = $this->drierMachineDetails_model->where('date >=', $data['startDate'])->where('date <=', $data['endDate'])->findAll(); + $data['drierDetails'] = $this->drierMachineDetails_model->where('date >=', $data['startDate']) + ->where('date <=', $data['endDate']) + ->orderBy('date','asc') + ->findAll(); + if (!count($data['drierDetails'])) { //insert empty data $tempInsert = []; @@ -1265,7 +1239,10 @@ class StockController extends BaseController } $this->drierMachineDetails_model->insertBatch($tempInsert); - $data['drierDetails'] = $this->drierMachineDetails_model->where('date >=', $data['startDate'])->where('date <=', $data['endDate'])->findAll(); + $data['drierDetails'] = $this->drierMachineDetails_model->where('date >=', $data['startDate']) + ->where('date <=', $data['endDate']) + ->orderBy('date','asc') + ->findAll(); } $data['datefordropdown'] = $currentMonth; @@ -1279,11 +1256,34 @@ class StockController extends BaseController public function addOrEditdrierMachineDetails() { + $drierData = []; $drierData = json_decode($this->request->getPost('drierData'), true); + if (empty($drierData)) { - echo "No data received."; - return; + $additionalEntry = $this->request->getPost(); + if (!empty($additionalEntry)) { + $drierData[] = [ + 'Date' => $this->convertToDateWithFlexibleFormats($additionalEntry['Date'], ["d-m-Y", "Y-m-d", "m/d/Y", "m-d-Y"], "Y-m-d"), + 'Drier On Time' => $additionalEntry['Drier_On_Time'], + 'Drier Off Time' => $additionalEntry['Drier_Off_Time'], + 'Running Hrs' => $additionalEntry['Running_Hrs'], + 'Supplier Name' => $additionalEntry['Supplier_Name'], + 'i/p Sand Moisture(%)' => $additionalEntry['i/p_Sand_Moisture(%)'], + 'Tot Gas Consumption' => $additionalEntry['Tot_Gas_Consumption'], + 'Gas Per Ton' => $additionalEntry['Gas_Per_Ton'], + 'i/p Sand Qty' => $additionalEntry['i/p_Sand_Qty'], + 'Moisture Loss Qty' => $additionalEntry['Moisture_Loss_Qty'], + 'Sand Dried Qty' => $additionalEntry['Sand_Dried_Qty'], + 'Qty Per Hrs' => $additionalEntry['Qty_Per_Hrs'], + 'Dust Qty' => $additionalEntry['Dust_Qty'], + 'Customer Name' => $additionalEntry['Customer_Name'] + ]; + } else { + + echo "No data received."; + return; + } } $message1 = ''; @@ -1293,14 +1293,14 @@ class StockController extends BaseController try { foreach ($drierData as $row) { $data = [ - 'date' => DateTime::createFromFormat('d-m-Y', $row['Date'])->format('Y-m-d'), + 'date' => $this->convertToDateWithFlexibleFormats($row['Date'], ["d-m-Y", "Y-m-d", "m/d/Y", "m-d-Y"], "Y-m-d"), 'drier_on_time' => $row['Drier On Time'], 'drier_off_time' => $row['Drier Off Time'], 'drier_running_hours' => $row['Running Hrs'], 'supplier_name' => $row['Supplier Name'], 'input_sand_moisture' => $row['i/p Sand Moisture(%)'], 'total_gas_consumption' => $row['Tot Gas Consumption'], - 'gas_per_ton' => $row['Gas Pre Ton'], + 'gas_per_ton' => $row['Gas Per Ton'], 'input_sand_qty' => $row['i/p Sand Qty'], 'moisture_loss_qty' => $row['Moisture Loss Qty'], 'sand_dried_qty' => $row['Sand Dried Qty'], @@ -1310,7 +1310,7 @@ class StockController extends BaseController ]; // Check if a row with the same date already exists - $existingRow = $this->drierMachineDetails_model->where('date', $data['date'])->first(); + $existingRow = $this->drierMachineDetails_model->where('id', $row['id'] ?? '')->first(); $inserts = []; $updates = []; @@ -1330,7 +1330,6 @@ class StockController extends BaseController } $data['id'] = $existingRow['id']; $updates[] = $data; - } else { // If not, insert a new row //before inserting the row update gas stock @@ -1340,7 +1339,6 @@ class StockController extends BaseController $inserts[] = $data; - } if (!empty($inserts)) { @@ -1358,21 +1356,47 @@ class StockController extends BaseController if ($this->db->transStatus() === false) { throw new \Exception('Transaction failed due to database error.'); } - } $this->db->transCommit(); - echo "Data successfully saved. $message1"; - } catch (\Exception $e) { + + if (!empty($additionalEntry)) { + return redirect()->back()->with('success', " Data Saved Successfully..!!"); + } + + echo "Data saved successfully . $message1"; + + + } catch (\Exception $e) { // Rollback the transaction on any failure $this->db->transRollback(); echo "Failed to save/Update data: " . $e->getMessage(); } - - - } + + function convertToDateWithFlexibleFormats($dateInput, array $inputFormats, string $outputFormat): ?string + { + // If it's already a DateTime object, just format it + if ($dateInput instanceof DateTime) { + return $dateInput->format($outputFormat); + } + + // If it's a string, attempt to parse it + if (is_string($dateInput)) { + foreach ($inputFormats as $format) { + $date = DateTime::createFromFormat($format, $dateInput); + if ($date) { + return $date->format($outputFormat); + } + } + } + + return $dateInput; + } + + + public function factoryVehicleDieselDetails() { $currentMonth = $this->request->getPost('month') ? $this->request->getPost('month') : date('M-Y'); @@ -1437,7 +1461,6 @@ class StockController extends BaseController $this->global['pageTitle'] = 'Drier Details'; $this->loadViews("factoryDieselMachineDetails", $this->global, $data, NULL); - } public function getDieselConsumptionPivot($machineDetails, $startDate, $endDeate) @@ -1514,7 +1537,6 @@ class StockController extends BaseController if ($row['machine_id'] == 0) { // Summary data: if machine_id is 0, it indicates summary data. This distinction is used because these records will be stored in a separate table. $this->factoryVehicleDieselStockSummary_model->where('date', $row['date'])->set($row)->update(); - } else { // Diesel - factory vehicle data : @@ -1524,14 +1546,11 @@ class StockController extends BaseController } else { $this->factoryVehicleDieselDetails_model->insert($row); } - } - } echo "Data successfully saved."; - } @@ -1573,7 +1592,6 @@ class StockController extends BaseController $this->global['pageTitle'] = 'Power Consumption Details'; $this->loadViews("powerConsumptionDetails", $this->global, $data, NULL); - } public function getElectricConsumptionPivot($machineDetails, $startDate, $endDeate) @@ -1654,8 +1672,5 @@ class StockController extends BaseController echo "Data successfully saved."; - } - - } diff --git a/app/Models/Ipinvoice_model.php b/app/Models/Ipinvoice_model.php index ad7999cf..234abd3c 100755 --- a/app/Models/Ipinvoice_model.php +++ b/app/Models/Ipinvoice_model.php @@ -348,7 +348,7 @@ class Ipinvoice_model extends Model ->join('ip_invoice_items b', 'a.invoice_id = b.invoice_id', 'left') ->join('ip_invoice_item_amounts c', 'b.item_id = c.item_id', 'left') ->where('a.invoice_date_created >=', $fiscalYearStartCurrent) - ->where('a.invoice_status_id', 2) + ->whereIn('a.invoice_status_id', [2,5]) ->groupBy("DATE_FORMAT(a.invoice_date_created, '%b')") ->orderBy('MONTH(a.invoice_date_created)'); @@ -360,7 +360,7 @@ class Ipinvoice_model extends Model ->join('ip_invoice_item_amounts c', 'b.item_id = c.item_id', 'left') ->where('a.invoice_date_created >=', $fiscalYearStartLast) ->where('a.invoice_date_created <', $fiscalYearStartCurrent) - ->where('a.invoice_status_id', 2) + ->whereIn('a.invoice_status_id', [2,5]) ->groupBy("DATE_FORMAT(a.invoice_date_created, '%b')") ->orderBy('MONTH(a.invoice_date_created)'); @@ -425,7 +425,7 @@ class Ipinvoice_model extends Model ->join('ip_tax_rates igst', 'igst.tax_rate_id = iit.igst_item_tax_rate_id', 'left') ->join('ip_tax_rates tcs', 'tcs.tax_rate_id = tc.tax_rate_id', 'left') ->where('icf.invoice_custom_fieldid', $vehicleCustomFieldId) - ->where('ii.invoice_status_id', 2) + ->whereIn('ii.invoice_status_id', [2,5]) ->where('ii.invoice_date_created', date('Y-m-d')) ->groupBy('ii.invoice_number, iit.item_description') ->orderBy('ii.invoice_number'); diff --git a/app/Views/drierMachineDetails.php b/app/Views/drierMachineDetails.php index 2f3590de..d4e8b61c 100644 --- a/app/Views/drierMachineDetails.php +++ b/app/Views/drierMachineDetails.php @@ -1,5 +1,3 @@ - - @@ -35,7 +33,7 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y'); width: auto; border-collapse: collapse; border-spacing: 0; - white-space:nowrap; + white-space: nowrap; } .fht-table th, @@ -160,28 +158,26 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y'); height: 20px; } - - #drierTable th:nth-child(1) { - position: sticky; - left: 0; - background-color: #00a65a; - z-index: 2; - border-right: 2px solid #ddd; - color: #ffffff; -} - -#drierTable td:nth-child(1) { - position: sticky; - left: 0; - background-color: #ffffff; - z-index: 2; - border-right: 2px solid #ddd; - color: #0e0b0b; -} + #drierTable th:nth-child(1) { + position: sticky; + left: 0; + background-color: #00a65a; + z-index: 2; + border-right: 2px solid #ddd; + color: #ffffff; + } + #drierTable td:nth-child(1) { + position: sticky; + left: 0; + background-color: #ffffff; + z-index: 2; + border-right: 2px solid #ddd; + color: #0e0b0b; + }
@@ -192,16 +188,16 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y');
-
+
- +
@@ -216,189 +212,202 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y');
- - -
-
- -
- - -
-
- -
-
- +
+ - - -
- - - - - - - - - - - - - - - - - - - - - - - - - + +
+
DateDrier On TimeDrier Off TimeRunning HrsSupplier Namei/p Sand Moisture(%)Tot Gas ConsumptionGas Pre Toni/p Sand QtyMoisture Loss QtySand Dried QtyQty Per HrsDust QtyCustomer Name
+ + - format('Y-m-d'); - $currentDate = date('Y-m-d'); - if ($date === $currentDate) { echo 'style="background: #cef0ad;"'; } - ?> - > - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + format('Y-m-d'); + $currentDate = date('Y-m-d'); + if ($date === $currentDate) { + echo 'style="background: #cef0ad;"'; + } + ?>> + + + - -
format('d-m-Y'); ?> - - DateDrier On TimeDrier Off TimeRunning HrsSupplier Namei/p Sand Moisture(%)Tot Gas ConsumptionGas Per Toni/p Sand QtyMoisture Loss QtySand Dried QtyQty Per HrsDust QtyCustomer Name - - - - - - - - - - - - - - - - - - - - - - - -
format('d-m-Y'); ?>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
+ + -
-
- + +
+ +
+
+ +
-
- +
@@ -424,16 +433,16 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y');
@@ -467,99 +476,112 @@ $datefordropdown = format_date($datefordropdown, 0, 'M-Y');