<?php 

class covensol_copia_historico {

	var $io_sql_origen;
	var $io_sql_destino;
	var $io_mensajes;
	var $io_funciones;
	var $io_validacion;
	var	$lo_archivo;
	var $io_sql;
	var $li_candeccon;
	var $li_tipconmon;
	var $li_redconmon;

	//-----------------------------------------------------------------------------------------------------------------------------------
	function covensol_copia_historico()
	{
		if($ruta==''){$ruta="../";}	
		require_once("../shared/class_folder/sigesp_include_covensol.php");
		require_once("../shared/class_folder/class_sql_covensol.php");
		require_once("../shared/class_folder/class_mensajes.php");
		require_once("../shared/class_folder/class_funciones.php");	
		require_once("class_folder/class_validacion.php");
		require_once("../shared/class_folder/class_fecha.php");		
		include("config_oracle.php");		
		require_once("../shared/class_folder/covensol_include_ora.php");
				
		$this->ls_database_source = $_SESSION['SID_ORA'];
		$this->ls_database_target = $historica["database"];
		$this->io_mensajes        = new class_mensajes();		
		$this->io_funciones       = new class_funciones();
		$this->io_validacion      = new class_validacion();
		$this->io_fecha           = new class_fecha();
		$io_conect	              = new sigesp_include_covensol();
		$io_conect_oracle         = new ORACLEconn();
		$io_conexion_origen       = $io_conect_oracle->uf_conectar();
		$io_conexion_destino      = $io_conect->uf_conectar_otra_bd ($historica["hostname"],$historica["login"],$historica["password"],$historica["database"],$historica["gestor"]); 
		$this->io_sql_origen      = new class_sql_covensol($io_conexion_origen);
		$this->io_sql_destino 	  = new class_sql_covensol($io_conexion_destino);
		
		
		$ld_fecha=date("_d-m-Y");
		$ls_nombrearchivo         = "resultado/".$_SESSION["ls_data_des"]."_sno_hresult_".$ld_fecha.".txt";
		$this->lo_archivo         = @fopen("$ls_nombrearchivo","a+");
		$this->ls_codemp          = '0001';
		$this->codemp          = '0001';
		$this->li_candeccon= 4;
		$this->	li_tipconmon= 1;
		$this->li_redconmon=1000;
		
		global $ruta;		
		if($ruta==''){$ruta="../";}	
		require_once($ruta."shared/class_folder/sigesp_conexiones.php");
		$this->io_conexiones=new conexiones();
		
		$this->consultar_anos();
		$this->borrar_tabla = 0;
		$this->msjejec = "";
		$this->msjresultado = "";
		$this->anobd = 	"";
		$this->codemp = '0001';
		$this->sybase = $sybase;
		$this->tipobd = 'sybase';
		$this->nombrebd = $sybase["dsn"];
		$this->ano_referencia = '2011';
		$this->periodo_referencia = '012';
		
		
	}// end function 

    function log_txt($texto){
		if($this->lo_archivo){@fwrite($this->lo_archivo," \r\n".date('H:i:s').'.- '.$texto." \r\n");}
	}
	
	function liberar_fk_empresa(){
	
			$ls_sql="   ALTER TABLE sno_dedicacion DROP CONSTRAINT fk_sno_dedi_empresa___sigesp_e;						
						ALTER TABLE sno_tipopersonalsss DROP CONSTRAINT fk_sno_tipo_empresa___sigesp_e;						
						ALTER TABLE srh_organigrama DROP CONSTRAINT fk_srh_organigrama__sigesp_empresa;
						ALTER TABLE sno_profesion DROP CONSTRAINT fk_sno_prof_empresa___sigesp_e;						
						ALTER TABLE sno_personal DROP CONSTRAINT fk_sno_pers_empresa___sigesp_e;
						";
						
			$resp=$this->io_sql_destino->execute($ls_sql);
			if($resp===false){								
				$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->liberar_fk_empresa ERROR->".$this->io_sql_destino->message);
				return false;
			}
			return true;
	}
	
	function encadenar_fk_empresa(){
	
			$ls_sql="  	ALTER TABLE sno_dedicacion
						  ADD CONSTRAINT fk_sno_dedi_empresa___sigesp_e FOREIGN KEY (codemp)
							  REFERENCES sigesp_empresa (codemp) MATCH SIMPLE
							  ON UPDATE RESTRICT ON DELETE RESTRICT;
						ALTER TABLE sno_tipopersonalsss
						  ADD CONSTRAINT fk_sno_tipo_empresa___sigesp_e FOREIGN KEY (codemp)
							  REFERENCES sigesp_empresa (codemp) MATCH SIMPLE
							  ON UPDATE RESTRICT ON DELETE RESTRICT;
						ALTER TABLE srh_organigrama
						  ADD CONSTRAINT fk_srh_organigrama__sigesp_empresa FOREIGN KEY (codemp)
							  REFERENCES sigesp_empresa (codemp) MATCH SIMPLE
							  ON UPDATE RESTRICT ON DELETE RESTRICT;
						ALTER TABLE sno_profesion
						  ADD CONSTRAINT fk_sno_prof_empresa___sigesp_e FOREIGN KEY (codemp)
							  REFERENCES sigesp_empresa (codemp) MATCH SIMPLE
							  ON UPDATE RESTRICT ON DELETE RESTRICT;
						ALTER TABLE sno_personal
						  ADD CONSTRAINT fk_sno_pers_empresa___sigesp_e FOREIGN KEY (codemp)
							  REFERENCES sigesp_empresa (codemp) MATCH SIMPLE
							  ON UPDATE RESTRICT ON DELETE RESTRICT;
						
						 ";
			$resp=$this->io_sql_destino->execute($ls_sql);
			if($resp===false){								
				$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->encadenar_fk_empresa ERROR->".$this->io_sql_destino->message);
				return false;
			}
			return true;
	
	}
		
	
	
