ria/application/models/mrir_model.php
venbatechnologies@gmail.com 8476974083 stock detail changes
2018-07-04 19:54:21 +05:30

415 lines
19 KiB
PHP

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');
class mrir_model extends CI_Model
{
/**
* To display the IGR in dropdown box
* @return array $res->result() : result of the query (returns Igrno)
**/
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();
}
/**
* To get mrircreated the igr list
* @return array $result : result of the query (returns mrircreated igr details)
*/
function ViewigrListing()
{
$this->db->select('igr.*,PO.DeliveryDate,sup.SupplierName,igrdetail.QuantityAsPerInvoice,igrdetail.IGRItemNo,POL.Quantity,MM.MaterialName');
$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->join('T_IGR_Details igrdetail','igrdetail.IGRNO = igr.IGRNO');
$this->db->join('T_PurchaseOrder_LineItem POL','igr.PONO = POL.PONO and POL.MaterialCode=igrdetail.MaterialCode');
$this->db->join('T_MaterialMaster MM', 'MM.MaterialCode = igrdetail.MaterialCode');
// $this->db->where('igr.IGRStatus !=',MRIR_CREATED);//old status updated on igr master
$this->db->where('igrdetail.IGRItemStatus !=',MRIR_CREATED);
$this->db->where('PO.IsQualityChkReqired',1);
$this->db->order_by("CreatedDate","desc");
$query = $this->db->get();
$result = $query->result();
return $result;
}
/**
* To get the igr value repective igrno (for button link)
* @param number $Igrno : this is igrno
* @return array $result : result of the query (returns igr details )
*/
function get_IGR($IgrNo,$IgrItemno)
{
$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,IGRD.IGRItemNo');
$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);
$this->db->where('IGRD.IGRItemNo',$IgrItemno);
$query = $this->db->get();
$result = $query->result();
return $result;
}
/**
* To get the mrir aprroved details
* @return array $query->result() : result of the query (returns mrir approved details )
*/
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));
return $query->result();
}
/**
* To list the MRIR value
* @return $query->result() : result of the query(returns as mrir details)
*/
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,TMD.ActualQuantityReceived');
$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->order_by ('TMM.MRIRNO','desc');
$query = $this->db->get();
return $query->result();
}
/**
* To get the status name and code
* @return array $query->result() : result of the query(returns as status code and status name)
*/
function getStatus()
{
$this->db->select('StatusCode,StatusName');
$this->db->from('T_Status');
$this->db->where('StatusType',8);
$query = $this->db->get();
return $query->result();
}
/**
* To list the MRIR approved datas for billing
* @return array $query->result() : result of the query (returns approved mrir details )
**/
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,
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');
$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');
$this->db->join ('T_Employee_Details ED','ED.EmpID = user.EmpID');
$this->db->join ('tbl_users user1','user1.userid = POM.ReleasedBy');
$this->db->join ('T_Employee_Details ED1','ED1.EmpID = user1.EmpID');
$this->db->join ('tbl_users user2','user2.userid=TMD.StoreInchargeID');
$this->db->join ('T_Employee_Details ED2','ED2.EmpID = user2.EmpID');
$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();
return $query->result();
}
/**
* To get the MRIR details respective Mrirno for edit
* @return array $result : result of the query(returnss mrir details )
**/
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,IGRD.IGRItemNo');
$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 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 = 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();
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');
$this->db->join ('T_Employee_Details ED','ED.EmpID = user.EmpID');
$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($IGRMaster,$IGRNO)
{
$this->db->where('IGRNO', $IGRNO);
$this->db->update('T_IGR_Master', $IGRMaster);
return TRUE;
}
function UpdateIGRLineItemStatus($IGRDetails,$igrlineitemno)
{
$this->db->where('IGRItemNo', $igrlineitemno);
$this->db->update('T_IGR_Details', $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);
}
}
}
?>