diff --git a/app/Models/Inwardgateregister_model.php b/app/Models/Inwardgateregister_model.php index dfda37a3..b7e1fb70 100755 --- a/app/Models/Inwardgateregister_model.php +++ b/app/Models/Inwardgateregister_model.php @@ -6,7 +6,7 @@ use CodeIgniter\Model; class Inwardgateregister_model extends Model { - + function updatefile($bill, $Picture, $oldfile) { @@ -21,9 +21,10 @@ class Inwardgateregister_model extends Model $afftectedRows = $this->db->affectedRows(); return $afftectedRows; } - function getAdditionalIGRFile($igr){ + function getAdditionalIGRFile($igr) + { $builder = $this->db->table('t_inwardgateregister_fileupload')->select('*') - ->where('IGRNO', $igr); + ->where('IGRNO', $igr); $query = $builder->get(); return $query->getResult(); } @@ -40,12 +41,12 @@ class Inwardgateregister_model extends Model { $arr = array('Isactive' => 0); $this->db->table('t_inwardgateregister_fileupload') - ->where('BillNo', $fileid) - ->update($arr); + ->where('BillNo', $fileid) + ->update($arr); $aff = $this->db->affectedRows(); return $aff > 0 ? true : false; } - + /*------------------------------------------------------------*/ function addMaterialStockHistory($MaterialstockHistoryadd) @@ -86,7 +87,7 @@ class Inwardgateregister_model extends Model ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') ->join('t_inwardgateregister_fileupload fileup', ' igr.IGRNO = fileup.IGRNO', 'left') ->join('t_supplierdetailsn` sup', 'PO.SupplierID = sup.SupplierID') - ->orderBy('igr.IGRID','desc') + ->orderBy('igr.IGRID', 'desc') ->groupBy('igr.IGRNO', 'desc'); $query = $builder->get(); $result = $query->getResult(); @@ -136,10 +137,10 @@ class Inwardgateregister_model extends Model ->join('t_ogr_master OGM ', 'POM.PONO = OGM.PONO_INV', 'left') // ->where('POM.POType !=', SERVICE) // due to client requirements - he wants to remove the conidition. ->where('POM.Status', PO_RELEASED) - ->orWhere('POM.Status',REQITEM_Emergency_PO_CREATED) - ->orWhere('POM.Status',IGR_CREATED) - ->orWhere('POM.Status', IGR_DRAFT ) - ->where( 'POM.IsOpenOrder', 1) + ->orWhere('POM.Status', REQITEM_Emergency_PO_CREATED) + ->orWhere('POM.Status', IGR_CREATED) + ->orWhere('POM.Status', IGR_DRAFT) + ->where('POM.IsOpenOrder', 1) ->orWhere('POM.Status', MRIR_CREATED) ->orWhere('POM.Status', MRIR_APPROVED) ->orWhere('POM.Status', OGR_COMPLETE) @@ -169,25 +170,26 @@ class Inwardgateregister_model extends Model return $temp; } - public function checkdriverMobile($mobile,$driverName) { + public function checkdriverMobile($mobile, $driverName) + { $builder = $this->db->table('t_igr_master') ->distinct() ->select('DriverMobileNumber') ->like('DriverMobileNumber', $mobile); - if($driverName){ - $builder->where('DriverName', $driverName); - } - + if ($driverName) { + $builder->where('DriverName', $driverName); + } - $query = $builder->get(); - $temparr[] = ''; - foreach ($query->getResult() as $arr) { - $temparr[] = $arr->DriverMobileNumber; - } - // echo $this->db->getLastQuery()->getQuery();die; - $temp['suggestions'] = $temparr; - - return $temp; + + $query = $builder->get(); + $temparr[] = ''; + foreach ($query->getResult() as $arr) { + $temparr[] = $arr->DriverMobileNumber; + } + // echo $this->db->getLastQuery()->getQuery();die; + $temp['suggestions'] = $temparr; + + return $temp; } function viewpurchaseorder($PO) @@ -205,7 +207,7 @@ class Inwardgateregister_model extends Model $query = $this->db->query($subQuery, [$PO]); - + return $query->getResult(); /* @@ -219,49 +221,52 @@ class Inwardgateregister_model extends Model $result = $query->getResult(); return $result; */ } - - public function igr_history($hsty_arr) { - - $keysToRemove = ["UpdateBY","UpdateBy", "MaterialRcvdDate", "DeliveryChellanDate"]; - + + public function igr_history($hsty_arr) + { + + $keysToRemove = ["UpdateBY", "UpdateBy", "MaterialRcvdDate", "DeliveryChellanDate"]; + foreach ($keysToRemove as $key) { if (isset($hsty_arr[$key])) { unset($hsty_arr[$key]); } } - + $builder = $this->db->table('t_igr_history'); $builder->insert($hsty_arr); return $this->db->insertID(); } - function get_igr_history($col,$IGR,$IGRITEM = null) + function get_igr_history($col, $IGR, $IGRITEM = null) { $builder = $this->db->table('t_igr_history Hist') - ->select("Hist.*") - ->where('Hist.field', $col); + ->select("Hist.*") + ->where('Hist.field', $col); - if ($IGR) { - $builder->where('Hist.IGR_No', $IGR); - } + if ($IGR) { + $builder->where('Hist.IGR_No', $IGR); + } - if ($IGRITEM !== null) { - $builder->where('Hist.IGRItem_No', $IGRITEM); - } + if ($IGRITEM !== null) { + $builder->where('Hist.IGRItem_No', $IGRITEM); + } - $builder->orderBy('Hist.history_dated', 'DESC'); - $builder->limit(1); - $query = $builder->get(); - $result = $query->getRow(); - return $result; + $builder->orderBy('Hist.history_dated', 'DESC'); + $builder->limit(1); + $query = $builder->get(); + $result = $query->getRow(); + return $result; } - function get_igr_master_for_history($igr_no) { + function get_igr_master_for_history($igr_no) + { return $this->db->table('t_igr_master Master')->where('Master.IGRNO', $igr_no)->get()->getRow(); } - - function get_igr_child_for_history($igr_no, $igr_item_no) { + + function get_igr_child_for_history($igr_no, $igr_item_no) + { $builder = $this->db->table('t_igr_details Child'); // Select only the required field if ($igr_no) { $builder->where('Child.IGRNO', $igr_no); @@ -293,34 +298,34 @@ class Inwardgateregister_model extends Model $result = []; if ($YesIAmAffected > 0) { $result = $this->db->table('t_igr_master') - ->select('IGRNO') - ->orderBy('CreatedDate', 'desc') - ->get() - ->getRow(); + ->select('IGRNO') + ->orderBy('CreatedDate', 'desc') + ->get() + ->getRow(); // $result->IGRNO; } $igrno = ($YesIAmAffected && !empty($result)) ? $result->IGRNO : ''; - return $igrno; - } + return $igrno; + } function addigrD($igrD) { $this->db->transStart(); - $builder = $this->db->table('t_igr_details'); + $builder = $this->db->table('t_igr_details'); $builder->insert($igrD); - $aff_row = $this->db->affectedRows(); - log_message('error', 'addigrD Query: ' . $this->db->getLastQuery()->getQuery()); - $this->db->transComplete(); - + $aff_row = $this->db->affectedRows(); + log_message('error', 'addigrD Query: ' . $this->db->getLastQuery()->getQuery()); + $this->db->transComplete(); + $result = $this->db->table('t_igr_details') - ->select('IGRItemNo') - ->orderBy('CreatedDate', 'desc') - ->get() - ->getRow(); + ->select('IGRItemNo') + ->orderBy('CreatedDate', 'desc') + ->get() + ->getRow(); $res = ($aff_row > 0) ? $result->IGRItemNo : 0; - return $res; + return $res; } @@ -371,40 +376,40 @@ class Inwardgateregister_model extends Model return $result; } function ViewigrListing_old() - { + { - // $builder = $this->db->table('t_igr_master igr') - // ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName') - // ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') - // ->join('t_supplierdetailsn` sup', 'PO.SupplierID = sup.SupplierID') + // $builder = $this->db->table('t_igr_master igr') + // ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName') + // ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') + // ->join('t_supplierdetailsn` sup', 'PO.SupplierID = sup.SupplierID') // ->join('t_transporter` trans', 'igr.TransporterId = trans.id' , 'left') - // ->where('igr.IGRStatus !=', MRIR_CREATED) + // ->where('igr.IGRStatus !=', MRIR_CREATED) // ->orderBy('igr.CreatedDate', 'desc'); $builder = $this->db->table('t_igr_details igr_details') - ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName,item.MaterialName, igr_details.QuantityAsPerInvoice as ReceivedQuantity , igr_details.NetWeight as NetWeight') + ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName,item.MaterialName, igr_details.QuantityAsPerInvoice as ReceivedQuantity , igr_details.NetWeight as NetWeight') ->join('t_igr_master igr', 'igr_details.IGRNo = igr.IGRNo') - ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') - ->join('t_supplierdetailsn` sup', 'PO.SupplierID = sup.SupplierID') - ->join('t_transporter` trans', 'igr.TransporterId = trans.id' , 'left') - ->join('t_materialmaster` item', 'igr_details.MaterialCode = item.MaterialCode' , 'left') - ->where('igr.IGRStatus !=', MRIR_CREATED) + ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') + ->join('t_supplierdetailsn` sup', 'PO.SupplierID = sup.SupplierID') + ->join('t_transporter` trans', 'igr.TransporterId = trans.id', 'left') + ->join('t_materialmaster` item', 'igr_details.MaterialCode = item.MaterialCode', 'left') + ->where('igr.IGRStatus !=', MRIR_CREATED) ->orderBy('igr.CreatedDate', 'desc'); - $query = $builder->get(); - $result = $query->getResult(); + $query = $builder->get(); + $result = $query->getResult(); + - // echo $this->db->getLastQuery()->getQuery();die; - return $result; - } + return $result; + } - function ViewigrListing($fromDate,$toDate) - { + function ViewigrListing($fromDate, $toDate) + { $subQuery1 = $this->db->table('t_igr_remarkes') - ->select('COUNT(id)') - ->where('igr_no = igr.IGRNo') - ->getCompiledSelect(); + ->select('COUNT(id)') + ->where('igr_no = igr.IGRNo') + ->getCompiledSelect(); // Build subQuery2 dynamically for rate and tax based on POType $subQuery2 = "(CASE @@ -453,31 +458,30 @@ class Inwardgateregister_model extends Model ->join('t_igr_details IGRD', 'igr.IGRNo = IGRD.IGRNo') ->where('igr.IGRStatus !=', MRIR_CREATED) ->groupBy('IGRD.IGRNo'); - if(session()->get('roleText') == 'Auditor'){ + if (session()->get('roleText') == 'Auditor') { - $builder->where('Date(igr.DeliveryChellanDate) >=', "$fromDate") - ->where('Date(igr.DeliveryChellanDate) <=', "$toDate") - ->orderBy('igr.DeliveryChellanDate', 'desc'); - }else{ - $builder->where('Date(igr.CreatedDate) >=', "$fromDate") - ->where('Date(igr.CreatedDate) <=', "$toDate") - ->orderBy('igr.CreatedDate', 'desc'); + $builder->where('Date(igr.DeliveryChellanDate) >=', "$fromDate") + ->where('Date(igr.DeliveryChellanDate) <=', "$toDate") + ->orderBy('igr.DeliveryChellanDate', 'desc'); + } else { + $builder->where('Date(igr.CreatedDate) >=', "$fromDate") + ->where('Date(igr.CreatedDate) <=', "$toDate") + ->orderBy('igr.CreatedDate', 'desc'); + } - } - - - - $query = $builder->get(); + + + $query = $builder->get(); $result = $query->getResult(); - // echo $this->db->getLastQuery()->getQuery();die; - // dd($result); + // echo $this->db->getLastQuery()->getQuery();die; + // dd($result); - // old - issue in t_igr_remarkes join + // old - issue in t_igr_remarkes join // $builder = $this->db->table('t_igr_master igr') // ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName , SUM(IGRD.QuantityAsPerInvoice) as ReceivedQuantity, SUM(IGRD.NetWeight) as NetWeight , count(IGRD.IGRNo) as itemCount , count(remark.id) as remark_count') // ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') @@ -498,59 +502,59 @@ class Inwardgateregister_model extends Model // $builder2 = $this->db->table('t_igr_details igr_details') - // ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName,item.MaterialName, igr_details.QuantityAsPerInvoice as ReceivedQuantity , igr_details.NetWeight as NetWeight') + // ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName,item.MaterialName, igr_details.QuantityAsPerInvoice as ReceivedQuantity , igr_details.NetWeight as NetWeight') // ->join('t_igr_master igr', 'igr_details.IGRNo = igr.IGRNo') - // ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') - // ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') + // ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') + // ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') // ->join('t_transporter trans', 'igr.TransporterId = trans.id' , 'left') // ->join('t_materialmaster` item', 'igr_details.MaterialCode = item.MaterialCode' , 'left') - // ->where('igr.IGRStatus !=', MRIR_CREATED) + // ->where('igr.IGRStatus !=', MRIR_CREATED) // ->orderBy('igr.CreatedDate', 'desc'); // $query2 = $builder2->get(); // $result2 = $query2->getResult(); // echo $this->db->getLastQuery()->getQuery();die; - return [$result,[]]; - } + return [$result, []]; + } - function customViewigrListing($fromDate,$toDate) - { + function customViewigrListing($fromDate, $toDate) + { - $builder = $this->db->table('t_igr_master igr') - ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName , SUM(IGRD.QuantityAsPerInvoice) as ReceivedQuantity, SUM(IGRD.NetWeight) as NetWeight , count(IGRD.IGRNo) as itemCount') - ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') - ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') - ->join('t_transporter trans', 'igr.TransporterId = trans.id' , 'left') + $builder = $this->db->table('t_igr_master igr') + ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName , SUM(IGRD.QuantityAsPerInvoice) as ReceivedQuantity, SUM(IGRD.NetWeight) as NetWeight , count(IGRD.IGRNo) as itemCount') + ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') + ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') + ->join('t_transporter trans', 'igr.TransporterId = trans.id', 'left') ->join('t_igr_details IGRD', 'igr.IGRNo = IGRD.IGRNo') - ->where('igr.IGRStatus !=', MRIR_CREATED) + ->where('igr.IGRStatus !=', MRIR_CREATED) ->groupStart() ->where('Date(igr.CreatedDate) >=', $fromDate) ->orWhere('Date(igr.UpdatedOn) >=', $fromDate) ->groupEnd() ->groupStart() - ->where('Date(igr.CreatedDate) <=', $toDate) - ->orWhere('Date(igr.UpdatedOn) <=', $toDate) + ->where('Date(igr.CreatedDate) <=', $toDate) + ->orWhere('Date(igr.UpdatedOn) <=', $toDate) ->groupEnd() ->groupBy('igr.IGRNo') - ->orderBy('igr.CreatedDate', 'desc'); - $query = $builder->get(); - $result = $query->getResult(); + ->orderBy('igr.CreatedDate', 'desc'); + $query = $builder->get(); + $result = $query->getResult(); $builder2 = $this->db->table('t_igr_details igr_details') - ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName,item.MaterialName, igr_details.QuantityAsPerInvoice as ReceivedQuantity , igr_details.NetWeight as NetWeight') + ->select('igr.*,PO.IsOpenOrder,PO.DeliveryDate,sup.SupplierName,PO.POType,trans.name as TransporterName,item.MaterialName, igr_details.QuantityAsPerInvoice as ReceivedQuantity , igr_details.NetWeight as NetWeight') ->join('t_igr_master igr', 'igr_details.IGRNo = igr.IGRNo') - ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') - ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') - ->join('t_transporter trans', 'igr.TransporterId = trans.id' , 'left') - ->join('t_materialmaster` item', 'igr_details.MaterialCode = item.MaterialCode' , 'left') - ->where('igr.IGRStatus !=', MRIR_CREATED) + ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') + ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') + ->join('t_transporter trans', 'igr.TransporterId = trans.id', 'left') + ->join('t_materialmaster` item', 'igr_details.MaterialCode = item.MaterialCode', 'left') + ->where('igr.IGRStatus !=', MRIR_CREATED) ->orderBy('igr.CreatedDate', 'desc'); - $query2 = $builder2->get(); - $result2 = $query2->getResult(); + $query2 = $builder2->get(); + $result2 = $query2->getResult(); // echo $this->db->getLastQuery()->getQuery();die; - return [$result,$result2]; - } - + return [$result, $result2]; + } + function viewigr($IGRNO) @@ -559,7 +563,7 @@ class Inwardgateregister_model extends Model // ->select('igrd.IGRItemNo','igrd.IGRNO','igrd.MaterialCode','igrd.QuantityAsPerInvoice') // ->select('igrd.Remarks','igrd.IGRItemStatus','igrd.CancelNote','igrd.BankStatus') // ->select('MM.MaterialName,MM.UOM,sup.Address,sup.SupplierName,POM.ServiceDescription,POL.Quantity,POM.POType') - + $builder = $this->db->table('t_igr_master igr') ->distinct() ->select(" @@ -579,10 +583,10 @@ class Inwardgateregister_model extends Model ->join('t_purchaseorder_lineitem POL', 'igr.PONO = POL.PONO and POL.MaterialCode=igrd.MaterialCode ') ->join('t_supplierdetailsn sup', 'sup.SupplierID = POM.SupplierID') ->join('t_materialmaster MM', 'MM.MaterialCode = igrd.MaterialCode') - ->join('t_service_tax st', 'st.LineItemNo = POL.LineItemNo' , 'left') - ->join('t_revenue_tax rt', 'rt.LineItemNo = POL.LineItemNo' , 'left') - ->join('t_import_tax it', 'it.LineItemNo = POL.LineItemNo' , 'left') - ->join('t_configdetails cd','cd.key = MM.Category','left') + ->join('t_service_tax st', 'st.LineItemNo = POL.LineItemNo', 'left') + ->join('t_revenue_tax rt', 'rt.LineItemNo = POL.LineItemNo', 'left') + ->join('t_import_tax it', 'it.LineItemNo = POL.LineItemNo', 'left') + ->join('t_configdetails cd', 'cd.key = MM.Category', 'left') ->where('igr.IGRNO', $IGRNO); $query = $builder->get(); @@ -637,7 +641,7 @@ class Inwardgateregister_model extends Model } } - function UpdatePOMaster($PONO, $updatedBy,$IGRStatus) + function UpdatePOMaster($PONO, $updatedBy, $IGRStatus) { $builder = $this->db->table('t_purchaseorder_lineitem')->select('*') @@ -969,16 +973,16 @@ class Inwardgateregister_model extends Model // $query = $this->db->query($subQuery); // return $query->getResult(); $result = $this->db->table('t_ogr_master') - ->select('OGRNO') - ->orderBy('CreatedOn', 'desc') - ->get() - ->getRow(); + ->select('OGRNO') + ->orderBy('CreatedOn', 'desc') + ->get() + ->getRow(); $OGRNO = ($aff_row && $result !== null) ? $result->OGRNO : 0; - return $OGRNO; + return $OGRNO; } } - + @@ -1073,7 +1077,8 @@ class Inwardgateregister_model extends Model $r = $this->db->affectedRows(); return $r; } - function updateIGRLineItem($igrlineitemarr, $IGRitemNo){ + function updateIGRLineItem($igrlineitemarr, $IGRitemNo) + { $this->db->table('t_igr_details') ->where('IGRItemNo', $IGRitemNo) ->update($igrlineitemarr); @@ -1112,133 +1117,147 @@ class Inwardgateregister_model extends Model } public function ViewIGRHistory($igr) - { - $builder = $this->db->table('t_igr_history'); - - $builder->select('t_igr_history.*, DATE_FORMAT(t_igr_history.history_dated, "%d-%m-%Y") AS indian_date, DATE_FORMAT(t_igr_history.history_dated, "%h:%i:%s %p") AS indian_time, CONCAT_WS(" ", t_employee_details.FirstName, t_employee_details.LastName) AS FullName,t_materialmaster.MaterialName,t_materialmaster.MaterialName,t_materialmaster.MaterialCode'); - $builder->join('tbl_users', 'tbl_users.userId = t_igr_history.by', 'left'); - $builder->join('t_employee_details', 'tbl_users.EmpID = t_employee_details.EmpID', 'left'); + { + $builder = $this->db->table('t_igr_history'); + + $builder->select('t_igr_history.*, DATE_FORMAT(t_igr_history.history_dated, "%d-%m-%Y") AS indian_date, DATE_FORMAT(t_igr_history.history_dated, "%h:%i:%s %p") AS indian_time, CONCAT_WS(" ", t_employee_details.FirstName, t_employee_details.LastName) AS FullName,t_materialmaster.MaterialName,t_materialmaster.MaterialName,t_materialmaster.MaterialCode'); + $builder->join('tbl_users', 'tbl_users.userId = t_igr_history.by', 'left'); + $builder->join('t_employee_details', 'tbl_users.EmpID = t_employee_details.EmpID', 'left'); $builder->join('t_igr_details', 'CONVERT(t_igr_history.IGRItem_No USING utf8) = CONVERT(t_igr_details.IGRItemNo USING utf8)', 'left'); $builder->join('t_materialmaster', 'CONVERT(t_materialmaster.MaterialCode USING utf8) = CONVERT(t_igr_details.MaterialCode USING utf8)', 'left'); $builder->where('CONVERT(IGR_No USING utf8)', $igr); - $builder->orderBy('t_igr_history.history_dated', 'asc'); - // $builder->where('IGR_No', $igr); + $builder->orderBy('t_igr_history.history_dated', 'asc'); + // $builder->where('IGR_No', $igr); - $query = $builder->get(); - $result = $query->getResult(); + $query = $builder->get(); + $result = $query->getResult(); return $result; - - } + } public function isFileExistsInIGRmaster($filename) - { + { $result = $this->db->table('t_igr_master')->where('MasterFile', $filename); $query = $result->get(); return $query->getResult(); - } + } public function isFileExistsInIGRdetails($filename) - { + { $result = $this->db->table('t_igr_details')->where('WeightFile', $filename); $query = $result->get(); return $query->getResult(); - } + } public function getCostCenterData($pono) - { - $builder = $this->db->table('t_purchaseorder_lineitem'); - - $builder->select('t_purchaseorder_lineitem.ReqNo,reqMaster.CostCenterCode,CSMaster.CostCenterName'); + { + $builder = $this->db->table('t_purchaseorder_lineitem'); + + $builder->select('t_purchaseorder_lineitem.ReqNo,reqMaster.CostCenterCode,CSMaster.CostCenterName'); $builder->join('t_requestion_master reqMaster', 't_purchaseorder_lineitem.ReqNo = reqMaster.ReqNo', 'left'); $builder->join('t_costcenter_master CSMaster', 'reqMaster.CostCenterCode = CSMaster.CostCenterCode', 'left'); - $builder->where('PONO', $pono); + $builder->where('PONO', $pono); $builder->groupBy('t_purchaseorder_lineitem.ReqNo'); - $query = $builder->get(); - $result = $query->getResult(); + $query = $builder->get(); + $result = $query->getResult(); return $result; - - - } + } public function getAllIgrFileDetails($igrno) - { - - // Query 1: Get FilePath and Remarks from t_inwardgateregister_fileupload + { + + // Query 1: Get FilePath and Remarks from t_inwardgateregister_fileupload $builder1 = $this->db->table('t_inwardgateregister_fileupload IFU'); - $query1 = $builder1->select('IFU.FilePath as file, IFU.Remarks as filename') - ->where('IFU.IGRNO', $igrno) - ->where('IFU.Isactive', 1) - ->get(); - $result1 = $query1->getResult(); + $query1 = $builder1->select('IFU.FilePath as file, IFU.Remarks as filename') + ->where('IFU.IGRNO', $igrno) + ->where('IFU.Isactive', 1) + ->get(); + $result1 = $query1->getResult(); - // Query 2: Get MasterFile from t_igr_master - $builder2 = $this->db->table('t_igr_master IM'); - $query2 = $builder2->select('IM.MasterFile as file, IM.MasterFile as filename') - ->where('IM.IGRNO', $igrno) - ->where('IM.MasterFile IS NOT NULL') - ->get(); - $result2 = $query2->getResult(); + // Query 2: Get MasterFile from t_igr_master + $builder2 = $this->db->table('t_igr_master IM'); + $query2 = $builder2->select('IM.MasterFile as file, IM.MasterFile as filename') + ->where('IM.IGRNO', $igrno) + ->where('IM.MasterFile IS NOT NULL') + ->get(); + $result2 = $query2->getResult(); - // Query 3: Get WeightFile from t_igr_details - $builder3 = $this->db->table('t_igr_details ID'); - $query3 = $builder3->select('ID.WeightFile as file, ID.WeightFile as filename') - ->where('ID.IGRNO', $igrno) - ->where('ID.WeightFile IS NOT NULL') - ->get(); - $result3 = $query3->getResult(); + // Query 3: Get WeightFile from t_igr_details + $builder3 = $this->db->table('t_igr_details ID'); + $query3 = $builder3->select('ID.WeightFile as file, ID.WeightFile as filename') + ->where('ID.IGRNO', $igrno) + ->where('ID.WeightFile IS NOT NULL') + ->get(); + $result3 = $query3->getResult(); - // Merging results into a single array - $results = array_merge($result1, $result2, $result3); + // Merging results into a single array + $results = array_merge($result1, $result2, $result3); - return $results; - } + return $results; + } public function transporter() - { + { $builder = $this->db->table('t_transporter t'); - $query = $builder->select('t.*')->get(); - $result = $query->getResult(); + $query = $builder->select('t.*')->get(); + $result = $query->getResult(); return $result; } - public function findIgrDetailsForIncomingSilicaSand($materialCodes, $month ,$remark) - { - $builder = $this->db->table('t_igr_details') - ->select( - 't_igr_details.IGRNO, - t_igr_details.MaterialCode, - igrMast.DeliveryChellanOrInvoiceNo as invoiceNo, - igrMast.DeliveryChellanDate as invoiceDate, - igrMast.MaterialRcvdDate as materialRecievedDate, - igrMast.VehicleNo, + public function findIgrDetailsForIncomingSilicaSand($materialCodes, $month, $remark) + { + $builder = $this->db->table('t_igr_details'); + + // 1. Select the necessary columns + $builder->select( + 't_igr_details.IGRNO, + t_igr_details.MaterialCode, + igrMast.DeliveryChellanOrInvoiceNo as invoiceNo, + igrMast.DeliveryChellanDate as invoiceDate, + igrMast.MaterialRcvdDate as materialRecievedDate, + igrMast.VehicleNo, supplierDetails.SupplierName, - cd.ConfigValue as sandType , - t_igr_details.QuantityAsPerInvoice as Qty, - issd.*') - ->whereIn('t_igr_details.MaterialCode', $materialCodes) - ->where('t_igr_details.QuantityAsPerInvoice <>', 0) - ->like('t_igr_details.CreatedDate', $month, 'after'); + cd.ConfigValue as sandType, + t_igr_details.QuantityAsPerInvoice as Qty, + issd.*' + ); - // remark needed for those who selected any remark. - if ($remark != "noRemark") { - $builder->where('issd.remark', $remark); - } + // 2. Apply the most selective WHERE clause(s) first - in this case, the date range + $nowIST = new \DateTime('now', new \DateTimeZone('Asia/Kolkata')); + + $builder->where('Date(t_igr_details.CreatedDate) >=', $nowIST->format('Y-m-01 00:00:00')); + $builder->where('Date(t_igr_details.CreatedDate) <=', $nowIST->format('Y-m-t 23:59:59')); + + // 3. Apply other WHERE clause conditions + $builder->whereIn('t_igr_details.MaterialCode', $materialCodes); + $builder->where('t_igr_details.QuantityAsPerInvoice <>', 0); + + // Conditional WHERE clause for remark + if ($remark != "noRemark") { + $builder->where('issd.remark', $remark); + } + + // 4. Apply JOIN clauses + $builder->join('t_igr_master igrMast', 'igrMast.IGRNO = t_igr_details.IGRNO'); + $builder->join('t_incomingsilicasanddetails issd', 'issd.igrNo_fk = t_igr_details.IGRNO AND issd.materialCode = t_igr_details.MaterialCode', 'left'); + $builder->join('t_materialmaster materialMaster', 'materialMaster.MaterialCode = t_igr_details.MaterialCode'); + $builder->join('t_configdetails cd', 'cd.key = materialMaster.Category', 'left'); + $builder->join('t_purchaseorder_master poMaster', 'poMaster.PONO = igrMast.PONO', 'left'); + $builder->join('t_supplierdetailsn supplierDetails', 'supplierDetails.SupplierID = poMaster.SupplierID', 'left'); + + // 5. Apply GROUP BY clause + $builder->groupBy('t_igr_details.IGRNO, t_igr_details.MaterialCode'); + + // 6. Apply ORDER BY clause + $builder->orderBy('t_igr_details.CreatedDate', 'asc '); + + // 7. Get the query results + $query = $builder->get(); - $builder->groupBy('t_igr_details.IGRNO, t_igr_details.MaterialCode') - ->join('t_igr_master igrMast', 'igrMast.IGRNO = t_igr_details.IGRNO') - ->join('t_incomingsilicasanddetails issd','issd.igrNo_fk = t_igr_details.IGRNO AND issd.materialCode = t_igr_details.MaterialCode','left') - ->join('t_materialmaster materialMaster', 'materialMaster.MaterialCode = t_igr_details.MaterialCode') - ->join('t_configdetails cd','cd.key = materialMaster.Category','left') - ->join('t_purchaseorder_master poMaster', 'poMaster.PONO = igrMast.PONO', 'left') - ->join('t_supplierdetailsn supplierDetails', 'supplierDetails.SupplierID = poMaster.SupplierID', 'left') - ->orderBy('t_igr_details.CreatedDate', 'asc '); - $query = $builder->get(); - $result = $query->getResultArray(); - - return $result; + return $query->getResultArray(); } - public function getHistoryDetailsforEmail($igr){ - $date = date('Y-m-d H:i:s'); + public function getHistoryDetailsforEmail($igr) + { + $date = date('Y-m-d H:i:s'); $to = date('Y-m-d H:i:s', strtotime($date . ' +30 seconds')); $from = date('Y-m-d H:i:s', strtotime($date . ' -30 seconds')); @@ -1247,13 +1266,13 @@ class Inwardgateregister_model extends Model from t_igr_history LEFT JOIN tbl_users ON tbl_users.userId = t_igr_history.by LEFT JOIN t_employee_details ON tbl_users.EmpID = t_employee_details.EmpID - where is_add = 1 and IGR_No = '".$igr."'"); - $first_line = $query3->getRow(); - - // 392 po + where is_add = 1 and IGR_No = '" . $igr . "'"); + $first_line = $query3->getRow(); -$builder = $this->db->table('t_igr_history') - ->select(' + // 392 po + + $builder = $this->db->table('t_igr_history') + ->select(' t_igr_history.id, t_igr_history.field, t_igr_history.is_add, @@ -1288,118 +1307,126 @@ $builder = $this->db->table('t_igr_history') END AS old_data, t_igr_history.old_data as original_old_data,t_materialmaster.MaterialName,t_materialmaster.MaterialCode ') - // ->join('t_igr_details IGRD', 'IGRD.IGRItemNo = t_igr_history.IGRItem_No','left') - // ->join('t_materialmaster MM','MM.MaterialCode = IGRD.MaterialCode','left') - ->join('tbl_users', 'tbl_users.userId = t_igr_history.by','left') - ->join('t_employee_details','tbl_users.EmpID = t_employee_details.EmpID','left') - ->join('t_igr_details', 'CONVERT(t_igr_history.IGRItem_No USING utf8) = CONVERT(t_igr_details.IGRItemNo USING utf8)', 'left') - ->join('t_materialmaster', 'CONVERT(t_materialmaster.MaterialCode USING utf8) = CONVERT(t_igr_details.MaterialCode USING utf8)', 'left') - ->where('CONVERT(t_igr_history.IGR_No USING utf8)', $igr) - ->where('t_igr_history.is_edit', 1) - ->where('t_igr_history.history_dated BETWEEN "'.$from.'" AND "'.$to.'"'); + // ->join('t_igr_details IGRD', 'IGRD.IGRItemNo = t_igr_history.IGRItem_No','left') + // ->join('t_materialmaster MM','MM.MaterialCode = IGRD.MaterialCode','left') + ->join('tbl_users', 'tbl_users.userId = t_igr_history.by', 'left') + ->join('t_employee_details', 'tbl_users.EmpID = t_employee_details.EmpID', 'left') + ->join('t_igr_details', 'CONVERT(t_igr_history.IGRItem_No USING utf8) = CONVERT(t_igr_details.IGRItemNo USING utf8)', 'left') + ->join('t_materialmaster', 'CONVERT(t_materialmaster.MaterialCode USING utf8) = CONVERT(t_igr_details.MaterialCode USING utf8)', 'left') + ->where('CONVERT(t_igr_history.IGR_No USING utf8)', $igr) + ->where('t_igr_history.is_edit', 1) + ->where('t_igr_history.history_dated BETWEEN "' . $from . '" AND "' . $to . '"'); - $query = $builder->get(); - $result = $query->getResult(); + $query = $builder->get(); + $result = $query->getResult(); // echo $this->db->getLastQuery()->getQuery(); die; return [ 'history' => $result, - 'first_line' => $first_line ? $first_line->IGR_No ." was Created by ". $first_line->history_by ." on ". $first_line->indian_date ." at ". $first_line->indian_time : null, - ]; + 'first_line' => $first_line ? $first_line->IGR_No . " was Created by " . $first_line->history_by . " on " . $first_line->indian_date . " at " . $first_line->indian_time : null, + ]; } - public function getDetailsforEmail($userId,$roleId) - { + public function getDetailsforEmail($userId, $roleId) + { $query0 = $this->db->query(" SELECT CompanyName,EmailAddress FROM t_company_details"); - $company = $query0->getRow(); + $company = $query0->getRow(); - $query1 = $this->db->query(" + $query1 = $this->db->query( + " SELECT CONCAT_WS(' ', t_employee_details.FirstName, t_employee_details.LastName) AS FullName FROM tbl_users LEFT JOIN t_employee_details ON tbl_users.EmpID = t_employee_details.EmpID - WHERE tbl_users.userId = ?", [$userId] - ); - $fullName = $query1->getRow(); - - $query2 = $this->db->query(" - SELECT email FROM tbl_users - WHERE isDeleted = 0 AND roleId =".$roleId - ); - $to_mails = $query2->getResult(); + WHERE tbl_users.userId = ?", + [$userId] + ); + $fullName = $query1->getRow(); - $query3 = $this->db->query(" + $query2 = $this->db->query( + " SELECT email FROM tbl_users - WHERE isDeleted = 0 AND userId =".$userId - ); - $from_mails = $query3->getRow(); + WHERE isDeleted = 0 AND roleId =" . $roleId + ); + $to_mails = $query2->getResult(); - return [ + $query3 = $this->db->query( + " + SELECT email FROM tbl_users + WHERE isDeleted = 0 AND userId =" . $userId + ); + $from_mails = $query3->getRow(); + + return [ 'company' => $company ? $company->CompanyName : null, 'company_mail' => $company ? $company->EmailAddress : null, - 'full_name' => $fullName ? $fullName->FullName : null, - 'from_mails' => $from_mails ? $from_mails->email : null , + 'full_name' => $fullName ? $fullName->FullName : null, + 'from_mails' => $from_mails ? $from_mails->email : null, 'to_mails' => $to_mails, - ]; - } + ]; + } public function getdriverlist() - { + { - $query = $this->db->query('SELECT DriverName,DriverMobileNumber + $query = $this->db->query('SELECT DriverName,DriverMobileNumber FROM t_igr_master WHERE DriverName != "" GROUP BY DriverName,DriverMobileNumber'); - $result = $query->getResultArray(); - return $result; + $result = $query->getResultArray(); + return $result; } - public function getigrstatus($IGRNo){ + public function getigrstatus($IGRNo) + { $builder = $this->db->table('t_igr_master') - ->select('IGRStatus') - ->where('IGRNO',$IGRNo) - ->get(); - $result = $builder->getRow(); - return $result; + ->select('IGRStatus') + ->where('IGRNO', $IGRNo) + ->get(); + $result = $builder->getRow(); + return $result; } - public function get_status($value){ + public function get_status($value) + { $builder = $this->db->table('t_status') - ->select('StatusCode,StatusName') - ->where('StatusCode', $value); + ->select('StatusCode,StatusName') + ->where('StatusCode', $value); - $query = $builder->get()->getRow(); + $query = $builder->get()->getRow(); - $StatusName = $query ? $query->StatusName : null; - return $StatusName; + $StatusName = $query ? $query->StatusName : null; + return $StatusName; } - public function get_TransporterId($value){ + public function get_TransporterId($value) + { $builder = $this->db->table('t_transporter') - ->select('id,name') - ->where('id', $value); + ->select('id,name') + ->where('id', $value); - $query = $builder->get()->getRow(); + $query = $builder->get()->getRow(); - $transportername = $query ? $query->name : null; - return $transportername; + $transportername = $query ? $query->name : null; + return $transportername; } //Mcat -materialCategory - public function getIgrDetailsListByMcatGas($gasMaterialCodes,$gas_status){ + public function getIgrDetailsListByMcatGas($gasMaterialCodes, $gas_status) + { - switch ($gas_status) { + switch ($gas_status) { - case "gas_entered": + case "gas_entered": - $builder = $this->db->table('t_igr_details as t_igrd') - ->select(" + $builder = $this->db->table('t_igr_details as t_igrd') + ->select(" t_igrd.IGRNO as IGRNO-, (t_igrd.QuantityAsPerInvoice) as gasCylinderCount, t_sd.SupplierName, @@ -1407,25 +1434,25 @@ $builder = $this->db->table('t_igr_history') t_mm.MaterialName, t_gsd.* ") - ->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO') - ->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left') - ->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID') + ->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO') + ->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left') + ->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID') - ->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrm.IGRNO', 'left') + ->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrm.IGRNO', 'left') - ->join('t_materialmaster t_mm','t_mm.MaterialCode = t_igrd.MaterialCode','left') - ->whereIn('t_igrd.MaterialCode', $gasMaterialCodes) - ->where("DATE(t_igrd.CreatedDate) >= '2025-04-01' ") + ->join('t_materialmaster t_mm', 't_mm.MaterialCode = t_igrd.MaterialCode', 'left') + ->whereIn('t_igrd.MaterialCode', $gasMaterialCodes) + ->where("DATE(t_igrd.CreatedDate) >= '2025-04-01' ") - ->where('t_gsd.gas_cylinder_status IS NULL'); + ->where('t_gsd.gas_cylinder_status IS NULL'); - break; + break; - case "gas_pending": + case "gas_pending": - $builder = $this->db->table('t_igr_details as t_igrd') - ->select(" + $builder = $this->db->table('t_igr_details as t_igrd') + ->select(" t_igrd.IGRNO as IGRNO-, (t_igrd.QuantityAsPerInvoice) as gasCylinderCount, t_sd.SupplierName, @@ -1433,26 +1460,26 @@ $builder = $this->db->table('t_igr_history') t_mm.MaterialName, t_gsd.* ") - ->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO') - ->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left') - ->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID') - - ->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrm.IGRNO', 'left') + ->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO') + ->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left') + ->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID') - ->join('t_materialmaster t_mm','t_mm.MaterialCode = t_igrd.MaterialCode','left') - ->whereIn('t_igrd.MaterialCode', $gasMaterialCodes) - ->where("DATE(t_igrd.CreatedDate) >= '2025-04-01' ") + ->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrm.IGRNO', 'left') - ->where('t_gsd.gas_cylinder_status','gas_pending'); + ->join('t_materialmaster t_mm', 't_mm.MaterialCode = t_igrd.MaterialCode', 'left') + ->whereIn('t_igrd.MaterialCode', $gasMaterialCodes) + ->where("DATE(t_igrd.CreatedDate) >= '2025-04-01' ") - break; + ->where('t_gsd.gas_cylinder_status', 'gas_pending'); + + break; - case "gas_returned": + case "gas_returned": - $builder = $this->db->table('t_igr_details as t_igrd') - ->select(" + $builder = $this->db->table('t_igr_details as t_igrd') + ->select(" t_igrd.IGRNO as IGRNO-, (t_igrd.QuantityAsPerInvoice) as gasCylinderCount, t_sd.SupplierName, @@ -1467,34 +1494,28 @@ $builder = $this->db->table('t_igr_history') Count(t_gsd.gas_cylinder_status) as gasCylinderCompletedCount, (t_igrd.QuantityAsPerInvoice - Count(t_gsd.gas_cylinder_status)) as gasCylinderPendingCount ") - ->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO') - ->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left') - ->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID') + ->join('t_igr_master t_igrm', 't_igrm.IGRNO = t_igrd.IGRNO') + ->join('t_purchaseorder_master t_pom', 't_igrm.PONO = t_pom.PONO', 'left') + ->join('t_supplierdetailsn t_sd', 't_sd.SupplierID = t_pom.SupplierID') - ->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrm.IGRNO', 'left') + ->join('t_gasshortagedetails t_gsd', 't_gsd.IGRNO = t_igrm.IGRNO', 'left') - ->join('t_materialmaster t_mm','t_mm.MaterialCode = t_igrd.MaterialCode','left') - ->whereIn('t_igrd.MaterialCode', $gasMaterialCodes) - ->where("DATE(t_igrd.CreatedDate) >= '2025-04-01' ") + ->join('t_materialmaster t_mm', 't_mm.MaterialCode = t_igrd.MaterialCode', 'left') + ->whereIn('t_igrd.MaterialCode', $gasMaterialCodes) + ->where("DATE(t_igrd.CreatedDate) >= '2025-04-01' ") - ->where('t_gsd.gas_cylinder_status','gas_returned') - - ->groupBy('t_igrd.IGRNO'); - - break; - - } + ->where('t_gsd.gas_cylinder_status', 'gas_returned') - - $result = $builder->get()->getResultArray(); + ->groupBy('t_igrd.IGRNO'); + + break; + } + + + $result = $builder->get()->getResultArray(); - return $result; - + return $result; } - - - - -} \ No newline at end of file +}