    function ue_consultar_periodo($datos=array()){
	
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sn_hperiodos ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
				
		$ls_sql="SELECT * FROM sn_hperiodos ";
		$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_profesion ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }	
	
	
	
	
	
	}
	
	function consultar_anos($datos=array()){
	
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sn_hperiodos ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
				
		$sqla =  "  select distinct extract(year from fecha_pago) AS ANO
					from conceptos_pagados 
					order by 1 ";
		$rs_year=$this->io_sql_origen->select($sqla);
		if ($rs_year===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_profesion ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		
		$this->combo_year = '<select name="sel_year'.$ai_totrows.'" id="sel_year'.$ai_totrows.'"><option value="">- -</option>';		
		foreach($rs_year as $fila) { 				
			$this->combo_year .= '<option value="'.$fila["ANO"].'">'.$fila["ANO"].'</option>';								
		}
		$this->combo_year .= '</select>';
		
		return true;
			
	
	}
	
	
	function uf_select_nomina($datos=array())
	{

		
		
		$li_total_select=0;
		$li_total_insert=0;
		$lb_valido=true;
		$criterio = '';
		
		$ls_sql=" SELECT '0001', CODIGO_CIA AS CODNOM, NOMBRE_CIA AS DESCRIPCION
		          FROM COMPANIAS
				  WHERE NOMBRE_CIA LIKE'%%'				  
				  ".$criterio."				  		 
				  ORDER BY CODIGO_CIA 
				  ";
		$io_recordset=$this->io_sql_origen->select($ls_sql);
		//echo $ls_sql;
		if($io_recordset===false)
		{ 
			$lb_valido=false;
			$ls_cadena="Error al Seleccionar las Nóminas.\r\n".$this->io_sql_origen->message."\r\n";
			echo $this->io_sql_origen->message;
			$ls_cadena=$ls_cadena.$ls_sql."\r\n";
			if ($this->lo_archivo)			
			{
				@fwrite($this->lo_archivo,$ls_cadena);
			}
		}
		else
		{
			$ai_totrows=0;
			while(($row=$this->io_sql_origen->fetch_row($io_recordset))&&$lb_valido)
			{
				
				$ls_codemp=$this->codemp; 
				$ls_codnom=$row["CODNOM"];
				$ls_desnom=$row["DESCRIPCION"];
		        
				$ai_totrows=$ai_totrows+1;
				
			    $combo = '<select name="sel_tipnom'.$ai_totrows.'" id="sel_tipnom'.$ai_totrows.'"><option value="">- -</option>';
				$combo .= '<option value="1">Empleado Fijo</option>';
				$combo .= '<option value="2">Empleado Contratado</option>';
				$combo .= '<option value="3">Obrero Fijo</option>';
				$combo .= '<option value="4">Obrero Contratado</option>';
				$combo .= '<option value="5">Docente Fijo</option>';
				$combo .= '<option value="6">Docente Contratado</option>';
				$combo .= '<option value="7">Jubilado</option>';
				$combo .= '<option value="8">Comision de Servicios</option>';
				$combo .= '<option value="9">Libre Nombramiento</option>';
				$combo .= '</select>';
						
				$combo3 = '<select name="sel_perdes'.$ai_totrows.'" id="sel_perdes'.$ai_totrows.'"><option value="">- -</option>';		
				for ($i = 1; $i <= 24; $i++) { 				
					$combo3 .= '<option value="'.$i.'">'.$i.'</option>';								
				}
				$combo3 .= '</select>';
				
				
				$combo4 = '<select name="sel_perhas'.$ai_totrows.'" id="sel_perhas'.$ai_totrows.'"><option value="">- -</option>';		
				for ($i = 1; $i <= 24; $i++) { 				
					$combo4 .= '<option value="'.$i.'">'.$i.'</option>';								
				}
				$combo4 .= '</select>';
				
				
				
								
				$ao_object[$ai_totrows][1]="<input name=txtcodemp".$ai_totrows."    type=text     id=txtcodemp".$ai_totrows."    class=sin-borde size=6  maxlength=4   value='".$ls_codemp."' readonly>";
				$ao_object[$ai_totrows][2]="<input name=txtcodnom".$ai_totrows."    type=text     id=txtcodnom".$ai_totrows."    class=sin-borde size=6  maxlength=4   value='".$ls_codnom."' readonly>";
				$ao_object[$ai_totrows][3]="<input name=txtdesnom".$ai_totrows."    type=text     id=txtdesnom".$ai_totrows."    class=sin-borde size=80 maxlength=100 value='".$ls_desnom."' readonly>";
				$ao_object[$ai_totrows][4]=$combo3;
				$ao_object[$ai_totrows][5]=$combo4;	
				$ao_object[$ai_totrows][6]=$combo;			
				$ao_object[$ai_totrows][7]="<input name=txtcodnomnue".$ai_totrows." type=text     id=txtcodnomnue".$ai_totrows." class=sin-borde size=6  maxlength=4   value='".str_pad($ls_codnom,4,'0',STR_PAD_LEFT)."' onKeyUp=ue_validarnumero(this); onBlur=ue_rellenarcampo(this,4);>";
				$ao_object[$ai_totrows][8]="<input name=chkpasardata".$ai_totrows." type=checkbox id=chkpasardata".$ai_totrows." value=1>";
			}
		}
		
		$result['total'] = $ai_totrows;
		$result['filas'] = $ao_object;
				
		return $result;
	}// end function uf_select_nomina
	//-----------------------------------------------------------------------------------------------------------------------------------

	
	function ue_transferir_nomina(){
		
		$lb_valido=true;
		if($this->lo_archivo){@fwrite($this->lo_archivo," \r\n".date('H:i:s').'.- Iniciando transferencia de Nóminas ... '." \r\n"." \r\n");}
		$this->io_sql_destino->begin_transaction();	
			
		//SE TRANSFIEREN LOS DATOS DE LAS TABLAS BÁSICAS
		if($lb_valido and ($this->borrar_tabla or $this->borrardatos)){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> borrar_datos_tablas()<br />'; $lb_valido=$this->borrar_datos_tablas();} 
		if($this->borrardatos){
			if(!$lb_valido){$this->io_sql_destino->rollback(); $this->io_mensajes->message("Ocurrió un error al borrar los datos básicos."); return false;}    
			$this->io_mensajes->message("Los datos fueron eliminados correctamente."); 
			if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Las tablas básicas fueron borradas correctamente.'." \r\n"." \r\n");} 
			$this->io_sql_destino->commit();
			return true;
		}
		
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_copiar_empresa_historico()<br />'; $lb_valido=$this->uf_copiar_empresa_historico();}			
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_profesion()<br />'; $lb_valido=$this->uf_insert_profesion();}		
		if($lb_valido){$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> uf_insert_personal()<br />'; $lb_valido=$this->uf_insert_personal();}
		
		//SE TRANSFIEREN LOS DATOS HISTÓRICOS DE NÓMINA
		if($lb_valido){	
			$this->io_sql_destino->commit(); 
			$this->io_sql_destino->begin_transaction();	 
			$this->msjejec .= date('H:i:s').'.- <b>Ejecutando:</b> transferir_datos_nominas()<br />'; 
			$lb_valido=$this->transferir_datos_nominas();
			//$this->io_sql_destino->rollback();
			//return true;
		}
			
		if(!$lb_valido){$this->io_sql_destino->rollback(); $this->io_mensajes->message("Ocurrió un error al copiar la data de Nómina."); return false;}    
		$this->io_mensajes->message("La data de Nómina se copió correctamente."); 
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Las tablas básicas se copiaron correctamente.'." \r\n"." \r\n");} 
				//$this->io_validacion->uf_insert_sistema_apertura('SNO');	
		$this->io_sql_destino->commit();
		return true;
	
	
	}
	
	function transferir_datos_nominas(){
	
		    $lb_valido = true;
			
			$li_total=$_POST["totrownomina"];
			
			
			
			for($li_i=1;($li_i<=$li_total)&&($lb_valido);$li_i++)
			{
				$li_pasar=0;			
				if(array_key_exists("chkpasardata".$li_i,$_POST))
				{
					$li_pasar=$_POST["chkpasardata".$li_i];
					
					if($li_pasar==1)
					{		
						$datos['codemp']=$_POST["txtcodemp".$li_i];
						$datos['codnom']=$_POST["txtcodnom".$li_i];
						$datos['codnomnuevo']=$_POST["txtcodnomnue".$li_i];
						$datos['perihas']=$_POST["sel_perhas".$li_i];
						$datos['perides']=$_POST["sel_perdes".$li_i];
						$datos['tipnom']=$_POST["sel_tipnom".$li_i];
						$this->tipnom = $datos['tipnom'];
						
						$datos['perides'] = (!$datos['perides'])?1:$datos['perides'];
						$datos['perihas'] = (!$datos['perihas'])?24:$datos['perihas'];
															
						for($i = $datos['perides']; $i <= $datos['perihas']; $i++){	
								
								$periodo["codnom"] = $datos['codnomnuevo'];
								$periodo["anocur"] = $this->anobd;
								$periodo["codperi"] = str_pad($i,3,'0',STR_PAD_LEFT);
								$this->codnom_sireh = str_pad((integer)$periodo["codnom"],2,'0',STR_PAD_LEFT);
								
								$this->log_txt(date('H:i:s').'.- <b>Limpiando históricos: </b> '.$periodo['codnom'].' - '.$periodo['codperi']); 
								$resp = $this->borrar_tablash($periodo);
								if($resp===false){return false;}
											
								$resp = $this->transferir_periodos($periodo);
								if($resp===false){return false;}
												
						}		
						
						
					}
				}
			}		
		
	    	
	        
			return $lb_valido;
	
	
	}
	
	
	function transferir_periodos($datos=array()){		
			$lb_valido=true;
			$as_anocur = $datos['anocur'];
			$as_codnom = $datos['codnom'];
			$as_codperi = $datos['codperi'];	
			
			
			$sqlper="  select * 
					from plan_nomina pn
					where extract(year from pn.quincena) = ".$as_anocur."
					and pn.tipo = 'Q'
					and pn.codigo_cia = '".str_pad((integer)$as_codnom,2,'0',STR_PAD_LEFT)."'
					and semana_quincena = '".(integer)$as_codperi."'
				";
		
			//echo $sqlper.'<br>';		
			$this->periodo_sireh=$this->io_sql_origen->select($sqlper);
			if ($this->periodo_sireh===false){			   	
			   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_nomina ERROR-> ".$this->io_sql_origen->message);
			   return false;
			}
			//echo $this->periodo_sireh->RecordCount().'<br>';
			if(!$this->periodo_sireh->RecordCount()){ 
				return true;
			}
			
			$this->mes_periodo = substr($this->periodo_sireh->fields['QUINCENA'],5,2);
					
			if($lb_valido){$this->log_txt("uf_insert_hnomina($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hnomina($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hperiodo($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hperiodo($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hcargo($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hcargo($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_htabulador($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_htabulador($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hgrado($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hgrado($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hasignacioncargo($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hasignacioncargo($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hunidadadministrativa($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hunidadadministrativa($as_codnom,$as_anocur,$as_codperi);}
     		if($lb_valido){$this->log_txt("uf_insert_hpersonalnomina($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hpersonalnomina($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hconcepto($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hconcepto($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hsalida($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hsalida($as_codnom,$as_anocur,$as_codperi);}
			if($lb_valido){$this->log_txt("uf_insert_hresumen($as_codnom,$as_anocur,$as_codperi)"); $lb_valido=$this->uf_insert_hresumen($as_codnom,$as_anocur,$as_codperi);}
			
			
			return $lb_valido;
	
	}
	
	function borrar_datos_tablas($datos=array()){			
			
			$valido=$this->uf_limpiar_tabla('sno_personal');
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla('sno_profesion');
			if($valido===false){return false;}	
			$valido=$this->uf_limpiar_tabla('sigesp_hempresa');
			if($valido===false){return false;}

			return true;	
	
	}
	
	function uf_copiar_empresa_historico()
	{
	
			if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sigesp_hempresa ... '." \r\n");}
			
			$lb_valido=true;
			$li_total_select=0;
			$li_total_insert=0;
		    
			if(empty($this->anobd)){				
				$this->io_mensajes->message("ERROR: No existe el año de la base de datos.");
				return false;				
			}
			
			
			if(!$this->borrar_tabla){			    
				$ls_sql="SELECT * FROM sigesp_hempresa WHERE anobd='".$this->anobd."'";;
				$rs=$this->io_sql_destino->execute($ls_sql);				
				if ($rs===false){		
					$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_copiar_empresa_historico ERROR->".$this->io_sql_destino->message);
					return false;			
				}				
				if($rs->RecordCount()){$this->msjejec .= date('H:i:s').'.- <b>Resultado:</b> No se copio. El histórico de sigesp_hempresa ya existe. <br />'; return true;}
			}
			
			if($this->borrar_tabla){			    
				$ls_sql="DELETE FROM sigesp_hempresa WHERE anobd='".$this->anobd."'";
				$io_recordset=$this->io_sql_destino->execute($ls_sql);
				if ($io_recordset===false){		
					$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_copiar_empresa_historico ERROR->".$this->io_sql_destino->message);
					return false;			
				}
			}
			
			$ls_sql="SELECT * FROM sigesp_empresa ";
			$io_recordset=$this->io_sql_destino->select($ls_sql);
			if ($io_recordset===false){		
				$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_copiar_hempresa ERROR->".$this->io_sql_origen->message);
				return false;			
			}
								
			$li_total_select = $this->io_sql_destino->num_rows($io_recordset);
			
			while($row=$this->io_sql_destino->fetch_row($io_recordset))
			{
				$ls_codemp = $this->codemp;				
						
				if(empty($row["periodo"])){				
					$this->io_mensajes->message("ERROR: La configuración de empresa origen no tiene periodo.");
					return false;				
				}				
							
				$ls_nombre= $this->io_validacion->uf_valida_texto($row["nombre"],0,100,"SIGESP");
				$ls_titulo= $this->io_validacion->uf_valida_texto($row["titulo"],0,100,"SIGESP");
				$ls_sigemp= $this->io_validacion->uf_valida_texto($row["sigemp"],0,50,"");
				$ls_diremp= $this->io_validacion->uf_valida_texto($row["direccion"],0,254,"");
				$ls_telemp= $this->io_validacion->uf_valida_texto($row["telefono"],0,20,"");
				$ls_faxemp= $this->io_validacion->uf_valida_texto($row["fax"],0,18,"");
				$ls_email= $this->io_validacion->uf_valida_texto($row["email"],0,100,"");
				$ls_website= $this->io_validacion->uf_valida_texto($row["website"],0,100,"");
				$li_m01= $this->io_validacion->uf_valida_monto($row["m01"],0);
				$li_m02= $this->io_validacion->uf_valida_monto($row["m02"],0);
				$li_m03= $this->io_validacion->uf_valida_monto($row["m03"],0);
				$li_m04= $this->io_validacion->uf_valida_monto($row["m04"],0);
				$li_m05= $this->io_validacion->uf_valida_monto($row["m05"],0);
				$li_m06= $this->io_validacion->uf_valida_monto($row["m06"],0);
				$li_m07= $this->io_validacion->uf_valida_monto($row["m07"],0);
				$li_m08= $this->io_validacion->uf_valida_monto($row["m08"],0);
				$li_m09= $this->io_validacion->uf_valida_monto($row["m09"],0);
				$li_m10= $this->io_validacion->uf_valida_monto($row["m10"],0);
				$li_m11= $this->io_validacion->uf_valida_monto($row["m11"],0);
				$li_m12= $this->io_validacion->uf_valida_monto($row["m12"],0);				
				$ls_periodo = str_replace('2011',$this->anobd,$row["periodo"]);
				$li_valniv = $this->io_validacion->uf_valida_monto($row["vali_nivel"],0);
				$li_esttipcont = $this->io_validacion->uf_valida_monto($row["esttipcont"],0);
				$ls_formpre = $this->io_validacion->uf_valida_texto(trim($row["formpre"]),0,30,"999-99-99-99");
				$ls_formcont = $this->io_validacion->uf_valida_texto(trim($row["formcont"]),0,30,"999-99-99-99");
				$ls_formplan = $this->io_validacion->uf_valida_texto(trim($row["formplan"]),0,30,"999-99-99-99");
				$ls_formspi = $this->io_validacion->uf_valida_texto(trim($row["formspi"]),0,30,"999-99-99-99");
				$li_activo = $this->io_validacion->uf_valida_texto(trim($row["activo"]),0,3,"0");
				$li_pasivo = $this->io_validacion->uf_valida_texto(trim($row["pasivo"]),0,3,"0");
				$li_ingreso = $this->io_validacion->uf_valida_texto(trim($row["ingreso"]),0,3,"0");
				$li_gasto = $this->io_validacion->uf_valida_texto(trim($row["gasto"]),0,3,"0");
				$li_resultado = $this->io_validacion->uf_valida_texto(trim($row["resultado"]),0,3,"0");
				$li_capital = $this->io_validacion->uf_valida_texto(trim($row["capital"]),0,3,"0");
				$ls_ctares = $this->io_validacion->uf_valida_texto(trim($row["c_resultad"]),0,25,"0");
				$ls_cueres = $this->io_validacion->uf_valida_texto(trim($row["c_resultan"]),0,25,"0");
				$ls_orden_d = $this->io_validacion->uf_valida_texto(trim($row["orden_d"]),0,3,"0");
				$ls_orden_h = $this->io_validacion->uf_valida_texto(trim($row["orden_h"]),0,3,"0");
				$ls_socgas = $this->io_validacion->uf_valida_texto(trim($row["soc_gastos"]),0,100,"0");
				$ls_socser = $this->io_validacion->uf_valida_texto(trim($row["soc_servic"]),0,100,"0");
				$ls_nomger = $this->io_validacion->uf_valida_texto(trim($row["gerente"]),0,50,"");
				$ls_jefcom = $this->io_validacion->uf_valida_texto(trim($row["jefe_compr"]),0,50,"");
				$ls_activo_h = $this->io_validacion->uf_valida_texto(trim($row["activo_h"]),0,3,"0");
				$ls_pasivo_h = $this->io_validacion->uf_valida_texto(trim($row["pasivo_h"]),0,3,"0");
				$ls_resultado_h  = $this->io_validacion->uf_valida_texto(trim($row["resultado_h"]),0,3,"0");
				$ls_ingreso_f = $this->io_validacion->uf_valida_texto(trim($row["ingreso_f"]),0,3,"0");
				$ls_gasto_f = $this->io_validacion->uf_valida_texto(trim($row["gasto_f"]),0,3,"0");
				$ls_ingreso_p = $this->io_validacion->uf_valida_texto(trim($row["ingreso_p"]),0,3,"0");
				$ls_gasto_p = $this->io_validacion->uf_valida_texto(trim($row["gasto_p"]),0,3,"0");
				$ls_logo = $this->io_validacion->uf_valida_texto(trim($row["logo"]),0,500,"logo.jpg");
				$li_numniv = $this->io_validacion->uf_valida_monto($row["numniv"],0);
				$ls_nomestpro1 = $this->io_validacion->uf_valida_texto($row["nomestpro1"],0,40,"-");
				$ls_nomestpro2 = $this->io_validacion->uf_valida_texto($row["nomestpro2"],0,40,"-");
				$ls_nomestpro3 = $this->io_validacion->uf_valida_texto($row["nomestpro3"],0,40,"-");
				$ls_nomestpro4 = $this->io_validacion->uf_valida_texto($row["nomestpro4"],0,40,"-");
				$ls_nomestpro5 = $this->io_validacion->uf_valida_texto($row["nomestpro5"],0,40,"-");
				$ls_estvaltra = $this->io_validacion->uf_valida_monto($row["estvaltra"],0);
				$ls_rifemp = $this->io_validacion->uf_valida_texto(trim($row["rif_empresa"]),0,15,"");
				$ls_nitemp = $this->io_validacion->uf_valida_texto(trim($row["nit_empresa"]),0,15,"");
				$ls_estemp = $this->io_validacion->uf_valida_texto($row["estado"],0,50,"");
				$ls_ciuemp = $this->io_validacion->uf_valida_texto($row["ciudad"],0,50,"");
				$ls_zonpos = $this->io_validacion->uf_valida_texto($row["zona_postal"],0,5,"");
				$ls_estmodape = $this->io_validacion->uf_valida_monto($row["estmodape"],0);
				$ls_estdesiva = $this->io_validacion->uf_valida_monto($row["estdesiva"],0);
				$ls_estprecom = $this->io_validacion->uf_valida_monto($row["estprecom"],0);
				$ls_estmodsepsoc = $this->io_validacion->uf_valida_monto($row["estmodsepsoc"],0);
				$ls_codorgsig = $this->io_validacion->uf_valida_texto(trim($row["codorgsig"]),0,5,"");
				$ls_socbieser = $this->io_validacion->uf_valida_monto($row["socbieser"],0);
				$li_estmodest = $this->io_validacion->uf_valida_monto($row["estmodest"],0);
				$ld_salinipro = $this->io_validacion->uf_valida_monto($row["salinipro"],0);
				$ld_salinieje = $this->io_validacion->uf_valida_monto($row["salinieje"],0);
				$ls_numordcom = $this->io_validacion->uf_valida_texto($row["numordcom"],0,15,"000000000000000");
				$ls_numordser = $this->io_validacion->uf_valida_texto($row["numordser"],0,15,"000000000000000");
				$ls_numsolpag = $this->io_validacion->uf_valida_texto($row["numsolpag"],0,15,"000000000000000");
				$ls_nomorgads = $this->io_validacion->uf_valida_texto($row["nomorgads"],0,254,"");
				$ls_numlicemp = $this->io_validacion->uf_valida_texto($row["numlicemp"],0,25,"");
				$ls_modageret = $this->io_validacion->uf_valida_texto($row["modageret"],0,1,"");
				$ls_nomres    = $this->io_validacion->uf_valida_texto($row["nomres"],0,20,"");
				$ls_concomiva = $this->io_validacion->uf_valida_texto($row["concomiva"],0,6,"");
				$ls_cedben    = $this->io_validacion->uf_valida_texto(trim($row["cedben"]),0,10,"");
				$ls_nomben    = $this->io_validacion->uf_valida_texto(trim($row["nomben"]),0,100,"");
				$ls_scctaben  = $this->io_validacion->uf_valida_texto(trim($row["scctaben"]),0,25,"");
				$ls_estmodiva =  $this->io_validacion->uf_valida_monto($row["estmodiva"],0);
				$ls_activot   = $this->io_validacion->uf_valida_texto(trim($row["activo_t"]),0,3,"0");
				$ls_pasivot   = $this->io_validacion->uf_valida_texto(trim($row["pasivo_t"]),0,3,"0");
				$ls_resultadot= $this->io_validacion->uf_valida_texto(trim($row["resultado_t"]),0,3,"0");
				$ls_ctafin    = $this->io_validacion->uf_valida_texto(trim($row["c_financiera"]),0,25,"0");
				$ls_ctafis    = $this->io_validacion->uf_valida_texto(trim($row["c_fiscal"]),0,25,"0");
				$ls_diacadche= $this->io_validacion->uf_valida_texto(trim($row["diacadche"]),0,3,"0");
				$ls_codasiona = $this->io_validacion->uf_valida_texto(trim($row["codasiona"]),0,3,"");
				$ls_loncodestpro1 = $this->io_validacion->uf_valida_monto($row["loncodestpro1"],0);
				$ls_loncodestpro2 = $this->io_validacion->uf_valida_monto($row["loncodestpro2"],0);
				$ls_loncodestpro3 = $this->io_validacion->uf_valida_monto($row["loncodestpro3"],0);
				$ls_loncodestpro4 = $this->io_validacion->uf_valida_monto($row["loncodestpro4"],0);
				$ls_loncodestpro5 = $this->io_validacion->uf_valida_monto($row["loncodestpro5"],0);
				$li_candeccon    = 2;
				$ls_tipconmon    = 0;
				$li_redconmon    = 1;
				$ls_conrecdoc= $this->io_validacion->uf_valida_texto(trim($row["conrecdoc"]),0,1,"0");
	
			
				  $row["cueproacu"] = ($row["cueproacu"])?$row["cueproacu"]:'';
				  $row["cuedepamo"] = ($row["cuedepamo"])?$row["cuedepamo"]:'';
				  $row["valclacon"] = ($row["valclacon"])?$row["valclacon"]:'0';
				  $row["valcomrd"] = ($row["valcomrd"])?$row["valcomrd"]:'0';
				  $row["ctaejeprecie"] = ($row["ctaejeprecie"])?$row["ctaejeprecie"]:'';
				  $row["estaprsoc"] = ($row["estaprsoc"])?$row["estaprsoc"]:'1';
				  $row["estaprcxp"] = ($row["estaprcxp"])?$row["estaprcxp"]:'1';
				  $row["scforden_h"] = ($row["scforden_h"])?$row["scforden_h"]:'';
				  $row["scforden_d"] = ($row["scforden_d"])?$row["scforden_d"]:'';
				  $row["repcajchi"] = ($row["repcajchi"])?$row["repcajchi"]:'';				  
				  $row["estafenc"] = ($row["estafenc"])?$row["estafenc"]:'0';						  
				  $row["blocon"] = ($row["blocon"])?$row["blocon"]:'1';
				  $row["intblocon"] = ($row["intblocon"])?$row["intblocon"]:'3';
				  $row["capiva"] = ($row["capiva"])?$row["capiva"]:'0';
				  $row["parcapiva"] = ($row["parcapiva"])?$row["parcapiva"]:'';
				  $row["estciesem"] = ($row["estciesem"])?$row["estciesem"]:'0';
				  $row["ciesem1"] = ($row["ciesem1"])?$row["ciesem1"]:'0';
				  $row["ciesem2"] = ($row["ciesem2"])?$row["ciesem2"]:'0';
				  $row["estceniva"] = ($row["estceniva"])?$row["estceniva"]:'0';
				  $row["codestprocen1"] = ($row["codestprocen1"])?$row["codestprocen1"]:'';				 
				  $row["codestprocen2"] = ($row["codestprocen2"])?$row["codestprocen2"]:'';						  
				  $row["codestprocen3"] = ($row["codestprocen3"])?$row["codestprocen3"]:'';						  
				  $row["codestprocen4"] = ($row["codestprocen4"])?$row["codestprocen4"]:'';
				  $row["codestprocen5"] = ($row["codestprocen5"])?$row["codestprocen5"]:'';
				  $row["esclacen"] = ($row["esclacen"])?$row["esclacen"]:'';
				  $row["estspgdecimal"] = ($row["estspgdecimal"])?$row["estspgdecimal"]:'0';	
				
				
				
				$ls_sql="INSERT INTO sigesp_hempresa (anobd,codemp, nombre, titulo, sigemp, direccion, telemp, faxemp, email, 
													 website, m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, 
													 m12, periodo, vali_nivel, esttipcont, formpre, formcont, formplan, 
													 formspi, activo, pasivo, ingreso, gasto, resultado, capital, 
													 c_resultad, c_resultan, orden_d, orden_h, soc_gastos, soc_servic, 
													 gerente, jefe_compr, activo_h, pasivo_h, resultado_h, ingreso_f, 
													 gasto_f, ingreso_p, gasto_p, logo, numniv, nomestpro1, nomestpro2, 
													 nomestpro3, nomestpro4, nomestpro5, estvaltra, rifemp, nitemp, 
													 estemp, ciuemp, zonpos, estmodape, estdesiva, estprecom, estmodsepsoc, 
													 codorgsig, socbieser, estmodest, salinipro, salinieje, numordcom, 
													 numordser, numsolpag, nomorgads, numlicemp, modageret, nomres, 
													 concomiva, cedben, nomben, scctaben, estmodiva, activo_t, pasivo_t, 
													 resultado_t, c_financiera, c_fiscal, diacadche, codasiona, loncodestpro1, 
													 loncodestpro2, loncodestpro3, loncodestpro4, loncodestpro5, candeccon, 
													 tipconmon, redconmon, conrecdoc, 
													 estvaldis, nroivss, nomrep, 
													 cedrep, telfrep, cargorep, estretiva, clactacon, estempcon, codaltemp, 
													 basdatcon, estcamemp, estparsindis, estciespg, estciespi, basdatcmp, 
													 confinstr, estintcred, estciescg, estvalspg, ctaspgrec, ctaspgced, 
													 estmodpartsep, estmodpartsoc, estmanant, estpreing, concommun, 
													 confiva, casconmov, estmodprog, confi_ch, dirvirtual, ctaresact, 
													 ctaresant, estvaldisfin, dedconproben, estaprsep, sujpasesp, 
													 bloanu, estretmil, concommil, contintmovban, valinimovban, estintban,	
													 
													 cueproacu, cuedepamo, valclacon, valcomrd, ctaejeprecie, estaprsoc, 
													 estaprcxp, scforden_h, scforden_d, repcajchi, estafenc, blocon, 
													 intblocon, capiva, parcapiva, estciesem, ciesem1, ciesem2, estceniva, 
													 codestprocen1, codestprocen2, codestprocen3, codestprocen4, codestprocen5, 
													 esclacen, estspgdecimal						
						) ".
						" VALUES ('".$this->anobd."','".$this->codemp."','".$ls_nombre."','".$ls_titulo."','".$ls_sigemp."','".$ls_diremp."',".
						"		  '".$ls_telemp."','".$ls_faxemp."','".$ls_email."','".$ls_website."',".$li_m01.",".$li_m02.",".
						"          ".$li_m03.",".$li_m04.",".$li_m05.",".$li_m06.",".$li_m07.",".$li_m08.",".$li_m09.",".$li_m10.",".
						"		   ".$li_m11.",".$li_m12.",'".$ls_periodo."',".$li_valniv.",".$li_esttipcont.",'".$ls_formpre."',".
						"		  '".$ls_formcont."','".$ls_formplan."','".$ls_formspi."','".$li_activo."','".$li_pasivo."',".
						"		  '".$li_ingreso."','".$li_gasto."','".$li_resultado."','".$li_capital."','".$ls_ctares."',".
						"         '".$ls_cueres."','".$ls_orden_d."','".$ls_orden_h."','".$ls_socgas."','".$ls_socser."',".
						"		  '".$ls_nomger."','".$ls_jefcom."','".$ls_activo_h."','".$ls_pasivo_h."','".$ls_resultado_h."',".
						"		  '".$ls_ingreso_f."','".$ls_gasto_f."','".$ls_ingreso_p."','".$ls_gasto_p."','".$ls_logo."',".
						"		   ".$li_numniv.",'".$ls_nomestpro1."','".$ls_nomestpro2."','".$ls_nomestpro3."','".$ls_nomestpro4."',".
						"		  '".$ls_nomestpro5."',".$ls_estvaltra.",'".$ls_rifemp."','".$ls_nitemp."','".$ls_estemp."',".
						"		  '".$ls_ciuemp."','".$ls_zonpos."',".$ls_estmodape.",".$ls_estdesiva.",".$ls_estprecom.",".
						"		   ".$ls_estmodsepsoc.",'".$ls_codorgsig."',".$ls_socbieser.",".$li_estmodest.",".$ld_salinipro.",".
						"		   ".$ld_salinieje.",'".$ls_numordcom."','".$ls_numordser."','".$ls_numsolpag."','".$ls_nomorgads."',".
						"		  '".$ls_numlicemp."','".$ls_modageret."','".$ls_nomres."','".$ls_concomiva."','".$ls_cedben."',".
						"		  '".$ls_nomben."','".$ls_scctaben."',".$ls_estmodiva.",'".$ls_activot."','".$ls_pasivot."',".
						"		  '".$ls_resultadot."','".$ls_ctafin."','".$ls_ctafis."','".$ls_diacadche."','".$ls_codasiona."',".
						"		  '".$ls_loncodestpro1."','".$ls_loncodestpro2."','".$ls_loncodestpro3."','".$ls_loncodestpro4."',".
						"		  '".$ls_loncodestpro5."','".$li_candeccon."',".$ls_tipconmon.",".$li_redconmon.",'".$ls_conrecdoc."',".
						  "'".$row["estvaldis"]."',".
						  "'".$row["nroivss"]."',". 
						  "'".$row["nomrep"]."',". 
						  "'".$row["cedrep"]."',". 
						  "'".$row["telfrep"]."',".
						  "'".$row["cargorep"]."',".
						  "'".$row["estretiva"]."',".
							  ($row["clactacon"]?$row["clactacon"]:0).",".
							  ($row["estempcon"]?$row["estempcon"]:0).",".
						  "'".$row["codaltemp"]."',".
						  "'".$row["basdatcon"]."',".
							  ($row["estcamemp"]?$row["estcamemp"]:0).",".
							  ($row["estparsindis"]?$row["estparsindis"]:0).",".
							  ($row["estciespg"]?$row["estciespg"]:0).",".
							  ($row["estciespi"]?$row["estciespi"]:0).",".
						  "'".$row["basdatcmp"]."',".
						  "'".$row["confinstr"]."',".
						  "'".$row["estintcred"]."',".
							  ($row["estciescg"]?$row["estciescg"]:0).",".
							  ($row["estvalspg"]?$row["estvalspg"]:0).",".
						  "'".$row["ctaspgrec"]."',".
						  "'".$row["ctaspgced"]."',".
						  "'".$row["estmodpartsep"]."',".
						  "'".$row["estmodpartsoc"]."',".
						  "'".$row["estmanant"]."',".
							  ($row["estpreing"]?$row["estpreing"]:0).",".
						  "'".$row["concommun"]."',".
						  "'".$row["confiva"]."',".
							  ($row["casconmov"]?$row["casconmov"]:0).",".
						  "'".$row["estmodprog"]."',".
						  "'".$row["confi_ch"]."',".
						  "'".$row["dirvirtual"]."',".
						  "'".$row["ctaresact"]."',".
						  "'".$row["ctaresant"]."',".
						  "'".$row["estvaldisfin"]."',".
						  "'".$row["dedconproben"]."',".
						  "'".$row["estaprsep"]."',".
						  "'".$row["sujpasesp"]."',".
						  "'".$row["bloanu"]."',".
						  "'".$row["estretmil"]."',".
						  "'".$row["concommil"]."',".
							  ($row["contintmovban"]?$row["contintmovban"]:0).",".
							  ($row["valinimovban"]?$row["valinimovban"]:0).",".
						  "'".$row["estintban"]."',".						  
						  "'".$row["cueproacu"]."',".
						  "'".$row["cuedepamo"]."',".
						  "'".$row["valclacon"]."',".
						  "'".$row["valcomrd"]."',".
						  "'".$row["ctaejeprecie"]."',".
						  "'".$row["estaprsoc"]."',".
						  "'".$row["estaprcxp"]."',".
						  "'".$row["scforden_h"]."',".
						  "'".$row["scforden_d"]."',".
						  "'".$row["repcajchi"]."',".						  
						  "'".$row["estafenc"]."',".						  
						  "'".$row["blocon"]."',".
						  "".$row["intblocon"].",".
						  "'".$row["capiva"]."',".
						  "'".$row["parcapiva"]."',".
						  "'".$row["estciesem"]."',".
						  "'".$row["ciesem1"]."',".
						  "'".$row["ciesem2"]."',".
						  "'".$row["estceniva"]."',".
						  "'".$row["codestprocen1"]."',".						 
						  "'".$row["codestprocen2"]."',".						  
						  "'".$row["codestprocen3"]."',".						  
						  "'".$row["codestprocen4"]."',".
						  "'".$row["codestprocen5"]."',".
						  "'".$row["esclacen"]."',".
						  "'".$row["estspgdecimal"]."'".
						  ")";
											
				$li_row=$this->io_sql_destino->execute($ls_sql);
				if ($li_row===false){						
					$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_copiar_hempresa ERROR->".$this->io_sql_destino->message);
					return false;						
				}					
				$li_total_insert++;
						
			}// FIN WHILE
			
			 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
			 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  sigesp_hempresa Registros ".$li_total_select."<br />";
			 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> sigesp_hempresa Registros ".$li_total_insert."<br />";
			 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";		
			return true;
	}// end function uf_copiar_empresa

		
	function uf_insert_personal(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_personal ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('sno_personal');
			if($valido===false){return false;}
		}
		
		
		$criterio = '';
		
				
			    
		$ls_sql="SELECT codper::integer AS cedper FROM sno_personal WHERE codemp = '".$this->codemp."' ";
		$rs=$this->io_sql_destino->execute($ls_sql);				
		if ($rs===false){		
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_personal ERROR->".$this->io_sql_destino->message);
			return false;			
		}				
		
		//ORACLE NO PERMITE MAS DE 1000 VALORES EN UNA LISTA **** QUE CAGADA
		if($rs->RecordCount()){	
		    $i=1;			
			foreach($rs as $fila){					
				if($i==1){$datos = "'".$fila['cedper']."'";}
				if($i>1 and $i<1000){$datos .= ",'".(integer)$fila['cedper']."'";}
				
				if($i==1000){$datos2 = "'".$fila['cedper']."'";}
				if($i>1000 and $i<2000){$datos2 .= ",'".$fila['cedper']."'";}
				
				if($i==2000){$datos3 = "'".$fila['cedper']."'";}
				if($i>2000 and $i<3000){$datos3 .= ",'".$fila['cedper']."'";}
				$i++;			
			}	
			
			if($datos){$criterio .= " AND em.cedula NOT IN (".$datos.") ";}
			if($datos2){$criterio .= " AND em.cedula NOT IN (".$datos2.") ";}
			if($datos3){$criterio .= " AND em.cedula NOT IN (".$datos3.") ";}		
		}
		
		
		$ls_sql="   SELECT DISTINCT em.cedula AS CEDPER, 
									 em.nombre1 || ' ' || em.nombre2 as NOMPER, 
									 em.apellido1 || ' ' || em.apellido2 as APEPER, 
									 em.direccion || ' ******* ' || em.ciudad AS DIRPER,
					em.fecha_nacim AS FECNACPER,
					TELEFONO AS TELHABPER, 
					CASE em.EDO_CIVIL
					WHEN   'SO'
					  THEN 'S'
					WHEN 'CA'
					  THEN 'C'
					WHEN 'DI'
					  THEN 'D'
					WHEN 'VI'
					  THEN 'V'
					WHEN 'CO'
					  THEN 'K'
					END AS EDOCIVPER,					
					em.nacionalidad AS NACPER, 
					em.sexo AS SEXPER, 
					PROFESION AS CODPRO, 					
					CASE em.nivel_instruccion
					WHEN   'D'
					  THEN '0'
					WHEN 'P'
					  THEN '1'
					WHEN 'S'
					  THEN '2'
					WHEN 'T'
					  THEN '3'
					WHEN 'U'
					  THEN '4'
					END AS NIVACAPER,					
				    '058' AS CODPAI, 
				   '001' AS CODEST, 
				   '001' AS CODMUN, 
				   '001' AS CODPAR,
				   '0000001' AS CODTIPPERSSS, 
				   '2' AS TIPVIVPER, 
					no.fecha_ingreso AS FECINGPER, 
					no.fecha_ingreso AS FECINGADMPUBPER 
					FROM empleados em 
					INNER JOIN nomina no ON em.cedula=no.cedula
					WHERE em.direccion LIKE'%%' ".$criterio."  
					ORDER BY em.cedula ";
				
		$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_personal ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){$this->msjejec .= date('H:i:s').'.- <b>Resultado:</b> No se encontraron registros nuevos en la tabla. <br />'; return true;}
		$CEDULAS=array();
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){			 		
				
				
				if(in_array($row["CEDPER"],$CEDULAS)){continue;}
				$CEDULAS[] = $row["CEDPER"];
					
			    $ls_codemp=$this->codemp; 
				$ls_codper=str_pad($row["CEDPER"],10,'0',STR_PAD_LEFT);
				$ls_cedper=$row["CEDPER"];
				$ls_nomper=$this->io_validacion->uf_valida_texto($row["NOMPER"],0,60,"");
				$ls_apeper=$this->io_validacion->uf_valida_texto($row["APEPER"],0,60,""); 
				$ls_dirper=$this->io_validacion->uf_valida_texto($row["DIRPER"],0,254,""); 
				$ld_fecnacper=$this->io_validacion->uf_valida_fecha($row["FECNACPER"],"1950-01-01");
				$ls_edocivper=$this->io_validacion->uf_valida_texto($row["EDOCIVPER"],0,1,"S");
				$ls_telhabper=$this->io_validacion->uf_valida_texto($row["TELHABPER"],0,15,""); 
				$ls_telmovper=$this->io_validacion->uf_valida_texto($row["tel_movil"],0,15,"");
				$ls_sexper=$this->io_validacion->uf_valida_texto($row["SEXPER"],0,1,"");
				$li_estaper=$this->io_validacion->uf_valida_monto($row["estaper"],0);
				$li_pesper=$this->io_validacion->uf_valida_monto($row["pesper"],0); 
				$ls_codpro=str_pad(trim($row["CODPRO"]),3,'0',STR_PAD_LEFT);
				$ls_nivacaper=$row["NIVACAPER"];
				$ls_catper=$this->io_validacion->uf_valida_texto($row["catper"],0,20,"");
				$ls_cajahoper=$this->io_validacion->uf_valida_texto($row["caja_ahorro"],0,1,"0"); 
				$li_numhijper=$this->io_validacion->uf_valida_monto($row["nro_hijos"],0);
				$ls_contraper=$this->io_validacion->uf_valida_texto($row["contraper"],0,1,"");
				$li_tipvivper=$this->io_validacion->uf_valida_monto($row["TIPVIVPER"],2);				
				$ls_tenvivper=$this->io_validacion->uf_valida_texto($row["tenvivper"],0,40,""); 
				$li_monpagvivper=$this->io_validacion->uf_valida_monto($row["montopagviv"],0);
				$li_ingbrumen=$this->io_validacion->uf_valida_monto($row["ing_bru_mes"],0);
				$ls_cuecajahoper=$this->io_validacion->uf_valida_texto($row["cuen_caja_ahorro"],0,25,"");
				$ls_cuelphper=$this->io_validacion->uf_valida_texto($row["cuen_lph"],0,25,""); 
				$ls_cuefidper=$this->io_validacion->uf_valida_texto($row["cuen_fideicomiso"],0,25,"");
				$ld_fecingadmpubper=$this->io_validacion->uf_valida_fecha($row["FECINGPER"],"");
				$ls_vacper=$this->io_validacion->uf_valida_texto($row["vacper"],0,1,"");
				$li_porisrper=$this->io_validacion->uf_valida_monto($row["porc_arc"],0); 
				$ld_fecingper=$this->io_validacion->uf_valida_fecha($row["FECINGPER"],"");
				$li_anoservpreper=$this->io_validacion->uf_valida_monto($row["servicio"],0); 
				$ls_cedbenper=$this->io_validacion->uf_valida_texto($row["ced_bene"],0,8,"");
				$ld_fecegrper=$this->io_validacion->uf_valida_fecha($row["feinst"],"1900-01-01");
				$ls_estper=$this->io_validacion->uf_valida_texto($row["status"],0,1,"1");
				$ls_fotper=$this->io_validacion->uf_valida_texto($row["foto"],0,200,"blanco.jpg");				
				$ls_codpai = $this->io_validacion->uf_valida_texto($row["CODPAI"],0,3,"---");
				$ls_codest = $this->io_validacion->uf_valida_texto($row["CODEST"],0,3,"---");				
				$ls_codmun = $this->io_validacion->uf_valida_texto($row["CODMUN"],0,3,"---");
				$ls_codpar = $this->io_validacion->uf_valida_texto($row["CODPAR"],0,3,"---");
				$ls_obsper    = $this->io_validacion->uf_valida_texto($row["observacion"],0,254,"");
				$ls_cauegrper = $this->io_validacion->uf_valida_texto($row["estcauegr"],0,1,""); 
				$ls_obsegrper = $this->io_validacion->uf_valida_texto($row["obsegr"],0,254,"");
				$ls_nacper    = $this->io_validacion->uf_valida_texto($row["nacionalidad"],0,1,"");
				$ls_coreleper = $this->io_validacion->uf_valida_texto($row["coreleper"],0,100,"");
				$ls_cenmedper = $this->io_validacion->uf_valida_texto($row["cenmedper"],0,3,"");
				$ls_turper    = $this->io_validacion->uf_valida_texto($row["turper"],0,1,"");
				$ls_horper = $this->io_validacion->uf_valida_texto($row["horper"],0,45,""); 
				$ls_hcmper = $this->io_validacion->uf_valida_texto($row["hcmper"],0,1,"");
				$ls_tipsanper    = $this->io_validacion->uf_valida_texto($row["tipsanper"],0,10,"");
				$li_monpagvivperaux=$this->io_validacion->uf_valida_monto($row["monpagvivper"],0); 
				$li_ingbrumenaux=$this->io_validacion->uf_valida_monto($row["ingbrumen"],0); 
				$ls_codcom = $this->io_validacion->uf_valida_texto($row["codcom"],0,10,"");
				$ls_codran = $this->io_validacion->uf_valida_texto($row["codran"],0,10,"");
				$ls_numexpper = $this->io_validacion->uf_valida_texto($row["numexpper"],0,20,"");
				$ls_codpainac = $this->io_validacion->uf_valida_texto($row["codpainac"],0,3,"");
				$ls_codestnac = $this->io_validacion->uf_valida_texto($row["codestnac"],0,3,"");
				$row["fecreingper"] = ($row["fecreingper"])?$row["fecreingper"]:"1900-01-01";
				$row["fecjubper"] = ($row["fecjubper"])?$row["fecjubper"]:"1900-01-01";
				$row["fecfevid"] = ($row["fecfevid"])?$row["fecfevid"]:"1900-01-01";
				$row["fecleypen"] = ($row["fecleypen"])?$row["fecleypen"]:"1900-01-01";
				$row["fecsitu"] = ($row["fecsitu"])?$row["fecsitu"]:"1900-01-01";
								
				//$row["codtippersss"] = '-------';				
				//$ls_codpar = '---';
				//$ls_codpai=($ls_codmun)?'058':'---';
				//$ls_codpro{0}='1';
				$row["codorg"]='----------';
				
			  $ls_sql="      INSERT INTO sno_personal( codemp, codper, cedper, nomper, apeper, dirper, 
													   fecnacper, edocivper, telhabper, telmovper, sexper, 
													   estaper, pesper, codpro, nivacaper, catper, cajahoper, 
													   numhijper, contraper, tipvivper, tenvivper,monpagvivper,  
													   ingbrumen, cuecajahoper, cuelphper, cuefidper,fecingadmpubper,  
													   vacper, porisrper, fecingper, anoservpreper,cedbenper,  
													   fecegrper, estper, fotper, codpai, codest, codmun, 
													   codpar, codtippersss, obsper, cauegrper, obsegrper, nacper, coreleper, 
													   cenmedper, turper, horper, hcmper, tipsanper, codcom, codran, 
													   numexpper, codpainac, codestnac, 
													   fecreingper, fecjubper, codunivipladin, 
													   enviorec, fecfevid, fecleypen, codcausa, situacion,  
													   fecsitu,talcamper, talzapper, talpanper, anoservprecont,  
													   anoservprefijo,codorg, porcajahoper, anoperobr, 
													   codger, carantper, rifper) 													   
							 VALUES ('".$ls_codemp."','".$ls_codper."','".$ls_cedper."','".$ls_nomper."','".$ls_apeper."','".$ls_dirper."','".
							            $ld_fecnacper."','".$ls_edocivper."','".$ls_telhabper."','".$ls_telmovper."','".$ls_sexper."',".
							            $li_estaper.",".$li_pesper.",'".$ls_codpro."','".$ls_nivacaper."','".$ls_catper."','".$ls_cajahoper."',".
							            $li_numhijper.",'".$ls_contraper."',".$li_tipvivper.",'".$ls_tenvivper."',".$li_monpagvivper.",".
							            $li_ingbrumen.",'".$ls_cuecajahoper."','".$ls_cuelphper."','".$ls_cuefidper."','".$ld_fecingadmpubper."','".
							            $ls_vacper."',".$li_porisrper.",'".$ld_fecingper."',".$li_anoservpreper.",'".$ls_cedbenper."','".
							            $ld_fecegrper."','".$ls_estper."','".$ls_fotper."','".$ls_codpai."','".$ls_codest."','".$ls_codmun."','".
							            $ls_codpar."','".$row["CODTIPPERSSS"]."','".$ls_obsper."','".$ls_cauegrper."','".$ls_obsegrper."','".$ls_nacper."','".$ls_coreleper."','".
							            $ls_cenmedper."','".$ls_turper."','".$ls_horper."','".$ls_hcmper."','".$ls_tipsanper."','".$ls_codcom."','".$ls_codran."','".
							            $ls_numexpper."','".$ls_codpainac."','".$ls_codestnac."','".
										$row["fecreingper"]."','".
										$row["fecjubper"]."','".
										$row["codunivipladin"]."','".
										$row["enviorec"]."','".
										$row["fecfevid"]."','".
										$row["fecleypen"]."','".
										$row["codcausa"]."','".
										$row["situacion"]."','".
										$row["fecsitu"]."','".
										$row["talcamper"]."','".
										($row["talzapper"]?$row["talzapper"]:0)."','".
										$row["talpanper"]."',".
										($row["anoservprecont"]?$row["anoservprecont"]:0).",".
										($row["anoservprefijo"]?$row["anoservprefijo"]:0).",'".
										$row["codorg"]."','".
										($row["porcajahoper"]?$row["porcajahoper"]:'0')."',".
										($row["anoperobr"]?$row["anoperobr"]:0).",'".
										$row["codger"]."','".
										$row["carantper"]."','".
										$row["rifper"]."')";
						   
				 $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_personal ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  sno_personal Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> sno_personal Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_personal

	
	
	function uf_insert_profesion(){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_profesion ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		if($this->borrar_tabla){
			$valido=$this->uf_limpiar_tabla('sno_profesion');
			if($valido===false){return false;}
		}
		
		$criterio = '';
				    
		$ls_sql="SELECT codpro FROM sno_profesion WHERE codemp = '".$this->codemp."';";
		$rs=$this->io_sql_destino->execute($ls_sql);				
		if ($rs===false){		
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_profesion ERROR->".$this->io_sql_destino->message);
			return false;			
		}				
		
		if($rs->RecordCount()){	
		    $i=1;			
			foreach($rs as $fila){	
			    $fila['codpro']{0}=0;				
				if($i==1){$datos = "'".(integer)$fila['codpro']."'";}
				if($i>1){$datos .= ",'".(integer)$fila['codpro']."'";}
				$i++;			
			}	
			
			$criterio = " AND CODIGO_PROFESION NOT IN (".$datos.") ";		
		}
		
		$ls_sql="SELECT CODIGO_PROFESION,DESCRIPCION FROM profesiones WHERE  DESCRIPCION LIKE'%%' ".$criterio;
		$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_profesion ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		
		if(!$io_recordset->RecordCount()){$this->msjejec .= date('H:i:s').'.- <b>Resultado:</b> No se encontraron registros nuevos en la tabla. <br />'; return true;}
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
		 		
				 $ls_codemp = $this->codemp; 
				 $ls_codpro = str_pad(trim($row["CODIGO_PROFESION"]),3,'0',STR_PAD_LEFT);
				 $ls_despro = $this->io_validacion->uf_valida_texto($row["DESCRIPCION"],0,120,"");
				 
				 
				 $ls_sql="INSERT INTO sno_profesion(codemp,codpro,despro) VALUES ('".$ls_codemp."','".
																					   $ls_codpro."','".
																					   $ls_despro."')";
				 
				 $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_profesion ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
			  
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Origen:</b>  sno_profesion Registros ".$li_total_select."<br />";
		 $this->msjresultado = $this->msjresultado."   <b>Tabla Destino:</b> sno_profesion Registros ".$li_total_insert."<br />";
		 $this->msjresultado = $this->msjresultado."*****************************************************************<br /><br />";
				  
		 return true;
	}// end function uf_insert_profesion	
	
	
	function uf_insert_hnomina($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hnomina ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hnomina WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocurnom='".$this->anobd."' AND peractnom='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hnomina ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		$codnom=$as_codnom;
		if($as_codnom=='0005'){$codnom='0003';}
		
		$ls_sql=" SELECT * 
				   FROM sno_hnomina  
				 WHERE  codnom ='".$as_codnom."' 
				    AND anocurnom ='2010' 
					AND peractnom='".$as_codperi."'
				";
		
		
		$io_recordset=$this->io_sql_destino->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_nomina ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){ return true;}
		$li_total_select = $this->io_sql_destino->num_rows($io_recordset);
		
		
		
		 while($row=$this->io_sql_destino->fetch_row($io_recordset)){	

			
				$row["tippernom"] = $row["tippernom"];
			    $ls_codemp=$this->codemp; 
				$ls_codnom=$row["codnom"];//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_desnom=$this->io_validacion->uf_valida_texto($row["desnom"],0,100,"");
				$ls_tippernom=$this->io_validacion->uf_valida_texto($row["tippernom"],0,1,"");
				$ls_despernom=$this->io_validacion->uf_valida_texto($row["despernom"],0,20,"");
				$ls_anocurnom=$as_anocur;				
				$ld_fecininom=str_replace('2010',$as_anocur,$row["fecininom"]);//$this->io_validacion->uf_valida_fecha($row["fecininom"],"");
				$ls_peractnom=$as_codperi;
				$li_numpernom=$row["numpernom"]; 
				$li_tipnom=$this->tipnom;
				$ls_subnom=$this->io_validacion->uf_valida_texto($row["subnom"],0,1,"0");
				$ls_racnom=$this->io_validacion->uf_valida_texto($row["rac"],0,1,"0");
				$ls_adenom=$this->io_validacion->uf_valida_texto($row["racnom"],0,1,"0");
				$ls_espnom=$this->io_validacion->uf_valida_texto($row["espnom"],0,1,"0");
				$ls_ctnom=$this->io_validacion->uf_valida_texto($row["ctnom"],0,1,"0");
				$ls_ctmetnom=$this->io_validacion->uf_valida_texto($row["ctmetnom"],0,2,"");
				
				$li_diabonvacnom=$this->io_validacion->uf_valida_monto($row["diabonvacnom"],0);
				$li_diareivacnom=$this->io_validacion->uf_valida_monto($row["diareivacnom"],0);
				$li_diainivacnom=$this->io_validacion->uf_valida_monto($row["diainivacnom"],0);
				$li_diatopvacnom=$this->io_validacion->uf_valida_monto($row["diatopvacnom"],0);
				$li_diaincvacnom=$this->io_validacion->uf_valida_monto($row["diaincvacnom"],0);
				
				$ls_consulnom=$this->io_validacion->uf_valida_texto($row["consulnom"],0,50,"OCP");
				$ls_descomnom=$this->io_validacion->uf_valida_texto($row["descomnom"],0,1,"");
				$ls_codpronom=$this->io_validacion->uf_valida_texto($row["codpronom"],0,10,"----------");
				$ls_codbennom=$this->io_validacion->uf_valida_texto($row["codbennom"],0,10,"--------");
				$ls_conaponom=$this->io_validacion->uf_valida_texto($row["conaponom"],0,50,"OCP");
				$ls_cueconnom=$this->io_validacion->uf_valida_texto($row["cueconnom"],0,25,"");
				$ls_notdebnom=$this->io_validacion->uf_valida_texto($row["notdebnom"],0,1,"0");
				$ls_numvounom=$this->io_validacion->uf_valida_texto($row["numvounom"],0,1,"0");
				$ls_recdocnom=$this->io_validacion->uf_valida_texto($row["recdocnom"],0,1,"0");
				$ls_tipdocnom=$this->io_validacion->uf_valida_texto($row["tipdocnom"],0,5,"");
				$ls_recdocapo=$this->io_validacion->uf_valida_texto($row["recdocapo"],0,1,"0");
				$ls_tipdocapo=$this->io_validacion->uf_valida_texto($row["tipdocapo"],0,5,"");
				$ls_perresnom=$this->io_validacion->uf_valida_texto($row["perresnom"],0,3,"000");
				$ls_conpernom=$this->io_validacion->uf_valida_texto($row["conpernom"],0,1,"");
				$ls_conpronom=$this->io_validacion->uf_valida_texto($row["conpronom"],0,1,"");
				$ls_titrepnom=$this->io_validacion->uf_valida_texto($row["titrepnom"],0,50,"");
				$ls_codorgcestic=$this->io_validacion->uf_valida_texto($row["codorgcestic"],0,4,"");
				
				$ls_sql="INSERT INTO sno_hnomina(codemp,codnom,desnom,tippernom,despernom,anocurnom,fecininom,peractnom,numpernom,tipnom, 
						 			 subnom,racnom,adenom,espnom,ctnom,ctmetnom,diabonvacnom,diareivacnom,diainivacnom,diatopvacnom, 
						 			 diaincvacnom,consulnom,descomnom,codpronom,codbennom,conaponom,cueconnom,notdebnom,numvounom, 
						 			 perresnom,recdocnom,recdocapo,tipdocnom,tipdocapo, conpernom, conpronom, titrepnom, codorgcestic,
									 confidnom, recdocfid, tipdocfid, codbenfid, cueconfid, informa, 
									 divcon, recdocpagperche, tipdocpagperche, estctaalt, racobrnom, 
									 nomliq, hojtienom, cestiksuel  ) 
						      VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_desnom."','".$ls_tippernom."','".$ls_despernom."',".
						"			  '".$ls_anocurnom."','".$ld_fecininom."','".$ls_peractnom."',".$li_numpernom.",".$this->tipnom.",".
						"			  ".$ls_subnom.",".$ls_racnom.",'".$ls_adenom."','".$ls_espnom."','".$ls_ctnom."','".$ls_ctmetnom."',".
						"			  ".$li_diabonvacnom.",".$li_diareivacnom.",".$li_diainivacnom.",".$li_diatopvacnom.",".$li_diaincvacnom.",".
						"			  '".$ls_consulnom."','".$ls_descomnom."','".$ls_codpronom."','".$ls_codbennom."','".$ls_conaponom."',".
						"			  '".$ls_cueconnom."','".$ls_notdebnom."','".$ls_numvounom."','".$ls_perresnom."','".$ls_recdocnom."',".
						"			  '".$ls_recdocapo."','".$ls_tipdocnom."','".$ls_tipdocapo."','".$ls_conpernom."','".$ls_conpronom."',".
						"			  '".$ls_titrepnom."','".$ls_codorgcestic."',".
						"'".$row["confidnom"]."',".
						"'".$row["recdocfid"]."',".
						"'".$row["tipdocfid"]."',".
						"'".$row["codbenfid"]."',".
						"'".$row["cueconfid"]."',".
						"'".$row["informa"]."',".
						"'".$row["divcon"]."',".
						"'".$row["recdocpagperche"]."',".
						"'".$row["tipdocpagperche"]."',".
						"'".$row["estctaalt"]."',".
						"'".$row["racobrnom"]."',".
						"'".$row["nomliq"]."',".
						"'".$row["hojtienom"]."',".
						"'".$row["cestiksuel"]."'".
						")";
								   
				 $li_row = $this->io_sql_destino->execute($ls_sql);
				 if ($li_row===false){		
				    echo $this->io_sql_destino->message;		  		
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_nomina ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina



	function uf_insert_hperiodo($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hperiodo ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hperiodo WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hperiodo ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		$ls_sql=" SELECT * 
				   FROM sno_hperiodo  
				 WHERE  codemp='".$this->codemp."'
				    AND codnom ='".$as_codnom."' 
				    AND anocur ='2010' 
					AND codperi='".$as_codperi."'
				";
		
		
		$io_recordset=$this->io_sql_destino->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_nomina ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){ return true;}
		$li_total_select = $this->io_sql_destino->num_rows($io_recordset);

		while($row=$this->io_sql_destino->fetch_row($io_recordset)){	
		 		
			    $ls_codemp=$this->codemp; 
				$ls_codnom=$row["codnom"];//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_codperi=$as_codperi;
				$ld_fecdesper=$this->io_validacion->uf_valida_fecha($row["fecdesper"],"");
				$ld_fechasper=$this->io_validacion->uf_valida_fecha($this->periodo_sireh->fields['QUINCENA'],"");
				$li_cerper=$this->io_validacion->uf_valida_monto($row["cerper"],0);
				$li_totper=$this->io_validacion->uf_valida_monto($row["totper"],0);
				$li_conper=$this->io_validacion->uf_valida_monto($row["conper"],0); 
				$li_apoconper=$this->io_validacion->uf_valida_monto($row["apoconper"],0);  
				$ls_obsper=$row["obsper"]; 
				$ls_anocur=$as_anocur;
				$li_peradi=$this->io_validacion->uf_valida_monto($row["peradi"],0);  
				//$li_totper=$row["totper"];
				$li_totperaux=$this->io_validacion->uf_valida_monto($row["totper"],0);  
	   			$row["ingconper"] = $row["ingconper"]?$row["ingconper"]:0;
				$row["fidconper"] = $row["fidconper"]?$row["fidconper"]:0;
				$row["fidintconper"] = $row["fidintconper"]?$row["fidintconper"]:0;
				
				
				$ls_sql="INSERT INTO sno_hperiodo(codemp,codnom,codperi,fecdesper,fechasper,cerper,totper,conper,apoconper,obsper,anocur, peradi, totperaux, ingconper,fidconper, fidintconper) 
							      VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_codperi."','".$ld_fecdesper."','".$ld_fechasper."',".
							              "".$li_cerper.",'".$li_totper."',".$li_conper.",".$li_apoconper.",'".$ls_obsper."','".$ls_anocur."',".
							              "".$li_peradi.",'".$li_totperaux."',".							
										  "".$row["ingconper"].",".
										  "".$row["fidconper"].",".
										  "".$row["fidintconper"]."".
							")";
				
				 
				 $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_hperiodo ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina


	function uf_insert_hsubnomina($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hsubnomina ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hsubnomina WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hsubnomina ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		/*
		cod_nomina
		ano_en_curso
		subnomina
		descripcion		
		*/
		
		$ls_sql=" SELECT *
				   FROM sn_hsubnom
				 WHERE  cod_nomina ='".$as_codnom."' 
				    AND ano_en_curso ='".$as_anocur."' 
				    AND codperi = '".$as_codperi."'";
		
				
		$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_hsubnomina ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){ return true;}
		
		 $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_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_codsubnom=$this->io_validacion->uf_valida_texto($row["codsubnom"],0,10,"");
				$ls_dessubnom=$this->io_validacion->uf_valida_texto($row["dessubnom"],0,60,"");
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
				
								
				$ls_sql="INSERT INTO sno_hsubnomina(codemp,codnom,codsubnom,dessubnom,anocur,codperi)".
							"     VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_codsubnom."','".$ls_dessubnom."',".
							"			  '".$ls_anocur."','".$ls_codperi."')";
				
				
				 $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_hsubnomina ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina


	function uf_insert_hcargo($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hcargo ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hcargo WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hcargo ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		/*
			cod_nomina
			ano_en_curso
			periodo
			cod_cargo
			nombre
			MonPrimJer
			MonBonCom
		*/
		
		$ls_sql=" SELECT DISTINCT(CODIGO_CARGO)
                         CODIGO_CARGO,
		                 CODIGO_CIA,						 
						 NOMBRE_CARGO
				      FROM cargos
					 WHERE  CODIGO_CARGO IN (	
								
								SELECT DISTINCT COALESCE(cn.CODIGO_CARGO,nom.CODIGO_CARGO) AS CODIGO_CARGO
								FROM conceptos_pagados cap
								INNER JOIN conceptos_nomina cn ON cap.codigo_concepto=cn.codigo_concepto
								LEFT JOIN conceptos_parametros p ON cap.codigo_concepto = p.codigo_concepto 
																 and p.clave_concepto = 'FRC'
								INNER JOIN empleados em ON em.codigo_empleado=cap.codigo_empleado
								INNER JOIN nomina nom ON nom.codigo_empleado=em.codigo_empleado 
								LEFT JOIN cuadre_nomina cn ON cn.codigo_empleado = nom.codigo_empleado  
											               AND cn.mes_pago = '".$this->mes_periodo."'	
											               AND cn.ano_pago = '".$as_anocur."'
								INNER JOIN plan_nomina pn ON pn.codigo_cia=cap.codigo_cia 
														  and pn.tipo = cap.tipo_pago 
														  and pn.quincena = cap.fecha_pago_efectiva
								WHERE cap.tipo_pago='Q'
								AND semana_quincena = '".(integer)$as_codperi."'
								AND EXTRACT( YEAR FROM fecha_pago_efectiva) = '".$as_anocur."'
								AND cap.monto<>0
								AND cap.codigo_cia='".$this->codnom_sireh."'				 
					 
					 )					 
				     ORDER BY 1
				 ";
		
				
		$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_hcargo ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){ return true;}
		$CARGOS = array();
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
		 		
				if(in_array($row["CODIGO_CARGO"],$CARGOS)){continue;}
				$CARGOS[] = $row["CODIGO_CARGO"];
				
				$row["CODIGO_CARGO"] = str_pad($row["CODIGO_CARGO"],10,'0',STR_PAD_LEFT);
	   			$ls_codemp=$this->codemp; 
				$ls_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_codcar=$this->io_validacion->uf_valida_texto($row["CODIGO_CARGO"],0,10,"");
				$ls_descar=$this->io_validacion->uf_valida_texto($row["NOMBRE_CARGO"],0,100,"");
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
								
				$ls_sql="INSERT INTO sno_hcargo(codemp,codnom,codcar,descar,anocur,codperi)
							      VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_codcar."','".$ls_descar."',".
							             "'".$ls_anocur."','".$ls_codperi."')";
				
				 //echo $ls_sql.'<br>';
				 $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_hcargo ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina
	
	function uf_insert_htabulador($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_htabulador ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_htabulador WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_htabulador ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		$sql="INSERT INTO sno_htabulador(codemp,codnom,codtab,destab,anocur,codperi, maxpasgra) 
						 VALUES ('".$this->codemp."','".$as_codnom."','00000000000000000000','Sin Tabulador',".
								"'".$as_anocur."','".$as_codperi."',0)";
		
		
		 $resp = $this->io_sql_destino->execute($sql);
		 if ($resp===false){				  		
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_htabulador ERROR->".$this->io_sql_destino->message);
			return false;						
		 }
		
		
		 
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina
	
	
	
	function uf_insert_hgrado($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hgrado ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hgrado WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hgrado ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		
		$ls_sql=" INSERT INTO sno_hgrado (codemp, codnom, anocur, codperi, codtab, codpas, codgra, 
			                       monsalgra, moncomgra, aniodes, aniohas) 
	               VALUES ('".$this->codemp."', '".$as_codnom."', '".$as_anocur."', '".$as_codperi."', '00000000000000000000', '00', '00', 0, 0, 0, 0);";
		
		 $resp = $this->io_sql_destino->execute($ls_sql);
		 if ($resp===false){				  		
			$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hgrado ERROR->".$this->io_sql_destino->message);
			return false;						
		 }	
		
						  
		 return true;
	}// end function uf_insert_nomina
	
	function uf_insert_hasignacioncargo($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hasignacioncargo ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;		
		
		$ls_sql="DELETE FROM sno_hasignacioncargo WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hasignacioncargo ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
	
		$ls_sql=" INSERT INTO sno_hasignacioncargo (codemp, codnom, anocur, codperi, codasicar, denasicar, 
													  claasicar, minorguniadm, ofiuniadm, uniuniadm, depuniadm, 
													  prouniadm, codtab, codpas, codgra, codded, codtipper, numvacasicar, 
													  numocuasicar, codproasicar, estcla, grado, codestpro1, 
													  codestpro2, codestpro3, codestpro4, codestpro5) 
					VALUES ('".$this->codemp."', '".$as_codnom."', '".$as_anocur."', '".$as_codperi."', '0000000', 'Sin Asignación de Cargo', '0', '0000', 
							'00', '00', '00', '00', '00000000000000000000', '00', '00', 
							'000', '0000', 0, 0, '', 'P', '    ', '0000000000000000000000000', '0000000000000000000000000', 
							'0000000000000000000000000', '0000000000000000000000000', '0000000000000000000000000');
					";
				
		 $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_hasignacioncargo ERROR->".$this->io_sql_destino->message);
			return false;						
		 }	
		 						
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina


	
	function uf_insert_hunidadadministrativa($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hunidadadmin ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hunidadadmin WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hunidadadministrativa ERROR->".$this->io_sql_destino->message);
			return false;			
		}

		
		$ls_sql="   SELECT CODIGO_CIA,CODIGO_UBICACION,DESCRIPCION 
					FROM UBICACIONES
					WHERE CODIGO_CIA='".$this->codnom_sireh."' 
					AND CODIGO_UBICACION IN (	
							
							SELECT DISTINCT COALESCE(cn.CODIGO_UBICACION,nom.CODIGO_UBICACION) AS CODIGO_UBICACION							
							FROM conceptos_pagados cap
							INNER JOIN conceptos_nomina cn ON cap.codigo_concepto=cn.codigo_concepto
							LEFT JOIN conceptos_parametros p ON cap.codigo_concepto = p.codigo_concepto 
															 and p.clave_concepto = 'FRC'
							INNER JOIN empleados em ON em.codigo_empleado=cap.codigo_empleado
							INNER JOIN nomina nom ON nom.codigo_empleado=em.codigo_empleado
							LEFT JOIN cuadre_nomina cn ON cn.codigo_empleado = nom.codigo_empleado  
											               AND cn.mes_pago = '".$this->mes_periodo."'	
											               AND cn.ano_pago = '".$as_anocur."' 
							INNER JOIN plan_nomina pn ON pn.codigo_cia=cap.codigo_cia 
													  and pn.tipo = cap.tipo_pago 
													  and pn.quincena = cap.fecha_pago_efectiva
							WHERE cap.tipo_pago='Q'
							AND semana_quincena = '".(integer)$as_codperi."'
							AND EXTRACT( YEAR FROM fecha_pago_efectiva) = '".$as_anocur."'
							AND cap.monto<>0
							AND cap.codigo_cia='".$this->codnom_sireh."'				 
					)
					
					";
		
				
		$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_hunidadadministrativa ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){ return true;}
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	

				$ls_codemp=$this->codemp;
				$row["CODIGO_UBICACION"] = str_replace('-','',$row["CODIGO_UBICACION"]);
				$row["CODIGO_UBICACION"] =str_pad($row["CODIGO_UBICACION"],12,'0',STR_PAD_RIGHT);
				$row["minorguniadm"] = substr($row["CODIGO_UBICACION"],0,4);
				$row["ofiuniadm"] = substr($row["CODIGO_UBICACION"],4,2);
				$row["uniuniadm"] = substr($row["CODIGO_UBICACION"],6,2);
				$row["depuniadm"] = substr($row["CODIGO_UBICACION"],8,2);
				$row["prouniadm"] = substr($row["CODIGO_UBICACION"],10,2);
				$row["codprouniadm"] = '0000000000000000000ACC00100000000';
				
				$ls_minorguniadm=$this->io_validacion->uf_valida_texto($row["minorguniadm"],0,4,"0000");
				$ls_ofiuniadm=$this->io_validacion->uf_valida_texto($row["ofiuniadm"],0,2,"00");
				$ls_uniuniadm=$this->io_validacion->uf_valida_texto($row["uniuniadm"],0,2,"00");
				$ls_depuniadm=$this->io_validacion->uf_valida_texto($row["depuniadm"],0,2,"00");
				$ls_prouniadm=$this->io_validacion->uf_valida_texto($row["prouniadm"],0,2,"00");
				$ls_desuniadm=$this->io_validacion->uf_valida_texto($row["DESCRIPCION"],0,100,"");
				$ls_codprouniadm=$this->io_validacion->uf_valida_texto($row["codprouniadm"],0,33,"");
				$ls_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
				
				$ls_sql="INSERT INTO sno_hunidadadmin(codemp,minorguniadm,ofiuniadm,uniuniadm,depuniadm,prouniadm,desuniadm,".
							"			 codprouniadm,codnom,anocur,codperi,estcla, codestpro1, codestpro2, codestpro3, codestpro4, codestpro5)".
							"VALUES('".$ls_codemp."','".$ls_minorguniadm."','".$ls_ofiuniadm."','".$ls_uniuniadm."','".$ls_depuniadm."',".
							       "'".$ls_prouniadm."','".$ls_desuniadm."','".$ls_codprouniadm."','".$ls_codnom."','".$ls_anocur."','".$ls_codperi."',".
								       "'".$row["estcla"]."',".									   
									   "'".$row["codestpro1"]."',".
									   "'".$row["codestpro2"]."',".
									   "'".$row["codestpro3"]."',".
									   "'".$row["codestpro4"]."',".								  
									   "'".$row["codestpro5"]."'".							   
								       ")";
				
				
				 $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_hunidadadministrativa ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina

	
	function tipo_emp($tipoemp){
			
			switch($tipoemp){
				
				case "EMP":
					$this->personal["codded"] = "100";
					$this->personal["codtipper"] = "0102";
					break;
				
				case "CON":
					$this->personal["codded"] = "300";
					$this->personal["codtipper"] = "0302";
					break;
				
				case "OBR":
					$this->personal["codded"] = "100";
					$this->personal["codtipper"] = "0107";
					break;
				case "EM1":
					$this->personal["codded"] = "100";
					$this->personal["codtipper"] = "0101";
					break;
				case "CM1":
					$this->personal["codded"] = "300";
					$this->personal["codtipper"] = "0301";
					break;
				case "COM":
					$this->personal["codded"] = "300";
					$this->personal["codtipper"] = "0302";
					break;
				case "CTD":
					$this->personal["codded"] = "300";
					$this->personal["codtipper"] = "0302";
					break;
				case "OB1":
					$this->personal["codded"] = "300";
					$this->personal["codtipper"] = "0307";
					break;
			
			}
			
			return true;	
	
	}
	
	
	function uf_insert_hpersonalnomina($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hpersonalnomina ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hpersonalnomina WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hpersonalnomina ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		$ls_sql="   
					SELECT DISTINCT cn.CEDULA,
									cn.CODIGO_CIA,
									cn.CODIGO_UBICACION,
									cn.CODIGO_CARGO,
									cn.TIPO_EMP,
									cn.FECHA_INGRESO,
									cn.FORMA_PAGO,
									cn.CODIGO_BANCO,
									cn.TIPO_CUENTA,
									cn.NRO_CUENTA,
									cn.SITUACION,
									cn.SUELDO,
									em.CEDULA AS CEDULA_EMP,
									n.CEDULA AS CEDULA_C,
									n.CODIGO_CIA AS CODIGO_CIA_C,
									n.CODIGO_UBICACION AS CODIGO_UBICACION_C,
									n.CODIGO_CARGO AS CODIGO_CARGO_C,
									n.TIPO_EMP AS TIPO_EMP_C,									
									n.FORMA_PAGO AS FORMA_PAGO_C,
									n.CODIGO_BANCO AS CODIGO_BANCO_C,									
									n.NRO_CUENTA AS NRO_CUENTA_C,
									n.SITUACION AS SITUACION_C,
									n.SUELDO AS SUELDO_C
					FROM nomina cn 
					LEFT JOIN empleados em ON em.codigo_empleado=cn.codigo_empleado
					LEFT JOIN cuadre_nomina n ON n.codigo_empleado = cn.codigo_empleado  
											  AND mes_pago = '".$this->mes_periodo."'	
											  AND ano_pago = '".$as_anocur."'
					WHERE cn.codigo_empleado IN (
					
						SELECT DISTINCT em.codigo_empleado
						FROM conceptos_pagados cap
						INNER JOIN conceptos_nomina cn ON cap.codigo_concepto=cn.codigo_concepto
						LEFT JOIN conceptos_parametros p ON cap.codigo_concepto = p.codigo_concepto 
														 and p.clave_concepto = 'FRC'
						INNER JOIN empleados em ON em.codigo_empleado=cap.codigo_empleado
						INNER JOIN nomina nom ON nom.codigo_empleado=em.codigo_empleado 
						INNER JOIN plan_nomina pn ON pn.codigo_cia=cap.codigo_cia 
												  and pn.tipo = cap.tipo_pago 
												  and pn.quincena = cap.fecha_pago_efectiva
						WHERE cap.tipo_pago='Q'
						and semana_quincena = '".(integer)$as_codperi."'
						AND EXTRACT( YEAR FROM fecha_pago_efectiva) = '".$as_anocur."'
						and cap.monto<>0
						and cap.codigo_cia='".$this->codnom_sireh."'							
					)
													
					order by cn.cedula		
				";
		
		//echo $ls_sql.'<br>';		
		$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_hpersonalnomina ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		 if(!$io_recordset->RecordCount()){ return true;}
		 $CEDULAS= array();
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
				
				
				if(in_array($row["CEDULA_EMP"],$CEDULAS)){continue;}
				$CEDULAS[] = $row["CEDULA_EMP"];
			    
				$row["CODIGO_UBICACION_C"] = $row["CODIGO_UBICACION_C"]?$row["CODIGO_UBICACION_C"]:$row["CODIGO_UBICACION"];
				$row["FORMA_PAGO_C"] = $row["FORMA_PAGO_C"]?$row["FORMA_PAGO_C"]:$row["FORMA_PAGO"];
				$row["CODIGO_BANCO_C"] = $row["CODIGO_BANCO_C"]?$row["CODIGO_BANCO_C"]:$row["CODIGO_BANCO"];
				$row["CODIGO_CARGO_C"] = $row["CODIGO_CARGO_C"]?$row["CODIGO_CARGO_C"]:$row["CODIGO_CARGO"];
				$row['TIPO_EMP_C'] = $row['TIPO_EMP_C']?$row['TIPO_EMP_C']:$row['TIPO_EMP'];
				$row["NRO_CUENTA_C"] = $row["NRO_CUENTA_C"]?$row["NRO_CUENTA_C"]:$row["NRO_CUENTA"];
				$row["SUELDO_C"] = $row["SUELDO_C"]?$row["SUELDO_C"]:$row["SUELDO"];
								
				$ls_codper=str_pad($row["CEDULA_EMP"],10,'0',STR_PAD_LEFT);								
				$ls_codemp=$this->codemp; 
				$ls_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");				
				$ls_codsubnom=$this->io_validacion->uf_valida_texto($row["codsubnom"],0,10,"0000000000");
				$ls_codasicar=$this->io_validacion->uf_valida_texto($row["codasicar"],0,7,"0000000");
				$li_sueper=$this->io_validacion->uf_valida_monto($row["SUELDO_C"],0);
				$li_horper=$this->io_validacion->uf_valida_monto($row["horas"],0);		
				
				$row["CODIGO_UBICACION_C"] = str_replace('-','',$row["CODIGO_UBICACION_C"]);
				$row["CODIGO_UBICACION_C"] =str_pad($row["CODIGO_UBICACION_C"],12,'0',STR_PAD_RIGHT);
				$row["minorguniadm"] = substr($row["CODIGO_UBICACION_C"],0,4);
				$row["ofiuniadm"] = substr($row["CODIGO_UBICACION_C"],4,2);
				$row["uniuniadm"] = substr($row["CODIGO_UBICACION_C"],6,2);
				$row["depuniadm"] = substr($row["CODIGO_UBICACION_C"],8,2);
				$row["prouniadm"] = substr($row["CODIGO_UBICACION_C"],10,2);
						
				$ls_minorguniadm=$this->io_validacion->uf_valida_texto($row["minorguniadm"],0,4,"0000");
				$ls_ofiuniadm=$this->io_validacion->uf_valida_texto($row["ofiuniadm"],0,2,"00");
				$ls_uniuniadm=$this->io_validacion->uf_valida_texto($row["uniuniadm"],0,2,"00");
				$ls_depuniadm=$this->io_validacion->uf_valida_texto($row["depuniadm"],0,2,"00");
				$ls_prouniadm=$this->io_validacion->uf_valida_texto($row["prouniadm"],0,2,"00");
				
				if($row["FORMA_PAGO_C"]=="DE"){$row["pagbanper"]=1; $row["pagefeper"]=0;$row["pagtaqper"]=0;}
				if($row["FORMA_PAGO_C"]=="CH"){$row["pagbanper"]=0; $row["pagefeper"]=1;$row["pagtaqper"]=0;}
				
				if($row["CODIGO_BANCO_C"]=="MER"){$row["codban"]="003";}
				if($row["CODIGO_BANCO_C"]=="01"){$row["codban"]="005";}
				
				$li_pagbanper=$this->io_validacion->uf_valida_monto($row["pagbanper"],0);
				$ls_codban=$this->io_validacion->uf_valida_texto($row["codban"],0,3,"");
				$ls_codcueban=$this->io_validacion->uf_valida_texto($row["NRO_CUENTA_C"],0,25,"");
				$ls_tipcuebanper=$this->io_validacion->uf_valida_texto($row["TIPO_CUENTA"],0,1,"");
				
				$row["CODIGO_CARGO_C"] = str_pad($row["CODIGO_CARGO_C"],10,'0',STR_PAD_LEFT);			
				$ls_codcar=$this->io_validacion->uf_valida_texto($row["CODIGO_CARGO_C"],0,10,"0000000000");
				
				$ld_fecingper=$this->io_validacion->uf_valida_fecha($row["FECHA_INGRESO"],"1900-01-01");
				$ls_staper=$this->io_validacion->uf_valida_texto($row["status"],0,1,"1");
				$ls_cueaboper=$this->io_validacion->uf_valida_texto($row["cta_abono"],0,25,"");
				$this->tipo_emp($row['TIPO_EMP_C']);
				$ld_fecculcontr=$this->io_validacion->uf_valida_fecha($row["fecfincto"],"1900-01-01");
				$row["codded"] = $this->personal["codded"];
				$ls_codded=$this->io_validacion->uf_valida_texto($row["codded"],0,3,"000");
				$row["codtipper"] = $this->personal["codtipper"];
				$ls_codtipper=$this->io_validacion->uf_valida_texto($row["codtipper"],0,4,"0000");
				
				$ls_quivacper=$this->io_validacion->uf_valida_texto($row["quin_vac"],0,1,"0");
				$ls_codtabvac=$this->io_validacion->uf_valida_texto($row["id_tbl_vac"],0,2,"00");
				$li_sueintper=$this->io_validacion->uf_valida_monto($row["sueldint"],0);
				$li_pagefeper=$this->io_validacion->uf_valida_monto($row["pagefeper"],0);
				$li_sueproper=$this->io_validacion->uf_valida_monto($row["sueldopro"],0);
				$ls_codage=$this->io_validacion->uf_valida_texto($row["agencia"],0,10,"");
				
				$ld_fecegrper=$this->io_validacion->uf_valida_fecha($row["fenomi"],"1900-01-01");				
				$ld_fecsusper=$this->io_validacion->uf_valida_fecha($row["fesusp"],"1900-01-01");
				
				$ls_cauegrper=$this->io_validacion->uf_valida_texto($row["cau_egre_susp"],0,254,"");
				$ls_codescdoc=$this->io_validacion->uf_valida_texto($row["esc_doc"],0,4,"0000");
				$ls_codcladoc=$this->io_validacion->uf_valida_texto($row["clas_doc"],0,4,"0000");
				$ls_codubifis=$this->io_validacion->uf_valida_texto($row["ubic_fisica"],0,4,"0000");
				$ls_tipcestic=$this->io_validacion->uf_valida_texto($row["ct_tipo"],0,2,"");
				$ls_conjub=$this->io_validacion->uf_valida_texto($row["conjub"],0,4,"");
				$ls_catjub=$this->io_validacion->uf_valida_texto($row["catjub"],0,3,"");
				$ls_codclavia=$this->io_validacion->uf_valida_texto($row["codclavia"],0,1,"");
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
				$ls_codunirac=$this->io_validacion->uf_valida_texto($row["codunirac"],0,10,"");
				$li_pagtaqper=$this->io_validacion->uf_valida_monto($row["pagtaqper"],0);
		
				
				$ls_sql="INSERT INTO sno_hpersonalnomina(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,fecegrper,fecsusper,cauegrper,codescdoc,codcladoc,codubifis,tipcestic, 
							 			 anocur,codperi,conjub,catjub,codclavia, codunirac, pagtaqper,
										 grado, fecascper,descasicar, coddep, salnorper, estencper, obsrecper) 
							      VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_codper."','".$ls_codsubnom."','".$ls_codasicar."',".
										  "'00000000000000000000','00','00',".$li_sueper.",".$li_horper.",'".$ls_minorguniadm."',".
										  "'".$ls_ofiuniadm."','".$ls_uniuniadm."','".$ls_depuniadm."','".$ls_prouniadm."',".$li_pagbanper.",".
										  "'".$ls_codban."','".$ls_codcueban."','".$ls_tipcuebanper."','".$ls_codcar."','".$ld_fecingper."',".
										  "'".$ls_staper."','".$ls_cueaboper."','".$ld_fecculcontr."','".$ls_codded."','".$ls_codtipper."',".
										  "'".$ls_quivacper."','".$ls_codtabvac."',".$li_sueintper.",".$li_pagefeper.",".$li_sueproper.",".
										  "'".$ls_codage."','".$ld_fecegrper."','".$ld_fecsusper."','".$ls_cauegrper."','".$ls_codescdoc."',".
										  "'".$ls_codcladoc."','".$ls_codubifis."','".$ls_tipcestic."','".$ls_anocur."','".$ls_codperi."',".
										  "'".$ls_conjub."','".$ls_catjub."','".$ls_codclavia."',".
							              "'".$ls_codunirac."',".$li_pagtaqper.",".
										  "'0000',".
										  "'".($row["fecascper"]?$row["fecascper"]:'1900-01-01')."',".
										  "'".$row["descasicar"]."',".
										  "'".$row["coddep"]."',".
										  "'".($row["salnorper"]?$row["salnorper"]:0)."',".
										  "'".$row["estencper"]."',".
										  "'".$row["obsrecper"]."'".						
							")";
				
				
				 $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_hpersonalnomina ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function uf_insert_nomina
	
	
	

	function uf_insert_hconstante($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hconstante ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hconstante WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hconstante ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		
		$ls_sql=" SELECT *
				   FROM sn_hconst
				 WHERE  cod_nomina ='".$as_codnom."' 
				    AND ano_en_curso ='".$as_anocur."' 
				    AND periodo = '".$as_codperi."'";
		
				
		$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_hconstante ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){ return true;}
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	

				/*
					cod_nomina
					ano_en_curso
					periodo
					cod_constante
					nombre
					unidad
					equivalencia
					fijo
					numerica
					tope
					valor
				*/
				
				
				$ls_codemp=$this->codemp; 
				$ls_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_codcons=$this->io_validacion->uf_valida_texto($row["cod_constante"],0,10,"");
				$ls_nomcon=$this->io_validacion->uf_valida_texto($row["nombre"],0,30,"");
				$ls_unicon=$this->io_validacion->uf_valida_texto($row["unidad"],0,10,"");
				$li_equcon=$this->io_validacion->uf_valida_monto($row["equivalencia"],0);
				$li_topcon=$this->io_validacion->uf_valida_monto($row["tope"],0);
				$li_valcon=$this->io_validacion->uf_valida_monto($row["valor"],0);
				$li_reicon=$this->io_validacion->uf_valida_monto($row["reicon"],0);
				$ls_tipnumcon=$this->io_validacion->uf_valida_texto($row["numerica"],0,1,"0");
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
				
				
				$ls_sql="INSERT INTO sno_hconstante(codemp, codnom, anocur, codperi, codcons, nomcon, unicon, equcon, 
                                                    topcon, valcon, reicon, tipnumcon, conespseg, esttopmod, conperenc) 
						VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_anocur."','".$ls_codperi."','".$ls_codcons."',".
								"'".$ls_nomcon."','".$ls_unicon."',".$li_equcon.",".$li_topcon.",".$li_valcon.",".$li_reicon.",'".$ls_tipnumcon."',".
								"'".$ls_conespseg."','".$row['esttopmod']."','".$row['conperenc']."')";				
				
				 $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_hconstante ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function 

	
	function uf_insert_hconstantepersonal($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hconstantepersonal ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		
		$ls_sql="DELETE FROM sno_hconstantepersonal WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hconstantepersonal ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		
		$ls_sql=" SELECT *
				   FROM sno_hconstantepersonal
				 WHERE  codemp ='".$this->codemp."'
				    AND codnom ='".$as_codnom."' 
				    AND anocur ='".$as_anocur."' 
				    AND codperi = '".$as_codperi."'
					AND moncon<>0
					";
		
				
		$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_hconstantepersonal ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){ return true;}
		
		 $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_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_codper=$this->io_validacion->uf_valida_texto($row["codper"],0,10,"");
				$ls_codcons=$this->io_validacion->uf_valida_texto($row["codcons"],0,10,"");
				$li_moncon=$this->io_validacion->uf_valida_monto($row["moncon"],0);
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
				
				
				$ls_sql="INSERT INTO sno_hconstantepersonal( codemp, codnom, anocur, codperi, codper, codcons, moncon, montopcon)".
							"     VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_anocur."','".$ls_codperi."','".
							                 $ls_codper."','".$ls_codcons."','".$li_moncon."','".$row["montopcon"]."')";	
				
				 $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_hconstantepersonal ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function 

	function uf_insert_hconcepto($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hconcepto ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		$ls_sql="DELETE FROM sno_hconcepto WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hconcepto ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		
		$ls_sql=" 
				SELECT cn.CODIGO_CONCEPTO,
					   cn.DESCRIPCION,
					   cn.TIPO
				FROM conceptos_nomina cn 
				LEFT JOIN conceptos_parametros p ON cn.codigo_concepto = p.codigo_concepto and p.clave_concepto = 'FRC'
				WHERE cn.codigo_concepto IN (
					SELECT DISTINCT codigo_concepto 
					FROM conceptos_pagados cap
					WHERE cap.fecha_pago_efectiva >= to_date('01/01/".$as_anocur."','dd/mm/yyyy')
					AND cap.fecha_pago_efectiva <= to_date('".$this->io_conexiones->formatea_fecha_normal($this->periodo_sireh->fields['QUINCENA'])."','dd/mm/yyyy')
				    AND cap.codigo_cia='".$this->codnom_sireh."'
				 )	
				 ORDER BY 1	
		";
		
		//echo $ls_sql.'<br>';		
		$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_hconcepto ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		//echo $io_recordset->RecordCount().'<br>';
		if(!$io_recordset->RecordCount()){ return true;}
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
				
				 $row["CODIGO_CONCEPTO"] = str_pad($row["CODIGO_CONCEPTO"],10,'0',STR_PAD_LEFT);
		 	     
				 $sql_conc="SELECT * 
				            FROM sno_hconcepto 
				            WHERE codemp='".$this->codemp."'
							AND codnom='".$as_codnom."'
							AND anocur='".$this->ano_referencia."'
							AND codperi='".$this->periodo_referencia."'
							AND codconc='".$row["CODIGO_CONCEPTO"]."'";
							
				 $resp = $this->io_sql_destino->execute($sql_conc);
				 if ($resp===false){				  		
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hconcepto ERROR->".$this->io_sql_destino->message);
					return false;						
				 }				
				
				
				// SI NO ENCUENTRA EL CONCEPTO DE REFERENCIA LO BUSCA EN CUALQUIER NOMINA
				if(!$resp->RecordCount()){
						 $sql_conc="SELECT * 
								FROM sno_hconcepto 
								WHERE codemp='".$this->codemp."'								
								AND anocur='".$this->ano_referencia."'
								AND codperi='".$this->periodo_referencia."'
								AND codconc='".$row["CODIGO_CONCEPTO"]."' LIMIT 1";
								
						 $resp = $this->io_sql_destino->execute($sql_conc);
						 if ($resp===false){				  		
							$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hconcepto ERROR->".$this->io_sql_destino->message);
							return false;						
						 }					
				}
				
				
				if(!$resp->RecordCount()){
						 $sql_conc="SELECT * 
								FROM sno_hconcepto 
								WHERE codemp='".$this->codemp."'								
								AND codconc='".$row["CODIGO_CONCEPTO"]."' LIMIT 1";
								
						 $resp = $this->io_sql_destino->execute($sql_conc);
						 if ($resp===false){				  		
							$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hconcepto ERROR->".$this->io_sql_destino->message);
							return false;						
						 }					
				}
				
				if(!$resp->RecordCount()){
						 $sql_conc="SELECT * 
								FROM sno_hconcepto 
								WHERE codemp='".$this->codemp."'								
								AND codconc='".$row["CODIGO_CONCEPTO"]."' LIMIT 1";
								
						 $resp = $this->io_sql_destino->execute($sql_conc);
						 if ($resp===false){				  		
							$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hconcepto ERROR->".$this->io_sql_destino->message);
							return false;						
						 }					
				}
				
				if(!$resp->RecordCount()){
						 
						 if($row["CODIGO_CONCEPTO"]=='0000000538'){$conc_sust = '0000000536';}					 
						 if($row["CODIGO_CONCEPTO"]=='0000000521'){$conc_sust = '0000000516';}	
						 if($row["CODIGO_CONCEPTO"]=='0000000011'){$conc_sust = '0000000065';}					 
						 if($row["CODIGO_CONCEPTO"]=='0000000120'){$conc_sust = '0000000065';}	
						 if($row["CODIGO_CONCEPTO"]=='0000000019'){$conc_sust = '0000000065';}
						 if($row["CODIGO_CONCEPTO"]=='0000000505'){$conc_sust = '0000000516';}
						 if($row["CODIGO_CONCEPTO"]=='0000000002'){$conc_sust = '0000000003';}
						 if($row["CODIGO_CONCEPTO"]=='0000000506'){$conc_sust = '0000000516';}
						 if($row["CODIGO_CONCEPTO"]=='0000000024'){$conc_sust = '0000000023';}
						 if($row["CODIGO_CONCEPTO"]=='0000000527'){$conc_sust = '0000000516';}
						 if($row["CODIGO_CONCEPTO"]=='0000000030'){$conc_sust = '0000000022';}
						 if($row["CODIGO_CONCEPTO"]=='0000000031'){$conc_sust = '0000000022';}
						 if($row["CODIGO_CONCEPTO"]=='0000000033'){$conc_sust = '0000000022';}
						 if($row["CODIGO_CONCEPTO"]=='0000000035'){$conc_sust = '0000000022';}
						 if($row["CODIGO_CONCEPTO"]=='0000000039'){$conc_sust = '0000000006';}
						 if($row["CODIGO_CONCEPTO"]=='0000000612'){$conc_sust = '0000000516';}
						 if($row["CODIGO_CONCEPTO"]=='0000000047'){$conc_sust = '0000000044';}
						 if($row["CODIGO_CONCEPTO"]=='0000000509'){$conc_sust = '0000000516';}
						 if($row["CODIGO_CONCEPTO"]=='0000000535'){$conc_sust = '0000000516';}
						 if($row["CODIGO_CONCEPTO"]=='0000000515'){$conc_sust = '0000000516';}
						 if($row["CODIGO_CONCEPTO"]=='0000000209'){$conc_sust = '0000000213';}
						 if($row["CODIGO_CONCEPTO"]=='0000000614'){$conc_sust = '0000000615';}
						 if($row["CODIGO_CONCEPTO"]=='0000000062'){$conc_sust = '0000000042';}
						 if($row["CODIGO_CONCEPTO"]=='0000000227'){$conc_sust = '0000000260';}
						 if($row["CODIGO_CONCEPTO"]=='0000000537'){$conc_sust = '0000000605';}
						 
						 $sql_conc="SELECT * 
								FROM sno_hconcepto 
								WHERE codemp='".$this->codemp."'								
								AND codconc='".$conc_sust."' 
								ORDER BY codnom,codconc LIMIT 1";
								
						 $resp = $this->io_sql_destino->execute($sql_conc);
						 if ($resp===false){				  		
							$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hconcepto ERROR->".$this->io_sql_destino->message);
							return false;						
						 }					
				}
				
				if(!$resp->RecordCount()){
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hconcepto ERROR->"." No se encontro el concepto de referencia en ninguna nomina: ".$row["CODIGO_CONCEPTO"]);
					return false;			
				}
				
				if($row["TIPO"]=='A' and $resp->fields["sigcon"]!='A'){						
						$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hconcepto ERROR->"." Error en tipo de concepto.(Los signos de los conceptos no coinciden): ".$row["CODIGO_CONCEPTO"]);
					    return false;				
				}
				
				
				$ls_codemp=$this->codemp; 
				$ls_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				$ls_codconc=$this->io_validacion->uf_valida_texto($row["CODIGO_CONCEPTO"],0,10,"");
				$ls_nomcon=$this->io_validacion->uf_valida_texto($row["DESCRIPCION"],0,30,"");
				$ls_titcon=$this->io_validacion->uf_valida_texto($row["DESCRIPCION"],0,254,"");
				$ls_sigcon=$this->io_validacion->uf_valida_texto(trim($resp->fields["sigcon"]),0,1,"");
				$ls_forcon=$this->io_validacion->uf_valida_texto($resp->fields["forcon"],0,500,"");
				$li_glocon=$this->io_validacion->uf_valida_monto($resp->fields["glocon"],0);
				$li_acumaxcon=$this->io_validacion->uf_valida_monto($resp->fields["acumaxcon"],0);
				$li_valmincon=$this->io_validacion->uf_valida_monto($resp->fields["valmincon"],0);
				$li_valmaxcon=$this->io_validacion->uf_valida_monto($resp->fields["valmaxcon"],0);
				$ls_concon=$this->io_validacion->uf_valida_texto($resp->fields["concon"],0,500,"");
				$ls_cueprecon=$this->io_validacion->uf_valida_texto($resp->fields["cueprecon"],0,25,"");
				$ls_cueconcon=$this->io_validacion->uf_valida_texto($resp->fields["cueconcon"],0,25,"");
				$li_aplisrcon=$this->io_validacion->uf_valida_monto($resp->fields["aplisrcon"],0);
				$li_sueintcon=$this->io_validacion->uf_valida_monto($resp->fields["sueintcon"],0);
				$li_sueintvaccon=$this->io_validacion->uf_valida_monto($resp->fields["sueintvaccon"],0);
				$li_conprenom=$this->io_validacion->uf_valida_monto($resp->fields["conprenom"],1);
				$ls_intprocon=$this->io_validacion->uf_valida_texto($resp->fields["intprocon"],0,1,"0");
				$ls_codpro=$this->io_validacion->uf_valida_texto($resp->fields["codpro"],0,33,"");
				$ls_forpatcon=$this->io_validacion->uf_valida_texto($resp->fields["forpatcon"],0,500,""); 
				$ls_cueprepatcon=$this->io_validacion->uf_valida_texto($resp->fields["cueprepatcon"],0,25,"");
				$ls_cueconpatcon=$this->io_validacion->uf_valida_texto($resp->fields["cueconpatcon"],0,25,"");
				$ls_titretempcon=$this->io_validacion->uf_valida_texto($resp->fields["titretempcon"],0,10,"");
				$ls_titretpatcon=$this->io_validacion->uf_valida_texto($resp->fields["titretpatcon"],0,10,"");
				$li_valminpatcon=$this->io_validacion->uf_valida_monto($resp->fields["valminpatcon"],0);
				$li_valmaxpatcon=$this->io_validacion->uf_valida_monto($resp->fields["valmaxpatcon"],0);				
				$ls_codprov=$this->io_validacion->uf_valida_texto($resp->fields["codprov"],0,10,"----------");				
				$ls_cedben=$this->io_validacion->uf_valida_texto($resp->fields["cedben"],0,10,"----------");
				$li_aplarccon=$this->io_validacion->uf_valida_texto($resp->fields["aplarccon"],0,1,"0");
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
				$resp->fields['poringcon'] = $resp->fields['poringcon']?$resp->fields['poringcon']:0;
				$resp->fields['aplidiasadd'] = $resp->fields['aplidiasadd']?$resp->fields['aplidiasadd']:0;
				
				$ls_sql="INSERT INTO sno_hconcepto(codemp, codnom, anocur, codperi, codconc, nomcon, titcon, sigcon, 
												   forcon, glocon, acumaxcon, valmincon, valmaxcon, concon, cueprecon, 
												   cueconcon, aplisrcon, sueintcon, sueintvaccon, conprenom, intprocon, 
												   codpro, estcla, forpatcon, cueprepatcon, cueconpatcon, titretempcon, 
												   titretpatcon, valminpatcon, valmaxpatcon, codprov, cedben, aplarccon,												    
												   conprocon, intingcon, poringcon) 
							     VALUES ('".$ls_codemp."','".$ls_codnom."','".$ls_anocur."','".$ls_codperi."','".$ls_codconc."','".
								            $ls_nomcon."','".$ls_titcon."','".trim($ls_sigcon)."',".
										 "'".$ls_forcon."',".$li_glocon.",".$li_acumaxcon.",".$li_valmincon.",".$li_valmaxcon.",'".$ls_concon."',".
										 "'".$ls_cueprecon."','".$ls_cueconcon."',".$li_aplisrcon.",".$li_sueintcon.",".$li_sueintvaccon.",".
										 "".$li_conprenom.",'".$ls_intprocon."','".$ls_codpro."','".$resp->fields['estcla']."','".$ls_forpatcon."','".$ls_cueprepatcon."',".
										 "'".$ls_cueconpatcon."','".$ls_titretempcon."','".$ls_titretpatcon."',".$li_valminpatcon.",".
										 "".$li_valmaxpatcon.",'".$ls_codprov."','".$ls_cedben."',".$li_aplarccon.",".										 
										 "'0', '0','0')";
				
				 $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_hconcepto ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando concepto ...> '.$ls_codconc." \r\n");}		
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function 

	
	function uf_insert_hsalida($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hsalida ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		$ls_sql="DELETE FROM sno_hsalida WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hsalida ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		
		
		
		$ls_sql="   SELECT  cap.CODIGO_CIA,em.CEDULA,
							cap.CODIGO_CONCEPTO, cn.DESCRIPCION,cap.MONTO,cn.TIPO,APORTE_PATRONAL,p.CLAVE_CONCEPTO,SEMANA_QUINCENA       
					FROM conceptos_pagados cap
					INNER JOIN conceptos_nomina cn ON cap.codigo_concepto=cn.codigo_concepto
					LEFT JOIN conceptos_parametros p ON cap.codigo_concepto = p.codigo_concepto 
													 and p.clave_concepto = 'FRC'
					INNER JOIN empleados em ON em.codigo_empleado=cap.codigo_empleado
					INNER JOIN plan_nomina pn ON pn.codigo_cia=cap.codigo_cia 
											  and pn.tipo = cap.tipo_pago 
											  and pn.quincena = cap.fecha_pago_efectiva
					WHERE cap.tipo_pago='Q'
					and semana_quincena = '".(integer)$as_codperi."'
					AND EXTRACT( YEAR FROM fecha_pago_efectiva) = '".$as_anocur."'
					and cap.monto<>0
					and cap.codigo_cia='".$this->codnom_sireh."'
					order by cap.codigo_empleado, cap.codigo_concepto
		";
		
				
		$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_hsalida ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros encontrados en salida de Conceptos ... '.$io_recordset->RecordCount()." \r\n");}
		if(!$io_recordset->RecordCount()){return true;}
		
		 $li_total_select = $this->io_sql_origen->num_rows($io_recordset);
		 while($row=$this->io_sql_origen->fetch_row($io_recordset)){	
				
				/*
					cod_nomina
					ano_en_curso
					periodo
					cod_personal
					cod_concepto
					tipo
					valor
					acumulado
					saldo
				*/
			    $ls_codemp=$this->codemp; 
				$ls_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				//$ls_codperi=$this->io_validacion->uf_valida_texto($row["codperi"],0,3,"");
				$ls_codper=str_pad($row["CEDULA"],10,'0',STR_PAD_LEFT);	
				$ls_codconc=str_pad($row["CODIGO_CONCEPTO"],10,'0',STR_PAD_LEFT);	
							
				 $sql_conc="SELECT sigcon
				            FROM sno_hconcepto 
				            WHERE codemp='".$this->codemp."'
							AND codnom='".$as_codnom."'
							AND anocur='".$as_anocur."'
							AND codperi='".$as_codperi."'
							AND codconc='".$ls_codconc."'";
							
				 $resp = $this->io_sql_destino->execute($sql_conc);
				 if ($resp===false){				  		
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hsalida ERROR->".$this->io_sql_destino->message);
					return false;						
				 }		
				
				
				if(!$resp->RecordCount()){
					$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hsalida ERROR->"." No se encontro el signo del concepto ".$ls_codconc." para el periodo: ".$as_codperi.'-'.$as_anocur);
					return false;			
				}
				
				$ls_tipsal=$resp->fields["sigcon"];
				if($ls_tipsal=='P'){$ls_tipsal='P1';}
				$li_valsal=$this->io_validacion->uf_valida_monto($row["MONTO"],0);
				$li_monacusal=0;
				$li_salsal=0;
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;				
				$row["priquisal"] = $row["priquisal"]?$row["priquisal"]:0;
				$row["segquisal"] = $row["segquisal"]?$row["segquisal"]:0;
				
				
				if($ls_tipsal=='P1' or $ls_tipsal=='D'){$li_valsal = -($li_valsal);}				
				
				$ls_sql="INSERT INTO sno_hsalida(codemp, codnom, codper, anocur, codperi, codconc, tipsal, valsal, 
                                                monacusal, salsal, priquisal, segquisal)".
						"        VALUES ('".$ls_codemp."','".
							                $ls_codnom."','".
											$ls_codper."','".
											$ls_anocur."','".
											$ls_codperi."','".											
											$ls_codconc."','".
							                trim($ls_tipsal)."','".
										    $li_valsal."','".
											$li_monacusal."','".
											$li_salsal."','".
											$row["priquisal"]."','".
											$row["segquisal"]."'".
											")";
							
											
				 $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_hsalida ERROR->".$this->io_sql_destino->message);
					return false;						
				 }	
				 
				$li_total_insert++;
				 
				 if($resp->fields["sigcon"]=='P' and $row["APORTE_PATRONAL"]){
				 			
							$row["APORTE_PATRONAL"] = -($row["APORTE_PATRONAL"]);
				 			$sql_apo="INSERT INTO sno_hsalida(codemp, codnom, codper, anocur, codperi, codconc, tipsal, valsal, 
															monacusal, salsal, priquisal, segquisal)".
									"        VALUES ('".$ls_codemp."','".
														$ls_codnom."','".
														$ls_codper."','".
														$ls_anocur."','".
														$ls_codperi."','".											
														$ls_codconc."',
														'P2','".
														$row["APORTE_PATRONAL"]."','0','0','0','0')";
										
														
							 $res = $this->io_sql_destino->execute($sql_apo);
							 if ($res===false){				  		
								$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hsalida ERROR->".$this->io_sql_destino->message);
								return false;						
							 }	
							 
							 $li_total_insert++;
				 
				 }
				 				
				 
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function 
	
	
	
	function uf_insert_hresumen($as_codnom,$as_anocur,$as_codperi){

		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Copiando sno_hresumen ... '." \r\n");}
		$lb_valido=true;
		$li_total_select=0;
		$li_total_insert=0;
		
		$ls_sql="DELETE FROM sno_hresumen WHERE codemp='".$this->codemp."' AND codnom='".$as_codnom."' AND anocur='".$as_anocur."' AND codperi='".$as_codperi."'";
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if ($io_recordset===false){		
			$this->io_mensajes->message("CLASE->covensol_copia_historico MÉTODO->uf_insert_hresumen ERROR->".$this->io_sql_destino->message);
			return false;			
		}
		
		$ls_sql=" SELECT DISTINCT codper
				   FROM sno_hsalida
				 WHERE  codemp='".$this->codemp."'
					AND codnom='".$as_codnom."'
					AND anocur='".$as_anocur."'
					AND codperi='".$as_codperi."'";
		
				
		$io_recordset=$this->io_sql_destino->select($ls_sql);
		if ($io_recordset===false){			   	
		   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hresumen ERROR-> ".$this->io_sql_origen->message);
		   return false;
	    }
		if(!$io_recordset->RecordCount()){return true;}		
		$li_total_select = $io_recordset->RecordCount();
		 
		 while($row=$this->io_sql_destino->fetch_row($io_recordset)){	
			
				
				$sql_conceptos=" SELECT *
								   FROM sno_hsalida
								 WHERE  codemp='".$this->codemp."'
									AND codnom='".$as_codnom."'
									AND anocur='".$as_anocur."'
									AND codperi='".$as_codperi."'
									AND codper='".$row["codper"]."'
									";
		
				
				$rs_conc=$this->io_sql_destino->select($sql_conceptos);
				if ($rs_conc===false){			   	
				   $this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hresumen ERROR-> ".$this->io_sql_origen->message);
				   return false;
				}
				if(!$rs_conc->RecordCount()){
						$this->io_mensajes->message("CLASE->".get_class($this)." MÉTODO->uf_insert_hresumen ERROR-> No se encontraron conceptos para este personal: ".$row["codper"]);
						return false;
				}		
				
				
				$li_asires=0;
				$li_dedres=0;
				$li_apoempres=0;
				$li_apopatres=0;
				foreach($rs_conc as $salida){	
				    $salida['valsal'] = abs($salida['valsal']);	
					$salida['tipsal'] = trim($salida['tipsal']);		
					if($salida['tipsal']=='A'){$li_asires = $li_asires + $salida['valsal'];}	
					if($salida['tipsal']=='D'){$li_dedres = $li_dedres + $salida['valsal'];}
					if($salida['tipsal']=='P1'){$li_apoempres = $li_apoempres + $salida['valsal'];}
					if($salida['tipsal']=='P2'){$li_apopatres = $li_apopatres + $salida['valsal'];}				
				}
				$li_monnetres = $li_asires-($li_dedres+$li_apoempres);
				$li_priquires = $li_monnetres;
				$li_segquires = 0;				
				
				$ls_codemp=$this->codemp; 
				$ls_codnom=$as_codnom;//$this->io_validacion->uf_valida_texto($row["codnom"],0,4,"");
				//$ls_codperi=$this->io_validacion->uf_valida_texto($row["codperi"],0,3,"");
				$ls_codper=$this->io_validacion->uf_valida_texto($row["codper"],0,10,"");
				$ls_notres=$this->io_validacion->uf_valida_texto($row["nota"],0,1000,"");
				$ls_anocur=$as_anocur;
				$ls_codperi=$as_codperi;
											
				
				$ls_sql="INSERT INTO sno_hresumen(codemp, codnom, codper, anocur, codperi, asires, dedres, apoempres, 
                                                 apopatres, priquires, segquires, monnetres, notres)".
						"        VALUES ('".$ls_codemp."','".
							                $ls_codnom."','".
											$ls_codper."','".
											$ls_anocur."','".
											$ls_codperi."','".											
											$li_asires."','".
							                $li_dedres."','".
										    $li_apoempres."','".
											$li_apopatres."','".
											$li_priquires."','".
											$li_segquires."','".
											$li_monnetres."','".
											$ls_notres."'".
											")";
							
											
				 $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_hresumen ERROR->".$this->io_sql_destino->message);
					return false;						
				 }					
				 $li_total_insert++;
				
		  }
		
		 if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Registros Transferidos: '.$li_total_insert.' de '.$li_total_select." \r\n");}	  
				  
		 return true;
	}// end function 
	
	
	
	
	function borrar_tablash($datos=array()){
			
			
			$valido=$this->uf_limpiar_tabla_historica('sno_hresumen',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hsalida',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hconceptopersonal',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hconcepto',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hconstantepersonal',$datos);
			if($valido===false){return false;}			
			$valido=$this->uf_limpiar_tabla_historica('sno_hconstante',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hvacacpersonal',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hpersonalnomina',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hunidadadmin',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hasignacioncargo',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hprimagrado',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hgrado',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hcargo',$datos);
			if($valido===false){return false;}	
			$valido=$this->uf_limpiar_tabla_historica('sno_htabulador',$datos);
			if($valido===false){return false;}	
			$valido=$this->uf_limpiar_tabla_historica('sno_hperiodo',$datos);
			if($valido===false){return false;}
			$valido=$this->uf_limpiar_tabla_historica('sno_hsubnomina',$datos);
			if($valido===false){return false;}
					
			return true;	
	
	}

	
		
	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();
		
		if(!$as_condicion){
			$as_condicion = " WHERE nombrebd='".$this->nombrebd."' AND  tipobd='".$this->tipobd."' AND anobd='".$this->anobd."' "; 
		}
		
		$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
	
	
	
	function uf_limpiar_tabla_historica($as_tabla,$datos=array())
	{			
		if($this->lo_archivo){@fwrite($this->lo_archivo,date('H:i:s').'.- Eliminando datos de '.$as_tabla.' ... '." \r\n");}
		
		
		if(!$datos["codnom"] or !$datos["anocur"]  or !$datos["codperi"] ){
				
				$this->io_mensajes->message("MÉTODO->uf_limpiar_tabla_historica ERROR-> Faltan datos del periodo");
			    return false;
		
		}
		
		$li_total_select=0;
		$li_total_insert=0;
		$ls_sql="DELETE FROM ".$as_tabla." WHERE codemp='".$this->codemp."' 
		                                     AND codnom='".$datos["codnom"]."' 
											 AND anocur='".$datos["anocur"]."' 
											 AND codperi='".$datos["codperi"]."' ";
	
		$io_recordset=$this->io_sql_destino->execute($ls_sql);
		if($io_recordset===false)
		{ 
					
			$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;			
		}
		//echo $ls_sql.'<br>';
					
		return true;
	}// end function uf_limpiar_tabla
}
?>
