From 11d693693b4c0fab158ce52b19f8b5c38f1d6b8e Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Fri, 14 Feb 2025 19:25:44 +0530 Subject: [PATCH 1/4] stock module latest today vadivel J 14-02-2025 --- app/Controllers/User.php | 1 + app/Models/TrpProductionModel.php | 297 ++++++++++-------- app/Views/stock/trpProductionStockDetails.php | 2 + 3 files changed, 167 insertions(+), 133 deletions(-) diff --git a/app/Controllers/User.php b/app/Controllers/User.php index f25b7b0d..5cea8b2e 100755 --- a/app/Controllers/User.php +++ b/app/Controllers/User.php @@ -1538,6 +1538,7 @@ class User extends BaseController if (isset($rs['line_items']) && count($rs['line_items']) > 0) { log_message('error', 'Processing line items' . count($rs['line_items'])); + dd($rs); for ($i = 0; $i < count($rs['line_items']); $i++) { //start insert line items $sku = $rs['line_items'][$i]['sku']; diff --git a/app/Models/TrpProductionModel.php b/app/Models/TrpProductionModel.php index c79eefdd..3b854187 100644 --- a/app/Models/TrpProductionModel.php +++ b/app/Models/TrpProductionModel.php @@ -3,6 +3,7 @@ namespace App\Models; use CodeIgniter\Model; +use Predis\Client; class TrpProductionModel extends Model { @@ -67,154 +68,184 @@ class TrpProductionModel extends Model $materialCodes = array_column($subquery, 'materialCode'); // Extracts 'materialCode' values // Convert the array of material codes to a comma-separated string - $materialCodesString = "'" . implode("','", $materialCodes) . "'"; + // $materialCodesString = "'" . implode("','", $materialCodes) . "'"; // dd($materialCodes); + + // Define your table + $builder = $this->db->table('t_trpProductionMaintenanceDetails tpmd'); - $sql = "SELECT + // Select required columns + $builder->select([ + 'tpmd.date', + 'tpmd.openingTime', + 'tpmd.closingTime', + 'tpmd.totalHours', + 'tpmd.coldStart', + 'tpmd.breakdownHours', + 'tpmd.burnerFiringHours', + 'tpmd.sandFeedingHours', + 'tpmd.workingPersonEngineers', + 'tpmd.workingPersonSupervisiors', + 'tpmd.workingPersonOperators', + 'tpmd.rollerDrivers', + 'tpmd.natureOfMaintenance', + 'tpmd.location', + 'tpmd.description', + + 'tpd.gasReceiptBg', + 'tpd.gasReceiptPg', + 'tpd.physicalGasConsumption', + 'tpd.trpPlusDrierGasConsumption', + 'tpd.trpPhysicalGasPerTon', + 'tpd.panelGasConsumption', + 'tpd.panelGasPerTon', + 'tpd.edRunningHours', + 'tpd.edProduction', + 'tpd.edUsage', + 'tpd.trpProduction', + 'tpd.trpProductionPerHour', + 'tpd.waterReceipt', + 'tpd.waterConsumption', + 'tpd.ebReading', + 'tpd.ebReadingPerUnitTon', + + 'tpwd.msSeperation', + 'tpwd.edWaste', + 'tpwd.coolerBags', + 'tpwd.edPlus20Waste', + 'tpwd.cycloneWaste', - tpmd.date, - tpmd.openingTime, - tpmd.closingTime, - tpmd.totalHours, - tpmd.coldStart, - tpmd.breakdownHours, - tpmd.burnerFiringHours, - tpmd.sandFeedingHours, - tpmd.workingPersonEngineers, - tpmd.workingPersonSupervisiors, - tpmd.workingPersonOperators, - tpmd.rollerDrivers, - tpmd.natureOfMaintenance, - tpmd.location, - tpmd.description, - - tpd.gasReceiptBg, - tpd.gasReceiptPg, - tpd.physicalGasConsumption, - tpd.trpPlusDrierGasConsumption, - tpd.trpPhysicalGasPerTon, - tpd.panelGasConsumption, - tpd.panelGasPerTon, - tpd.edRunningHours, - tpd.edProduction, - tpd.edUsage, - tpd.trpProduction, - tpd.trpProductionPerHour, - tpd.waterReceipt, - tpd.waterConsumption, - tpd.ebReading, - tpd.ebReadingPerUnitTon, - - tpwd.msSeperation, - tpwd.edWaste, - tpwd.coolerBags, - tpwd.edPlus20Waste, - tpwd.cycloneWaste, - - -- Aggregated totalGasConsumption for Coating Machine - IFNULL(tcmd.totalGasConsumption, 0) AS coatingGasConsumption, - - -- Aggregated totalGasConsumption for Drier Machine - IFNULL(tdmd.totalGasConsumption, 0) AS drierGasConsumption, - - tsu.total_kgs AS coating, - - invItems.*, - tigrdot.* - - FROM - t_trpProductionMaintenanceDetails tpmd - - JOIN - t_trpProductionDetails tpd ON tpd.date = tpmd.date - JOIN - t_trpProductionWasteDetails tpwd ON tpwd.date = tpmd.date - LEFT JOIN - t_trp_sand_use tsu ON tsu.date = tpmd.date - - -- Aggregated Coating Machine Gas Consumption - LEFT JOIN ( - SELECT date, SUM(totalGasConsumption) AS totalGasConsumption - FROM t_coatingMachineDetails - GROUP BY date - ) tcmd ON tcmd.date = tpmd.date - - -- Aggregated Drier Machine Gas Consumption - LEFT JOIN ( - SELECT date, SUM(total_gas_consumption) AS totalGasConsumption - FROM t_drierMachineDetails - GROUP BY date - ) tdmd ON tdmd.date = tpmd.date - - -- Aggregating Core Sand Reclaimed by Client - LEFT JOIN ( - SELECT - invItems.item_date_added, - SUM(CASE WHEN clients.client_name = 'ASHOK LEYLAND LIMITED (FOUNDRY DIVISION-SRIPERUMBUDUR)' THEN invItems.item_quantity ELSE 0 END) AS `ALs_crs`, - SUM(CASE WHEN clients.client_name = 'NEMAK ALUMINIUM CASTING INDIA PVT LTD' THEN invItems.item_quantity ELSE 0 END) AS `Nemak_crs`, - SUM(CASE WHEN clients.client_name = 'MADRAS ENGINEERING INDUSTRIES PRIVATE LIMITED' THEN invItems.item_quantity ELSE 0 END) AS `ME_crs`, - SUM(CASE WHEN clients.client_name = 'BRAKES INDIA PRIVATE LIMITED' THEN invItems.item_quantity ELSE 0 END) AS `BI_crs`, - SUM(CASE WHEN clients.client_name = 'KARMEN INTERNATIONAL PVT LTD' THEN invItems.item_quantity ELSE 0 END) AS `Karmen_crs` - FROM - ip_invoice_items invItems - LEFT JOIN - ip_invoices inv ON inv.invoice_id = invItems.invoice_id - LEFT JOIN - ip_clients clients ON clients.client_id = inv.client_id - WHERE - invItems.item_name = 'Core Sand Reclaimed' - OR invItems.item_name = 'Core Sand Reclaimed - Code No: 1203838' - OR invItems.item_name = 'Nemak Reclaimed Silica Sand 39-43' - AND invItems.item_date_added >= '$startDate' - AND invItems.item_date_added <= '$endDate' - GROUP BY - invItems.item_date_added - ) invItems ON invItems.item_date_added = tpmd.date - - -- Aggregating Waste Core Sand Suppliers - LEFT JOIN ( - SELECT - tigrd.CreatedDate, - SUM(CASE WHEN ts.SupplierName = 'Ashok leyland limited foundry divn-SPU' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS `ALs_wcs`, - SUM(CASE WHEN ts.SupplierName = 'Ashok leyland limited foundry divn-ENU' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS `ALe_wcs`, - SUM(CASE WHEN ts.SupplierName = 'MADRAS ENGINEERING INDUSTRIES PRIVATE LIMITED' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS `ME_wcs`, - SUM(CASE WHEN ts.SupplierName = 'SIDDHARTH INDUSTRIES' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS `SI_wcs`, - SUM(CASE WHEN ts.SupplierName = 'Caparo Engineering India Limited' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS `caparo_wcs`, - SUM(CASE WHEN ts.SupplierName = 'NEMAK ALUMINIUM CASTING INDIA PVT LTD' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS `Nemak_wcs`, - SUM(CASE WHEN ts.SupplierName = 'DR Axion India Private Limited' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS `DR_wcs` - FROM t_igr_details tigrd - LEFT JOIN t_igr_master tigm ON tigm.IGRNo = tigrd.IGRNo - LEFT JOIN t_purchaseorder_master tpom ON tpom.PONO = tigm.PONO - LEFT JOIN t_supplierdetailsn ts ON tpom.SupplierID = ts.SupplierID - WHERE - tigrd.MaterialCode IN ($materialCodesString) - AND Date(tigrd.CreatedDate) >= '$startDate' - AND Date(tigrd.CreatedDate) <= '$endDate' - GROUP BY Date(tigrd.CreatedDate) - ) tigrdot ON DATE(tigrdot.CreatedDate) = tpmd.date - - WHERE - tpmd.date >= ? - AND tpmd.date <= ? - - ORDER BY - tpmd.date ASC"; + // Aggregated gas consumption + 'IFNULL(tcmd.totalGasConsumption, 0) AS coatingGasConsumption', + 'IFNULL(tdmd.totalGasConsumption, 0) AS drierGasConsumption', + + 'tsu.total_kgs AS coating' , + + 'tigrdot.*', + 'invItems.*' + + + ]); + + // Join with other tables + $builder->join('t_trpProductionDetails tpd', 'tpd.date = tpmd.date', 'inner'); + $builder->join('t_trpProductionWasteDetails tpwd', 'tpwd.date = tpmd.date', 'inner'); + $builder->join('t_trp_sand_use tsu', 'tsu.date = tpmd.date', 'left'); + + // Subquery: Coating Machine Gas Consumption + $subquery1 = $this->db->table('t_coatingMachineDetails') + ->select('date, SUM(totalGasConsumption) AS totalGasConsumption') + ->groupBy('date') + ->getCompiledSelect(false); // Convert Query Builder to raw SQL; + + $builder->join("({$subquery1}) tcmd", 'tcmd.date = tpmd.date', 'left'); + + // Subquery: Drier Machine Gas Consumption + $subquery2 = $this->db->table('t_drierMachineDetails') + ->select('date, SUM(total_gas_consumption) AS totalGasConsumption') + ->groupBy('date') + ->getCompiledSelect(false); // Convert Query Builder to raw SQL; + + $builder->join("({$subquery2}) tdmd", 'tdmd.date = tpmd.date', 'left'); + + // Subquery: Core Sand Reclaimed by Clients + + $crsClientList = $this->db->table('ip_clients clients') + ->distinct() + ->select( 'clients.client_name') + ->join('ip_invoices inv', 'inv.client_id = clients.client_id') + ->join('ip_invoice_items invItems', 'inv.invoice_id = invItems.invoice_id') + ->whereIn('invItems.item_product_id', [81, 93]) + ->where('invItems.item_date_added >=', $startDate) + ->where('invItems.item_date_added <=', $endDate) + ->get() + ->getResultArray(); + + if(!empty($crsClientList)){ + $crsClientList = array_column($crsClientList, 'client_name'); + + // Initialize an empty array for dynamic SQL conditions + $caseStatements = []; + + // Loop through the client list and build dynamic SUM(CASE WHEN...) + foreach ($crsClientList as $client) { + // Escape column name (remove spaces and special characters) + $safeClient = str_replace(' ', '_', $client); + + // Add the condition to the array + $caseStatements[] = "SUM(CASE WHEN clients.client_name = " . $this->db->escape($client) . " THEN invItems.item_quantity ELSE 0 END) AS `$safeClient`"; + } + + // Convert array to a comma-separated string + $caseSQL = implode(', ', $caseStatements); + + + $subquery3 = $this->db->table('ip_invoice_items invItems') + ->select([ + 'invItems.*', + $caseSQL + ]) + ->join('ip_invoices inv', 'inv.invoice_id = invItems.invoice_id', 'left') + ->join('ip_clients clients', 'clients.client_id = inv.client_id', 'left') + ->whereIn('invItems.item_product_id', [81, 93]) + ->where('invItems.item_date_added >=', $startDate) + ->where('invItems.item_date_added <=', $endDate) + ->groupBy('invItems.item_date_added') + + ->getCompiledSelect(false); // Convert Query Builder to raw SQL; + + + $builder->join("({$subquery3}) invItems", 'invItems.item_date_added = tpmd.date', 'left'); + + + } + // Subquery: Waste Core Sand Suppliers + $subquery4 = $this->db->table('t_igr_details tigrd') + ->select([ + 'DATE(tigrd.CreatedDate) AS CreatedDate', // Convert CreatedDate to DATE format + "SUM(CASE WHEN ts.SupplierName = 'Ashok leyland limited foundry divn-SPU' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS ALs_wcs", + "SUM(CASE WHEN ts.SupplierName = 'Ashok leyland limited foundry divn-ENU' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS ALe_wcs", + "SUM(CASE WHEN ts.SupplierName = 'MADRAS ENGINEERING INDUSTRIES PRIVATE LIMITED' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS ME_wcs", + "SUM(CASE WHEN ts.SupplierName = 'SIDDHARTH INDUSTRIES' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS SI_wcs", + "SUM(CASE WHEN ts.SupplierName = 'Caparo Engineering India Limited' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS caparo_wcs", + "SUM(CASE WHEN ts.SupplierName = 'NEMAK ALUMINIUM CASTING INDIA PVT LTD' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS Nemak_wcs", + "SUM(CASE WHEN ts.SupplierName = 'DR Axion India Private Limited' THEN tigrd.QuantityAsPerInvoice ELSE 0 END) AS DR_wcs" + ]) + ->join('t_igr_master tigm', 'tigm.IGRNo = tigrd.IGRNo', 'left') + ->join('t_purchaseorder_master tpom', 'tpom.PONO = tigm.PONO', 'left') + ->join('t_supplierdetailsn ts', 'tpom.SupplierID = ts.SupplierID', 'left') + ->whereIn('tigrd.MaterialCode', $materialCodes) // FIXED: Now correctly formatted + ->where('tigrd.CreatedDate >=', $startDate) + ->where('tigrd.CreatedDate <=', $endDate) + ->groupBy('DATE(tigrd.CreatedDate)') + ->getCompiledSelect(false); // Convert Query Builder to raw SQL - // Execute the query - $query = $this->db->query($sql, [ $startDate, $endDate]); + // Correcting the JOIN condition + $builder->join("($subquery4) tigrdot", "CAST(tigrdot.CreatedDate AS DATE) = CAST(tpmd.date AS DATE)", 'left'); - $result = $query->getResultArray(); - return $result; + // Where conditions for main query + $builder->where('tpmd.date >=', $startDate); + $builder->where('tpmd.date <=', $endDate); + + // Order by date + $builder->orderBy('tpmd.date', 'ASC'); + + // Execute the query + $query = $builder->get(); + $result = $query->getResultArray(); + + return $result; + } diff --git a/app/Views/stock/trpProductionStockDetails.php b/app/Views/stock/trpProductionStockDetails.php index 1bf9c3f0..40294fed 100644 --- a/app/Views/stock/trpProductionStockDetails.php +++ b/app/Views/stock/trpProductionStockDetails.php @@ -484,6 +484,8 @@ $timeOtions[] = "12:00 AM"; $trpProductionDetail) { From cbf9c4e42e4df273ca0c04e57ad5e78f743b383d Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Sat, 15 Feb 2025 10:26:26 +0530 Subject: [PATCH 2/4] stock module latest today vadivel J 15-02-2025 --- ., | 0 app/Views/stock/trpProductionStockDetails.php | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) delete mode 100644 ., diff --git a/., b/., deleted file mode 100644 index e69de29b..00000000 diff --git a/app/Views/stock/trpProductionStockDetails.php b/app/Views/stock/trpProductionStockDetails.php index 40294fed..73604cba 100644 --- a/app/Views/stock/trpProductionStockDetails.php +++ b/app/Views/stock/trpProductionStockDetails.php @@ -485,7 +485,9 @@ $timeOtions[] = "12:00 AM"; $trpProductionDetail) { @@ -767,7 +769,7 @@ $timeOtions[] = "12:00 AM"; - From cc39f48ae54eebfa7f2450c0c77d2b51934392e8 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Sat, 15 Feb 2025 15:52:51 +0530 Subject: [PATCH 3/4] stock module latest today vadivel J 15-02-2025 --- app/Models/TrpProductionModel.php | 18 ++++++++++++------ app/Views/stock/trpProductionStockDetails.php | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/Models/TrpProductionModel.php b/app/Models/TrpProductionModel.php index 3b854187..e9d85b5d 100644 --- a/app/Models/TrpProductionModel.php +++ b/app/Models/TrpProductionModel.php @@ -54,18 +54,19 @@ class TrpProductionModel extends Model public function trpProductionDetails($startDate,$endDate){ + $data =[]; - - - + // Subquery definition $subquery = $this->db->table('t_materialmaster') ->select('materialCode') - ->where('Category', 'waste core') + ->where('Category = 328') ->get() ->getResultArray(); $materialCodes = array_column($subquery, 'materialCode'); // Extracts 'materialCode' values + + // dd($this->db->getLastQuery()); // Convert the array of material codes to a comma-separated string // $materialCodesString = "'" . implode("','", $materialCodes) . "'"; @@ -185,7 +186,7 @@ class TrpProductionModel extends Model $subquery3 = $this->db->table('ip_invoice_items invItems') ->select([ - 'invItems.*', + 'invItems.item_date_added', $caseSQL ]) ->join('ip_invoices inv', 'inv.invoice_id = invItems.invoice_id', 'left') @@ -205,6 +206,7 @@ class TrpProductionModel extends Model + $materialCodes = ! empty($materialCodes) ? $materialCodes : [''] ; // Subquery: Waste Core Sand Suppliers $subquery4 = $this->db->table('t_igr_details tigrd') @@ -221,7 +223,7 @@ class TrpProductionModel extends Model ->join('t_igr_master tigm', 'tigm.IGRNo = tigrd.IGRNo', 'left') ->join('t_purchaseorder_master tpom', 'tpom.PONO = tigm.PONO', 'left') ->join('t_supplierdetailsn ts', 'tpom.SupplierID = ts.SupplierID', 'left') - ->whereIn('tigrd.MaterialCode', $materialCodes) // FIXED: Now correctly formatted + ->whereIn('tigrd.MaterialCode', $materialCodes) ->where('tigrd.CreatedDate >=', $startDate) ->where('tigrd.CreatedDate <=', $endDate) ->groupBy('DATE(tigrd.CreatedDate)') @@ -237,9 +239,13 @@ class TrpProductionModel extends Model $builder->where('tpmd.date >=', $startDate); $builder->where('tpmd.date <=', $endDate); + + // Order by date $builder->orderBy('tpmd.date', 'ASC'); + + // Execute the query $query = $builder->get(); $result = $query->getResultArray(); diff --git a/app/Views/stock/trpProductionStockDetails.php b/app/Views/stock/trpProductionStockDetails.php index 73604cba..31f5cc6f 100644 --- a/app/Views/stock/trpProductionStockDetails.php +++ b/app/Views/stock/trpProductionStockDetails.php @@ -485,8 +485,8 @@ $timeOtions[] = "12:00 AM"; From 255aba3cb3cb87cdcd3833dd4229702a92ea84e1 Mon Sep 17 00:00:00 2001 From: vadivelJ96 Date: Sat, 15 Feb 2025 18:02:36 +0530 Subject: [PATCH 4/4] stock module latest today vadivel J 15-02-2025 --- app/Models/TrpProductionModel.php | 12 ++++++++---- app/Views/stock/trpProductionStockDetails.php | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/Models/TrpProductionModel.php b/app/Models/TrpProductionModel.php index e9d85b5d..8cf96e23 100644 --- a/app/Models/TrpProductionModel.php +++ b/app/Models/TrpProductionModel.php @@ -151,6 +151,8 @@ class TrpProductionModel extends Model $builder->join("({$subquery2}) tdmd", 'tdmd.date = tpmd.date', 'left'); + + // Subquery: Core Sand Reclaimed by Clients $crsClientList = $this->db->table('ip_clients clients') @@ -164,7 +166,7 @@ class TrpProductionModel extends Model ->get() ->getResultArray(); - if(!empty($crsClientList)){ + $crsClientList = array_column($crsClientList, 'client_name'); // Initialize an empty array for dynamic SQL conditions @@ -202,11 +204,13 @@ class TrpProductionModel extends Model $builder->join("({$subquery3}) invItems", 'invItems.item_date_added = tpmd.date', 'left'); - } + + + - - $materialCodes = ! empty($materialCodes) ? $materialCodes : [''] ; + $materialCodes = ! empty($materialCodes) ? $materialCodes : ['600374','600422','600434']; + // Subquery: Waste Core Sand Suppliers $subquery4 = $this->db->table('t_igr_details tigrd') diff --git a/app/Views/stock/trpProductionStockDetails.php b/app/Views/stock/trpProductionStockDetails.php index 31f5cc6f..9c863f62 100644 --- a/app/Views/stock/trpProductionStockDetails.php +++ b/app/Views/stock/trpProductionStockDetails.php @@ -485,7 +485,7 @@ $timeOtions[] = "12:00 AM";