<?php 
////////////////////////////////////////////////////////////////////////////////////////////////////////
//       Class : sigesp_copia_soc.php                                	                			  //    
// Description : Procesa la copia de datos del modulo de Compras									  //
////////////////////////////////////////////////////////////////////////////////////////////////////////
class sigesp_copia_soc {

	var $io_sql_origen;
	var $io_sql_destino;
	var $io_mensajes;
	var $io_funciones;
	var $io_validacion;
	var	$lo_archivo;
	var $ls_database_source;
	var $ls_dabatase_target;
	
	function sigesp_copia_soc()
	{
			$ld_fecha=date("_d-m-Y");
			$ls_nombrearchivo="resultado/".$_SESSION["ls_data_des"]."_soc_result_".$ld_fecha.".txt";
			$this->lo_archivo=@fopen("$ls_nombrearchivo","a+");
		
			$this->ls_database_source=$_SESSION["ls_database"];
			$this->ls_dabatase_target=$_SESSION["ls_data_des"];		
			require_once("../shared/class_folder/sigesp_include_covensol.php");
			require_once("../shared/class_folder/class_mensajes.php");
			require_once("../shared/class_folder/class_sql_covensol.php");
			require_once("class_folder/class_validacion.php");
			
			$this->io_mensajes=new class_mensajes();
			$this->io_validacion      = new class_validacion();
			$io_conect	= new sigesp_include_covensol();
			$io_conexion_origen = $io_conect->uf_conectar();
			$io_conexion_destino  = $io_conect->uf_conectar_otra_bd ($_SESSION["ls_hostname"],$_SESSION["ls_login"],$_SESSION["ls_password"],$this->ls_dabatase_target,$_SESSION["ls_gestor"]); 
			$this->io_sql_origen = new class_sql_covensol($io_conexion_origen);
			$this->io_sql_destino = new class_sql_covensol($io_conexion_destino);
			
			global $ruta;		
			if($ruta==''){$ruta="../";}	
			require_once($ruta."shared/class_folder/sigesp_conexiones.php");
			$this->io_conexiones=new conexiones();
			
			$this->borrar_tabla = 0;
			$this->msjejec = "";
			$this->msjresultado = "";
			
	}

	function ue_copiar_soc_basico()
	{
		$lb_valido=true;
		if($this->lo_archivo){@fwrite($this->lo_archivo," \r\n".date('H:i:s').'.- Iniciando Apertura de Compras ... '." \r\n"." \r\n");}
		$this->io_sql_destino->begin_transaction();	
		
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_copiar_clausulas()<br />'; $lb_valido=$this->uf_copiar_clausulas();} 	
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_copiar_modalidad_clausula()<br />'; $lb_valido=$this->uf_copiar_modalidad_clausula();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_copiar_tipos_servicios()<br />'; $lb_valido=$this->uf_copiar_tipos_servicios();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_copiar_servicios()<br />'; $lb_valido=$this->uf_copiar_servicios();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_copiar_servicio_cargo()<br />'; $lb_valido=$this->uf_copiar_servicio_cargo();} 
			
