<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

require APPPATH . '/libraries/BaseController.php';

/**
 * Class : purchaseorder (PurchaseorderController)
 * User Class to control all user related operations.
 * @author : Venba InfoTech
 * @version : 1.1
 * @since : 09/06 Feb 2017
 */
class purchaseorder extends BaseController
{
    /**
     * This is default constructor of the class
     */
    public function __construct()
    {
        parent::__construct();
        $this->load->model('purchaseorder_model');
		
		$this->load->library('session');
	    $this->load->library('form_validation');
		$this->load->model('requistion_model');
        $this->isLoggedIn();   
    }
    
    /**
     * This function used to load the first screen of the user
     */
    public function index()
    {
        $this->global['pageTitle'] = 'Siddharth : AddPO';		
        
        $this->loadViews("addPO", $this->global, NULL , NULL);
    }
    
	function requisition()
	 {
		     $data['DeptList'] = $this->purchaseorder_model->getDepartmentListForAllReq();
			 
		     $data['stList'] = $this->purchaseorder_model->getStatusListforAllReq();
			   /*   Cost code from Requisition - Client Review Fix   
			  Start here */
			// $data['ReqList'] =  $this->purchaseorder_model->getRequistionListbySearch();
			
			$data['ReqList'] =  $this->purchaseorder_model->getAllRequistionListToCreatePO();
			 /* End Here */
		    $this->global['pageTitle'] = 'Siddharth : Create PO from Requisition List';
            
            $this->loadViews("createPOfromRequistion", $this->global,  $data,Null);
	 }
	
	
	 /**
     * This function is used to load the purchaseorder list
     */
    function PurchaseOrderList()
    {
            
            $this->load->library('pagination');
            
            $count = $this->purchaseorder_model->purchaseorderListingCount('');

			$returns = $this->paginationCompress ( "purchaseorderListing/", $count, 10 );

			$this->purchaseorder_model->UpdateRequistionStatus();	
			
			$data['POData'] =  $this->purchaseorder_model->purchaseorderListing();	
            
            $this->global['pageTitle'] = 'Siddharth : Purchase Orders';
            
            $this->loadViews("POlist", $this->global, $data, NULL);
       
    }
	function  Req_validate($selectValue)
{
	//echo 'select_validate  method called';
    // 'none' is the first option and the text says something like "-Choose one-"
    if(strlen($selectValue) == 0)
    {
        $this->form_validation->set_message('Req_validate', 'Please Select Requisition Number to Create PO.');
        return false;
    }
    else // user picked something
    {
        return true;
    }
}

	/**
     * This function used to show the Purchase Order Screen
     */
    
	 function CreatePurchaseOrder()
    {      
			
						
			$this->form_validation->set_rules('txtReqNo', 'txtReqNo', 'callback_Req_validate');	
			
			if($this->form_validation->run() == FALSE)
            {
                $this->requisition();
				
            }
            else
            { 
			
            $this->global['pageTitle'] = 'Siddharth : Purchase order' ;
			$data['TaxType'] = $this->purchaseorder_model->getConfigValue('C006'); 
			$data['FreightType'] = $this->purchaseorder_model->getConfigValue('C018'); 
			$data['Suplist'] = $this->purchaseorder_model->getSupplierName();  
			$SelectedReq = json_decode($this->input->post('txtReqNo'));
			
			$Req = $SelectedReq->Req;
			$data['ReqList'] = $Req ;
			$ReqArray = array();
			$ReqType = '';
			$result = array();
			
						foreach ($Req as $SID):
						$ReqArray[] 	=  $SID->ReqNo  ;	
						$result[] = $this->purchaseorder_model->getRawPOMaterialList($SID->ReqNo); 		
						 $ReqType =  $SID->ReqType;					
						
						endforeach;
					
			  
			  $data['MaterialList'] = $result; 
			  /*   Cost code from Requisition - Client Review Fix   
			  Start here */
			  $ReqDetails = $this->purchaseorder_model->getRequistDetails($ReqArray);
			  $data['RequistionDetails'] =  $ReqDetails;
			  $CostCode = '';
			  $dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
				
			  $Year =  $dt->format('Y');
			  
			  foreach ($ReqDetails as $Rs):
				 $CostCode = $Rs->CostCenterCode;  
			  endforeach;
			  
			  $AvlBudget   =   $this->purchaseorder_model->GetAvailableBudgetAmount($CostCode,$Year,$ReqType);
			  
			  
				if(count($AvlBudget)>0)
				{
         		$data['AvlBudAmt'] = $AvlBudget[0]['BudgetAmount'] -  $AvlBudget[0]['Totalvalue'];
				}
				/* End Here */
				
			  $data['CompanyDetails'] =  $this->purchaseorder_model->getCompanyInformation();
			  $data['MaxPODate'] =  $this->purchaseorder_model->getLastCreatedPODate();
			  $data['Currency']=$this->purchaseorder_model->GetCurrencytype();
			  
			  $ViewName = '';	  
			 if($ReqType  == REVENUE)
			 {
				 $ViewName = 'purchaseorder';
			 }				 
             else if($ReqType  == SERVICE)
			 {
				 $ViewName = 'servicePurchaseorder';
			 }		
			 else if($ReqType  == IMPORT)
			 {
				 $ViewName = 'importpo';
			 }	
			else if($ReqType  == CAPITAL)
			 {
				 $ViewName = 'capitalpurchaseorder';
			 }			 
             $this->loadViews($ViewName, $this->global,$data, NULL); 
			}
    }
	
	 function CreatePOPrint()
	 {
		$PONO =  $_GET['PONO'];
		$ReqType =  $_GET['ReqType']; 
		
				if($ReqType == SERVICE)
			  {	    
				 $this ->servicepoprint($PONO);
				
			  }
				else if($ReqType == REVENUE)
				{
					 $this ->revenuepoprint($PONO);
			
				}

				else if($ReqType == IMPORT)
				{
					 $this ->importpoprint($PONO);
			
				}
	 }	

