<?php 
session_start();
class procesar_datos
{
	

	function procesar_datos()
	{	
		
		
		$_SESSION["ls_hostname"] = "192.168.1.5";
		$_SESSION["ls_login"] = "postgres";
		$_SESSION["ls_password"] = "123x2";
		$_SESSION["ls_database"] = "db_juventud_2012";
		$_SESSION["ls_gestor"] = "POSTGRES";
		$_SESSION["ls_logo"] = "logo.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()){
				
				$resp = $this->insertar_personal($parametros);
				if(!$resp){return false;}
				
				$resp = $this->insertar_personalnomina($parametros);
				if(!$resp){return false;}
				
	
	}
	
	
	function insertar_personal($parametros=array()){
				
				$nombre_archivo = 'personal_inppj.txt';
				$fp = fopen($nombre_archivo,"r");
				$numero = 1;
				$numerox = 1;	
				$encontrados=array();
				
				while ($linea= fgets($fp,4096)){
							
							$datos = explode('|',$linea);
							if($numero==1){$numero++; continue;}					
							//echo sizeof($datos).'<br>';
							//cedula|nombres|apellidos|direccion|fecha_nacim|EDO_CIVIL|nacionalidad|sexo|profesion|nivel_instruccion|pais |estado| municipio|parroquia|'0000001|'2'|fecha_ingreso_admpub|fecha_ingreso_inginst
							//CODIGO|CEDULA|NOMBRE|APELLIDO|FECHA DE NACIMIENTO|ESTADO CIVIL|NACIONALIDAD|GENERO|NUMERO DE HIJOS|TIPO DE PERSONAL|FECHA DE INGRESOS A LA ADMINISTRACION PUBLICA|FECHA DE INGRESO A LA INSTITUCION
					    							
								/*
								0 Ninguno
								1 Primaria
								2 Bachiller			
								3 Técnico Superior
								4 Universitario
								5 Maestria
								6 PostGrado
								7 Doctorado
							
							
							    S Soltero
							    C Casado
							    D Divorciado
							    V Viudo			
							    K Concubino
							*/
							
							
							
													
                            //CODIGO|CEDULA|NOMBRE|APELLIDO|DIRECCION|FECHA DE NACIMIENTO|ESTADO CIVIL|NACIONALIDAD|R.I.F.|GENERO|PROFESION|NIVEL ACADEMICO|NUMERO DE HIJOS|TIPO DE PERSONAL|TIPO DE VIVIENDA|FECHA DE INGRESO APN|AÑO|MES|DIAS|FECHA DE INGRESO A LA INSTITUCION
							//  0       1      2	  3		     4                5            6          7           8       9      10          11               12             13                 14                 15           16  17  18    19

							
							//nacper, sexper,codpro,nivacaper,
							
							//$datos['codper'] = str_pad(trim((integer)$datos[0]),10,'0',STR_PAD_LEFT);
							$datos['codper'] = trim($datos[0]);
							$codper = $datos['codper'];
							$datos['cedper'] = trim((integer)$datos[1]);							
							$datos['nomper'] = trim($datos[2]);
							$datos['apeper'] = trim($datos[3]);
							$datos['dirper'] = 'CARACAS';
							$datos[5] = str_replace("-","/",$datos[5]);
							$datos['fecnacper'] = ($datos[5])?$datos[5]:'1900/01/01';
							$datos['edocivper'] = $datos[6]?trim($datos[6]):'S';
							
							$datos['nacper'] = trim($datos[7]);
							$datos['sexper'] = trim($datos[9]);
							$datos['codpro'] = ($datos[10])?trim($datos[10]):'001';						
							$datos['numhijper'] = '0';
							
							$datos['codtippersss'] = trim($datos[13]);
							if($datos['codtippersss']=='' or $datos['codtippersss']=='0000000'){$datos['codtippersss']='0000001';}
							$datos[15] = str_replace("-","/",trim($datos[15]));
							$datos[19] = str_replace("-","/",trim($datos[19]));
							$datos['fecingadmpubper'] = ($datos[15])?$datos[15]:'1900/01/01';
							$datos['fecingper'] = ($datos[19])?$datos[19]:'1900/01/01';
							//$datos['fecingadmpubper'] = (trim($datos[6]))?$this->io_conexiones->formatea_fecha_bd($datos[6]):'1900/01/01';
							//$datos['fecingper'] = (trim($datos[6]))?$this->io_conexiones->formatea_fecha_bd($datos[6]):'1900/01/01';
							
                            $datos['nivacaper'] = trim($datos[11]);
							switch($datos['nivacaper']){
										
										case 'B':
											$datos['nivacaper'] = 2;
											break;
										
										case 'U':
											$datos['nivacaper'] = 4;
											break;
										
										case 'T':
											$datos['nivacaper'] = 3;
											break;
                            
                            }
                            
							$datos['anoservpreper'] = (integer)$datos[16];
							$datos['messervpreper'] = (integer)$datos[17];
							$datos['diasservpreper'] = (integer)$datos[18];
								
							$query_rs = sprintf("INSERT INTO sno_personal(	codemp, codper, cedper, nomper, apeper, dirper, fecnacper, edocivper, 
																			nacper, sexper,codpro,nivacaper,codpai, codest, codmun,	codpar, numhijper,  
																			codtippersss, tipvivper,fecingadmpubper, anoservpreper,messervpreper,diasservpreper,fecingper,cajahoper,
																			contraper,monpagvivper,estper,fecegrper,fecjubper
																		)
														  VALUES ('%s','%s','%s','%s','%s','%s','%s','%s',
														  		  '%s','%s','%s','%s','%s','%s','%s','%s','%s',
																  '%s','%s','%s','%s','%s','%s','%s','%s',
																  '%s','%s','%s','%s','%s')",
														 '0001',
														 $datos['codper'],
													 	 $datos['cedper'],
														 $datos['nomper'],
														 $datos['apeper'],
														 $datos['dirper'],
														 $datos['fecnacper'],
														 $datos['edocivper'],
														 														 
														 $datos['nacper'],
														 $datos['sexper'],
														 $datos['codpro'],
														 $datos['nivacaper'],
														 '058',
														 '001',
														 '001',
														 '001',
														 $datos['numhijper'],
														 
														 $datos['codtippersss'],
														 '2',
														 $datos['fecingadmpubper'],
														 $datos['anoservpreper'],
														 $datos['messervpreper'],
														 $datos['diasservpreper'],
														 $datos['fecingper'],
														 '0',
														 
														 '',
														 '0',
														 '1',													 
														 '1900/01/01',
														 '1900/01/01'													 													 
														 );
														
									$query_existe = "SELECT * FROM sno_personal WHERE codemp='0001' AND codper='".$codper."' ";
									
									$this->rs_per=$this->io_sql->select($query_existe);
									
									if($this->rs_per==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;
									}	
																	
																		
									if($this->rs_per->RecordCount()){									
											$encontrados[] = '<b>'.$numero.'.-</b> <b class="texto-rojo">'.$datos['codper'].'</b> - '.$datos['nomper'].'  '.$datos['apeper'];
											$numero++;
											continue;
									}
									
									/*
									echo $numero.'.- '.$this->rs_per->RecordCount().' ----> '.$codper.' | '.trim($datos[1]).' | '.trim($datos[2]).' | '.trim($datos[4]).' | '.$datos[5].' | '.$datos[6].' | '.$datos[7].' | '.$datos[8].' | '.$datos[9].'<br>';			
									echo $query_rs.'<br>';
									echo '<br>'.'<br>';
									*/
									
									$this->io_sql->begin_transaction();				
									$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();								
									

									$insertado[] = '<b>'.$numero.'.-</b> <b class="texto-azul">'.$datos['codper'].'</b> - '.$datos['nomper'].'  '.$datos['apeper'];
									$numero++;
									$numerox++;
											
							
							
				}
			   
			   
				
