<?php 
////////////////////////////////////////////////////////////////////////////////////////////////////////
//       Class : sigesp_copia_sss.php                                	                			  //    
// Description : Procesa la copia de datos del modulo de seguridad									  //
////////////////////////////////////////////////////////////////////////////////////////////////////////

class sigesp_copia_scgspgspi {

	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_scgspgspi()
	{
		$ld_fecha=date("_d-m-Y");
		$ls_nombrearchivo="resultado/".$_SESSION["ls_data_des"]."_scgspgspi_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 = "";
		
	}// end function ue_copiar_scg_basicoS
	
	
	
	function ue_copiar_scgpsgspi_basico()
	{
		
		$lb_valido=true;
		if($this->lo_archivo){@fwrite($this->lo_archivo," \r\n".date('H:i:s').'.- Iniciando Apertura de Contabilidad, Presupuesto de Gasto y Presupuesto de Ingreso ... '." \r\n"." \r\n");}
		$this->io_sql_destino->begin_transaction();
                //$this->ue_limpiar_scgpsgspi_basico();	
		$resp = $this->liberar_fk();
		if($resp===false){$this->io_sql_destino->rollback(); return false;}	
		
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_planunico()<br />'; $lb_valido=$this->uf_insert_planunico();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_planunicore()<br />'; $lb_valido=$this->uf_insert_planunicore();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spioperaciones()<br />'; $lb_valido=$this->uf_insert_spioperaciones();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgoperaciones()<br />'; $lb_valido=$this->uf_insert_spgoperaciones();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_fuentefinancimiento()<br />'; $lb_valido=$this->uf_insert_fuentefinancimiento();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgministerioua()<br />'; $lb_valido=$this->uf_insert_spgministerioua();} 
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgunidadadministrativa()<br />'; $lb_valido=$this->uf_insert_spgunidadadministrativa();} 
				
