<?php 
session_start();
class procesar_datos
{
	

	function procesar_datos()
	{	
		/*
		$_SESSION["ls_hostname"] = "localhost";
		$_SESSION["ls_login"] = "postgres";
		$_SESSION["ls_password"] = "123x2";
		$_SESSION["ls_database"] = "db_usuarios_2015";
		$_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()){
				
				$resp = $this->insertar_personal($parametros);
				if(!$resp){return false;}
				
				$resp = $this->insertar_personalnomina($parametros);
				if(!$resp){return false;}
				
	
	}
	
	
	function insertar_personal($parametros=array()){
				
				$sql=" SELECT * FROM sno_personal_horizonte ";
				
				$this->rs=$this->io_sql->select($sql);
									
				if($this->rs==false){		
					$this->io_sql->rollback();					
					$metodo = 'insertar_personal';
					$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;
				}	
				
				foreach($this->rs as $datos){
							
							/*					
							nacper, cedper, numtrab, nomper, apeper, codubi, desubi, codloc, 
						    desloc, gerencia, sueper, nrocat, codcar, descar, desban, tipcue, 
						    numcue, fecing, dedica
							*/
							$codper = str_pad($datos['cedper'],10,"0",STR_PAD_LEFT);
							$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, fecingper,cajahoper,
																			contraper,monpagvivper,estper,
																			fecegrper,fecjubper,numexpper
																		)
														  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')",
														 '0001',
														 str_pad($datos['cedper'],10,"0",STR_PAD_LEFT),
													 	 trim((integer)$datos['cedper']),
														 trim($datos['apeper']),
														 trim($datos['nomper']),
														 'S/D',
														 '1900/01/01',
														 'S',
														 
														 trim($datos['nacper']),
														 'M',
														 '001',
														 '0',
														 '058',
														 '001',
														 '001',
														 '003',
														 '0',
														 
														 '0000001',
														 '0',
														 (trim($datos['fecing']))?trim($datos['fecing']):'1900/01/01',
														 '0',
														 (trim($datos['fecing']))?trim($datos['fecing']):'1900/01/01',
														 '0',
														 
														 '',
														 '0',
														 '1',
														 
														 '1900/01/01',
														 '1900/01/01',
														 trim($datos['numtrab'])												 													 
														 );
									//echo $query_rs.'<br><br><br>';
													
									$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 = 'insertar_personal';
										$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">'.$codper.'</b> - '.trim($datos['nomper']).'  '.trim($datos['apeper']);
											$numero++;
											continue;
									}
									
									
									$this->io_sql->begin_transaction();				
									$this->rs_data=$this->io_sql->select($query_rs);								
									
									if($this->rs_data==false){		
									    $this->io_sql->rollback();					
										$metodo = 'insertar_personal';
										$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;
										
									}
									
									$resp=$this->InsertIsr($codper);
									if($resp===false){$this->io_sql->rollback(); return false;}
									
									
									$sql1="INSERT INTO sno_fideicomiso (codemp, codper, codfid, ficfid, ubifid, cuefid, 
									                             fecingfid, capfid, capantcom, fecconpreant, conpreant, 
																 porintcap, scg_cuentafid, scg_cuentaintfid, calintfid) 
			                              VALUES ('0001', '".$codper."', '0000', '0000000000', '0000000000', '', '".trim($datos['fecing'])."', 'S', 
								                  '', '1900-01-01', ' ', 0, '', '', '0');";
									
									$rs1=$this->io_sql->select($sql1);
									if($rs1==false){		
										$this->io_sql->rollback();					
										$metodo = 'insertar_personal';
										$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->rollback();
									$this->io_sql->commit();								
									

									$insertado[] = '<b>'.$numero.'.-</b> <b class="texto-azul">'.$codper.'</b> - '.trim($datos['nomper']).'  '.trim($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()){
	
				$sql=" SELECT * FROM sno_personal_horizonte ";
				
				$this->rs=$this->io_sql->select($sql);
									
				if($this->rs==false){		
					$this->io_sql->rollback();					
					$metodo = 'insertar_personal';
					$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;
				}	
				
				foreach($this->rs as $datos){
	
						   	/*					
							nacper, cedper, numtrab, nomper, apeper, codubi, desubi, codloc, 
						    desloc, gerencia, sueper, nrocat, codcar, descar, desban, tipcue, 
						    numcue, fecing, dedica
							*/
																				
							$datos['codper'] =  str_pad(trim($datos['cedper']),10,'0',STR_PAD_LEFT);
							$codper =  str_pad(trim($datos['cedper']),10,'0',STR_PAD_LEFT);
											 
							$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', 
															'', '01', '0', '%s', '0', '0000000001', 
															'0000', '0000', '0000', 
															'', '0000', '000', '', '', '0', '0000', 
															'1900-01-01', '', '', '0', '0');",
														 $datos['codnom'],
														 $codper,
														 
														 trim($datos['sueper']),
														 '0000',
														 '00',
														 '00',
														 substr($datos['codloc'],0,2),
														 substr($datos['codloc'],2,2),
														 
														 '1',
														 '001',
														 trim($datos['numcue']),
														 trim($datos['tipcue']),
														 trim($datos['codcarnew']),
														 														 
														 trim($datos['fecing']),
														 '100',
														 '0103',
														 
														 '0'										 													 
														 );
														 
														 									
									$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++;
									
																	
									$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'];		
							
							
							      
				}
				
				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 InsertIsr($as_codper)
	{
		
		for($li_index=1;$li_index<13;++$li_index)
		{
			$ls_codimp= $li_index."";
			if (strlen($ls_codimp)==1)
			{
				$ls_codimp="0".$ls_codimp;
			}
			$ls_sql="INSERT INTO sno_personalisr ".
					"(codemp,codper,codisr,porisr,codconret)VALUES('".$this->ls_codemp."','".$as_codper."','".$ls_codimp."',0.00,'001')";
			$rs=$this->io_sql->execute($ls_sql);
			if($rs===false){
				$metodo = 'InsertIsr';
				$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;
			}	
		}	
		return true;
	}// end function uf_insert_isrpersonal
	//-----------------------------------------------------------------------------------------------------------------------------------

	
	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();

 ?>