<?php 
class CT_pasi_ceisa_bc_in_save extends CI_Controller{
	function __construct()
	{
	  parent::__construct();
		if (!$this->dx_auth->is_logged_in()) {
			header('HTTP/1.1 401 Unauthorize');die('expire'); 
		}
		
		$uid = $this->session->userdata('DX_user_id');
		
		if(!permissionAuth(2) && $uid != RID){ 
			header('HTTP/1.1 401 Unauthorize');die('noaccess');
		} 
	} 
	function index(){	 
				$bc_prefix = isset($_POST['bc_prefix'])?$_POST['bc_prefix']:'-1';   
				$cust_code = isset($_POST['cust_code'])?$_POST['cust_code']:'';  //1 add
				$id_header = isset($_POST['id_header'])?$_POST['id_header']:'-1';   
				$data['cust_code'] = $cust_code;
				$data['id_header'] = $id_header;
				$data['bc_prefix'] = $bc_prefix;
				
				$data['use_kurs'] = '0';
				if ($bc_prefix=='27')
					$data['use_kurs'] = '1';
			
				$bc_prefix = isset($_POST['bc_prefix'])?$_POST['bc_prefix']:'-1';   
			 	$xmldoc =  XMLbasic('json'); 
				AddField($xmldoc ,'bc_prefix',$bc_prefix); 
				$str = $xmldoc->saveXML();  
			    exec_sp_array($xmldoc, 'dbo.GET_SETTING_DEFAULT_CEISA',$sts,$des,$rows,$detail);   
		 		if ($sts=='00'){
					$data['KURS'] = $detail['KURS'];
					$data['VALID_KURS'] = $detail['VALID_KURS'];
					$data['KURS_DATE'] = $detail['KURS_DATE']; 
				}
				else
				{
					$data['KURS'] =1;  
					$data['VALID_KURS'] =0; 
					$data['KURS_DATE'] ='';  
				}
		
				$this->load->view('pasi_ceisa_bc_in/view_pasi_ceisa_bc_in_from_po', $data);
	}   
	 
	function view_header_invoice_for_import(){	 
		$bc_prefix = isset($_POST['bc_prefix'])?$_POST['bc_prefix']:'-1';   
		$data['bc_prefix'] = $bc_prefix;
		$this->load->view('pasi_ceisa_bc_in/view_pasi_ceisa_bc_in_get_invoice_bc40', $data);
}     



function load_header_invoice_for_import(){; 
	$def_col= array(); 
	 $spt='dbo.SPX_VIEW_BELI_BC40_HEADER'  ;   
	$def_col['rID']=array("db" => "rID" ,"sc" => "rID","ctype"=>"int", "bypassvalue"=>"");
	$def_col['r1']=array("db" => "r1" ,"sc" => "r1","ctype"=>"text", "bypassvalue"=>"");
	$def_col['r2']=array("db" => "r2" ,"sc" => "r2","ctype"=>"text", "bypassvalue"=>"");
	$def_col['r3']=array("db" => "r3" ,"sc" => "r3","ctype"=>"date", "bypassvalue"=>"");
	$def_col['r4']=array("db" => "r4" ,"sc" => "r4","ctype"=>"text", "bypassvalue"=>"");
	$def_col['r5']=array("db" => "r5" ,"sc" => "r5","ctype"=>"text", "bypassvalue"=>"");
	$def_col['r6']=array("db" => "r6" ,"sc" => "r6","ctype"=>"text", "bypassvalue"=>"");
	$def_col['r7']=array("db" => "r7" ,"sc" => "r7","ctype"=>"text", "bypassvalue"=>"");

	  
	 $search = isset($_POST['_search'])?$_POST['_search']:false; 
	$searchField = isset($_POST['searchField'])?$_POST['searchField']:''; 
	$searchString = isset($_POST['searchString'])?$_POST['searchString']:''; 
	$filters =  isset($_POST['filters'])?$_POST['filters']:''; 
	  
	$page = isset($_POST['page'])?$_POST['page']:1; // get the requested page 
	$limit = isset($_POST['rows'])?$_POST['rows']:10; // get how many rows we want to have into the grid 
	$sidx = isset($_POST['sidx'])?$_POST['sidx']:'rID'; // get index row - i.e. user click to sort 
	$sord = isset($_POST['sord'])?$_POST['sord']:'0'; // get the direction 
	$bc_prefix = isset($_POST['bc_prefix'])?$_POST['bc_prefix']:'-1';   
	 
	if ($sord == 'asc') { $sord = '0'; } else if ($sord == 'desc') { $sord = '1'; } 
	  
	 if (array_key_exists($sidx, $def_col)) {  
			$fsidx=$def_col[$sidx];
			$sidx=$fsidx['db'];
	}else{
			$sidx='rID'; //DEFAULT SORT KALU GA ADA
	}
	$sidx=$sidx.'='. $sord;
	  
	$xmldoc =  XMLbasic($spt); 
	paramViewJSON($xmldoc, $limit, $page,  $sidx, $sord); 
	AddField($xmldoc ,'bc_prefix',$bc_prefix);
	 
	if ($search == 'true'){ 
		if (!empty($filters)){ 
			$array = json_decode($filters); 
			foreach($array->rules as $arr=>$k){ 
					$fcr=$def_col[$k->field]; 
					 if ($fcr != null) 
					{ 
						if ($fcr['ctype']=='int'){ 
							$searchString = $k->data; 
							if ($searchString!=$fcr['bypassvalue'])  
								addSearchNum($xmldoc,$fcr['sc'],$searchString,'2','1');  
							   
						} 
						elseif ($fcr['ctype']=='text'){ 
							$searchString = $k->data; 
							if ($searchString!=$fcr['bypassvalue']) 
							 addSearchText($xmldoc,$fcr['sc'],'1','1',$searchString); 
						}  
						elseif ($fcr['ctype']=='date'){ 
							$searchString = $k->data; 
							if (trim($searchString) != '' ){ 
								$dateArray=explode('/',$searchString);  
								$searchString = $dateArray[2].$dateArray[1].$dateArray[0]; 
							} 
							 addSearchDate($xmldoc,$fcr['sc'],$searchString,'1','1'); 
						}  
					} 
			 } 
		 } 
   }  


	$str = $xmldoc->saveXML();   
	 exec_sp_json($xmldoc, 'dbo.SPX_VIEW_BELI_BC40_HEADER',$sts,$des,$rows,$detail);  
	  echo $rows; 
	}


