<?php 
session_start();
class procesar_datos
{
	

	function procesar_datos()
	{	
		
		
		$_SESSION["ls_hostname"] = "localhost";
		$_SESSION["ls_login"] = "postgres";
		$_SESSION["ls_password"] = "postgres";
		$_SESSION["ls_database"] = "db_ipostel_2011";
		$_SESSION["ls_gestor"] = "POSTGRES";
		$_SESSION["ls_logo"] = "logo_ipsfa.jpg";
		$_SESSION["ls_width"] = "70";
		$_SESSION["ls_height"] = "70";
		$_SESSION["ls_port"] = "5432";					
		$_SESSION["la_empresa"]["codemp"] = "0001";
		$_SESSION["la_logusr"] = "SIGESP";	
		
		global $ruta;
		$ruta = '../';
		require_once($ruta."shared/class_folder/sigesp_include.php");
		$io_include=new sigesp_include();
		$io_conexion=$io_include->uf_conectar();
		require_once($ruta."shared/class_folder/class_sql.php");
		$this->io_sql=new class_sql($io_conexion);	
		require_once($ruta."shared/class_folder/class_mensajes.php");
		$this->io_mensajes=new class_mensajes();
		require_once($ruta."shared/class_folder/sigesp_conexiones.php");
		$this->io_conexiones=new conexiones();	
		require_once($ruta."shared/class_folder/class_funciones.php");
		$this->io_funciones=new class_funciones();		
		require_once($ruta."shared/class_folder/sigesp_c_seguridad.php");
		$this->io_seguridad= new sigesp_c_seguridad();				
        $this->ls_codemp=$_SESSION["la_empresa"]["codemp"];
		

	}