				    echo '<br><br>';
				    echo '<table width="508" border="0" align="center" cellpadding="1" cellspacing="0" class="formato-blanco">';
					echo '<tr>';
					echo '<td align="left">';
					echo '<b><span align="center">PERSONAL ENCONTRADO:</span></b><br><br>';
					if(is_array($encontrados)){foreach(array_unique($encontrados) as $personas){echo $personas.'<br>';}}					
					echo '</td>';					
					echo '</table><br><br>';
					
					
					echo '<table width="508" border="0" align="center" cellpadding="1" cellspacing="0" class="formato-blanco">';
					echo '<tr>';
					echo '<td align="left">';
					echo '<b><span align="center">PERSONAL NUEVO INSERTADO:</span></b><br><br>';
					if(is_array($insertado)){foreach(array_unique($insertado) as $personas){echo $personas.'<br>';}}					
					echo '</td>';					
					echo '</table><br><br>';
					
					return true;
	
	}//end function ejecutar
	
	function insertar_personalnomina($parametros=array()){
	
				$nombre_archivo = 'personal_nomina_inppj.csv';
				$fp = fopen($nombre_archivo,"r");
				$numero = 0;
				$numerox = 1;
				$this->io_sql->begin_transaction();	
					
				while ($linea= fgets($fp,4096)){
	
	  					    //Cédula|Apellidos y Nombres|Tipo de Personal|Género|Fecha de Nacimiento|Profesión|Fecha de Ingreso|Estatus|Nivel Académico|Nómina|Cargo|Sueldo Basico|dedper|tipper|Estatus en Nómina|Ubicacion Fisica|Cuenta Nomina|CODBAN|Tipo Cta|Unidad Administrativa|Tabla de Vacaciones
					        //CEDULA|CODIGO|UNIDADES ADMINISTRATIVAS|SUELDO BASICO|CARGO|BANCO|TIPO DE CUENTA|Nº DE CUENTA|FECHA DE INGRESO A LA NOMINA|DEDICACION|TIPO DE PERSONAL
							//  0      1                   2	        3		     4     5         6           7                8                        9            10      
							if($numero==0){$numero++; continue;}
							
							$datos = explode('|',$linea);
							//$datos['codper'] = str_pad(trim((integer)$datos[0]),10,'0',STR_PAD_LEFT);
							$datos['codper'] = trim($datos[1]);							
							$datos['fecingper'] = ($datos[8])?$this->io_conexiones->formatea_fecha_bd($datos[8]):'1900/01/01';
							$datos['codded'] = trim($datos[9]);
							$datos['codtipper'] = trim($datos[10]);
							//if($datos['codtipper']=='0000' and $datos['codded']=='300'){$datos['codtipper']='0302';}
							//if($datos['codtipper']=='0000' and $datos['codded']=='200'){$datos['codtipper']='0202';}
							//if($datos['codtipper']=='0000' and $datos['codded']=='100'){$datos['codtipper']='0102';}
							//if($datos['codtipper']=='0107' and $datos['codded']=='300'){$datos['codtipper']='0307';}
							//if($datos['codtipper']=='0101' and $datos['codded']=='300'){$datos['codtipper']='0301';}
							
							
							$datos['codban'] = trim($datos[5])?'002':'CH';	
							
							if($datos['codban']=='CH'){
								$datos['codban'] = '';
								$datos['pagbanper'] = 0;
								$datos['pagefeper'] = 1;
								$datos['pagtaqper'] = 0;
								$datos['tipcuebanper'] = '';
								$datos['codcueban'] = '';	
							}
							else{														
								$datos['pagbanper'] = 1;
								$datos['pagefeper'] = 0;
								$datos['pagtaqper'] = 0;
								$datos['tipcuebanper'] = 'C';
								$datos['codcueban'] = trim($datos[7]);								
							}
																		
							//$datos[11] = trim(str_replace(".","",$datos[11]));
							//$datos[11] = trim(str_replace(",",".",$datos[11]));			
							$datos['sueper'] = trim($datos[3]);							
							$datos['codcar'] = trim($datos[4]);
							$datos['coduniadm'] = $datos[2];
						    $datos['coduniadm'] = trim(str_replace("-","",$datos['coduniadm']));
							$datos['codtabvac'] = '01';
							$datos['staper'] = '1';
							
							if($datos['codcar']<='0000000005' and $datos['codcar']!='0000000000'){$datos['codnom']='0001';}
							if($datos['codcar']>='0000000010' and $datos['codcar']<='0000000015' and $datos['codcar']!='0000000000'){$datos['codnom']='0002';}
							if($datos['codcar']>='0000000025' and $datos['codcar']<='0000000070' and $datos['codcar']!='0000000000'){$datos['codnom']='0004';}
							if($datos['codcar']>='0000000075' and $datos['codcar']<='0000000081' and $datos['codcar']!='0000000000'){$datos['codnom']='0005';}
							
							//$datos['codcar'] = '0000000000';
							//if($numero==0){$numero++; continue;}												
							//echo sizeof($datos).'<br>';												
							//cedula,codigo_cargo,sueldo,codigo_ubicacion,'100','0102', fecha_ingreso,'00','005','0000000001',nro_cuenta,'C','TA',fecha_ingreso,codnom 
							// 0         1           2       3              4      5        6           7    8        9           10      11  12        13        14
							 
							$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', '%s', '', '1900-01-01', '%s', '%s', 
															'', '%s', '0', '%s', '0', '0000000001', 
															'0000', '0000', '0000', 
															'', '0000', '000', '', '', '0', '0000', 
															'1900-01-01', '', '', '0', '0');",
														 $datos['codnom'],//codnom
														 $datos['codper'],//codper
														 $datos['sueper'],//sueper
														 substr($datos['coduniadm'],0,4),//minorguniadm
														 substr($datos['coduniadm'],4,2),//ofiuniadm
														 substr($datos['coduniadm'],6,2),//uniuniadm
														 substr($datos['coduniadm'],8,2),//depuniadm
														 substr($datos['coduniadm'],10,2),//prouniadm
														 $datos['pagbanper'],//pagbanper
														 $datos['codban'],//codban
														 $datos['codcueban'],//codcueban
														 $datos['tipcuebanper'],//tipcuebanper
														 $datos['codcar'],//codcar														 
														 $datos['fecingper'],//fecingper
														 $datos['staper'],//staper
														 $datos['codded'],//codded
														 $datos['codtipper'],//codtipper
														 $datos['codtabvac'],//codtabvac
														 $datos['pagefeper']//pagefeper										 													 
														 );
														 									
									$query_existe = "SELECT * FROM sno_personalnomina WHERE codemp='0001' AND codper='".$datos['codper']."' AND codnom='".$datos['codnom']."' ";
									
									$this->rs_pern=$this->io_sql->select($query_existe);
									
									if($this->rs_pern==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;
									}	
									
									if($this->rs_pern->RecordCount()){									
											$encontradospn[] = '<b>'.$numero.'.-</b> <b class="texto-rojo">'.$datos['codper'].'</b> - '.trim($datos['codnom']);
											$numero++;
											continue;
									}
									
									//echo $query_rs.'<br>';
									//echo $numero.'.- '.$datos['codper'].' | '.$datos['sueper'].' | '.$datos['coduniadm'].' | '.$datos['codcar'].' | '.$datos['codded'].' | '.$datos['fecingper'].'<br>';			
									$numero++;
									
							if(trim($datos['coduniadm']) and trim($datos['codtabvac'])){
																	
									$this->rs_data=$this->io_sql->select($query_rs);															
									$this->io_sql->begin_transaction();			
									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();
									$pn_insertado[] = '<b>'.$numero.'.-</b> <b class="texto-azul">'.$datos['codper'].'</b> - '.$datos['codnom'];		
							} 
							else{
									if(!trim($datos['coduniadm'])){echo '<b>ERROR:</b> Codper: '.$datos['codper'].'    Falata uniadm ! <br>';}
									if(!trim($datos['codtabvac'])){echo '<b>ERROR:</b> Codper: '.$datos['codper'].'    Falata tabvac ! <br>';}
									
							
							}
							
							      
				}
				
				echo '<br><br>';
				echo '<table width="508" border="0" align="center" cellpadding="1" cellspacing="0" class="formato-blanco">';
				echo '<tr>';
				echo '<td align="left">';
				echo '<b><span align="center">PERSONAL EN NÓMINA ENCONTRADO:</span></b><br><br>';
				if(is_array($encontradospn)){foreach(array_unique($encontradospn) as $personas){echo $personas.'<br>';}}					
				echo '</td>';					
				echo '</table><br><br>';
			
				
				echo '<table width="508" border="0" align="center" cellpadding="1" cellspacing="0" class="formato-blanco">';
				echo '<tr>';
				echo '<td align="left">';
				echo '<b><span align="center">PERSONAL INGRESADO A NOMINA:</span></b><br><br>';
				if(is_array($pn_insertado)){foreach(array_unique($pn_insertado) as $personas){echo $personas.'<br>';}}					
				echo '</td>';					
				echo '</table><br><br>';
				
				return true;
	
	}
	
	
	function consultar_cargo($param=array()){
				
				$query = "SELECT * 
						  FROM sno_cargo 
						  WHERE codemp='0001' 
						  AND codsireh='".$param['codsireh']."' 
						  AND codnom ='".$param['codnom']."'";
				
				$this->rs=$this->io_sql->select($query);
				
				if($this->rs==false){		
					$this->io_sql->rollback();					
					$metodo = 'consultar_cargo';
					$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;
				}							
													
				if(!$this->rs->RecordCount()){									
						echo  '<b>Error de Cargo: ('.$param['codsireh'].')</b> <b class="texto-rojo">El cargo no tiene un correlativo en SIGESP. CODPER = '.$param['codper'].'</b><br>';
						return false;
				}
				
				return $this->rs->fields['codcar'];
	
	}
	
	
	function consultar_uniadm($param=array()){
				
				
				$query = "SELECT minorguniadm||ofiuniadm||uniuniadm||depuniadm||prouniadm AS coduniadm,desuniadm 
						  FROM sno_unidadadmin 
						  WHERE codemp='0001' 
						  AND minorguniadm||ofiuniadm||uniuniadm||depuniadm||prouniadm='".$param['coduniadm']."' ";
				
				$this->rs=$this->io_sql->select($query);
				
				if($this->rs==false){		
					$this->io_sql->rollback();					
					$metodo = 'consultar_uniadm';
					$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;
				}							
													
				if(!$this->rs->RecordCount()){									
						echo  '<b>Error de Unidad Administrativa: ('.$param['coduniadm'].')</b> <b class="texto-rojo">La Unidad Administrativa no está definida en la nomina de SIGESP. CODPER = '.$param['codper'].'</b><br>';
						return false;
				}
				
				return $this->rs->fields['coduniadm'];
	
	}

}






?>
<link href="../shared/css/ventanas.css" rel="stylesheet" type="text/css">
<link href="../shared/css/general.css" rel="stylesheet" type="text/css">
<link href="../shared/css/tablas.css" rel="stylesheet" type="text/css">
<link href="../shared/css/catalogos.css" rel="stylesheet" type="text/css">

<?php 


$procesar = new procesar_datos();

$procesar->ejecutar();

 ?>