	function import_data_bc40_save(){
		$bc_prefix = isset($_POST['bc_prefix'])?$_POST['bc_prefix']:die('Type BC tidak di ketahui');; // get the requested page 
		$replace_if_exists = isset($_POST['replace_if_exists'])?$_POST['replace_if_exists']:die('Type BC tidak di ketahui');; // get the requested page 
		$lstsa = isset($_POST['lstsa'])?$_POST['lstsa']:die('pilih SA penyusun Dokument');; // get the requested page 
  
		$xmldoc =  XMLbasic('json'); 
		 AddField($xmldoc ,'bc_prefix',$bc_prefix);
		 AddField($xmldoc ,'replace_if_exists',$replace_if_exists);
		 
		for ($i = 0; $i <  count($lstsa); $i++) {
			$this->_insert_sa_to_field($xmldoc,$lstsa[$i]);
		} 
		$str = $xmldoc->saveXML();  
		 exec_sp_array($xmldoc, 'dbo.SPX_IMPORT_INVOICE_BELI_BC40_ADD',$sts,$des,$rows,$detail); 
		echo json_encode(array('valid'=>($sts=='00'?true:false),'stsno' => $sts, 'stsmsg' => $des)); 
}

function import_data_bc23_save(){
	$bc_prefix = isset($_POST['bc_prefix'])?$_POST['bc_prefix']:die('Type BC tidak di ketahui');; // get the requested page 
	$replace_if_exists = isset($_POST['replace_if_exists'])?$_POST['replace_if_exists']:die('Type BC tidak di ketahui');; // get the requested page 
	$lstsa = isset($_POST['lstsa'])?$_POST['lstsa']:die('pilih SA penyusun Dokument');; // get the requested page 

	$xmldoc =  XMLbasic('json'); 
	 AddField($xmldoc ,'bc_prefix',$bc_prefix);
	 AddField($xmldoc ,'replace_if_exists',$replace_if_exists);
	 
	for ($i = 0; $i <  count($lstsa); $i++) {
		$this->_insert_sa_to_field($xmldoc,$lstsa[$i]);
	} 
	$str = $xmldoc->saveXML();  
	 exec_sp_array($xmldoc, 'dbo.SPX_IMPORT_INVOICE_BELI_BC23_ADD',$sts,$des,$rows,$detail); 
	echo json_encode(array('valid'=>($sts=='00'?true:false),'stsno' => $sts, 'stsmsg' => $des)); 
}

function import_data_bc27_save(){
	$bc_prefix = isset($_POST['bc_prefix'])?$_POST['bc_prefix']:die('Type BC tidak di ketahui');; // get the requested page 
	$replace_if_exists = isset($_POST['replace_if_exists'])?$_POST['replace_if_exists']:die('Type BC tidak di ketahui');; // get the requested page 
	$lstsa = isset($_POST['lstsa'])?$_POST['lstsa']:die('pilih SA penyusun Dokument');; // get the requested page 

	$xmldoc =  XMLbasic('json'); 
	 AddField($xmldoc ,'bc_prefix',$bc_prefix);
	 AddField($xmldoc ,'replace_if_exists',$replace_if_exists);
	 
	for ($i = 0; $i <  count($lstsa); $i++) {
		$this->_insert_sa_to_field($xmldoc,$lstsa[$i]);
	} 
	$str = $xmldoc->saveXML();  
	 exec_sp_array($xmldoc, 'dbo.SPX_IMPORT_INVOICE_BELI_BC27_ADD',$sts,$des,$rows,$detail); 
	echo json_encode(array('valid'=>($sts=='00'?true:false),'stsno' => $sts, 'stsmsg' => $des)); 
}


function _insert_sa_to_field($doc,$id){
	$param = $doc->getElementsByTagName('param')->item(0);
	$field = $param->getElementsByTagName('field')->item(0);
	$lst = $doc->createElement("lstsa","");
	$field->appendChild($lst); 
	$tmp = $doc->createElement("id",$id);
	$lst->appendChild($tmp); 
}


function edit_qty_actual_bc_in(){ 
	$id_header = isset($_POST['id_header'])?$_POST['id_header']:die('pilih dokumen yang akan di cancel');; // get the requested page 
	$qty_actual = isset($_POST['qty_actual'])?$_POST['qty_actual']:''; // get the requested page 

	$xmldoc =  XMLbasic('json'); 
	AddField($xmldoc ,'id_header',$id_header);
	AddField($xmldoc ,'qty_actual',$qty_actual );
	$str = $xmldoc->saveXML();
	 // print_r($str);die();
	 exec_sp_array($xmldoc, 'dbo.SPX_BC_IN_VAL_QTY',$sts,$des,$rows,$detail); 
	echo json_encode(array('valid'=>($sts=='00'?true:false),'stsno' => $sts, 'stsmsg' => $des)); 
}

function edit_qty_actual_bc27(){ 
	$id_header = isset($_POST['id_header'])?$_POST['id_header']:die('pilih dokumen yang akan di cancel');; // get the requested page 
	$qty_actual = isset($_POST['qty_actual'])?$_POST['qty_actual']:''; // get the requested page 

	$xmldoc =  XMLbasic('json'); 
	AddField($xmldoc ,'id_header',$id_header);
	AddField($xmldoc ,'qty_actual',$qty_actual );
	$str = $xmldoc->saveXML();
	 // print_r($str);die();
	 exec_sp_array($xmldoc, 'dbo.SPX_BC_IN_BC27_VAL_QTY',$sts,$des,$rows,$detail); 
	echo json_encode(array('valid'=>($sts=='00'?true:false),'stsno' => $sts, 'stsmsg' => $des)); 
}

function edit_qty_actual_bc40(){ 
	$id_header = isset($_POST['id_header'])?$_POST['id_header']:die('pilih dokumen yang akan di cancel');; // get the requested page 
	$qty_actual = isset($_POST['qty_actual'])?$_POST['qty_actual']:''; // get the requested page 

	$xmldoc =  XMLbasic('json'); 
	AddField($xmldoc ,'id_header',$id_header);
	AddField($xmldoc ,'qty_actual',$qty_actual );
	$str = $xmldoc->saveXML();
	 // print_r($str);die();
	 exec_sp_array($xmldoc, 'dbo.SPX_BC_IN_BC40_VAL_QTY',$sts,$des,$rows,$detail); 
	echo json_encode(array('valid'=>($sts=='00'?true:false),'stsno' => $sts, 'stsmsg' => $des)); 
}


 }