	function CreaterevenuePOPrint()
	 {
			 $this->load->View("revenuepopdf", NULL); 
	 }
	function CreateservicePOPrint()
	 {
			 $this->load->View("servicepopdf", NULL); 
	 }
	 function CreateimportPOPrint()
	 {
			 $this->load->View("importpopdf", NULL); 
	 }
	 function CreatecapitalPOPrint()
	 {
			 $this->load->View("capitalpopdf", NULL); 
	 }
	//To View/Update Purchase Order	
	 function EditPurchaseOrder()
	 {
				$PONO =  $_GET['PONO'];
				$ReqType =  $_GET['ReqType'];  
				
				$Req = $this->purchaseorder_model->getRequistionNoFromPO($PONO); 	
				$data['ReqList'] = $Req ;
				$result = array();
				$ReqArray = array();				
				foreach ($Req as $SID):
					$ReqArray[] 	=  $SID->ReqNo  ;
					$result[] = $this->purchaseorder_model->getRawPOMaterialList($SID->ReqNo); 						
				 endforeach;
				$data['MaterialList'] = $result;//$this->purchaseorder_model->getRawMaterialList($ReqType,$ReqArray);
				$data['Suplist'] = $this->purchaseorder_model->getSupplierName();
				 /*   Cost code from Requisition - Client Review Fix   
				Start here */
				$ReqDetails = $this->purchaseorder_model->getRequistDetails($ReqArray);
				$data['RequistionDetails'] =  $ReqDetails;
				$CostCode = '';
				$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));

				$Year =  $dt->format('Y');

				foreach ($ReqDetails as $Rs):
				 $CostCode = $Rs->CostCenterCode;  
				endforeach;

				$AvlBudget   =   $this->purchaseorder_model->GetAvailableBudgetAmount($CostCode,$Year,$ReqType);


				if(count($AvlBudget)>0)
				{
				$data['AvlBudAmt'] = $AvlBudget[0]['BudgetAmount'] -  $AvlBudget[0]['Totalvalue'];
				}
				/* End Here */
				
				$data['POMaster'] = $this->purchaseorder_model->GetServicePurchaseOrder($PONO);
				$data['MaxPODate'] =  $this->purchaseorder_model->getLastCreatedPODate();
				$data['TaxType'] = $this->purchaseorder_model->getConfigValue('C006'); 
				$data['FreightType'] = $this->purchaseorder_model->getConfigValue('C018'); 
          	  if($ReqType == SERVICE)
			  {	    
				
				$data['POItem'] = $this->purchaseorder_model->GetServicePurchaseOrderDetails($PONO);
                $this->global['pageTitle'] = 'Siddharth : Edit Service Purchase order form';			  
				$this->loadViews("EditservicePurchaseorder", $this->global,  $data, NULL);	
			  }
				else if($ReqType == REVENUE)
				{
					
				$data['POItem'] = $this->purchaseorder_model->GetRevenuePurchaseOrderDetails($PONO);
                $this->global['pageTitle'] = 'Siddharth : Edit Revenue Purchase order form';			  
				$this->loadViews("editRevenuepurchaseorder", $this->global,  $data, NULL);	
				}

				else if($ReqType == IMPORT)
                {


                	$AvlBudget   =   $this->purchaseorder_model->GetAvailableBudgetAmount($CostCode,$Year,$ReqType);
			  
			  
				if(count($AvlBudget)>0)
				{
         		$data['AvlBudAmt'] = $AvlBudget[0]['BudgetAmount'] -  $AvlBudget[0]['Totalvalue'];
				}
                  // print_r($data); 
                $data['POItem'] = $this->purchaseorder_model->GetImportPurchaseOrderDetails($PONO);
                //print_r($data);
                //$data['ExchangeRate']=$data['POItem'] ->ExchangeRate;
                //$data['ExchangeRate']=$this->purchaseorder_model->GetImportPurchaseOrderDetails($PONO);
                $data['Currency']=$this->purchaseorder_model->GetCurrencytype();
                //print_r($data);
               $this->global['pageTitle'] = 'Siddharth : Edit Import Purchase order form';              
                $this->loadViews("editimportpo", $this->global,  $data, NULL);    
                }
		
	 }
	 
	 // To get the Material value based on the MaterialCode
	function getDetailsforReq()
	 {		 
		 
		      
		    $SearchFilter= $this->input->post('id');
			// $reqDate= $this->input->post('ReqDate');
			$DeptCode =  $SearchFilter[0];
			$MatType =  $SearchFilter[1];
			$ReqNo = $SearchFilter[2];
		   // $ReqDetai = $this->purchaseorder_model->getRequistDetails( $EmpID );  
			  
			$CostList = $this->requistion_model->GetCostCenterByDept( $DeptCode);
		   		   
			$HTML = "<option value='-1'>Select Cost center</option>";
		    $BudAmount = "";
		   if(count($CostList) > 0)
		   {
             for ($j = 0; $j < count($CostList); $j++)
			  {
				$Code = $CostList[$j]['CostCenterCode'];
				$Name = $CostList[$j]['CostCenterName'];
				$HTML .="<option value='".$Code."'>".$Code."-".$Name."</option>";
				}	
		   }	
		   $MaterialDetails = $this->purchaseorder_model->getRawMaterialListForPO($MatType,$ReqNo);   
		  
		   $HTML1 = "<option value='-1'>Select Material Type</option>";
		   
		   if(count($MaterialDetails) > 0)
		   {
             for ($j = 0; $j < count($MaterialDetails); $j++)
			  {
				$Code = $MaterialDetails[$j]['MaterialCode'];
				$Name = $MaterialDetails[$j]['MaterialName'];
				$HTML1 .="<option value='".$Code."'>".$Code."-".$Name."</option>";
				
				}
							
		   }   
		  // print_r($HTML1);
			   
		   die(json_encode(array('MatDetail' =>$HTML1,'Cost'=> $HTML)));
	 }
	/* This method to get the status based on the Department selection in th 
	*/
	function getStatusByDepartment()
	{
		$DepId =  $this->input->post('id');
		
		$data = $this->purchaseorder_model->getStatusByDepartment($DepId);
		
		$HTML = "<option value='0'>Select Requistion Status</option>";
		 if(count($data) > 0)
		   {
             for ($j = 0; $j < count($data); $j++)
			  {
				$Code = $data[$j]['StatusCode'];
				$Name = $data[$j]['StatusName'];
				$HTML .="<option value='".$Code."'>".$Code."-".$Name."</option>";
				}	
		   }
		   //echo $HTML;
			die(json_encode(array('depStaus' => $HTML)));		   
	}
	
	// To get the available Budget Amount
	function AvilBudgetAmount()
	 {		 
		   $SearchFilter= $this->input->post('id');
			// $reqDate= $this->input->post('ReqDate');
			$CostCode =  $SearchFilter[0];
			$ReqType =  $SearchFilter[1];
			print_r($SearchFilter);
		   $CostCode=  $this->input->post('id');
		   $dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
				
			$Year =  $dt->format('Y');
			$this->load->model('purchaseorder_model');
		    $result = $this->purchaseorder_model->GetAvailableBudgetAmount($CostCode,$Year,$ReqType);
			//print_r($result);
		    $AvilBudAmt = '';
			if(count($result)>0)
			{
				 $AvilBudAmt = $result[0]['BudgetAmount'] -  $result[0]['Totalvalue'];
			}	   
		 
		   print_r($AvilBudAmt);
			
	 }
	 
	 
	 function getDateformat($Val)
	{
		$date = new DateTime($Val,new DateTimeZone('Asia/Kolkata'));
		$retDate = $date->format('Y-m-d H:i:s');
		return $retDate;
	}
	/* Method to get the Requistion list based on the search filter*/
	
	 function SearchListofRequistion()
     {
		$SearchFilter= $this->input->post('id');

		$DEPCode =  $SearchFilter[0];
		$Status =  $SearchFilter[1];
		$rng =   $SearchFilter[2];;

		$FromDate ='';
		$ToDate = '';

		$Dt =  explode("-",$rng);

		if(count( $Dt)>1)
		{
			$FDate = $Dt[0];
			$TDate = $Dt[1];
			$FromDate =  $this->getDateformat($FDate);
			$ToDate =  $this->getDateformat($TDate);
		} 

		$result =  $this->purchaseorder_model->getRequistionListbySearch($DEPCode,$Status,$FromDate,$ToDate);


		$HTML="";	
   		 for ($i = 0; $i < count($result); $i++)
			 {
					$SNo = $i + 1;
					$ReqNo = $result[$i]['ReqNo'];
					$ReqType = $result[$i]['ReqType'];
					$Reqedby = $result[$i]['FirstName'];
					$ReqDate = $result[$i]['ReqDate'];					
					$Status = $result[$i]['StatusName'];
					$Department = $result[$i]['DepartmentName'];
					$Designation = $result[$i]['Designation'];
					
					$HTML.="<tr  id='".$i."'>
							<td align='left'><input type='checkbox' name='chk'".$i." id='chk'".$i."/></td>
							<td align='left'><a data-toggle='modal' data-target='#myModal'><u>". $ReqNo."</u></a></td>
							   
							<td align='left'>".$ReqType."</td>
							
							<td align='left'>".$Reqedby."</td>	
							<td align='left'>".$ReqDate."</td>	
							<td align='left'>".$Status."</td>	
							<td align='left'>".$Department."</td>	
							<td align='left'>".$Designation."</td>							
							</tr>";					 
			}	
		  die(json_encode(array('ReqList' =>$HTML)));	
     }
	
	
	/* To View the request details*/	
	 function ListPORequistion()
     {
		 $ReqNo= $this->input->post('id');
         $result =  $this->requistion_model->getRequistItemList($ReqNo);
		 $ReqList = $this->requistion_model->getRequistDetails($ReqNo);
		 $DepNo = $ReqList[0]['DEPCode'];
		 $CostList = $this->requistion_model->GetCostCenterByDept($DepNo);
		  $HTML="";	
   		  for ($i = 0; $i < count($result); $i++)
			 {
					$SNo = $i + 1;
					$MaterialCode = $result[$i]['MaterialCode'];
					$MaterialName = $result[$i]['MaterialName'];
					$UOM = $result[$i]['UOM'];					
					$Quantity = $result[$i]['Quantity'];
					$HTML.="<tr  id='".$i."'>
							<td align='left'>".$SNo."</td>
							<td align='left'>". $MaterialCode."</td>
													                      
							<td align='left'>".$MaterialName."</td>
							
							<td align='left'>".$UOM."</td>	
							<td align='left'>".$Quantity."</td>								
							</tr>";

					//$index =  $index + 1;
   
			}

		$CostCenter = "<option value='-1'>Select Cost center</option>";
		if(count($CostList) > 0)
		   {
             for ($j = 0; $j < count($CostList); $j++)
			  {
				$Code = $CostList[$j]['CostCenterCode'];
				$Name = $CostList[$j]['CostCenterName'];
				$CostCenter .="<option value='".$Code."'>".$Code."-".$Name."</option>";
				}	
		   }
			
			die(json_encode(array('Items' =>$HTML,'Requist'=>$ReqList,'Cost'=>$CostCenter)));	
     }
	 
   //This used to Create Revenue Purchase Order
	function addNewPurchaseOrder()
	{
				$POdt =$this->input->post('PODate');
				$PODate =  $this->getDateformat($POdt);
                $SupplierID = $this->input->post('drpSupplier');  
				$DeliveryAddr = $this->input->post('DeliveryAddr');
				$dt = $this->input->post('Deliverydt');
				$Deliverydt = $this->getDateformat($dt);
$DeliveryOption = $this->input->post('DateRange');
        if($DeliveryOption==1){
         $Deliverydt = '';
        $DeliverySchedule = $this->input->post('Scheduleby');
        }
         else{
         $Deliverydt = $this->getDateformat($dt);
        $DeliverySchedule = '';
        }
				$POType = $this->input->post('POType');
				$PoRange = $this->input->post('txtPoRange');
				
				$SpcialInstruction = $this->input->post('txtSpcialInstruction');
				$TotalOrderValueSummary = $this->input->post('txtTotalOrderValueSummary');
			    $POStatus = $this->input->post('txtStatus');

                $CreateBy = $this->session->userdata ( 'userId' );
				$RowCount =  $this->input->post('txtRowCount'); 
				$DeletedRow =  $this->input->post('txtDeletedRow'); 
				
				$comma_separated = explode(':', $DeletedRow);	
				
				$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));				
				$createddt =  $dt->format('Y-m-d H:i:s');
				// PO Master
								$POList = array('SupplierID'=>$SupplierID, 'TotalOrderValue'=>$TotalOrderValueSummary,'PODate'=>$PODate,'DeliverySchedule'=>$DeliverySchedule,'DeliveryOption'=>$DeliveryOption,'Status'=>$POStatus,'PORange'=>$PoRange,'ServiceDescription'=>$SpcialInstruction,'CreatedBy'=>$CreateBy,'DeliveryAddress'=>$DeliveryAddr,'DeliveryDate'=>$Deliverydt,'CreatedDate'=>$createddt );

					
					$POMaster  = $this->purchaseorder_model->addPOMaster($POList);
					
					 $PONO = '';
					if(count($POMaster)>0)
					{
					 $PONO =  $POMaster[0]['PONO'];
					}
					
					// PO Line Items
					$LineItemStatus = REQITEM_NEW;
					
						for ($i = 1; $i <= $RowCount; $i++)
							{	
							
								$MaterialCode = $this->input->post('materialCode'.$i);
								$Quantity = $this->input->post('quantity'.$i); 
								$Reqnumber = $this->input->post('Reqnumber'.$i);
								$itemRate = $this->input->post('itemRate'.$i);

								$DiscountType = $this->input->post('DisType'.$i);
								$DiscountValue = $this->input->post('DisVal'.$i); 
								$AfterDiscount = $this->input->post('AfterDisVal'.$i);
								$PackagingOption = $this->input->post('PackOption'.$i);
								$PackagingType = $this->input->post('PackType'.$i);
								$PackagingValue = $this->input->post('PackVal'.$i); 
								$AfterPackagingValue = $this->input->post('AfterPackVal'.$i);
								$ExciseOption = $this->input->post('ExciseOption'.$i);
								$ExciseValue = $this->input->post('ExciseVal'.$i);
								$AfterExciseValue = $this->input->post('AfterExciseVal'.$i); 
								$VatOption = $this->input->post('VatOption'.$i);
								$VatValue = $this->input->post('VatVal'.$i);
								$AfterVatValue = $this->input->post('AfterVatVal'.$i);
								$CSTOption = $this->input->post('CSTOption'.$i); 
								$CSTValue = $this->input->post('CSTVal'.$i);
								$AfterCSTValue = $this->input->post('AfterCSTVal'.$i);
								$GSTValue = $this->input->post('GSTVal'.$i);
								$AfterGSTValue = $this->input->post('AfterGSTVal'.$i); 
								$OtherTaxValue = $this->input->post('OtherTaxVal'.$i);
								$AfterOtherTaxValue = $this->input->post('AfterOtherTaxVal'.$i);
								$FreightType = $this->input->post('FreightType'.$i);
								$FreightValue = $this->input->post('FreightVal'.$i); 
								$AfterFreightValue = $this->input->post('AfterFreightVal'.$i);
								$InsuranceValue = $this->input->post('Insval'.$i);
								$TotalOrderValue = $this->input->post('TotalOrderValue'.$i);							
								$CostCenter	= $this->input->post('costCode'.$i);
								
								$SkipInsert = "False";				 
								if( count($comma_separated) > 0)
								{
								   for($j = 1; $j < count($comma_separated); $j++)
								   {	
									  $deletedRow = 	$comma_separated[$j]	;
									
									  if($deletedRow == $i  )
									  {
										  $SkipInsert = "True";
										  break;
									  }						 
									  
									}
								 }
								 if($SkipInsert == "False")
									{
										$POLineItemList = array('PONO'=>$PONO, 'ReqNo'=>$Reqnumber,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'Status'=>$LineItemStatus,'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt,'CostCenterCode'=>$CostCenter);
							
										$POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList);
							
										$LineItemNo = '';
										if(count($POLineItem)>0)
										{
											$LineItemNo =  $POLineItem[0]['LineItemNo'];
										}
										//echo $LineItemNo; 
										
										if(trim($POType) == REVENUE )
										{
										//	echo 'Success';
										$RevenueTaxList = array('LineItemNo'=>$LineItemNo, 'DiscountType'=>$DiscountType,'DiscountValue'=>$DiscountValue,'AfterDiscount'=>$AfterDiscount,'PackagingType'=>$PackagingType,'PackagingValue'=>$PackagingValue,'PackagingCalulatedOn'=>$PackagingOption,'AfterPackagingValue'=>$AfterPackagingValue,'FreightType'=>$FreightType, 'FreightValue'=>$FreightValue,'AfterFreightValue'=>$AfterFreightValue,'ExciseDuty'=>$ExciseValue,'ExciseDutyCalulatedOn'=>$ExciseOption,'AfterExciseDuty'=>$AfterExciseValue,'Vat'=>$VatValue,'AfterVAT'=>$AfterVatValue,'VatCalulatedOn'=>$VatOption, 'CST'=>$CSTValue,'AfterCST'=>$AfterCSTValue,'CSTCalulatedOn'=>$CSTOption,'GST'=>$GSTValue,'AfterGST'=>$AfterGSTValue,'OtherTaxes'=>$OtherTaxValue,'AfterOtherTaxes'=>$AfterOtherTaxValue,'Insurance'=>$InsuranceValue,'TotalValue'=>$TotalOrderValue, 'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt);
										
										$RevenueList = $this->purchaseorder_model->addRevenueTax($RevenueTaxList);
										//echo 'Revenue tax Success';
										}
								}
								
							}							
					echo 'Purchase Order Created Successfully! PO Number Is: '.$PONO ;
					
	}
	//This used to Edit the Revenue Purchase Order
	function EditRevenuePurchaseOrder()
	{
				$PONO =$this->input->post('txtPONO');
				$POdt =$this->input->post('PODate');
				$PODate =  $this->getDateformat($POdt);
                $SupplierID = $this->input->post('drpSupplier');  
				$DeliveryAddr = $this->input->post('txtDeliveryAddress');
				$dt = $this->input->post('Deliverydt');
				$Deliverydt = $this->getDateformat($dt);
				$POType = $this->input->post('POType');
				$PoRange = $this->input->post('txtPoRange');
				
				$SpcialInstruction = $this->input->post('SpcialInstruction');
				$TotalOrderValueSummary = $this->input->post('txtTotalOrderValueSummary');
			    $POStatus = $this->input->post('txtStatus');

                $updatedBy = $this->session->userdata ( 'userId' );
				$RowCount =  $this->input->post('txtRowCount');
				$DeletedRow =  $this->input->post('txtDeletedRow'); 
				
				$comma_separated = explode(':', $DeletedRow);	
				$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));				
				$updateddt =  $dt->format('Y-m-d H:i:s');
				// PO Master
				// PO Master
				$POList = array('SupplierID'=>$SupplierID, 'TotalOrderValue'=>$TotalOrderValueSummary,'PODate'=>$PODate,'Status'=>$POStatus,'ServiceDescription'=>$SpcialInstruction,'UpdateBY'=>$updatedBy,'DeliveryAddress'=>$DeliveryAddr,'DeliveryDate'=>$Deliverydt,'UpdatedOn'=>$updateddt );
					
					$POMaster  = $this->purchaseorder_model->updatePOMaster($PONO,$POList);				
				
					$LineItemStatus = REQITEM_NEW;
					
					
				
					//echo $RowCount;
						for ($i = 1; $i <= $RowCount; $i++)
							{	
							
								$MaterialCode = $this->input->post('materialCode'.$i);
								$Quantity = $this->input->post('quantity'.$i); 
								$Reqnumber = $this->input->post('Reqnumber'.$i);
								$itemRate = $this->input->post('itemRate'.$i);

								$DiscountType = $this->input->post('DisType'.$i);
								$DiscountValue = $this->input->post('DisVal'.$i); 
								$AfterDiscount = $this->input->post('AfterDisVal'.$i);
								$PackagingOption = $this->input->post('PackOption'.$i);
								$PackagingType = $this->input->post('PackType'.$i);
								$PackagingValue = $this->input->post('PackVal'.$i); 
								$AfterPackagingValue = $this->input->post('AfterPackVal'.$i);
								$ExciseOption = $this->input->post('ExciseOption'.$i);
								$ExciseValue = $this->input->post('ExciseVal'.$i);
								$AfterExciseValue = $this->input->post('AfterExciseVal'.$i); 
								$VatOption = $this->input->post('VatOption'.$i);
								$VatValue = $this->input->post('VatVal'.$i);
								$AfterVatValue = $this->input->post('AfterVatVal'.$i);
								$CSTOption = $this->input->post('CSTOption'.$i); 
								$CSTValue = $this->input->post('CSTVal'.$i);
								$AfterCSTValue = $this->input->post('AfterCSTVal'.$i);
								$GSTValue = $this->input->post('GSTVal'.$i);
								$AfterGSTValue = $this->input->post('AfterGSTVal'.$i); 
								$OtherTaxValue = $this->input->post('OtherTaxVal'.$i);
								$AfterOtherTaxValue = $this->input->post('AfterOtherTaxVal'.$i);
								$FreightType = $this->input->post('FreightType'.$i);
								$FreightValue = $this->input->post('FreightVal'.$i); 
								$AfterFreightValue = $this->input->post('AfterFreightVal'.$i);
								$InsuranceValue = $this->input->post('Insval'.$i);
								$TotalOrderValue = $this->input->post('TotalOrderValue'.$i);							
								$POLineItemNo = $this->input->post('LineItemNo'.$i);
								$CostCenter	= $this->input->post('costCode'.$i);
								$LineItemNo = '';
								
								
								 $SkipInsert = "False";				 
								   if( count($comma_separated) > 0)
								   {
								   for($j = 1; $j < count($comma_separated); $j++)
								   {	
									  $deletedRow = 	$comma_separated[$j]	;
									
									  if($deletedRow == $i  )
									  {
										  $SkipInsert = "True";
										  break;
									  }						 
									  
									}
								   }
								     if($SkipInsert == "False")
									{
								if(strlen($POLineItemNo) == 0)
								{
									$POLineItemList = array('PONO'=>$PONO, 'ReqNo'=>$Reqnumber,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'Status'=>$LineItemStatus,'CreatedBy'=>$updatedBy,'CreatedDate'=>$updateddt,'CostCenterCode'=>$CostCenter);
									$POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList);
									if(count($POLineItem)>0)
									{
										$LineItemNo =  $POLineItem[0]['LineItemNo'];
									}
					
								}
								else
								{
									$LineItemNo = $POLineItemNo;	
							
									$POLineItemList = array('PONO'=>$PONO, 'ReqNo'=>$Reqnumber,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'Status'=>$LineItemStatus,'UpdateBY'=>$updatedBy,'UpdatedOn'=>$updateddt,'CostCenterCode'=>$CostCenter);
									$POLineItem = $this->purchaseorder_model->updatePOLineItem($PONO,$POLineItemNo,$POLineItemList);	
							
								}
								$isExists = $this->purchaseorder_model->LineItemExistsinRevenueTax($LineItemNo); 
								if(count($isExists) == 0)
								{
									$RevenueTaxList = array('LineItemNo'=>$LineItemNo, 'DiscountType'=>$DiscountType,'DiscountValue'=>$DiscountValue,'AfterDiscount'=>$AfterDiscount,'PackagingType'=>$PackagingType,'PackagingValue'=>$PackagingValue,'PackagingCalulatedOn'=>$PackagingOption,'AfterPackagingValue'=>$AfterPackagingValue,'FreightType'=>$FreightType, 'FreightValue'=>$FreightValue,'AfterFreightValue'=>$AfterFreightValue,'ExciseDuty'=>$ExciseValue,'ExciseDutyCalulatedOn'=>$ExciseOption,'AfterExciseDuty'=>$AfterExciseValue,'Vat'=>$VatValue,'AfterVAT'=>$AfterVatValue,'VatCalulatedOn'=>$VatOption, 'CST'=>$CSTValue,'AfterCST'=>$AfterCSTValue,'CSTCalulatedOn'=>$CSTOption,'GST'=>$GSTValue,'AfterGST'=>$AfterGSTValue,'OtherTaxes'=>$OtherTaxValue,'AfterOtherTaxes'=>$AfterOtherTaxValue,'Insurance'=>$InsuranceValue,'TotalValue'=>$TotalOrderValue, 'CreatedBy'=>$updatedBy,'CreatedDate'=>$updateddt);
								
									$RevenueList = $this->purchaseorder_model->addRevenueTax($RevenueTaxList);
								
								}
								else
								{
									$RevenueTaxList = array('DiscountType'=>$DiscountType,'DiscountValue'=>$DiscountValue,'AfterDiscount'=>$AfterDiscount,'PackagingType'=>$PackagingType,'PackagingValue'=>$PackagingValue,'PackagingCalulatedOn'=>$PackagingOption,'AfterPackagingValue'=>$AfterPackagingValue,'FreightType'=>$FreightType, 'FreightValue'=>$FreightValue,'AfterFreightValue'=>$AfterFreightValue,'ExciseDuty'=>$ExciseValue,'ExciseDutyCalulatedOn'=>$ExciseOption,'AfterExciseDuty'=>$AfterExciseValue,'Vat'=>$VatValue,'AfterVAT'=>$AfterVatValue,'VatCalulatedOn'=>$VatOption, 'CST'=>$CSTValue,'AfterCST'=>$AfterCSTValue,'CSTCalulatedOn'=>$CSTOption,'GST'=>$GSTValue,'AfterGST'=>$AfterGSTValue,'OtherTaxes'=>$OtherTaxValue,'AfterOtherTaxes'=>$AfterOtherTaxValue,'Insurance'=>$InsuranceValue,'TotalValue'=>$TotalOrderValue, 'UpdateBY'=>$updatedBy,'UpdatedOn'=>$updateddt);
									
									$this->purchaseorder_model->updateRevenueTax($LineItemNo,$RevenueTaxList); 
									
										}
							 }								
								
							}							
					
					echo 'Purchase Order Updated Successfully! PO Number Is: '.$PONO ;
	}
    function pageNotFound()
    {
        $this->global['pageTitle'] = 'CodeInsect : 404 - Page Not Found';
        
        $this->loadViews("404", $this->global, NULL, NULL);
    }
	
	public function revenuepoprint($PONO) 
	{
    // Load all views as normal
	 
		 
			//$PONO =   $_GET['PO'];
			 
				$data['CompanyDetails'] =  $this->purchaseorder_model->getCompanyInformation();
			    $data['POItem'] = $this->purchaseorder_model->GetRevenuePurchaseOrderDetailsForPDF($PONO);
			
			
			// Add header to pdf
			//$this->load->view('includes/pdfheader');
			
			// Load the pdf page with multiviews
            $this->load->View("revenuepopdf", $data);
			
			// Add header to pdf
			//$this->load->view('includes/pdffooter');
			
			// Get output html
			$php = $this->output->get_output();
			
			// Load library
			$this->load->library('dompdf_gen');
			
			// Convert to PDF
			$this->dompdf->load_html($php);
			$this->dompdf->render();
			$data['Attachment'] = FALSE;
			$this->dompdf->stream("RevenuePOReport.pdf",$data,$php);
		  
}
 public function servicepoprint($PONO) 
  {
    
		//	$this->load->view('includes/pdfheader');
			
			// Load the pdf page with multiviews
			$data['CompanyDetails'] =  $this->purchaseorder_model->getCompanyInformation();
			$data['POItem'] = $this->purchaseorder_model->GetServicePurchaseOrderDetailsForPrint($PONO);
			$data['releasedetails'] = $this->purchaseorder_model->GetReleasedDetails($PONO);
            $this->load->View("servicepopdf", $data);
			
			// Add header to pdf
			//$this->load->view('includes/pdffooter');
			
			// Get output html
			$php = $this->output->get_output();
			
			// Load library
			$this->load->library('dompdf_gen');
			
			// Convert to PDF
			$this->dompdf->load_html($php);
			$this->dompdf->render();
			$data['Attachment'] = FALSE;
			$this->dompdf->stream("ServicePOReport.pdf",$data,$php);
		  
}




