386 lines
18 KiB
PHP
Executable File
386 lines
18 KiB
PHP
Executable File
<?php if(!defined('BASEPATH')) exit('No direct script access allowed');
|
|
|
|
class mrir_model extends CI_Model
|
|
{
|
|
/* This function is used to get the user listing count*/
|
|
|
|
/* This function is used to display the IGR in dropdown box*/
|
|
function getIGRNOonly()
|
|
{
|
|
$this->db->select('IGRNO');
|
|
$this->db->from('T_IGR_Master');
|
|
$this->db->order_by('IGRNO', 'asc');
|
|
$res=$this->db->get();
|
|
return $res->result();
|
|
|
|
}
|
|
/**
|
|
* This function is used to get the user listing count
|
|
* @param string $searchText : This is optional search text
|
|
* @param number $page : This is pagination offset
|
|
* @param number $segment : This is pagination limit
|
|
* @return array $result : This is result
|
|
*/
|
|
function ViewigrListing()
|
|
{
|
|
|
|
|
|
$this->db->select('igr.*,PO.DeliveryDate,sup.SupplierName');
|
|
$this->db->from('T_IGR_Master igr');
|
|
$this->db->join('T_PurchaseOrder_Master PO','igr.PONO = PO.PONO');
|
|
$this->db->join('T_SupplierDetailsN` sup','PO.SupplierID = sup.SupplierID');
|
|
// $this->db->where('igr.IGRStatus !=',MRIR_CREATED);
|
|
$this->db->where('PO.IsQualityChkReqired',1);
|
|
$this->db->order_by("CreatedDate","desc");
|
|
$query = $this->db->get();
|
|
$result = $query->result();
|
|
|
|
return $result;
|
|
}
|
|
/* This function is used to get the igr value (button link)*/
|
|
function get_IGR($IgrNo)
|
|
{
|
|
$this->db->distinct();
|
|
$this->db->select('IGRM.DeliveryChellanDate,IGRM.CreatedDate,IGRM.IGRNO,IGRM.VehicleNo,IGRM.DeliveryChellanOrInvoiceNo,IGRM.CourierNo,IGRM.PONO,IGRD.MaterialCode,IGRD.QuantityAsPerInvoice,POMR.ServiceDescription,POMR.PODate,POMR.DeliveryDate,POMR.CreatedBy,SUPP.SupplierName,SUPP.Address,MM.UOM,MM.MaterialName,POLT.Quantity,POLT.ReceivedQuantity,ED.FirstName');
|
|
//$this->db->select("DATE_FORMAT(IGRM.DeliveryChellanDate, '%d %m %Y') as DCdate");
|
|
$this->db->from('T_IGR_Master IGRM');
|
|
$this->db->join('T_PurchaseOrder_Master POMR ','IGRM.PONO=POMR.PONO');
|
|
$this->db->join('T_IGR_Details IGRD','IGRM.IGRNO=IGRD.IGRNO');
|
|
$this->db->join('T_SupplierDetailsN SUPP','POMR.SupplierID=SUPP.SupplierID');
|
|
$this->db->join('T_MaterialMaster MM',' MM.MaterialCode=IGRD.MaterialCode');
|
|
$this->db->join('T_PurchaseOrder_LineItem POLT','IGRM.PONO=POLT.PONO and IGRD.MaterialCode = POLT.MaterialCode');
|
|
$this->db->join ('tbl_users user','user.userid=POMR.CreatedBy','left');
|
|
$this->db->join ('T_Employee_Details ED','ED.EmpID = user.EmpID','left');
|
|
$this->db->where('IGRM.IGRNO',$IgrNo);
|
|
|
|
$query = $this->db->get();
|
|
$result = $query->result();
|
|
//print_r($this->db->last_query());
|
|
return $result;
|
|
|
|
}
|
|
function ViewDistributionList()
|
|
{
|
|
$subQuery = 'Select distinct ReqLine.MaterialCode, MR.PONO, REQ.ReqNo,MM.MaterialName,MM.UOM,
|
|
EMP.FirstName,DD.DEPCode,DD.DepartmentName,ReqLine.Quantity as RequestedQty,POL.Quantity
|
|
as OrderedQuantity ,(MD.ActualQuantityReceived) as ActualReceivedqty,(MD.QuantityAccepted) as
|
|
AcceptedQty,REQ.ReqDate, ReqLine.Status as ReqStatus,
|
|
st.StatusCode as ReqStatus,st.StatusName,
|
|
ReqLine.Remarks
|
|
from T_Requestion_Details ReqLine join T_PurchaseOrder_LineItem POL
|
|
on ReqLine.ReqNo = POL.ReqNo and ReqLine.MaterialCode = POL.MaterialCode
|
|
join T_Requestion_Master REQ on REQ.ReqNo = ReqLine.ReqNo
|
|
join T_PurchaseOrder_Master POMast on POMast.PONO=POL.PONO
|
|
join T_Status st on ReqLine.Status = st.StatusCode
|
|
join T_MRIR_Master MR on MR.PONO = POL.PONO join T_MRIR_Details MD
|
|
on MD.MRIRNO = MR.MRIRNO and ReqLine.MaterialCode = MD.MaterialCode join T_MaterialMaster MM on
|
|
MM.MaterialCode = ReqLine.MaterialCode join
|
|
T_Employee_Details EMP on EMP.EmpID = REQ.Requestedby join
|
|
T_DepartmentDetails DD on DD.DEPCode = EMP.Departmentcode where
|
|
POL.status in (?,?)
|
|
and ReqLine.Status not in(?) and POMast.status not in(?)
|
|
group by ReqLine.MaterialCode ,POL.PONO';
|
|
$query = $this->db->query($subQuery,array(MRIR_APPROVED,PARTIAL_MRIRAPPROVED,REQITEM_NEW,PO_AMENDED));
|
|
//print_r($this->db->last_query());
|
|
return $query->result();
|
|
}
|
|
/* This function is used to list the MRIR value*/
|
|
function view_mrir()
|
|
{
|
|
$this->db->distinct();
|
|
$this->db->select('TMM.MRIRNO,TMM.PONO,TMM.IGRNO,TMM.MRIRStatus,ST.StatusName,IGRM.DeliveryChellanOrInvoiceNo,IGRM.DeliveryChellanDate,IGRM.VehicleNo,IGRM.CourierNo,TMD.StoreInchargeID,TMD.QualityInchargeID,TMD.PlantInchargeID,TMD.UpdateBY,POM.PODate,POM.POType,POM.CreatedBy,ED.FirstName as UpdatedbyName,ED1.FirstName as CreatedByName');
|
|
$this->db->from ('T_MRIR_Master TMM');
|
|
$this->db->join ('T_MRIR_Details TMD','TMM.MRIRNO=TMD.MRIRNO');
|
|
$this->db->join ('T_IGR_Master IGRM','TMM.IGRNO=IGRM.IGRNO');
|
|
$this->db->join ('T_IGR_Details IGRD','IGRM.IGRNO=IGRD.IGRNO');
|
|
$this->db->join ('T_PurchaseOrder_Master POM','TMM.PONO=POM.PONO');
|
|
$this->db->join ('tbl_users user','user.userid=TMD.UpdateBY','left');
|
|
$this->db->join ('T_Employee_Details ED','ED.EmpID = user.EmpID','left');
|
|
$this->db->join ('tbl_users user1','user1.userid = POM.CreatedBy','left');
|
|
$this->db->join ('T_Employee_Details ED1','ED1.EmpID = user1.EmpID','left');
|
|
$this->db->join ('T_Status ST','ST.StatusCode = TMM.MRIRStatus');
|
|
//$this->db->where('POM.IsQualityChkReqired !=','0');
|
|
$this->db->order_by ('TMM.MRIRNO','desc');
|
|
$query = $this->db->get();
|
|
return $query->result();
|
|
|
|
}
|
|
function getStatus()
|
|
{
|
|
$this->db->select('StatusCode,StatusName');
|
|
$this->db->from('T_Status');
|
|
$this->db->where('StatusType',8);
|
|
$query = $this->db->get();
|
|
return $query->result();
|
|
}
|
|
/* This function is used to list the MRIR value*/
|
|
function view_mrir_Billing()
|
|
{
|
|
$this->db->distinct();
|
|
$this->db->select('TMM.MRIRNO,TMM.PONO, TMM.IGRNO,IGRM.DeliveryChellanOrInvoiceNo,
|
|
IGRM.DeliveryChellanDate,IGRM.VehicleNo,IGRM.CourierNo,TMD.QualityInchargeID,
|
|
TMD.PlantInchargeID,TMD.UpdateBY, POM.PODate,POM.POType,POM.ReleasedBy,ED2.FirstName as StoreinchargeName,POM.IsQualityChkReqired,POM.POType,POM.CapitalRange,POM.Status,
|
|
ED.FirstName as UpdatedbyName,ED1.FirstName as ReleasedbyName,MM.MaterialCode,MM.MaterialName,
|
|
MM.UOM, POL.Quantity,IGRD.QuantityAsPerInvoice, TMD.ActualQuantityReceived,TMD.QuantityAccepted,
|
|
TMD.QuantityRejected,ST.StatusName,TMD.Remarks,AdvanceAmount ');
|
|
$this->db->from ('T_MRIR_Master TMM');
|
|
$this->db->join ('T_MRIR_Details TMD','TMM.MRIRNO=TMD.MRIRNO','left');
|
|
$this->db->join ('T_IGR_Master IGRM','TMM.IGRNO=IGRM.IGRNO');
|
|
$this->db->join ('T_IGR_Details IGRD','IGRM.IGRNO=IGRD.IGRNO and IGRD.MaterialCode = TMD.MaterialCode');
|
|
$this->db->join ('T_PurchaseOrder_Master POM','POM.PONO=IGRM.PONO');
|
|
$this->db->join ('T_PurchaseOrder_LineItem POL','POL.PONO=POM.PONO and TMD.MaterialCode = POL.MaterialCode');
|
|
$this->db->join('T_PurchaseOrder_AdvanceRequest PUADV','POM.PONO=PUADV.PONO','left');
|
|
$this->db->join ('tbl_users user','user.userid=TMD.UpdateBY','left');
|
|
$this->db->join ('T_Employee_Details ED','ED.EmpID = user.EmpID','left');
|
|
$this->db->join ('tbl_users user1','user1.userid = POM.ReleasedBy','left');
|
|
$this->db->join ('T_Employee_Details ED1','ED1.EmpID = user1.EmpID','left');
|
|
$this->db->join ('tbl_users user2','user2.userid=TMD.StoreInchargeID','left');
|
|
$this->db->join ('T_Employee_Details ED2','ED2.EmpID = user2.EmpID','left');
|
|
$this->db->join ('T_MaterialMaster MM','MM.MaterialCode = IGRD.MaterialCode and POL.MaterialCode = MM.MaterialCode');
|
|
$this->db->join ('T_Status ST','ST.StatusCode = TMD.MRIRStatus');
|
|
|
|
$this->db->where('TMM.MRIRStatus',MRIR_APPROVED);
|
|
$this->db->order_by('TMM.UpdatedOn','desc');
|
|
$query = $this->db->get();
|
|
//print_r($this->db->last_query());
|
|
return $query->result();
|
|
|
|
}
|
|
|
|
/* This function is used to get the MRIR value for edit*/
|
|
function edit_mrir($MrirNo)
|
|
{
|
|
$this->db->distinct();
|
|
$this->db->select('TMM.MRIRNO,TMM.PONO,TMM.IGRNO,TMM.Createdon as MRIRCreatedon,TMD.MRIRItemNo,TMD.ActualQuantityReceived,TMD.QuantityAccepted,TMD.QuantityRejected,IGRM.DeliveryChellanOrInvoiceNo,IGRM.DeliveryChellanDate,IGRM.VehicleNo,IGRM.CourierNo,IGRM.CreatedDate as IGRCreated,IGRD.QuantityAsPerInvoice,SUPP.SupplierName,SUPP.Address,POMR.PODate,POMR.DeliveryDate,POMR.ServiceDescription,TMD.MaterialCode,MM.MaterialName,MM.UOM,Line.Quantity,Line.ReceivedQuantity,ED.FirstName as PORasiedbyName,ED1.FirstName as MRIRRasiedbyName, ED2.FirstName as IGRRasiedbyName,TMM.MRIRStatus,Line.CostCenterCode,COST.CostCenterName,TMD.Remarks');
|
|
$this->db->from ('T_MRIR_Master TMM');
|
|
$this->db->join ('T_MRIR_Details TMD','TMM.MRIRNO = TMD.MRIRNO');//to get IGRNO,PONO,MRIRNO,mrirdate,
|
|
$this->db->join ('T_IGR_Master IGRM', 'IGRM.IGRNO = TMM.IGRNO');//to get actualquantity,deliverydate,Invoicedate,vechileno,courierno,igrdate,
|
|
$this->db->join ('T_PurchaseOrder_Master POMR ','IGRM.PONO = POMR.PONO');//to get podate,deliverydate,servicedescription
|
|
// $this->db->join ('T_PurchaseOrder_LineItem POLT','IGRM.PONO=POLT.PONO');//to get receivedquantity,quantity
|
|
$this->db->join('T_PurchaseOrder_LineItem Line','TMM.PONO=Line.PONO and TMD.MaterialCode=Line.MaterialCode');
|
|
$this->db->join('T_CostCenter_Master COST','Line.CostCenterCode=COST.CostCenterCode');
|
|
//$this->db->join ('T_IGR_Details IGRD','IGRD.IGRNO = IGRM.IGRNO');//to get invoicequantity
|
|
$this->db->join('T_IGR_Details IGRD','IGRD.IGRNO = TMM.IGRNO and TMD.MaterialCode=IGRD.MaterialCode');
|
|
$this->db->join ('T_MaterialMaster MM','TMD.MaterialCode = MM.MaterialCode');
|
|
$this->db->join ('T_SupplierDetailsN SUPP','POMR.SupplierID = SUPP.SupplierID');//to get suppliername,supplieraddress
|
|
$this->db->join ('tbl_users user','user.userid = POMR.CreatedBy');//to get poraisedby
|
|
$this->db->join ('T_Employee_Details ED','ED.EmpID = user.EmpID');
|
|
$this->db->join ('tbl_users user1','user1.userid=TMM.CreatedBy');//to get mrirraisedby
|
|
$this->db->join ('T_Employee_Details ED1','ED1.EmpID = user1.EmpID');
|
|
$this->db->join ('tbl_users user2','user2.userid=IGRM.CreatedBy');//to get igrraisedby
|
|
$this->db->join ('T_Employee_Details ED2','ED2.EmpID = user2.EmpID');
|
|
$this->db->where('TMM.MRIRNO',$MrirNo);
|
|
$this->db->group_by('TMM.MRIRNO,TMD.MaterialCode');
|
|
$query = $this->db->get();
|
|
$result = $query->result();
|
|
//print_r( $this->db->last_query());
|
|
return $result;
|
|
|
|
}
|
|
/* This function is used to store the MRIR value in master table*/
|
|
function master_mrir($mrirmastervalues)
|
|
{
|
|
|
|
|
|
$this->db->insert('T_MRIR_Master', $mrirmastervalues);
|
|
$insert_id = $this->db->affected_rows();
|
|
|
|
if($insert_id>0)
|
|
{
|
|
$subQuery = 'select max(MRIRNO) as MRIRNo from T_MRIR_Master';
|
|
$query = $this->db->query($subQuery);
|
|
return $query->result();//_array();
|
|
}
|
|
|
|
}
|
|
|
|
/* This function is used to store the MRIR value in detail table*/
|
|
function detail_mrir($mrirdetailvalues)
|
|
{
|
|
|
|
$this->db->insert('T_MRIR_Details',$mrirdetailvalues);
|
|
$insert_id = $this->db->affected_rows();
|
|
|
|
return $insert_id;
|
|
|
|
}
|
|
|
|
|
|
/* This function is used to update the value in MRIR master table*/
|
|
function update_mrirmaster($updatemastervalues,$mrir_no)
|
|
{
|
|
$this->db->where('MRIRNO', $mrir_no);
|
|
$this->db->update('T_MRIR_Master', $updatemastervalues);
|
|
$affectedRows = $this->db->affected_rows();
|
|
|
|
return $affectedRows;
|
|
|
|
}
|
|
|
|
function UpdateReqStatus()
|
|
{
|
|
|
|
}
|
|
/* This function is used to update the value in MRIR detail table*/
|
|
function update_mrirdetail($updatedetailvalues,$Lineitm)
|
|
{
|
|
|
|
$this->db->where('MRIRItemNo',$Lineitm);
|
|
|
|
$this->db->update('T_MRIR_Details',$updatedetailvalues);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* This function is used to get the value for modal in view MRIR page */
|
|
function get_MRIRs($mrir)
|
|
{
|
|
$this->db->select('TMM.MRIRNO,TMM.PONO,TMM.IGRNO,TMD.*,IGRM.DeliveryChellanOrInvoiceNo,IGRM.DeliveryChellanDate,IGRM.VehicleNo,IGRD.*,SUPP.SupplierName,SUPP.Address,POMR.DeliveryDate,POMR.ServiceDescription,MM.MaterialCode,MM.UOM,MM.MaterialName,POLT.Quantity,POLT.ReceivedQuantity,POMR.POType,ED.FirstName as StoreinchargeName');
|
|
$this->db->from ('T_MRIR_Master TMM');
|
|
$this->db->join ('T_MRIR_Details TMD','TMM.MRIRNO = TMD.MRIRNO');
|
|
$this->db->join ('T_MaterialMaster MM','TMD.MaterialCode = MM.MaterialCode');
|
|
$this->db->join ('T_IGR_Master IGRM', 'IGRM.IGRNO=TMM.IGRNO');
|
|
$this->db->join ('T_PurchaseOrder_Master POMR ','IGRM.PONO=POMR.PONO');
|
|
$this->db->join ('T_PurchaseOrder_LineItem POLT','IGRM.PONO=POLT.PONO and POLT.MaterialCode=TMD.MaterialCode');
|
|
$this->db->join ('T_IGR_Details IGRD','IGRD.IGRNO= IGRM.IGRNO and IGRD.MaterialCode=TMD.MaterialCode');
|
|
$this->db->join ('T_SupplierDetailsN SUPP','POMR.SupplierID=SUPP.SupplierID');
|
|
$this->db->join ('tbl_users user','user.userid=TMD.StoreInchargeID','left');
|
|
$this->db->join ('T_Employee_Details ED','ED.EmpID = user.EmpID','left');
|
|
$this->db->where('TMD.MRIRNO',$mrir);
|
|
//$this->db->order_by('TMD.MRIRNO','asc');
|
|
|
|
|
|
// $this->db->from ('T_MRIR_Master TMM');
|
|
$query = $this->db->get();
|
|
//print_r($this->db->last_query());
|
|
|
|
$result=$query->result();
|
|
//print_r($result);
|
|
return $result;
|
|
|
|
function get_IGRdatas()
|
|
{
|
|
$this->db->select('IGRM.*,IGRD.*,SUPP.SupplierName,SUPP.Address,TMM.PONO,TMD.*,MM.MaterialCode,MM.UOM,MM.MaterialName,POLT.Quantity,POLT.ReceivedQuantity');
|
|
$this->db->from ('T_IGR_Master IGRM');
|
|
$this->db->join ('T_PurchaseOrder_Master POMR ','IGRM.PONO=POMR.PONO','left');
|
|
$this->db->join ('T_MRIR_Master TMM' ,'TMM.IGRNO=IGRM.IGRNO');
|
|
$this->db->join ('T_MRIR_Details TMD','TMD.MRIRNO=TMM.MRIRNO');
|
|
//$this->db->join ('T_MRIRNO');
|
|
$this->db->join ('T_IGR_Details IGRD','IGRD.IGRNO= IGRM.IGRNO','left');
|
|
$this->db->join ('T_PurchaseOrder_LineItem POLT','IGRM.PONO=POLT.PONO','left');
|
|
$this->db->join ('T_SupplierDetailsN SUPP','POMR.SupplierID=SUPP.SupplierID','left');
|
|
$this->db->join ('T_MaterialMaster MM',' MM.MaterialCode=TMD.MaterialCode','left');
|
|
//$this->db->where('IGRM.IGRNO ');
|
|
$query = $this->db->get();
|
|
$result = $query->result();
|
|
//print_r($result);
|
|
|
|
return $result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function UpdateIGRStatus($IGRDetails,$IGRNO)
|
|
{
|
|
$this->db->where('IGRNO', $IGRNO);
|
|
$this->db->update('T_IGR_Master', $IGRDetails);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
function getItemQuantityFromStock($MaterialCode)
|
|
{
|
|
|
|
// echo $MaterialCode;
|
|
// die();
|
|
$subQuery = 'select Quantity from T_Store_Stockdetails where MaterialCode=?';
|
|
$query = $this->db->query($subQuery,array($MaterialCode));
|
|
return $query->result_array();
|
|
}
|
|
function UpdateStock($StockDetails,$MaterialCode)
|
|
{
|
|
$this->db->where('MaterialCode', $MaterialCode);
|
|
$this->db->update('T_Store_Stockdetails', $StockDetails);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
function getMRIRBillingList()
|
|
{
|
|
|
|
}
|
|
function UpdatePOLineItem($LineItem,$PONO,$MaterialCode)
|
|
{
|
|
$subQuery = 'select * from T_PurchaseOrder_LineItem where Quantity = ReceivedQuantity and PONO=? and MaterialCode=? ';
|
|
$query = $this->db->query($subQuery,array($PONO,$MaterialCode));
|
|
|
|
$ApprovedCount = $query->num_rows;
|
|
|
|
|
|
$subQuery = 'select * from T_PurchaseOrder_LineItem where Quantity > ReceivedQuantity and ReceivedQuantity != 0 and PONO=? and MaterialCode=?';
|
|
$query = $this->db->query($subQuery,array($PONO,$MaterialCode));
|
|
|
|
$PartialApproved = $query->num_rows;
|
|
|
|
// echo 'Partialcount'.$PartialApproved;
|
|
|
|
if($ApprovedCount > 0)
|
|
{
|
|
$this->db->where('PONO', $PONO);
|
|
$this->db->where('MaterialCode', $MaterialCode);
|
|
$this->db->update('T_PurchaseOrder_LineItem', $LineItem);
|
|
|
|
return TRUE;
|
|
}
|
|
elseif($PartialApproved > 0)
|
|
{
|
|
$updateby=$this->session->userdata('userId');
|
|
$date = new DateTime('now',new DateTimeZone('Asia/Kolkata'));
|
|
$updateon = $date->format('Y-m-d H:i:s');
|
|
$POLineItem = array('Status'=>PARTIAL_MRIRAPPROVED,'UpdateBY'=>$updateby,'UpdatedOn'=>$updateon );
|
|
|
|
$this->db->where('PONO', $PONO);
|
|
$this->db->where('MaterialCode', $MaterialCode);
|
|
$this->db->update('T_PurchaseOrder_LineItem', $POLineItem);
|
|
return TRUE;
|
|
}
|
|
|
|
}
|
|
|
|
function UpdatePOMaster($PONO,$PoMrirStatus,$updatedBy)
|
|
{
|
|
$this->db->select('*');
|
|
$this->db->from('T_PurchaseOrder_LineItem');
|
|
$this->db->where('PONO',$PONO);
|
|
$this->db->where('Status !=',MRIR_APPROVED);
|
|
$query = $this->db->get();
|
|
|
|
$ApprovedCnt = $query->num_rows;
|
|
|
|
$this->db->select('*');
|
|
$this->db->from('T_PurchaseOrder_LineItem');
|
|
$this->db->where('PONO',$PONO);
|
|
$this->db->where('Status !=',MRIR_REJECTED);
|
|
$query1 = $this->db->get();
|
|
$RejectedCnt = $query1->num_rows;
|
|
|
|
if ($ApprovedCnt == 0) {
|
|
$this->db->where('PONO', $PONO);
|
|
$POStatus = array('status'=>MRIR_APPROVED,'UpdateBY'=>$updatedBy);
|
|
$this->db->update('T_PurchaseOrder_Master', $POStatus);
|
|
}
|
|
elseif ($RejectedCnt == 0) {
|
|
$this->db->where('PONO', $PONO);
|
|
$POStatus = array('status'=>MRIR_REJECTED,'UpdateBY'=>$updatedBy);
|
|
$this->db->update('T_PurchaseOrder_Master', $POStatus);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
?>
|