		if($lb_valido and array_key_exists("chkspitransferir",$_POST))
		{$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spicuentas()<br />'; $lb_valido=$this->uf_insert_spicuentas();} 
		if($lb_valido and array_key_exists("chkscgtransferir",$_POST))
		{$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_scgcuentas()<br />'; $lb_valido=$this->uf_insert_scgcuentas();}
		
		if(array_key_exists("chkspgtransferir",$_POST)){		
			if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgestructura1()<br />'; $lb_valido=$this->uf_insert_spgestructura1();} 	
			if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgestructura2()<br />'; $lb_valido=$this->uf_insert_spgestructura2();}	
			if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgestructura3()<br />'; $lb_valido=$this->uf_insert_spgestructura3();} 
			if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgestructura4()<br />'; $lb_valido=$this->uf_insert_spgestructura4();} 
			if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgestructura5()<br />'; $lb_valido=$this->uf_insert_spgestructura5();} 
			if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spgcuentas()<br />'; $lb_valido=$this->uf_insert_spgcuentas();} 
			if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_spg_dt_unidadadministrativa()<br />'; $lb_valido=$this->uf_insert_spg_dt_unidadadministrativa();} 
		}
				
		$resp = $this->encadenar_fk();
		if($resp===false){$this->io_sql_destino->rollback(); return false;}			
		if(!$lb_valido){$this->io_sql_destino->rollback(); $this->io_mensajes->message("Ocurrió un error al copiar la data de Contabilidad, Presupuesto de Gasto y Presupuesto de Ingreso."); return false;}    
		$this->io_mensajes->message("La data de Contabilidad, Presupuesto de Gasto y Presupuesto de Ingreso se copió correctamente."); 
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- La data de Contabilidad, Presupuesto de Gasto y Presupuesto de Ingreso se copió correctamente.'." \r\n"." \r\n");} 
		$this->io_validacion->uf_insert_sistema_apertura('SCG');
		$this->io_validacion->uf_insert_sistema_apertura('SPG');
		$this->io_validacion->uf_insert_sistema_apertura('SPI');
		$this->io_sql_destino->commit();	
		return true;
			
	}
	
	function liberar_fk(){

		$ls_sql="   ALTER TABLE sep_solicitud DROP CONSTRAINT fk_sep_soli_sigesp_fu_sigesp_f;
		            ALTER TABLE spg_ep2 DROP CONSTRAINT fk_spg_ep2_spg_ep1___spg_ep1;
					ALTER TABLE spg_ep3 DROP CONSTRAINT fk_spg_ep3_sigesp_fu_sigesp_f;
					ALTER TABLE spg_ep3 DROP CONSTRAINT fk_spg_ep3_spg_ep2___spg_ep2;
					ALTER TABLE spg_ep4 DROP CONSTRAINT fk_spg_ep4_spg_epg3__spg_ep3;
					ALTER TABLE spg_ep5 DROP CONSTRAINT fk_spg_ep5_sigesp_fu_sigesp_f;
					ALTER TABLE spg_ep5 DROP CONSTRAINT fk_spg_ep5_spg__ep4__spg_ep4;
					ALTER TABLE spg_dt_unidadadministrativa DROP CONSTRAINT fk_spg_dt_u_spg_unida_spg_unid;
					 ";
		$resp=$this->io_sql_destino->execute($ls_sql);
		if($resp===false){								
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->liberar_fk ERROR->".$this->io_sql_destino->message);
			return false;
		}
		return true;
	}
	

	function encadenar_fk(){

		$ls_sql="   ALTER TABLE sep_solicitud
					  ADD CONSTRAINT fk_sep_soli_sigesp_fu_sigesp_f FOREIGN KEY (codemp, codfuefin)
						  REFERENCES sigesp_fuentefinanciamiento (codemp, codfuefin) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;
					
					ALTER TABLE spg_ep2
					  ADD CONSTRAINT fk_spg_ep2_spg_ep1___spg_ep1 FOREIGN KEY (codemp, codestpro1, estcla)
						  REFERENCES spg_ep1 (codemp, codestpro1, estcla) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;
					
					ALTER TABLE spg_ep3
					  ADD CONSTRAINT fk_spg_ep3_sigesp_fu_sigesp_f FOREIGN KEY (codemp, codfuefin)
						  REFERENCES sigesp_fuentefinanciamiento (codemp, codfuefin) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;
					
					ALTER TABLE spg_ep3
					  ADD CONSTRAINT fk_spg_ep3_spg_ep2___spg_ep2 FOREIGN KEY (codemp, codestpro1, estcla, codestpro2)
						  REFERENCES spg_ep2 (codemp, codestpro1, estcla, codestpro2) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;
					
					ALTER TABLE spg_ep4
					  ADD CONSTRAINT fk_spg_ep4_spg_epg3__spg_ep3 FOREIGN KEY (codemp, codestpro1, estcla, codestpro2, codestpro3)
						  REFERENCES spg_ep3 (codemp, codestpro1, estcla, codestpro2, codestpro3) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;

					ALTER TABLE spg_ep5
					  ADD CONSTRAINT fk_spg_ep5_sigesp_fu_sigesp_f FOREIGN KEY (codemp, codfuefin)
						  REFERENCES sigesp_fuentefinanciamiento (codemp, codfuefin) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;
					
					ALTER TABLE spg_ep5
					  ADD CONSTRAINT fk_spg_ep5_spg__ep4__spg_ep4 FOREIGN KEY (codemp, codestpro1, estcla, codestpro2, codestpro3, codestpro4)
						  REFERENCES spg_ep4 (codemp, codestpro1, estcla, codestpro2, codestpro3, codestpro4) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;	
					
					ALTER TABLE spg_dt_unidadadministrativa
					  ADD CONSTRAINT fk_spg_dt_u_spg_unida_spg_unid FOREIGN KEY (codemp, coduniadm)
						  REFERENCES spg_unidadadministrativa (codemp, coduniadm) MATCH SIMPLE
						  ON UPDATE RESTRICT ON DELETE RESTRICT;
														
					 ";
		$resp=$this->io_sql_destino->execute($ls_sql);
		if($resp===false){								
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->encadenar_fk ERROR->".$this->io_sql_destino->message);
			return false;
		}
		return true;

	}
	
	function uf_insert_planunico(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sigesp_plan_unico ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('sigesp_plan_unico');
			if($valido===false){return false;}
		}
		
		$ls_sql  = " SELECT sc_cuenta, denominacion 
		             FROM sigesp_plan_unico ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_planunico 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_sc_cuenta=$this->io_validacion->uf_valida_texto($row["sc_cuenta"],0,25,"");
				$ls_denominacion=$this->io_validacion->uf_valida_texto($row["denominacion"],0,254,"");
					   
				 $ls_sql="INSERT INTO sigesp_plan_unico (sc_cuenta, denominacion) VALUES('".$ls_sc_cuenta."','".$ls_denominacion."')";
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_planunico ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  sigesp_plan_unico Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> sigesp_plan_unico Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_planunico	
    
	function uf_insert_planunicore(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sigesp_plan_unico_re ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('sigesp_plan_unico_re');
			if($valido===false){return false;}
		}
		
		$ls_sql  = " SELECT sig_cuenta, denominacion ".
				   " FROM sigesp_plan_unico_re ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_planunicore 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_sig_cuenta=$this->io_validacion->uf_valida_texto($row["sig_cuenta"],0,25,"");
				 $ls_denominacion=$this->io_validacion->uf_valida_texto($row["denominacion"],0,254,"");
					   
				 $ls_sql="INSERT INTO sigesp_plan_unico_re (sig_cuenta, denominacion) VALUES('".$ls_sig_cuenta."','".$ls_denominacion."')";
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_planunicore ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  sigesp_plan_unico_re Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> sigesp_plan_unico_re Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_planunicore	
	
	function uf_insert_scgcuentas(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando scg_cuentas ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('scg_cuentas');
			if($valido===false){return false;}
		}
		
		$ls_sql  = " SELECT codemp, sc_cuenta, denominacion, status, asignado, distribuir, nivel, referencia ".
				   " FROM scg_cuentas ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_scgcuentas 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_sc_cuenta=$this->io_validacion->uf_valida_texto($row["sc_cuenta"],0,25,"");
				$ls_denominacion=$this->io_validacion->uf_valida_texto($row["denominacion"],0,254,"");
				$ls_status=$this->io_validacion->uf_valida_texto($row["status"],0,1,"");
				$li_asignado=$this->io_validacion->uf_valida_monto($row["asignado"],0);
				$li_distribuir=$this->io_validacion->uf_valida_monto($row["distribuir"],0);
				$li_nivel=$this->io_validacion->uf_valida_monto($row["nivel"],0);
				$ls_referencia=$this->io_validacion->uf_valida_texto($row["referencia"],0,25,"");

				$li_asignado=0;
				$li_enero=0;
				$li_febrero=0;
				$li_marzo=0;
				$li_abril=0;
				$li_mayo=0;
				$li_junio=0;
				$li_julio=0;
				$li_agosto=0;
				$li_septiembre=0;
				$li_octubre=0;
				$li_noviembre=0;
				$li_diciembre=0;
									   
				 $ls_sql="INSERT INTO scg_cuentas (codemp, sc_cuenta, denominacion, status, asignado, distribuir, enero, febrero, marzo, abril, ".
						 "mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre, nivel, referencia) 
						 VALUES('".$ls_codemp."','".$ls_sc_cuenta."','".$ls_denominacion."','".$ls_status."',".
						 $li_asignado.",".$li_distribuir.",".$li_enero.",".$li_febrero.",".$li_marzo.",".$li_abril.",".$li_mayo.",".$li_junio.",".
						 $li_julio.",".$li_agosto.",".$li_septiembre.",".$li_octubre.",".$li_noviembre.",".$li_diciembre.",".$li_nivel.",'".$ls_referencia."'"
						 .")";
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_scgcuentas ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  scg_cuentas Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> scg_cuentas Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_scgcuentas	

	
	
	function uf_insert_spicuentas(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spi_cuentas ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spi_cuentas');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, spi_cuenta, denominacion, status, sc_cuenta, distribuir, nivel, referencia ".
				  " FROM spi_cuentas ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spicuentas 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_spicuenta=$this->io_validacion->uf_valida_texto($row["spi_cuenta"],0,25,"");
				$ls_denominacion=$this->io_validacion->uf_valida_texto($row["denominacion"],0,254,"");
				$ls_status=$this->io_validacion->uf_valida_texto($row["status"],0,1,"");
				$li_distribuir=$this->io_validacion->uf_valida_monto($row["distribuir"],0);
				$ls_sc_cuenta=$this->io_validacion->uf_valida_texto($row["sc_cuenta"],0,25,"");
				$li_nivel=$this->io_validacion->uf_valida_monto($row["nivel"],0);
				$ls_referencia=$this->io_validacion->uf_valida_texto($row["referencia"],0,25,"");

				$li_previsto=0; 
				$li_devengado=0; 
				$li_cobrado=0; 
				$li_cobrado_anticipado=0; 
				$li_aumento=0; 
				$li_disminucion=0; 
				$li_enero=0;
				$li_febrero=0;
				$li_marzo=0;
                $li_abril=0;
				$li_mayo=0;
				$li_junio=0;
				$li_julio=0; 
				$li_agosto=0;
				$li_septiembre=0;
				$li_octubre=0;
				$li_noviembre=0;
				$li_diciembre=0;
					   
				$ls_sql="INSERT INTO spi_cuentas (codemp, spi_cuenta, denominacion, status, sc_cuenta, previsto, devengado, cobrado, ".
						"cobrado_anticipado, aumento, disminucion, distribuir, enero, febrero, marzo, abril, mayo, junio, julio, agosto, ".
						"septiembre, octubre, noviembre, diciembre, nivel, referencia) VALUES ".
						"('".$ls_codemp."','".$ls_spicuenta."','".$ls_denominacion."','".$ls_status."','".$ls_sc_cuenta."',".$li_previsto.",".
							$li_devengado.",".$li_cobrado.",".$li_cobrado_anticipado.",".$li_aumento.",".$li_disminucion.",".
							$li_distribuir.",".$li_enero.",".$li_febrero.",".$li_marzo.",".$li_abril.",".$li_mayo.",".$li_junio.",".
							$li_julio.",".$li_agosto.",".$li_septiembre.",".$li_octubre.",".$li_noviembre.",".$li_diciembre.",".
							$li_nivel.",'".$ls_referencia."')";
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spicuentas ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spi_cuentas Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spi_cuentas Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spicuentas		
	
	
	function uf_insert_spioperaciones(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spi_operaciones ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spi_operaciones');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT operacion, denominacion, previsto, aumento, disminucion, devengado, cobrado, cobrado_ant, reservado ".
				  " FROM spi_operaciones ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spioperaciones 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_operacion=$this->io_validacion->uf_valida_texto($row["operacion"],0,3,"");
				$ls_denominacion=$this->io_validacion->uf_valida_texto($row["denominacion"],0,80,"");
				$li_previsto=$this->io_validacion->uf_valida_monto($row["previsto"],0);
				$li_aumento=$this->io_validacion->uf_valida_monto($row["aumento"],0);
				$li_disminucion=$this->io_validacion->uf_valida_monto($row["disminucion"],0);
				$li_devengado=$this->io_validacion->uf_valida_monto($row["devengado"],0);
				$li_cobrado=$this->io_validacion->uf_valida_monto($row["cobrado"],0);
				$li_cobrado_ant=$this->io_validacion->uf_valida_monto($row["cobrado_ant"],0);
				$li_reservado=$this->io_validacion->uf_valida_monto($row["reservado"],0);
					   
				 $ls_sql="INSERT INTO spi_operaciones (operacion, denominacion, previsto, aumento, disminucion, devengado, cobrado, ".
							                           "cobrado_ant, reservado) 
						  VALUES ('".$ls_operacion."','".$ls_denominacion."',".$li_previsto.",".$li_aumento.",".
							         $li_disminucion.",".$li_devengado.",".$li_cobrado.",".$li_cobrado_ant.",".$li_reservado.")";
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spioperaciones ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spi_operaciones Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spi_operaciones Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spioperaciones	

	
	function uf_insert_spgoperaciones(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_operaciones ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_operaciones');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT operacion, denominacion, asignar, aumento, disminucion, precomprometer, comprometer, causar, pagar, reservado ".
				  " FROM spg_operaciones ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgoperaciones 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_operacion=$this->io_validacion->uf_valida_texto($row["operacion"],0,3,"");
				$ls_denominacion=$this->io_validacion->uf_valida_texto($row["denominacion"],0,80,"");
				$li_asignar=$this->io_validacion->uf_valida_monto($row["asignar"],0);
				$li_aumento=$this->io_validacion->uf_valida_monto($row["aumento"],0);
				$li_disminucion=$this->io_validacion->uf_valida_monto($row["disminucion"],0);
				$li_precomprometer=$this->io_validacion->uf_valida_monto($row["precomprometer"],0);
				$li_comprometer=$this->io_validacion->uf_valida_monto($row["comprometer"],0);
				$li_causar=$this->io_validacion->uf_valida_monto($row["causar"],0);
				$li_pagar=$this->io_validacion->uf_valida_monto($row["pagar"],0);
				$li_reservado=$this->io_validacion->uf_valida_monto($row["reservado"],0);			
					   
				 $ls_sql="INSERT INTO spg_operaciones (operacion, denominacion, asignar, aumento, disminucion, precomprometer, comprometer, 
				                                       causar, pagar, reservado) 
						  VALUES ('".$ls_operacion."','".$ls_denominacion."',".$li_asignar.",".$li_aumento.",".
							         $li_disminucion.",".$li_precomprometer.",".$li_comprometer.",".$li_causar.",".
									 $li_pagar.",".$li_reservado.")";
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){	
				   					
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgoperaciones ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_operaciones Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_operaciones Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgoperaciones	

	function uf_insert_fuentefinancimiento(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sigesp_fuentefinanciamiento ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){		    
			$valido=$this->uf_limpiar_tabla('sigesp_fuentefinanciamiento');
			if($valido===false){return false;}
		}
		
		$ls_sql  = " SELECT codemp, codfuefin, denfuefin, expfuefin 
		             FROM sigesp_fuentefinanciamiento ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_fuentefinancimiento 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_codfuefin = $this->io_validacion->uf_valida_texto($row["codfuefin"],0,2,"");
				$ls_denfuefin = $this->io_validacion->uf_valida_texto($row["denfuefin"],0,80,"");
				$ls_expfuefin=$this->io_validacion->uf_valida_texto($row["expfuefin"],0,254,"");
					   
				$ls_sql="INSERT INTO sigesp_fuentefinanciamiento (codemp, codfuefin, denfuefin, expfuefin) 
				         VALUES ('".$ls_codemp."','".$ls_codfuefin."','".$ls_denfuefin."','".$ls_expfuefin."')";
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_fuentefinancimiento ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  sigesp_fuentefinanciamiento Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> sigesp_fuentefinanciamiento Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_fuentefinancimiento

	function uf_insert_spgministerioua(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_ministerio_ua ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_ministerio_ua');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, coduac, denuac, resuac, tipuac 
		            FROM spg_ministerio_ua ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgministerioua 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_sql=" INSERT INTO spg_ministerio_ua (codemp, coduac, denuac, resuac, tipuac) 
				          VALUES ('".$row["codemp"]."','".$row["coduac"]."','".$row["denuac"]."','".$row["resuac"]."','".$row["tipuac"]."')";
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgministerioua ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_ministerio_ua Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_ministerio_ua Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgministerioua

	function uf_insert_spgunidadadministrativa(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_unidadadministrativa ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_unidadadministrativa');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, coduniadm, coduac, denuniadm, estemireq, coduniadmsig
		            FROM spg_unidadadministrativa ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgunidadadministrativa 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_coduniadm = $this->io_validacion->uf_valida_texto($row["coduniadm"],0,10,"");
				$ls_coduac = $this->io_validacion->uf_valida_texto($row["coduac"],0,5,"");
				$ls_denuniadm = $this->io_validacion->uf_valida_texto($row["denuniadm"],0,100,"");
				$ls_estemireq = $this->io_validacion->uf_valida_texto($row["estemireq"],0,6,"");
				$ls_coduniadmsig = $this->io_validacion->uf_valida_texto($row["coduniadmsig"],0,5,"");
					   
				$ls_sql="INSERT INTO spg_unidadadministrativa(codemp, coduniadm, coduac, denuniadm, estemireq, coduniadmsig) 
					      VALUES('".$ls_codemp."','".$ls_coduniadm."','".$ls_coduac."','".
							        $ls_denuniadm."',".$ls_estemireq.",'".$ls_coduniadmsig."')";						 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgunidadadministrativa ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_unidadadministrativa Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_unidadadministrativa Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgunidadadministrativa	

	
	function uf_insert_spg_dt_unidadadministrativa(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_dt_unidadadministrativa ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_dt_unidadadministrativa');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, coduniadm, codestpro1, codestpro2, codestpro3, codestpro4, 
       				codestpro5, estcla
		            FROM spg_dt_unidadadministrativa ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spg_dt_unidadadministrativa 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_coduniadm = $this->io_validacion->uf_valida_texto($row["coduniadm"],0,10,"");				
				$ls_estcla = $this->io_validacion->uf_valida_texto($row["estcla"],0,1,"");
					   
				$ls_sql="INSERT INTO spg_dt_unidadadministrativa(codemp, coduniadm, codestpro1, codestpro2, codestpro3, 
				                                                 codestpro4, codestpro5, estcla) 
					      VALUES('".$ls_codemp."','".$ls_coduniadm."','".$row["codestpro1"]."','".
						            $row["codestpro2"]."','".$row["codestpro3"]."','".
							        $row["codestpro4"]."','".$row["codestpro5"]."','".$ls_estcla."')";						 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spg_dt_unidadadministrativa ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_dt_unidadadministrativa Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_dt_unidadadministrativa Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spg_dt_unidadadministrativa
	
	function uf_insert_spgestructura1(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_ep1 ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_ep1');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codestpro1, estcla, denestpro1, estint, sc_cuenta  
		            FROM spg_ep1 ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura1 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_codestpro1 = $this->io_validacion->uf_valida_texto($row["codestpro1"],0,20,"");
				$ls_denestpro1 = $this->io_validacion->uf_valida_texto($row["denestpro1"],0,254,"");
				$ls_estcla = $this->io_validacion->uf_valida_texto($row["estcla"],0,1,"");
					   
				$ls_sql="INSERT INTO spg_ep1 (codemp, codestpro1, estcla, denestpro1, estint, sc_cuenta) 
				         VALUES('".$ls_codemp."','".$row["codestpro1"]."','".
							       $ls_estcla."','".$ls_denestpro1."','".$row["estint"]."','".$row["sc_cuenta"]."')";					 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura1 ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_ep1 Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_ep1 Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgestructura1	
	

	function uf_insert_spgestructura2(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_ep2 ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_ep2');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codestpro1, codestpro2, denestpro2, estcla   
		            FROM spg_ep2 ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura2 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_codestpro1 = $this->io_validacion->uf_valida_texto($row["codestpro1"],0,20,"");
				$ls_codestpro2 = $this->io_validacion->uf_valida_texto($row["codestpro2"],0,6,"");
				$ls_denestpro2 = $this->io_validacion->uf_valida_texto($row["denestpro2"],0,254,"");
				$ls_estcla = $this->io_validacion->uf_valida_texto($row["estcla"],0,1,"");	 
				  
				$ls_sql=" INSERT INTO spg_ep2 (codemp, codestpro1, codestpro2, denestpro2,estcla) 
				          VALUES('".$ls_codemp."','".$row["codestpro1"]."','".
							        $row["codestpro2"]."','".$ls_denestpro2."','".$ls_estcla."')";					 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura2 ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_ep2 Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_ep2 Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgestructura2	


	function uf_insert_spgestructura3(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_ep3 ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_ep3');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codestpro1, estcla, codestpro2, codestpro3, denestpro3,codfuefin, estreradi
		            FROM spg_ep3 ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura3 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_codestpro1 = $this->io_validacion->uf_valida_texto($row["codestpro1"],0,20,"");
				$ls_codestpro2 = $this->io_validacion->uf_valida_texto($row["codestpro2"],0,6,"");
				$ls_codestpro3 = $this->io_validacion->uf_valida_texto($row["codestpro3"],0,3,"");
				$ls_denestpro3 = $this->io_validacion->uf_valida_texto($row["denestpro3"],0,254,"");
				$ls_codfuefin = $this->io_validacion->uf_valida_texto($row["codfuefin"],0,2,"");
				$ls_estcla = $this->io_validacion->uf_valida_texto($row["estcla"],0,1,"");	 
					   
				$ls_sql=" INSERT INTO spg_ep3 (codemp, codestpro1, codestpro2, codestpro3, denestpro3, codfuefin, estcla, estreradi) 
				          VALUES('".$ls_codemp."','".$row["codestpro1"]."','".
						            $row["codestpro2"]."','".$row["codestpro3"]."','".
									$ls_denestpro3."','".$row["codfuefin"]."','".$ls_estcla."','".$row["estreradi"]."')";						 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura3 ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_ep3 Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_ep3 Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgestructura3	

	function uf_insert_spgestructura4(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_ep4 ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_ep4');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codestpro1, codestpro2, codestpro3, codestpro4, denestpro4 ,estcla
		            FROM spg_ep4 ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura4 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_codestpro1 = $this->io_validacion->uf_valida_texto($row["codestpro1"],0,20,"");
				$ls_codestpro2 = $this->io_validacion->uf_valida_texto($row["codestpro2"],0,6,"");
				$ls_codestpro3 = $this->io_validacion->uf_valida_texto($row["codestpro3"],0,3,"");
				$ls_codestpro4 = $this->io_validacion->uf_valida_texto($row["codestpro4"],0,2,"");
				$ls_denestpro4 = $this->io_validacion->uf_valida_texto($row["denestpro4"],0,254,"");
				$ls_estcla = $this->io_validacion->uf_valida_texto($row["estcla"],0,1,"");	 	   
				$ls_sql=" INSERT INTO spg_ep4 (codemp, codestpro1, codestpro2, codestpro3, codestpro4, denestpro4,estcla) 
				          VALUES('".$ls_codemp."','".$row["codestpro1"]."','".$row["codestpro2"]."','".
						            $row["codestpro3"]."','".$row["codestpro4"]."','".$ls_denestpro4."','".$ls_estcla."')";						 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura4 ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_ep4 Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_ep4 Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgestructura4	

	function uf_insert_spgestructura5(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_ep5 ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_ep5');
			if($valido===false){return false;}
		}
		
		$ls_sql = " SELECT codemp, codestpro1, codestpro2, codestpro3, codestpro4, codestpro5, denestpro5, codfuefin,estcla  
		            FROM spg_ep5 ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura5 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_codestpro1 = $this->io_validacion->uf_valida_texto($row["codestpro1"],0,20,"");
				$ls_codestpro2 = $this->io_validacion->uf_valida_texto($row["codestpro2"],0,6,"");
				$ls_codestpro3 = $this->io_validacion->uf_valida_texto($row["codestpro3"],0,3,"");
				$ls_codestpro4 = $this->io_validacion->uf_valida_texto($row["codestpro4"],0,2,"");
				$ls_codestpro5 = $this->io_validacion->uf_valida_texto($row["codestpro5"],0,2,"");
				$ls_denestpro5 = $this->io_validacion->uf_valida_texto($row["denestpro5"],0,254,"");
				$ls_codfuefin = $this->io_validacion->uf_valida_texto($row["codfuefin"],0,2,"");
				$ls_estcla = $this->io_validacion->uf_valida_texto($row["estcla"],0,1,"");	
					   
				$ls_sql=" INSERT INTO spg_ep5 (codemp, codestpro1, codestpro2, codestpro3, codestpro4, codestpro5, denestpro5, codfuefin, estcla) ".
					    " VALUES('".$ls_codemp."','".$row["codestpro1"]."','".$row["codestpro2"]."','".$row["codestpro3"]."','".$row["codestpro4"]."','".
							        $row["codestpro5"]."','".$ls_denestpro5."','".$row["codfuefin"]."','".$ls_estcla."')";							 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgestructura5 ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_ep5 Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_ep5 Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgestructura5	
	
	
	function uf_insert_spgcuentas(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando spg_cuentas ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('spg_cuentas');
			if($valido===false){return false;}
		}
		
	
		$ls_sql = " SELECT codemp, codestpro1, codestpro2, codestpro3, codestpro4, codestpro5, spg_cuenta, denominacion, 
		                   status, sc_cuenta, nivel, referencia, scgctaint, estcla
				    FROM spg_cuentas ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		if ($io_recordset===false){			
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgcuentas 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_codestpro1 = $this->io_validacion->uf_valida_texto($row["codestpro1"],0,20,"");
				$ls_codestpro2 = $this->io_validacion->uf_valida_texto($row["codestpro2"],0,6,"");
				$ls_codestpro3 = $this->io_validacion->uf_valida_texto($row["codestpro3"],0,3,"");
				$ls_codestpro4 = $this->io_validacion->uf_valida_texto($row["codestpro4"],0,2,"");
				$ls_codestpro5 = $this->io_validacion->uf_valida_texto($row["codestpro5"],0,2,"");
				$ls_spgcuenta=$this->io_validacion->uf_valida_texto($row["spg_cuenta"],0,25,"");
				$ls_denominacion=$this->io_validacion->uf_valida_texto($row["denominacion"],0,254,"");
				$ls_status=$this->io_validacion->uf_valida_texto($row["status"],0,1,"");
				$li_distribuir=$this->io_validacion->uf_valida_monto($row["distribuir"],0);
				$ls_sc_cuenta=$this->io_validacion->uf_valida_texto($row["sc_cuenta"],0,25,"");
				$li_nivel=$this->io_validacion->uf_valida_monto($row["nivel"],0);
				$ls_referencia=$this->io_validacion->uf_valida_texto($row["referencia"],0,25,"");
				$ls_estcla = $this->io_validacion->uf_valida_texto($row["estcla"],0,1,"");
					
				$li_asignado=0;
				$li_precomprometido=0;
				$li_comprometido=0;
				$li_causado=0;
				$li_pagado=0;
				$li_aumento=0;
				$li_disminucion=0;
				$li_reservado=0;
				$li_enero=0;
				$li_febrero=0;
				$li_marzo=0;
                $li_abril=0;
				$li_mayo=0;
				$li_junio=0;
				$li_julio=0; 
				$li_agosto=0;
				$li_septiembre=0;
				$li_octubre=0;
				$li_noviembre=0;
				$li_diciembre=0;

					   
				$ls_sql="INSERT INTO spg_cuentas (codemp, 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, estcla) 
							VALUES('".$ls_codemp."','".$row["codestpro1"]."','".$row["codestpro2"]."','".$row["codestpro3"]."','".$row["codestpro4"]."','".
									  $row["codestpro5"]."','".$ls_spgcuenta."','".$ls_denominacion."','".$ls_status."','".$ls_sc_cuenta."',".$li_asignado.",".
									  $li_precomprometido.",".$li_comprometido.",".$li_causado.",".$li_pagado.",".$li_aumento.",".$li_disminucion.",".
									  $li_distribuir.",".$li_enero.",".$li_febrero.",".$li_marzo.",".$li_abril.",".$li_mayo.",".$li_junio.",".$li_julio.",".
									  $li_agosto.",".$li_septiembre.",".$li_octubre.",".$li_noviembre.",".$li_diciembre.",".$li_nivel.",'".$ls_referencia."','".
							   		  $row["scgctaint"]."','".$ls_estcla."')";			 
							
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){						
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_spgcuentas ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  spg_cuentas Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> spg_cuentas Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_spgcuentas	
	
	
	function ue_limpiar_scgpsgspi_basico()
	{
		$lb_valido=true;
		$this->io_sql_destino->begin_transaction();
		//------------------------------------ Borrar tablas de Contabilidad -----------------------------------------
		
		$resp = $this->liberar_fk();
		if($resp===false){$this->io_sql_destino->rollback(); return false;}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("scg_cuentas","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spi_cuentas","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_cuentas","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_ep5","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_ep4","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_ep3","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_ep2","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_ep1","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("sigesp_fuentefinanciamiento","");}	
                if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_dt_unidadadministrativa","");}
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_unidadadministrativa","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_ministerio_ua","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spi_operaciones","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("spg_operaciones","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("sigesp_plan_unico","");}	
		if($lb_valido){$lb_valido=$this->uf_limpiar_tabla("sigesp_plan_unico_re","");}	
		
		if(!$lb_valido){
		    $this->io_sql_destino->rollback();	
		 	$this->io_mensajes->message("Ocurrió un error al borrar la data de  Contabilidad, Presupuesto de Gasto y Presupuesto de Ingreso. "); 
			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 Contabilidad, Presupuesto de Gasto y Presupuesto de Ingreso 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

}
?>
