<?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_bicentenario_2010";
		$_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()){						
							
								
							echo 'Seleccionando Regiones ... <br>';
							//$select_regiones = " SELECT DISTINCT ON (codestpro3) * FROM spg_ep3 WHERE codestpro3!='-------------------------' ORDER BY codestpro3 ";	
							$select_regiones = " SELECT DISTINCT ON (codestpro1,codestpro2,codestpro3) *
												 FROM spg_ep3
												 WHERE codestpro3!='-------------------------'
												 ORDER BY codestpro1,codestpro2,codestpro3 ";
							$this->rs_regiones=$this->io_sql->select($select_regiones);		
							
							
							echo 'Eliminando casamiento actual ... <br>';
							$this->eliminar_casamiento();	
							
							$contador=1;
							echo 'Recorriendo regiones ... <br>';
							while(!$this->rs_regiones->EOF){
										
									$resp=true;
									echo '----> Región: '.$this->rs_regiones->fields['denestpro3'].' <br>';
																		
									echo 'Seleccionando casamiento previo ... <br>';
									$select_cuentas_old = " SELECT * FROM spg_cuentas_old
															WHERE codemp = '0001'																													
															AND codestpro1 = '".$this->rs_regiones->fields['codestpro1']."' 
															AND codestpro2 = '".$this->rs_regiones->fields['codestpro2']."'														
															AND codestpro4 = '0000000000000000000000000'  
															AND codestpro5 = '0000000000000000000000000'
															ORDER BY codestpro1,codestpro2,codestpro3,codestpro4,codestpro5 ";								
									$this->rs_old=$this->io_sql->select($select_cuentas_old);
									if($this->rs_old===false){break; return false;}	
												
									echo 'Insertando casamiento actual <b>Cantidad:</b> '.$this->rs_old->RecordCount().' ...<br>';		
									while(!$this->rs_old->EOF){
											$existe = $this->verificar_ep5();											
											if($existe>0){
											    echo $contador.'<br>';					
												$resp = $this->insertar_casamiento();
												if($resp===false){break; return false;}
												$contador++;
											}
											if($existe===false){break; return false;}											
											$this->rs_old->MoveNext();
											
									}															
										
									
									if($resp===false){break; return false;}	
									$this->rs_regiones->MoveNext();			
							}
									
													
							return true;
	
	}//end function ejecutar

	
	function eliminar_casamiento($parametros=array()){	
	
						$eliminar = "  DELETE FROM spg_cuentas ";						
						$rs_eliminar=$this->io_sql->select($eliminar);					
						return true;
	
	}
	
	
	function insertar_casamiento($datos=array()){
	
					$insert_casamiento = "INSERT INTO spg_cuentas ( codemp, estcla, 
																    codestpro1, codestpro2, codestpro3, codestpro4, codestpro5, 
																	spg_cuenta, denominacion, status, sc_cuenta, 
																	asignado,  precomprometido, comprometido, causado, pagado, aumento, disminucion,distribuir, 
																	enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre, 
																	nivel, referencia, scgctaint  )									
											VALUES ('0001', 'A', 
													'".$this->rs_old->fields['codestpro1']."', '".$this->rs_old->fields['codestpro2']."', '".$this->rs_regiones->fields['codestpro3']."','".$this->rs_old->fields['codestpro3']."', '0000000000000000000000000', 
													'".$this->rs_old->fields['spg_cuenta']."', '".$this->rs_old->fields['denominacion']."', '".$this->rs_old->fields['status']."', '".$this->rs_old->fields['sc_cuenta']."', 
													0, 0, 0, 0, 0, 0, 0, 0, 
													0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
													3, '".$this->rs_old->fields['referencia']."', '".$this->rs_old->fields['scgctaint']."')									
											";
								
					if($this->rs_old->fields['codestpro1'] and $this->rs_old->fields['codestpro2'] and $this->rs_old->fields['codestpro3'] and $this->rs_regiones->fields['codestpro3']){
									
							$resp=$this->io_sql->select($insert_casamiento);									
							if($resp===false)
							{						
								$metodo = 'insertar_casamiento';
								$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;							
									
					}
					
					return false;
					
	
	}

	
	function verificar_ep5(){
	
	
						$consulta = "   SELECT * FROM spg_ep5 
									    WHERE  codemp = '0001'
										AND estcla = 'A'
										AND codestpro1 = '".$this->rs_regiones->fields['codestpro1']."' 
										AND codestpro2 = '".$this->rs_regiones->fields['codestpro2']."'  
										AND codestpro3 = '".$this->rs_regiones->fields['codestpro3']."'  
										AND codestpro4 = '".$this->rs_old->fields['codestpro3']."'  
										AND codestpro5 = '0000000000000000000000000' ";						
						$resultado=$this->io_sql->select($consulta);						
						if($resultado===false)
						{						
								$metodo = 'verificar_ep5';
								$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 $resultado->RecordCount();
	
	
	
	}



}


$procesar = new procesar_datos;
$procesar->ejecutar();








?>