<?php 
session_start();
class procesar_datos
{
	

	function procesar_datos()
	{	
		
		
		$_SESSION["ls_hostname"] = "localhost";
		$_SESSION["ls_login"] = "postgres";
		$_SESSION["ls_password"] = "adminsigesp";
		$_SESSION["ls_database"] = "db_conviasa_2011";
		$_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"] = "ADMINISTRADOR";	
		
		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();		
        $this->ls_codemp=$_SESSION["la_empresa"]["codemp"];
		

	}


	function ejecutar($parametros=array()){
				
				$nombre_archivo = 'nomina.csv';
				$fp = fopen($nombre_archivo,"r");
				$numero = 1;
				$faltantes_p = array();
				$faltantes_pn = array();
				$faltantes_cnt = array();
				
				while ($linea= fgets($fp,2048)){
							
							$datos = explode(';',$linea);
												
    						//echo 'Se actualizaran : '.sizeof($datos).' registros. <br>';
							
							$datos[0] = trim($datos[0]);
							$datos[1] = trim($datos[1]);
							$datos[2] = trim($datos[2]);
							$datos[3] = trim($datos[3]);
														
							$datos[0] = str_pad('1'.$datos[0],10,'0',STR_PAD_LEFT);
							$datos[1] = str_pad($datos[1],10,'0',STR_PAD_LEFT);
							$datos[3] = str_pad($datos[3],4,'0',STR_PAD_LEFT);
							
							$query_p  = " SELECT
											(SELECT COUNT(*) FROM sno_personal WHERE codper = '".$datos[1]."' AND codemp='0001') as p, 
											(SELECT COUNT(*) FROM sno_personalnomina WHERE codper = '".$datos[1]."' AND codnom='".$datos[3]."' AND codemp='0001') as pn,
											(SELECT COUNT(*) FROM sno_constantepersonal WHERE codper = '".$datos[1]."' AND codnom='".$datos[3]."' AND codcons='".$datos[0]."'  AND codemp='0001') as ctp 
										";
							
							$query_rs = "UPDATE sno_constantepersonal
										   SET moncon='".$datos[2]."'
										 WHERE codnom='".$datos[3]."'  AND codcons='".$datos[0]."' AND codper='".$datos[1]."' AND codemp='0001' ";
										
							
							$this->rs_dp =$this->io_sql->select($query_p);							
							if(!$this->rs_dp->fields['p']){echo "La persona ".$datos[1]." no está cargada en la ficha de personal<br>"; $faltantes_p[] = $datos[1]; continue;}
							if(!$this->rs_dp->fields['pn']){echo "La persona ".$datos[1]." no está asignada a la nómina<br>";  $faltantes_pn[] = $datos[1]; continue;}
							if(!$this->rs_dp->fields['ctp']){echo "La persona ".$datos[1]." no posee asignada la constante ".$datos[0]."<br>";  $faltantes_cnt[] = $datos[1].' - '.$datos[0]; 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 = '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;
								
							}
							
							echo '<b>'.$numero.'.-</b> Se actualizó la constante '.$datos[0].' para la persona '.$datos[1].' de la nómina '.$datos[3].'. Registro Afectado: '.$this->io_sql->conn->Affected_Rows().' <br>';
							$numero++;
							
							$this->io_sql->commit();
							
							
							
				}
			    
				
				echo '<br><br><b>PERSONAL FALTANTE EN FICHA DE PERSONAL</b><br>';
				foreach(array_unique($faltantes_p) as $persona){				
						echo $persona.'<br>';				
				}
				
				echo '<br><br><b>PERSONAL FALTANTE EN NÓMINA</b><br>';
				foreach(array_unique($faltantes_pn) as $pn){				
						echo $pn.'<br>';				
				}
				
				echo '<br><br><b>PERSONAL FALTANTE EN CONSTANTES</b><br>';
				foreach(array_unique($faltantes_cnt) as $cnt){				
						echo $cnt.'<br>';				
				}
	
	}//end function ejecutar




}


$procesar = new procesar_datos;

$procesar->ejecutar();



?>