public function importpoprint($PONO) 
  {
    
		//	$this->load->view('includes/pdfheader');
			
			// Load the pdf page with multiviews
			$data['CompanyDetails'] =  $this->purchaseorder_model->getCompanyInformation();
			$data['POItem'] = $this->purchaseorder_model->GetImportPurchaseOrderDetailsForPDF($PONO);
			
            $this->load->View("importpopdf", $data);
			
			// Add header to pdf
			//$this->load->view('includes/pdffooter');
			
			// Get output html
			$php = $this->output->get_output();
			
			// Load library
			$this->load->library('dompdf_gen');
			
			// Convert to PDF
			$this->dompdf->load_html($php);
			$this->dompdf->render();
			$data['Attachment'] = FALSE;
			$this->dompdf->stream("ImportPOReport.pdf",$data,$php);
		  
}


/**
     * This function used to load the Delete the Requistion Items
	 */
    function DeletePODetails()
     {
		   	  
 		    $ReqList=  $this->input->post('id');
			$LineItemNo = '';
		    $ReqNo ='';
		    $MaterialCode = '';
			$POType = '';
		   if(count($ReqList) > 0) 
		   {
			   $LineItemNo = $ReqList[0];
			   $ReqNo =  $ReqList[1];
			   $MaterialCode =  $ReqList[2];
			   $POType = $ReqList[3];
		   }
		  // print_r($ReqList);	   
		  
		   
		  If($POType == REVENUE)
		   {
			   $this->purchaseorder_model->DeletePORevenueTax($LineItemNo); 
		   }
		   else If($POType == SERVICE)
		   {
			    $this->purchaseorder_model->DeletePOServiceTax($LineItemNo);
		   }
		   else If($POType == IMPORT)
		   {
			    $this->purchaseorder_model->DeletePOImportTax($LineItemNo);
		   }
           $this->purchaseorder_model->DeletePOLineItem($LineItemNo , $ReqNo,$MaterialCode);		   
           echo "Successfully Deleted the Line item".$LineItemNo;	  
        
     }




      function addNewImportPurchaseOrder()
    {//echo ("ggh");

    	$POdt =$this->input->post('PODate');
				$PODate =  $this->getDateformat($POdt);
                $SupplierID = $this->input->post('drpSupplier');  
				$DeliveryAddr = $this->input->post('DeliveryAddr');
				$dt = $this->input->post('Deliverydt');
				$Deliverydt = $this->getDateformat($dt);
				$POType = $this->input->post('POType');
				$PoRange = $this->input->post('txtPoRange');
				
				$SpcialInstruction = $this->input->post('txtSpcialInstruction');
				$TotalOrder = $this->input->post('txtToatlOrder');
			    $POStatus = $this->input->post('textStatus');
			  //echo "$POStatus";
			  //die();

                $CreateBy = $this->session->userdata ( 'userId' );
				$RowCount =  $this->input->post('txtRowCount'); 

				$DeletedRow =  $this->input->post('txtDeletedRow'); 
				
				$comma_separated = explode(':', $DeletedRow);	
				
				$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));				
				$createddt =  $dt->format('Y-m-d H:i:s');
				//echo($SupplierID);

				//echo($dt);
				//echo($Deliverydt);
				//echo($POType);
				//echo($PoRange);
				//echo($TotalOrder);
				//echo($POStatus);
				//echo($SupplierID);
				// PO Master
				$POList = array('SupplierID'=>$SupplierID, 'TotalOrderValue'=>$TotalOrder,'PODate'=>$PODate,'Status'=>$POStatus,'PORange'=>$PoRange,'ServiceDescription'=>$SpcialInstruction,'CreatedBy'=>$CreateBy,'DeliveryAddress'=>$DeliveryAddr,'DeliveryDate'=>$Deliverydt,'CreatedDate'=>$createddt );
                     
		  
					$POMaster  = $this->purchaseorder_model->addPOMaster($POList);
					
					 $PONO = '';
					if(count($POMaster)>0)
					{
					 $PONO =  $POMaster[0]['PONO'];
					}
					//echo $PONO; 
					//echo $POType;
					// PO Line Items
					$LineItemStatus = REQITEM_NEW;
					//echo ' test:'.REVENUE;
					//echo $RowCount;
						for ($i = 1; $i <= $RowCount; $i++)
							{	
							//echo "AS";
								$MaterialCode = $this->input->post('materialCode'.$i);
								$Quantity = $this->input->post('quantity'.$i); 
								$Reqnumber = $this->input->post('Reqnumber'.$i);
								$itemRate = $this->input->post('itemRate'.$i);

								$Exchangerate = $this->input->post('Exchangerate'.$i);
								$BasicPriceinmton = $this->input->post('BasicPriceinUS'.$i); 
								$Productprice = $this->input->post('BasicAmt'.$i);
								$LandingCharge = $this->input->post('LandingChargee'.$i);
								$AfterLandingCharge = $this->input->post('AfterLandingChargee'.$i);
								$HighSeas = $this->input->post('Highseass'.$i);
								$AfterHighSeas = $this->input->post('AfterHighseass'.$i);

								$CustomDuty = $this->input->post('Customduty'.$i);
								$AfterCustomDuty = $this->input->post('AfterCustomduty'.$i);

								$ExciseDuty = $this->input->post('ExcisedutyTax'.$i);
								$AfterExciseDuty = $this->input->post('AfterExcisedutyTax'.$i);
								$ExciseDutyEd = $this->input->post('ExcisedutyED'.$i);
								$AfterExciseDutyEd = $this->input->post('AfterExcisedutyED'.$i);

								$ExciseDutySH = $this->input->post('ExcisedutySH'.$i);
								$AfterExciseDutySH = $this->input->post('AfterExcisedutySH'.$i);

								$CustomEd= $this->input->post('CustomEDcess'.$i); 
								$AfterCustomEd= $this->input->post('AfterCustomEDcess'.$i); 

								$CustomSH = $this->input->post('CustomSHcess'.$i);
								$AfterCustomSH = $this->input->post('AfterCustomSHcess'.$i);

								$AddAdtional = $this->input->post('AdditionalExciseduty'.$i);
								$AfterAddAdtional = $this->input->post('AfterAdditionalExciseduty'.$i);

								$Grossdutypayable = $this->input->post('Grossdutypayable'.$i);
								$AvailableModvat = $this->input->post('AvilableModvat'.$i);
								$Grossexpensesduetocustomduty = $this->input->post('Grossexpenses'.$i);
								$purchaseratePerKG = $this->input->post('purchaserate'.$i);
								$CustomDutyExpensesPerKG = $this->input->post('CustomDutyExpenses'.$i);
								$RMCIncludingCustomersPerKG = $this->input->post('RMCIncludingCustomers'.$i);
								$QuantityKG = $this->input->post('PurQuantity'.$i);

								$currencytypeID = $this->input->post('currencytype'); 

								//echo $BasicPriceinmton;
								$CostCenter	= $this->input->post('costCode'.$i);
								
								$SkipInsert = "False";				 
								if( count($comma_separated) > 0)
								{
								   for($j = 1; $j < count($comma_separated); $j++)
								   {	
									  $deletedRow = 	$comma_separated[$j]	;
									
									  if($deletedRow == $i  )
									  {
										  $SkipInsert = "True";
										  break;
									  }						 
									  
									}
								 }
								 if($SkipInsert == "False")
									{
										$POLineItemList = array('PONO'=>$PONO, 'ReqNo'=>$Reqnumber,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'Status'=>$LineItemStatus,'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt,'CostCenterCode'=>$CostCenter);
							
										$POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList);
							
										$LineItemNo = '';
										if(count($POLineItem)>0)
										{
											$LineItemNo =  $POLineItem[0]['LineItemNo'];
										}
										//echo $LineItemNo; 
										
										if(trim($POType) == IMPORT )
										{
										//	echo 'Success';
										$ImportTaxList = array('LineItemNo'=>$LineItemNo, 'ExchangeRate'=>$Exchangerate,'BasicPriceInMTon'=>$BasicPriceinmton,'ProductPrice'=>$Productprice,'LandingCharge'=>$LandingCharge,'AfterLandingCharge'=>$AfterLandingCharge,'AfterHighSeasSalesCharge'=>$AfterHighSeas,'HighSeasSalesCharge'=>$HighSeas,'CustomDuty'=>$CustomDuty,'AfterCustomDuty'=>$AfterCustomDuty,'ExciseDuty'=>$ExciseDuty,'AfterExciseDuty'=>$AfterExciseDuty,'ExciseDutyEdCess'=>$ExciseDutyEd,'AfterExciseDutyEdCess'=>$AfterExciseDutyEd,'ExciseDutySHCess'=>$ExciseDutySH,'CustomEdCess'=>$CustomEd,'CustomSHCess'=>$CustomSH,'AddlExciseDuty'=>$AddAdtional,'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt,'AfterExciseDutySHCess'=>$AfterExciseDutySH,'AfterAddlExciseDuty'=>$AfterAddAdtional,'Grossdutypayable'=>$Grossdutypayable,'AvailableModvat'=>$AvailableModvat,'Grossexpensesduetocustomduty'=>$Grossexpensesduetocustomduty,'purchaseratePerKG'=>$purchaseratePerKG,'CustomDutyExpensesPerKG'=>$CustomDutyExpensesPerKG,'RMCIncludingCustomersPerKG'=>$RMCIncludingCustomersPerKG,'QuantityKG'=>$QuantityKG,'AfterCustomSHCess'=>$AfterCustomSH,'AfterCustomEdCess'=>$AfterCustomEd,'CurrencyType'=>$currencytypeID);
										//print_r($ImportTaxList);
										//die();
                                         

										//TaxID, LineItemNo, CurrencyType, ExchangeRate, BasicPriceInMTon, ProductPrice, LandingCharge, AfterLandingCharge, HighSeasSalesCharge, AfterHighSeasSalesCharge, CustomDuty, AfterCustomDuty, ExciseDuty, AfterExciseDuty, ExciseDutyEdCess, AfterExciseDutyEdCess, ExciseDutyS&HCess, AfterExciseDutyS&HCess, CustomEdCess, CustomS&HCess, AddlExciseDuty, AfterAddlExciseDuty, Grossdutypayable, AvailableModvat, Grossexpensesduetocustomduty, purchaseratePerKG, CustomDutyExpensesPerKG, RMCIncludingCustomersPerKG, QuantityKG, CreatedDate, CreatedBy, UpdateBY, UpdatedOn
										//die();
										
										$ImportList = $this->purchaseorder_model->addImportTax($ImportTaxList);
										//echo 'Revenue tax Success';
										}
								}
								
							}							
					echo 'Purchase Order Created Successfully! PO Number Is: '.$PONO ;
    }

    function EditImportPurchaseOrder()
    {

      $PONO =$this->input->post('txtPONO');
				$PODate =  $this->getDateformat($POdt);
                $SupplierID = $this->input->post('drpSupplier');  
				$DeliveryAddr = $this->input->post('DeliveryAddr');
				$dt = $this->input->post('Deliverydt');
				$Deliverydt = $this->getDateformat($dt);
				$POType = $this->input->post('POType');
				$PoRange = $this->input->post('txtPoRange');
				
				//$SpcialInstruction = $this->input->post('txtSpcialInstruction');
				$TotalOrder = $this->input->post('txtTotalOrder');
			    $POStatus = $this->input->post('txtStatus');

                $CreateBy = $this->session->userdata ( 'userId' );
				$RowCount =  $this->input->post('txtRowCount'); 
				$DeletedRow =  $this->input->post('txtDeletedRow'); 
				
				$comma_separated = explode(':', $DeletedRow);		
				$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));				
				$updateddt =  $dt->format('Y-m-d H:i:s');
				// PO Master
				// PO Master
				$POList = array('SupplierID'=>$SupplierID, 'TotalOrderValue'=>$TotalOrder,'PODate'=>$PODate,'Status'=>$POStatus,'PORange'=>$PoRange,'ServiceDescription'=>$SpcialInstruction,'CreatedBy'=>$CreateBy,'DeliveryAddress'=>$DeliveryAddr,'DeliveryDate'=>$Deliverydt,'CreatedDate'=>$createddt );
					
					$POMaster  = $this->purchaseorder_model->updatePOMaster($PONO,$POList);				
				
					$LineItemStatus = REQITEM_NEW;
					
					
				
					//echo $RowCount;
						for ($i = 1; $i <= $RowCount; $i++)
							{	
							
								$MaterialCode = $this->input->post('materialCode'.$i);
								$Quantity = $this->input->post('quantity'.$i); 
								$Reqnumber = $this->input->post('Reqnumber'.$i);
								$itemRate = $this->input->post('itemRate'.$i);

								$Exchangerate = $this->input->post('Exchangerate'.$i);
								$BasicPriceinmton = $this->input->post('BasicPriceinUS'.$i); 
								$Productprice = $this->input->post('BasicAmt'.$i);
								$LandingCharge = $this->input->post('LandingChargee'.$i);
								$AfterLandingCharge = $this->input->post('AfterLandingChargee'.$i);
								$HighSeas = $this->input->post('Highseass'.$i);
								$AfterHighSeas = $this->input->post('AfterHighseass'.$i);

								$CustomDuty = $this->input->post('Customduty'.$i);
								$AfterCustomDuty = $this->input->post('AfterCustomduty'.$i);

								$ExciseDuty = $this->input->post('ExcisedutyTax'.$i);
								$AfterExciseDuty = $this->input->post('AfterExcisedutyTax'.$i);
								$ExciseDutyEd = $this->input->post('ExcisedutyED'.$i);
								$AfterExciseDutyEd = $this->input->post('AfterExcisedutyED'.$i);

								$ExciseDutySH = $this->input->post('ExcisedutySH'.$i);
								$AfterExciseDutySH = $this->input->post('AfterExcisedutySH'.$i);

								$CustomEd= $this->input->post('CustomEDcess'.$i); 
								$AfterCustomEd= $this->input->post('AfterCustomEDcess'.$i); 

								$CustomSH = $this->input->post('CustomSHcess'.$i);
								$AfterCustomSH = $this->input->post('AfterCustomSHcess'.$i);

								$AddAdtional = $this->input->post('AdditionalExciseduty'.$i);
								$AfterAddAdtional = $this->input->post('AfterAdditionalExciseduty'.$i);

								$Grossdutypayable = $this->input->post('Grossdutypayable'.$i);
								$AvailableModvat = $this->input->post('AvilableModvat'.$i);
								$Grossexpensesduetocustomduty = $this->input->post('Grossexpenses'.$i);
								$purchaseratePerKG = $this->input->post('purchaserate'.$i);
								$CustomDutyExpensesPerKG = $this->input->post('CustomDutyExpenses'.$i);
								$RMCIncludingCustomersPerKG = $this->input->post('RMCIncludingCustomers'.$i);
								$QuantityKG = $this->input->post('PurQuantity'.$i);
						
								$POLineItemNo = $this->input->post('LineItemNo'.$i);
								$CostCenter	= $this->input->post('costCode'.$i);
								$ExciseDutySH = $this->input->post('ExcisedutySH'.$i);
								$LineItemNo = '';
								
								$currencytypeID = $this->input->post('currencytype'); 
								 $SkipInsert = "False";				 
								   if( count($comma_separated) > 0)
								   {
								   for($j = 1; $j < count($comma_separated); $j++)
								   {	
									  $deletedRow = 	$comma_separated[$j]	;
									
									  if($deletedRow == $i  )
									  {
										  $SkipInsert = "True";
										  break;
									  }						 
									  
									}
								   }
								     if($SkipInsert == "False")
									{
								if(strlen($POLineItemNo) == 0)
								{
									$POLineItemList = array('PONO'=>$PONO, 'ReqNo'=>$Reqnumber,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'Status'=>$LineItemStatus,'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt,'CostCenterCode'=>$CostCenter);
									if(count($POLineItem)>0)
									{
										$LineItemNo =  $POLineItem[0]['LineItemNo'];
									}
					
								}
								else
								{
									$LineItemNo = $POLineItemNo;	
							
									$POLineItemList = array('PONO'=>$PONO, 'ReqNo'=>$Reqnumber,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'Status'=>$LineItemStatus,'UpdateBY'=>$updatedBy,'UpdatedOn'=>$updateddt,'CostCenterCode'=>$CostCenter);
									$POLineItem = $this->purchaseorder_model->updatePOLineItem($PONO,$POLineItemNo,$POLineItemList);	
							
								}
								$isExists = $this->purchaseorder_model->LineItemExistsinImportTax($LineItemNo); 
								if(count($isExists) == 0)
								{
									$ImportTaxList = array('LineItemNo'=>$LineItemNo, 'ExchangeRate'=>$Exchangerate,'BasicPriceInMTon'=>$BasicPriceinmton,'ProductPrice'=>$Productprice,'LandingCharge'=>$LandingCharge,'AfterLandingCharge'=>$AfterLandingCharge,'AfterHighSeasSalesCharge'=>$AfterHighSeas,'HighSeasSalesCharge'=>$HighSeas,'CustomDuty'=>$CustomDuty,'AfterCustomDuty'=>$AfterCustomDuty,'ExciseDuty'=>$ExciseDuty,'AfterExciseDuty'=>$AfterExciseDuty,'ExciseDutyEdCess'=>$ExciseDutyEd,'AfterExciseDutyEdCess'=>$AfterExciseDutyEd,'ExciseDutySHCess'=>$ExciseDutySH,'CustomEdCess'=>$CustomEd,'CustomSHCess'=>$CustomSH,'AddlExciseDuty'=>$AddAdtional,'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt,'AfterExciseDutySHCess'=>$AfterExciseDutySH,'AfterAddlExciseDuty'=>$AfterAddAdtional,'Grossdutypayable'=>$Grossdutypayable,'AvailableModvat'=>$AvailableModvat,'Grossexpensesduetocustomduty'=>$Grossexpensesduetocustomduty,'purchaseratePerKG'=>$purchaseratePerKG,'CustomDutyExpensesPerKG'=>$CustomDutyExpensesPerKG,'RMCIncludingCustomersPerKG'=>$RMCIncludingCustomersPerKG,'QuantityKG'=>$QuantityKG,'AfterCustomSHCess'=>$AfterCustomSH,'AfterCustomEdCess'=>$AfterCustomEd,'CurrencyType'=>$currencytypeID);
								
									$ImportList = $this->purchaseorder_model->addImportTax($RevenueTaxList);
								
								}
								else
								{
									$ImportTaxList = array('LineItemNo'=>$LineItemNo, 'ExchangeRate'=>$Exchangerate,'BasicPriceInMTon'=>$BasicPriceinmton,'ProductPrice'=>$Productprice,'LandingCharge'=>$LandingCharge,'AfterLandingCharge'=>$AfterLandingCharge,'AfterHighSeasSalesCharge'=>$AfterHighSeas,'HighSeasSalesCharge'=>$HighSeas,'CustomDuty'=>$CustomDuty,'AfterCustomDuty'=>$AfterCustomDuty,'ExciseDuty'=>$ExciseDuty,'AfterExciseDuty'=>$AfterExciseDuty,'ExciseDutyEdCess'=>$ExciseDutyEd,'AfterExciseDutyEdCess'=>$AfterExciseDutyEd,'ExciseDutySHCess'=>$ExciseDutySH,'CustomEdCess'=>$CustomEd,'CustomSHCess'=>$CustomSH,'AddlExciseDuty'=>$AddAdtional,'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt,'AfterExciseDutySHCess'=>$AfterExciseDutySH,'AfterAddlExciseDuty'=>$AfterAddAdtional,'Grossdutypayable'=>$Grossdutypayable,'AvailableModvat'=>$AvailableModvat,'Grossexpensesduetocustomduty'=>$Grossexpensesduetocustomduty,'purchaseratePerKG'=>$purchaseratePerKG,'CustomDutyExpensesPerKG'=>$CustomDutyExpensesPerKG,'RMCIncludingCustomersPerKG'=>$RMCIncludingCustomersPerKG,'QuantityKG'=>$QuantityKG,'AfterCustomSHCess'=>$AfterCustomSH,'AfterCustomEdCess'=>$AfterCustomEd,'CurrencyType'=>$currencytypeID);
									
									$this->purchaseorder_model->updateImportTax($LineItemNo,$RevenueTaxList); 
									
										}
							 }								
								
							}							
					
					echo 'Purchase Order Updated Successfully! PO Number Is: '.$PONO ;
    }
	
	
	/*  All Function following This command for FINANCE TEAM PO APPROVAL SCREEN*/
	 function poapproval(){
	 $q="A";
	 $this->global['pageTitle'] = 'Siddharth : Purchase Order Approval';
	// $data['Status']= $this->purchaseorder_model->getStatus();
	 $userID =  $this->session->userdata ( 'userId' );
	 //print_r($data['Status']);echo "CON";
	 $data['AppList'] = $this->purchaseorder_model->getPOList($q);  	  
	 $this->loadViews("poapproval_view", $this->global,$data, NULL);
	 
	 }
	 
	  function getDateformat2($Val)
	{
		       $date = new DateTime($Val);
				$retDate = $date->format('Y-m-d H:i:s');
				return $retDate;
	}
	
	
	function ApprovePO()
	{
		  $StatusCode= Trim($_POST['SCode']);
		  
		  $PONO= Trim($_POST['PONO']);
		  $Remarks= Trim($_POST['NewRemarks']);
		 
		  $ApprovedBy = $this->session->userdata ( 'userId' );
				$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));				
		  $ApprovedDate =  $dt->format('Y-m-d H:i:s');
		  
		  if($StatusCode == 'ST025')
		  {
		  
		  $store = array('Status'=>$StatusCode,'ApprovedOn'=>$ApprovedDate,'Approvedby'=>$ApprovedBy,'Remarks'=>$Remarks);
		  $this->purchaseorder_model->UpdatePO($store,$PONO); 
		  echo "Successfully Updated the Purchase Order No: ".$PONO;
		  }
		  else{
		  $store = array('Status'=>$StatusCode,'OnHoldOn'=>$ApprovedDate,'OnHoldBy'=>$ApprovedBy,'Remarks'=>$Remarks);
		  $this->purchaseorder_model->UpdatePO($store,$PONO); 
		  echo "Successfully Updated the Purchase Order No: ".$PONO;
		  
	}
		  
	
	
		 
  }	
  
  
	
	
	/* FOLLOWING CODES FOR PO RELEASE SCREEN FUNCTIONALITIES*/
	 
	 
	 function porelease(){
	 
	 $q="R";
	 $this->global['pageTitle'] = 'Siddharth : Purchase Order Release';
	// $data['Status']= $this->purchaseorder_model->getStatus();
	 $userID =  $this->session->userdata ( 'userId' );
	 //print_r($data['Status']);echo "CON";
	 $data['AppList'] = $this->purchaseorder_model->getPOList($q);  	  
	 $this->loadViews("porelease_view", $this->global,$data, NULL);
	 
	 }
	 
	 
	 function ReleasePO()
	{
		  $StatusCode= Trim($_POST['SCode']);
		  
		  $PONO= Trim($_POST['PONO']);
		  $Remarks= Trim($_POST['NewRemarks']);
		 
		  $ReleasedBy = $this->session->userdata ( 'userId' );
				$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));				
		  $ReleasedDate =  $dt->format('Y-m-d H:i:s');
		  
		  if($StatusCode == 'ST026')
		  {
		  
		  $store = array('Status'=>$StatusCode,'ReleasedOn'=>$ReleasedDate,'ReleasedBy'=>$ReleasedBy,'Remarks'=>$Remarks);
		  $this->purchaseorder_model->UpdatePO($store,$PONO); 
		  echo "Successfully Updated the Purchase Order No: ".$PONO;
		  }
		  else{
		  $store = array('Status'=>$StatusCode,'OnHoldOn'=>$ReleasedOn,'OnHoldBy'=>$ReleasedBy,'Remarks'=>$Remarks);
		  $this->purchaseorder_model->UpdatePO($store,$PONO); 
		  echo "Successfully Updated the Purchase Order No: ".$PONO;
		  
		  }
}

}

?>