	function ejecutar($parametros=array()){
				
				$nombre_archivo = 'txtpersonalnomina.csv';
				$fp = fopen($nombre_archivo,"r");
				$numero = 0;
				$numerox = 1;
				$this->io_sql->begin_transaction();		
				while ($linea= fgets($fp,2048)){
							
							$datos = explode(';',$linea);
							
							if($numero==0){$numero++; continue;}
												
							//echo sizeof($datos).'<br>';
	
							
							//CODIGO SIGESP;CEDULA;Carnum;INGRESO;Banco;TipoPago;Bancaria;sueldo;sueldo_mensual;pension_sobreviviente_m;T_PERSONAL;DEDICACION;codtipper;codnom_Sigesp
							// 0              1      2       3      4      5        6       7           8              9                     10       11        12           13
							
							
							// codnom, codper, sueper, minorguniadm, ofiuniadm, uniuniadm, depuniadm,prouniadm
							// pagbanper, codban, codcueban, tipcuebanper, codcar,
							// fecingper,codded, codtipper
							//
							
							//47 campos
							
							
							switch(trim($datos[5])){
							
									case 'EF':
										$datos['pagbanper'] = 0;
										$datos['pagefeper'] = 1;
										$datos['pagtaqper'] = 0;
										$datos['tipcuebanper'] = 0;
										$datos[6] = '';
										$datos[4] = '';
									break;
									
									
									case 'IA':
										$datos['pagbanper'] = 1;
										$datos['pagefeper'] = 0;
										$datos['pagtaqper'] = 0;
										$datos['tipcuebanper'] = 'A';
																			
									break;
									
									
									case 'IC':
										$datos['pagbanper'] = 1;
										$datos['pagefeper'] = 0;
										$datos['pagtaqper'] = 0;
										$datos['tipcuebanper'] = 'C';									
									break;
							
							}		
							
							switch(trim($datos[4])){
							
									case 'BVZ':
										$datos['codban'] = '004';
									break;
									
									case 'BIN':
										$datos['codban'] = '008';
									break;
									
									default:
										$datos['codban'] = '';
									break;									
							
							}						
							
							$datos[8] = trim(str_replace(".","",$datos[8]));
							$datos[8] = trim(str_replace(",",".",$datos[8]));			
							
							$datos[9] = trim(str_replace(".","",$datos[9]));
							$datos[9] = trim(str_replace(",",".",$datos[9]));	
							
							$datos[12] = ($datos[12]=='0109')?'0103':$datos[12];
									
							$query_rs = sprintf("INSERT INTO sno_personalnomina(
															codemp, codnom, codper, codsubnom, codasicar, codtab, codgra, 
															codpas, sueper, horper, minorguniadm, ofiuniadm, uniuniadm, depuniadm, 
															prouniadm, pagbanper, codban, codcueban, tipcuebanper, codcar, 
															fecingper, staper, cueaboper, fecculcontr, codded, codtipper, 
															quivacper, codtabvac, sueintper, pagefeper, sueproper, codage, 
															codescdoc, codcladoc, codubifis, 
															tipcestic, conjub, catjub, codclavia, codunirac, pagtaqper, grado, 
															fecascper, descasicar, coddep, salnorper, estencper)
													VALUES ('0001', '%s', '%s', '0000000000', '0000000', '00000000000000000000', '00', 
															'00', '%s', '0', '%s', '%s', '%s', '%s', 
															'%s', '%s', '%s', '%s', '%s', '%s', 
															'%s', '1', '', '1900-01-01', '%s', '%s', 
															'', '99', '0', '%s', '0', '0000000001', 
															'0000', '0000', '0000', 
															'', '0000', '000', '', '', '0', '0000', 
															'1900-01-01', '', '', '0', '0');",
														 trim($datos[13]),
														 str_pad(trim((integer)$datos[1]),10,'0',STR_PAD_LEFT),
														 (trim($datos[8]))?$datos[8]:$datos[9],
														 substr($datos[0],0,4),
														 substr($datos[0],4,2),
														 substr($datos[0],6,2),
														 substr($datos[0],8,2),
														 substr($datos[0],10,2),
														 $datos['pagbanper'],
														 $datos['codban'],
														 trim($datos[6]),
														 $datos['tipcuebanper'],
														 trim($datos[2]),														 
														 ($datos[3])?$this->io_conexiones->formatea_fecha_bd($datos[3]):'1900/01/01',
														 trim($datos[11]),
														 trim($datos[12]),
														 $datos['pagefeper']										 													 
														 );
									
									$fecing = ($datos[3])?$this->io_conexiones->formatea_fecha_bd($datos[3]):'1900/01/01';
									$sueper = ((trim($datos[8])))?$datos[8]:$datos[9];
									//echo $numero.'.- '.$datos[13].' | '.str_pad(trim((integer)$datos[1]),10,'0',STR_PAD_LEFT).' | '.substr($datos[0],0,4).'-'.substr($datos[0],4,2).'-'.substr($datos[0],6,2).'-'.substr($datos[0],8,2).'-'.substr($datos[0],10,2).' | '.trim($datos[11]).' | '.$datos['pagbanper'].' | '. $datos['codban'].' | '. trim($datos[6]).' | '.$datos['tipcuebanper'].' | '.($datos[3])?$this->io_conexiones->formatea_fecha_bd($datos[3]):'1900/01/01'.'<br>';			
									echo $numero.'.- '.$datos[13].' | '.str_pad(trim((integer)$datos[1]),10,'0',STR_PAD_LEFT).' | '.substr($datos[0],0,4).'-'.substr($datos[0],4,2).'-'.substr($datos[0],6,2).'-'.substr($datos[0],8,2).'-'.substr($datos[0],10,2).' | '.trim($datos[11]).' | '.$datos['pagbanper'].' | '. $datos['codban'].' | '. trim($datos[6]).' | '.$datos['tipcuebanper'].' | '.$fecing.' | '.$sueper.'<br>';			
									$numero++;
									
									
									
												
									$this->rs_data=$this->io_sql->select($query_rs);															
									
									if($this->rs_data==false){		
									    $this->io_sql->rollback();					
										$metodo = 'ejecutar';
										$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
										$this->io_mensajes->message($mensaje);
										return false;
										
									}
									
													
									
							
				}
			
				$this->io_sql->commit();	
	
	}//end function ejecutar




}


$procesar = new procesar_datos;

$procesar->ejecutar();



?>