ria/application/controllers/inwardgateregister.php
venbatechnologies 67f838d52d bankstatement
2018-07-31 12:58:42 +05:30

935 lines
27 KiB
PHP
Executable File

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');
require APPPATH . '/libraries/BaseController.php';
/**
* Class : Inward Gate Register Controller (security)
* inwardgateregister to control all IGR related operations.
* @author :Venba Info Tech - Saravana kumar
* @version : 1.1
* @since :18 November 2017
*/
class inwardgateregister extends BaseController
{
/**
* default constructor of the class
*/
public function __construct()
{
parent::__construct();
$this->load->model('inwardgateregister_model');
$this->load->library('session');
$this->load->library('form_validation');
$this->isLoggedIn();
$this->CompanyName = $this->global['CompanyName'];
}
/**
* Index Page for this controller (default function of the class)
*/
public function index()
{
//$this->global['pageTitle'] = 'Resico : Inward Gate Register';
$this->global['pageTitle'] = $this->CompanyName.' : Inward Gate Register';
$this->loadViews("viewinwardgateregister", $this->global,NULL , NULL);
}
/**
* To load the IGR details for View purpose.
*/
function viewIGRDetails()
{
$this->load->model('inwardgateregister_model');
//$this->global['pageTitle'] = 'Resico : Inward Gate Register Details';
$this->global['pageTitle'] = $this->CompanyName.' : Inward Gate Register Details';
$data['IGR']= $this->inwardgateregister_model->igrListing();
$this->loadViews("viewIGRDetails",$this->global,$data,NULL);
}
/**
* For add new value for the system.
*/
function addinwardgateregister()
{
$this->load->model('inwardgateregister_model');
//$this->global['pageTitle'] = 'Resico : Add Inward Gate Register';
$this->global['pageTitle'] = $this->CompanyName.' : Inward Gate Register';
$data['PO_NO'] = $this->inwardgateregister_model->getpurchaseorder();
$this->loadViews("inwardgateregister", $this->global, $data, NULL);
}
/**
* To Convert the dateformat (date with time) and stored into DB
*/
function getDateformat($Val)
{
$date = new DateTime($Val,new DateTimeZone('Asia/Kolkata'));
$retDate = $date->format('Y-m-d H:i:s');
return $retDate;
}
/**
* To display igr lineitem datas
*/
function IGRITEM()
{
$PO = $this->input->post('id');
$CreatedBy = $this->session->userdata('userId');
$this->inwardgateregister_model->UpdatePOMaster($PO,$CreatedBy);
$data = $this->inwardgateregister_model->viewpurchaseorder($PO);
echo json_encode($data);
}
/**
* To upload IGR files
*/
function adfile()
{
$picture = '';
if(!empty($_FILES['file']['name']))
{
$config['upload_path'] = 'uploads/Igrfiles/';
$config['allowed_types'] = '*';
$config['file_name'] =str_replace(" ","", $_FILES['file']['name']);
//Load upload library and initialize configuration
$this->load->library('upload',$config);
$this->upload->initialize($config);
if($this->upload->do_upload('file'))
{
$uploadData = $this->upload->data();
$picture = $uploadData['file_name'];
// return $uploadfilename;
}
else
{
$error = array('error' => $this->upload->display_errors());
$picture = '';
}
}
else
{
$picture = '';
}
return $picture ;
}
function addloadfile()
{
//echo 'Add new file ';
$upfiles = '';
$pono= $this->input->post('PONO');
$igr= $this->input->post('igr');
//print_r($igr);
$new_file_name =$_FILES['file']['name'];
$new_file_name = str_replace(" ","",$new_file_name);
// print_r($new_file_name);
$files = $this->inwardgateregister_model->getfies($igr);
//print_r($files);
$fcount = 0;
foreach ($files as $value)
{
$lastfile = $value->FilePath;
if($lastfile == $new_file_name)
{
//echo 'eqal';
// echo 'cm'.$fcount;
$fcount ++;
//echo 'cp'.$fcount;
}
}
if($fcount == 0)
{
//echo 'if'.$fcount.'</br>';
if(!empty($new_file_name))
{
$Picture = $this->adfile();
// print_r($Picture); die;
$myfiles =array('PONO'=>$pono,'IGRNO'=>$igr,'FilePath'=>$Picture);
$upfiles = $this->inwardgateregister_model->fileupload($myfiles);
//print_r($upfiles);
}
}
//echo 'filename'.$upfiles;
if( $upfiles > 0){
echo "file updated successfully!";
}
else
{
echo "File name already Exist";
}
}
function add($pathname)
{
// echo "add files";
// die();
//echo $pathname; die();
$picture = '';
if(!empty($_FILES[$pathname]['name']))
{
$config['upload_path'] = 'uploads/Igrfiles/';
$config['allowed_types'] = '*';
//$config['allowed_types'] = 'jpg|jpeg|png|gif';
$config['file_name'] = str_replace(" ","",$_FILES[$pathname]['name']);
//Load upload library and initialize configuration
$this->load->library('upload',$config);
$this->upload->initialize($config);
if($this->upload->do_upload($pathname))
{
// echo "uploadif";
$uploadData = $this->upload->data();
$picture = $uploadData['file_name'];
}
else
{
$error = array('error' => $this->upload->display_errors());
// $uploadfilename = '';
// print_r($error);
// return 0;
$picture = '';
}
}
else
{
// echo "else";
$picture = '';
}
return $picture ;
}
/**
* To Store IGR data into DB
*/
function edituploadfile()
{
$bill= $this->input->post('param1');
$oldfile = $this->input->post('param2');
$newfile =$this->input->post('file');
// $new_file_name =$_FILES['file']['name'];
$newfile = str_replace(" ","",$newfile);
if(!empty($_FILES['file']['name']))
{
$Picture = $this->adfile();
}else{
$Picture = $oldfile ;
}
//echo $Picture;die;
$uploadfile = $this->inwardgateregister_model->updatefile($bill,$Picture,$oldfile);
// if($uploadfile > 0){
echo "updated successfully!";
// }
// else{
// echo "updated successfully!";
// }
}
function addNewigr()
{
$PONO = $this->input->post('PONO');
$DeliveryChellanOrInvoiceNo = $this->input->post('InvoiceNo');
$DeliveryChellan = $this->input->post('InvoiceDate');
$DeliveryChellanDate = $this->getDateformat($DeliveryChellan);
$Mat_Rcvd_Dt = $this->input->post('MaterialRcvdDate');
$MaterialRcvdDt = $this->getDateformat($Mat_Rcvd_Dt);
$VehicleNo = $this->input->post('VehicleNo');
$CourierNo = $this->input->post('CourierNo');
$CreatedBy = $this->session->userdata('userId');
$RowCount = $this->input->post('txtRowCount');
$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
$createddt = $dt->format('Y-m-d H:i:s');
$IGRStatus = IGR_CREATED;
$document = null;
$igr = array();
$igr = array('PONO'=>$PONO,'VehicleNo'=>$VehicleNo,'DeliveryChellanOrInvoiceNo'=>$DeliveryChellanOrInvoiceNo,'DeliveryChellanDate'=>$DeliveryChellanDate,'MaterialRcvdDate'=>$MaterialRcvdDt,'CourierNo'=>$CourierNo,'IGRStatus'=>$IGRStatus,'CreatedBy'=>$CreatedBy,'CreatedDate' =>$createddt);
$igrM = $this->inwardgateregister_model->addigrM($igr);
$IGRNO = '';
if(count($igrM)>0)
{
foreach ($igrM as $key )
{
$IGRNO=$key->IGRNO;
}
}
$constant = $this->input->post('hideconstants');
$arr = [];
$prefile =array();
for($i=1;$i<=$constant;$i++)
{
$pathname = 'browseFiles'.$i;
if(!empty($_FILES[$pathname]['name']))
{
$files = str_replace(" ","",$_FILES[$pathname]['name']);
$fcount = 0;
foreach ($prefile as $value)
{
if($value == $files)
{
$fcount++;
}
}
if($fcount == 0)
{
$Picture = $this->add($pathname);
$arr[] = array($Picture);
}
$prefile[] = $files;
}
}
if(!empty($arr))
{
foreach($arr as $ma){
$index = 0;
foreach($ma as $key=>$value){
$index++;
if($index == 1){
$filename = $value;
}
}
if(!empty($filename))
{
$myfile = array('FilePath'=>$filename,'PONO'=>$PONO,'IGRNO'=>$IGRNO);
$this->inwardgateregister_model->fileupload($myfile);
}
}
}
$OGRStatus=IGR_CREATED;
$check_OGRPO= $this->inwardgateregister_model->update_OGR($PONO,$OGRStatus);
$IGRNO = '';
if(count($igrM)>0)
{
foreach ($igrM as $key ) {
$IGRNO=$key->IGRNO;
}
}
$IGRItemStatus = REQITEM_NEW;
$TotalPendingQty = '';
for ($i = 1; $i <= $RowCount; $i++)
{
$MaterialCode = trim($this->input->post('MaterialCode'.$i));
$QuantityAsPerInvoice = trim($this->input->post('txtQuantityAsPerInvoice'.$i));
$OrderedQuantity = trim($this->input->post('OrderedQuantity'.$i));
$ReceivedQty = trim($this->input->post('txtReceivedQuantity'.$i));
$PendingQty = $this->input->post('txtPendingQty'.$i);
$TotalPendingQty = $TotalPendingQty + $PendingQty;
if(strlen($QuantityAsPerInvoice)>0 && $QuantityAsPerInvoice != '0')
{
$Remarks = $this->input->post('txtRemarks'.$i);
$ItemStatus = '';
if($PendingQty == 0.00 )
{
$ItemStatus = IGR_CREATED;
}
else
{
$ItemStatus = POLINEITEM_IGRPARTIAL_CREATED;
}
$CreatedBy = $this->session->userdata('userId');
$bankstatus = NO_PAIDIGR;
$igrDetails = array('IGRNO'=>$IGRNO,'MaterialCode'=>$MaterialCode,'QuantityAsPerInvoice'=>$QuantityAsPerInvoice,'Remarks'=>$Remarks,'IGRItemStatus'=>$IGRItemStatus,'CreatedBy'=>$CreatedBy,'CreatedDate'=>$createddt,'BankStatus'=>$bankstatus);
$igrD = $this->inwardgateregister_model->addigrD($igrDetails);
$igrlineno ='';
if(!empty($igrD))
{
foreach($igrD as $ig)
{
$igrlineno = $ig->IGRItemNo;
}
}
$itemvalue='';
$SupplierId='';
$polineitemvalue = $this->inwardgateregister_model->getitemvalue($PONO,$MaterialCode);
foreach($polineitemvalue as $it)
{
$itemvalue =$it->Rate;
$SupplierId =$it->SupplierID;
}
$historydetails = array('MaterialCode'=>$MaterialCode,'Transaction_type'=>"Add",'Ref_Type'=>"IGR",'Ref_No'=>$igrlineno,'Quantity'=>$QuantityAsPerInvoice,'CreatedBy'=>$CreatedBy,'CreatedOn'=>$createddt,'SupplierID'=>$SupplierId,'ItemValue'=>$itemvalue);
$this->inwardgateregister_model->addmaterialhistory($historydetails);
// $get_pre_qty= $this->inwardgateregister_model->get_CurrentQty($MaterialCode);
// $av_qty=0;
// if(!empty($get_pre_qty))
// {
// foreach($get_pre_qty as $gt)
// {
// $av_qty=$gt->Current_stock;
// }
// }
// $currentav_qty= $QuantityAsPerInvoice+$av_qty;
// $current_qty= array('Current_stock'=>$currentav_qty);
// $this->inwardgateregister_model->addmaterialmaster($current_qty,$MaterialCode);
$Recqty = $this->inwardgateregister_model->getPOLineItemReceivedQty($PONO,$MaterialCode);
$ReceivedQuantity = 0.00;
if(count($Recqty)>0)
{
foreach ($Recqty as $key ) {
$ReceivedQuantity=$key->ReceivedQuantity;
}
}
$totalReceivedqty = $ReceivedQuantity + $QuantityAsPerInvoice;
$POLineItem = array('ReceivedQuantity'=>$totalReceivedqty,'Status'=>$ItemStatus,'UpdateBY'=>$CreatedBy,'UpdatedOn'=>$createddt );
$this->inwardgateregister_model->UpdatePOLineItem($POLineItem,$PONO,$MaterialCode);
}
}
$this->inwardgateregister_model->UpdatePOMaster($PONO,$CreatedBy);
if($TotalPendingQty == 0.00){
$Newstatus = array('Status'=>IGR_CREATED);
$this->inwardgateregister_model->POLineItemsupdatestatus($PONO,$Newstatus);
$this->inwardgateregister_model->pomasterupdatestatus($PONO,$Newstatus);
}
else{ /*echo 'error' ;*/ }
echo "<script>alert('Successfully Created IGR Number:$IGRNO'); window.location.href='viewIGRDetails';</script>";
}
/**
*To get igr Datas form ajax
*/
function ViewIGR()
{
$IGRNO= $this->input->post('id');
//echo $IGRNO;
$data = $this->inwardgateregister_model->viewigr($IGRNO);
// print_r($data);
echo json_encode($data);
}
function ViewIGRfile()
{
$IGRNO= $this->input->post('id');
// echo($IGRNO);
$igrfile = $this->inwardgateregister_model->viewIGRFile($IGRNO);
$billfile = $this->inwardgateregister_model->ViewIGRfile1($IGRNO);
$data = array_merge($igrfile,$billfile);
//print_r($data);
echo json_encode($data);
}
/**
*To Update igr Datas form ajax
*/
function UpdateIGR()
{
$IGRNo = $this->input->post('igr');
$DeliveryChellan = $this->input->post('invdate');
$DeliveryChellanDate = $this->getDateformat($DeliveryChellan);
$Mat_Rcvd_Dt = $this->input->post('mrc');
$MaterialRcvdDt = $this->getDateformat($Mat_Rcvd_Dt);
$updateby = $this->session->userdata('userId');
$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
$updatedon = $dt->format('Y-m-d H:i:s');
$igrarr = array('DeliveryChellanDate'=>$DeliveryChellanDate,'MaterialRcvdDate'=>$MaterialRcvdDt,'UpdateBY'=>$updateby,'UpdatedOn'=>$updatedon);
$data = $this->inwardgateregister_model->updateigr($igrarr,$IGRNo);
if($data > 0){
echo "Updated Succefully!";
}
else{
echo "Not Updated!";
}
}
function addoutwardgateregister()
{
$this->load->model('inwardgateregister_model');
$this->global['pageTitle'] = $this->CompanyName.' : Add Outward Gate Register';
//$data['Customer'] = $this->inwardgateregister_model->getCustomer();
$data['Supplier'] = $this->inwardgateregister_model->getSupplier();
$data['storedmaterialcode'] = $this->inwardgateregister_model->getstoredmaterialcode();
$this->loadViews("ogr", $this->global, $data, NULL);
}
function GetInvoices()
{
$CustomerId = $this->input->post('customerId');
$data = $this->inwardgateregister_model->getInvoice($CustomerId);
echo json_encode($data);
}
function GetPO()
{
$supplierId = $this->input->post('supplierId');
$data = $this->inwardgateregister_model->getPO($supplierId);
echo json_encode($data);
}
function getPODetails()
{
$PONO = $this->input->post('PONO');
$data = $this->inwardgateregister_model->getPODetails($PONO);
//$data['poout'] = $this->inwardgateregister_model->getPODetails($PONO);
echo json_encode($data);
}
function getPOmrir()
{
$PONO = $this->input->post('PONO');
$data = $this->inwardgateregister_model->getPOmrir($PONO);
//$data['poout'] = $this->inwardgateregister_model->getPODetails($PONO);
echo json_encode($data);
}
function getMRIRDetails()
{
$MRIRno = $this->input->post('mrirno');
$PONO = $this->input->post('PONO');
$materialcode = $this->input->post('materialcode');
$data = $this->inwardgateregister_model->getPOMRIRDetails($MRIRno,$PONO,$materialcode);
echo json_encode($data);
}
function getMRIR()
{
$MRIRno = $this->input->post('MRIRNO');
$PONO = $this->input->post('PONO');
$data = $this->inwardgateregister_model->getPOMRIRMaterial($MRIRno,$PONO);
echo json_encode($data);
}
function ViewOgr()
{
$this->load->model('inwardgateregister_model');
$this->global['pageTitle'] = $this->CompanyName.' : View Outward Gate Register';
$data['OGR_Data'] = $this->inwardgateregister_model->getOGRData();
$this->loadViews("ogrlist", $this->global, $data, NULL);
}
function EditOGR()
{
$OGRNO = $_GET['OGRNO'];
$MRIRNO = $_GET['MRIRNO'];
$this->global['pageTitle'] = $this->CompanyName.' : View Outward Gate Register';
$data['OGR_Data'] = $this->inwardgateregister_model->getOGRDataforedit($OGRNO);
$data['OGR_line'] = $this->inwardgateregister_model->getOGRlineDataforedit($OGRNO,$MRIRNO);
$this->loadViews("editogr", $this->global, $data, NULL);
}
function AddOgr()
{
$type=$this->input->post('type');
$Supplier = $this->input->post('sup');
$Date = $this->input->post('Date');
$vehicle =$this->input->post('Vehicle');
$driver = $this->input->post('drive');
if($type == 1)
{
$invoice =$this->input->post('invno');
$Otype='Invoice';
$Status ='OGR_COMPLETE';
$ogrmaster = array('OgrType'=>$Otype,'CreatedDate'=>$Date,'Driver'=>$driver
,'PONO_INV'=>$invoice,'VehicleNo'=>$vehicle,'Status'=>$Status);
$addogrmaster= $this->inwardgateregister_model->AddOGR($ogrmaster);
$OGRNO = '';
if(count($addogrmaster)>0)
{
foreach($addogrmaster as $add)
{
$OGRNO = $add->OGRNO;
}
}
$itemcode =$this->input->post('itemcode');
$Description = $this->input->post('Description');
$invoutwardqty = $this->input->post('invoutwardqty');
$Ogrline= array('OGRNO'=>$OGRNO,'MaterialCode'=>$itemcode,'OutwardQty'=>$invoutwardqty,'Status'=>$Status);
$addOgrline = $this->inwardgateregister_model->AddOgrLine($Ogrline);
if((count($addogrmaster)>0)&&(count($addOgrline>0)))
{
echo "Saved Successfully OGR No is OGR".$OGRNO;
}
}
else if($type == 2)
{
$pono =$this->input->post('pono');
$MRIRNO = $this->input->post('mrirno');
$Otype='PO';
$row= $this->input->post('rowcount');
$ogrmaster = array('OgrType'=>$Otype,'CreatedDate'=>$Date,'Driver'=>$driver
,'PONO_INV'=>$pono,'VehicleNo'=>$vehicle,'MRIRNO'=>$MRIRNO);
$addogrmaster= $this->inwardgateregister_model->AddOGR($ogrmaster);
$OGRNO = '';
if(count($addogrmaster)>0)
{
foreach($addogrmaster as $add)
{
$OGRNO = $add->OGRNO;
}
}
for($i=1;$i<=$row;$i++)
{
$MaterialCode = $this->input->post('materialcode'.$i);
$OutwardQty = $this->input->post('outward'.$i);
$rejqty = $this->input->post('RejectedQty'.$i);
$pendingoutward = $this->input->post('pendingoutward'.$i);
$balance_Qty= $rejqty-$OutwardQty;
//$balance_Qty = $this->input->post('pendingoutward'.$i);
$Outwardtotal = $OutwardQty;
$allowed= $this->input->post('allowed'.$i);
if($MaterialCode != '' && $OutwardQty !='')
{
$polqty= $this->inwardgateregister_model->getPOLineItemReceivedQty($pono,$MaterialCode);
$ReceivedQuantity = 0.00;
if(count($polqty)>0)
{
foreach ($polqty as $key )
{
$ReceivedQuantity=$key->ReceivedQuantity;
}
}
$totalReceivedqty = $ReceivedQuantity - $Outwardtotal;
$POMStatus=OGR_CREATED;
$POLineItem = array('ReceivedQuantity'=>$totalReceivedqty,'OGR_Status'=>$POMStatus);
$this->inwardgateregister_model->UpdatePOLineItem($POLineItem,$pono,$MaterialCode);
if($pendingoutward == 0)
{
$Status = OGR_COMPLETE;
}
else
{
$Status = OGR_PARTIAL_COMPLETE;
}
$Ogrline= array('OGRNO'=>$OGRNO,'MaterialCode'=>$MaterialCode,'OutwardQty'=>$Outwardtotal,'Status'=>$Status,'balance_Qty'=>$balance_Qty);
$addOgrline = $this->inwardgateregister_model->AddOgrLine($Ogrline);
//print_r($addOgrline);
$ogrlineno='';
$itemvalue='';
$SupplierId='';
$CreatedBy = $this->session->userdata('userId');
$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
$createddt = $dt->format('Y-m-d H:i:s');
if(count($addogrmaster)>0)
{
$ogrlinearray= $this->inwardgateregister_model->getlastogrline();
foreach($ogrlinearray as $og)
{
$ogrlineno = $og->OGRItemNO;
}
$polineitemvalue = $this->inwardgateregister_model->getitemvalue($pono,$MaterialCode);
foreach($polineitemvalue as $it)
{
$itemvalue =$it->Rate;
$SupplierId =$it->SupplierID;
}
}
$historydetails = array('MaterialCode'=>$MaterialCode,'Transaction_type'=>"Reduce",'Ref_Type'=>"OGR",'Ref_No'=>$ogrlineno,'Quantity'=>$Outwardtotal,'CreatedBy'=>$CreatedBy,'CreatedOn'=>$createddt,'ItemValue'=>$itemvalue,'SupplierID'=>$SupplierId);
$this->inwardgateregister_model->addmaterialhistory($historydetails);
$this->inwardgateregister_model->UpdateOGRMasterOGRStatus($OGRNO);
$this->inwardgateregister_model->UpdateMRIRMasterOGRStatus($MRIRNO,$OGRNO);
$mrirout= $this->inwardgateregister_model->GetMRIROutQty($MRIRNO,$MaterialCode);
$premrirout=0;
if(!empty($mrirout))
{
foreach($mrirout as $mr)
{
$premrirout= $mr->Ogr_Out_Qty;
}
}
$totmrirout= $premrirout+$Outwardtotal;
$mrirarray=array('Ogr_Out_Qty'=>$totmrirout);
$this->inwardgateregister_model->UpdateMRIROUTQty($mrirarray,$MRIRNO,$MaterialCode);
$POMasterStatus=array('Status'=>PO_RELEASED);
$this->inwardgateregister_model->UpdatePOMasterOGRStatus($pono,$POMasterStatus);
}
}
if((count($addogrmaster)>0)&&(count($addOgrline)>0))
{
echo "Saved Successfully OGR No is OGR".$OGRNO;
}
}
else if($type ==3)
{
$Otype='SERVICE';
$Status ='OGR_COMPLETE';
$ogrmaster = array('OgrType'=>$Otype,'CreatedDate'=>$Date,'Driver'=>$driver,'VehicleNo'=>$vehicle,'Status'=>$Status);
$addogrmaster= $this->inwardgateregister_model->AddOGR($ogrmaster);
//print_r($addogrmaster);
$OGRNO = '';
//echo count($addogrmaster);
if(count($addogrmaster)>0)
{
foreach($addogrmaster as $add)
{
$OGRNO = $add->OGRNO;
}
}
$material= $this->input->post('material');
$name= $this->input->post('name');
$pooutward= $this->input->post('pooutward');
$destination= $this->input->post('destination');
$Remarks= $this->input->post('Remark');
$Ogrline= array('OGRNO'=>$OGRNO,'MaterialCode'=>$material,'OutwardQty'=>$pooutward,'Destination'=>$destination,'Status'=>$Status,'SupplierID'=>$name,'Remark'=>$Remarks);
//print_r($Ogrline);
//die();
$addOgrline = $this->inwardgateregister_model->AddOgrLine($Ogrline);
if((count($addogrmaster)>0)&&(count($addOgrline>0)))
{
echo "Saved Successfully OGR No is OGR".$OGRNO;
}
}
}
/**
* To load pagenotfound view
*/
function pageNotFound()
{
//$this->global['pageTitle'] = 'Resico : 404 - Page Not Found';
$this->global['pageTitle'] = $this->CompanyName.' : 404 - Page Not Found';
$this->loadViews("404", $this->global, NULL, NULL);
}
}
?>