		if(!$lb_valido){$this->io_sql_destino->rollback(); $this->io_mensajes->message("Ocurrió un error al copiar la data de Compras."); return false;}    
		$this->io_mensajes->message("La data de Compras se copió correctamente."); 
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- La data de Compras se copió correctamente.'." \r\n"." \r\n");} 
		$this->io_sql_destino->commit();
		$this->io_validacion->uf_insert_sistema_apertura('SOC');	
		return true;
			
	}


	function uf_copiar_clausulas(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando soc_clausulas ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('soc_clausulas');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codcla, dencla
					FROM soc_clausulas ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_clausulas ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
		 		
				 $ls_codcla = $this->io_validacion->uf_valida_texto($row["codcla"],0,6,"-");
                 $ls_dencla = $this->io_validacion->uf_valida_texto($row["dencla"],0,254,"-");
					   
				 $ls_sql = "INSERT INTO soc_clausulas (codemp, codcla, dencla) VALUES ('".$row["codemp"]."','".$ls_codcla."','".$ls_dencla."')";
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_clausulas ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  soc_clausulas Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> soc_clausulas Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_copiar_clausulas	




	function uf_copiar_modalidad_clausula(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando soc_modalidadclausulas ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('soc_modalidadclausulas');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codtipmod, denmodcla
					FROM soc_modalidadclausulas";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_modalidad_clausula ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
		 		 $ls_codemp = $row["codemp"];
				 $ls_codtipmod = $this->io_validacion->uf_valida_texto($row["codtipmod"],0,2,"--");
				 $ls_denmodcla = $this->io_validacion->uf_valida_texto($row["denmodcla"],0,100,"-");
					   
				 $ls_sql = " INSERT INTO soc_modalidadclausulas (codemp, codtipmod, denmodcla) 
				             VALUES ('".$ls_codemp."','".$ls_codtipmod."','".$ls_denmodcla."')";
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_modalidad_clausula ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  soc_modalidadclausulas Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> soc_modalidadclausulas Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_copiar_modalidad_clausula	


	function uf_copiar_tipos_servicios(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando soc_tiposervicio ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('soc_tiposervicio');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codtipser, dentipser, obstipser, codmil
					FROM soc_tiposervicio";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_tipos_servicios ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
		 		
				 $ls_codtipser = $row["codtipser"];
				 $ls_dentipser = $this->io_validacion->uf_valida_texto($row["dentipser"],0,254,"-");
				 $ls_obstipser = $this->io_validacion->uf_valida_texto($row["obstipser"],0,1000,"");
				 $ls_codmil    = $this->io_validacion->uf_valida_texto($row["codmil"],0,15,"");					
					   
				 $ls_sql = " INSERT INTO soc_tiposervicio (codtipser, dentipser, obstipser, codmil) 
				             VALUES ('".$ls_codtipser."','".$ls_dentipser."','".$ls_obstipser."','".$ls_codmil."')";
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_tipos_servicios ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  soc_tiposervicio Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> soc_tiposervicio Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_copiar_tipos_servicios	
		

	function uf_copiar_servicios(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando soc_servicios ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('soc_servicios');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codser, codtipser, denser, preser, spg_cuenta, codunimed
					FROM soc_servicios";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_servicios ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
		 		 
				 $ls_codemp = $row["codemp"];
				 $ls_codser    = $this->io_validacion->uf_valida_texto($row["codser"],0,10,"-");
				 $ls_codtipser = $this->io_validacion->uf_valida_texto($row["codtipser"],0,4,"----");
				 $ls_denser    = $this->io_validacion->uf_valida_texto($row["denser"],0,254,"-");
				 $ld_preser    = $this->io_validacion->uf_valida_monto($row["preser"],0);				 
				 $ls_spgcta    = $this->io_validacion->uf_valida_texto($row["spg_cuenta"],0,25,"");
				 					   
				$ls_sql = " INSERT INTO soc_servicios (codemp, codser, codtipser, denser, preser, spg_cuenta, codunimed) 
						    VALUES ('".$ls_codemp."','".$ls_codser."','".$ls_codtipser."','".$ls_denser."',".
							           $ld_preser.",'".$ls_spgcta."',".$row["codunimed"].")";

				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_servicios ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  soc_servicios Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> soc_servicios Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_copiar_servicios	
	
	function uf_copiar_servicio_cargo(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando soc_serviciocargo ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('soc_serviciocargo');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codcar, codser
					FROM soc_serviciocargo";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_servicio_cargo ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
		 		
				$ls_codemp = $row["codemp"];
				$ls_codcar = $this->io_validacion->uf_valida_texto($row["codcar"],0,5,"-----");
				$ls_codser = $this->io_validacion->uf_valida_texto($row["codser"],0,10,"----------");	
					   
				$ls_sql = " INSERT INTO soc_serviciocargo (codemp, codcar, codser) 
				            VALUES ('".$ls_codemp."','".$ls_codcar."','".$ls_codser."')";

				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_copiar_servicio_cargo ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  soc_serviciocargo Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> soc_serviciocargo Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_copiar_servicio_cargo	

	function ue_limpiar_soc_basico()
	{
		$lb_valido=true;
		$this->io_sql_destino->begin_transaction();
						
		//$resp = $this->liberar_fk();
		//if($resp===false){$this->io_sql_destino->rollback(); return false;}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("soc_serviciocargo","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("soc_servicios","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("soc_tiposervicio","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("soc_modalidadclausulas","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("soc_clausulas","");}	
		
		if(!$lb_valido){
		    $this->io_sql_destino->rollback();	
		 	$this->io_mensajes->message("Ocurrió un error al borrar la data de Compras. "); 
			return false;
		}
		//$resp = $this->encadenar_fk();
		//if($resp===false){$this->io_sql_destino->rollback(); return false;}	
		$this->io_sql_destino->commit();
		$this->io_mensajes->message("La data de Compras se borró correctamente.");
		return true;		
		
	}// end function ue_limpiar_scg_basico
	

	function uf_limpiar_tabla($as_tabla,$as_condicion="")
	{			
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Eliminando datos de '.$as_tabla.' ... '." \r\n");}
		$this->io_sql_destino->begin_transaction();
		
		$li_total_select=0;
		$li_total_insert=0;
		$ls_sql="DELETE FROM ".$as_tabla." ".$as_condicion;
	
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
	
		if($io_recordset===false)
		{ 
			$this->io_sql_destino->rollback();			
			$lb_valido=false;
			$this->msjresultado="Error al Borrar la tabla: ".$as_tabla.".\r\n".$this->io_sql_destino->message."\r\n";
			$error2="Error al Borrar la tabla: ".$as_tabla.".<br/>".$this->io_sql_destino->message."<br/>";			
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_limpiar_tabla ERROR->".$error2);
			return false;			
		}
		
		$this->io_sql_destino->commit();
		$this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		$this->msjresultado=$this->msjresultado."   Tabla  ".$as_tabla."  Blanqueada <br />";
		$this->msjresultado=$this->msjresultado."*****************************************************************<br />";			
			
		return true;
	}// end function uf_limpiar_tabla


}
?>