<?php
class covensol_scv_c_viaticos
{
	function covensol_scv_c_viaticos($propiedades=array()){		
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// Function: Formulación
		// Access: public (covensol_scv_c_viaticos)
		// Description: Constructor de la Clase
		// Creado Por: Lic. Edgar A. Quintero
		// Fecha Creación: 29/07/2013 								
		// Fecha Última Modificación : 
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		global $ruta;
		if($ruta==''){$ruta="../";}		
		//require_once($ruta."shared/class_folder/sigesp_include.php");
		require_once($ruta."shared/class_folder/sigesp_include_covensol.php");
		$io_include=new sigesp_include_covensol();
		$io_conexion=$io_include->uf_conectar();
		//require_once($ruta."shared/class_folder/class_sql.php");
		require_once($ruta."shared/class_folder/class_sql_covensol.php");
		$this->io_sql=new class_sql_covensol($io_conexion);	
		require_once($ruta."shared/class_folder/class_mensajes.php");
		$this->io_mensajes=new class_mensajes();
		require_once($ruta."shared/class_folder/sigesp_conexiones.php");
		$this->io_conexiones=new conexiones();
		require_once($ruta."shared/class_folder/class_funciones.php");
		$this->io_funciones=new class_funciones();		
		require_once($ruta."shared/class_folder/sigesp_c_seguridad.php");
		$this->io_seguridad= new sigesp_c_seguridad();				
        $this->ls_codemp=$_SESSION["la_empresa"]["codemp"];
		
		if($propiedades['habilitar_json_lib']){
			require_once($ruta.'shared/class_folder/JSON.php');
			$this->json = new JSON();
		}	
		$this->postgres_ilike = '';
		if($_SESSION["ls_gestor"] == 'POSTGRES'){$this->postgres_ilike = 'I';}
		
		$this->cfg_codsis = 'SCV';
		$this->cfg_seccion = 'SEGURIDAD';
		$this->cfg_type ='C';
		$this->nominas   = $this->obtCfg('NOMINAS_PERSONAL');
		
	}
	
	function ValidarSesion($opciones = array()){
	//==========================================================================================================================
	//	Function:      ValidarSesion
	//  Elaborado por: Lic. Edgar A. Quintero U.
	//	Returns:	   
	//	Description:   Ejecuta la acción en caso de no haber obtenido las credenciales necesarias.
	//==========================================================================================================================
		if(!array_key_exists("la_logusr",$_SESSION)){
			echo '<script type="text/javascript">';			
			echo "if(window.opener!=null){opener.location.href='../sigesp_inicio_sesion.php'; window.close();}";
			echo "else{location.href='../sigesp_inicio_sesion.php';}";		
			echo '</script>';		
			return false;
		}
		return true;	
	}
	
   function cargar_seguridad($as_sistema,$as_ventanas)
   {
		$ls_empresa=$_SESSION["la_empresa"]["codemp"];
		$ls_logusr=$_SESSION["la_logusr"];
		$this->seguridad["empresa"]=$ls_empresa;
		$this->seguridad["logusr"]=$ls_logusr;
		$this->seguridad["sistema"]=$as_sistema;
		$this->seguridad["ventanas"]=$as_ventanas;
		$this->permisos="";
		$this->la_permisos = array();
		$this->la_permisos["leer"]="";
		$this->la_permisos["incluir"]="";
		$this->la_permisos["cambiar"]="";
		$this->la_permisos["eliminar"]="";
		$this->la_permisos["imprimir"]="";
		$this->la_permisos["anular"]="";
		$this->la_permisos["ejecutar"]="";
		if (array_key_exists("permisos",$_POST)||($ls_logusr=="PSEGIS"))
		{	
			if($ls_logusr=="PSEGIS")
			{
				$this->permisos="1";
				$this->la_permisos=$this->io_seguridad->uf_sss_load_permisossigesp();
			}
			else
			{
				$this->permisos=$_POST["permisos"];
				$this->la_permisos["leer"]=$_POST["leer"];
				$this->la_permisos["incluir"]=$_POST["incluir"];
				$this->la_permisos["cambiar"]=$_POST["cambiar"];
				$this->la_permisos["eliminar"]=$_POST["eliminar"];
				$this->la_permisos["imprimir"]=$_POST["imprimir"];
				$this->la_permisos["anular"]=$_POST["anular"];
				$this->la_permisos["ejecutar"]=$_POST["ejecutar"];
			}
		}
		else
		{
			$this->permisos=$this->io_seguridad->uf_sss_load_permisos($ls_empresa,$ls_logusr,$as_sistema,$as_ventanas,$this->la_permisos);
		}
		
   }// end function cargar_seguridad
   
   function guardar_seguridad($param=array()){
	   $resp = $this->io_seguridad->uf_sss_insert_eventos_ventana( $this->seguridad["empresa"],
																   $this->seguridad["sistema"],
																   $this->seguridad['evento'],
																   $this->seguridad["logusr"],
																   $this->seguridad["ventanas"],
	   															   $this->seguridad['descripcion']);
	   return true;
	   
   }
   
   function imprimir_permisos($as_permisos,$aa_permisos,$as_logusr,$as_accion)
   {
		if (($as_permisos)||($as_logusr=="PSEGIS"))
		{
			print("<input type=hidden name=permisos id=permisos value='$as_permisos'>");
			print("<input type=hidden name=leer id=leer value='$aa_permisos[leer]'>");
			print("<input type=hidden name=incluir id=incluir value='$aa_permisos[incluir]'>");
			print("<input type=hidden name=cambiar id=cambiar value='$aa_permisos[cambiar]'>");
			print("<input type=hidden name=eliminar id=eliminar value='$aa_permisos[eliminar]'>");
			print("<input type=hidden name=imprimir id=imprimir value='$aa_permisos[imprimir]'>");
			print("<input type=hidden name=anular id=anular value='$aa_permisos[anular]'>");
			print("<input type=hidden name=ejecutar id=ejecutar value='$aa_permisos[ejecutar]'>");
		}
		else
		{
			print("<script language=JavaScript>");
			print("".$as_accion."");
			print("</script>");
		}
   }// end function uf_print_permisos
   
   function obtCfg($param,$prop=array())
	{
		
		
		$prop['criterio'] = (!$prop['criterio'])?'param':$prop['criterio'];
		$this->cfg_type = $this->cfg_type?$this->cfg_type:'C';

  
		switch($prop['criterio']){					
				
				case 'param':					
					$ls_sql="SELECT value
							  FROM sigesp_config 
							 WHERE codemp='".$this->ls_codemp."' 
							   AND codsis='".$this->cfg_codsis."' 
							   AND seccion='".$this->cfg_seccion."' 
							   AND type='".$this->cfg_type."'
							   AND entry='".$param."' ";
					break;
		
		}
		
		
				
		$this->RsConf=$this->io_sql->select($ls_sql);
				
		if($this->RsConf===false)
		{
			$metodo = 'obtCfg';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return;					
		}
			
		return $this->RsConf->fields["value"];
	}
	
	function obtSegEstructuras($prop=array())
	{
					
		if(!$this->codintper){				
			$mensaje = '<b>VALIDACIÓN DE DATOS:</b><br> Faltan datos para poder validar la seguridad de estructura. 				           			    
						<br><br><b>METODO:</b> obtSegEstructuras ';
			$this->io_conexiones->mensajes_ajax($mensaje);																	
			return false;
		}	
		
		$ls_sql="SELECT codintper, enabled
				  FROM sss_permisos_internos 
				 WHERE codemp='".$this->ls_codemp."' 
				   AND codusu='".$_SESSION["la_logusr"]."' 
				   AND codsis='".$this->cfg_codsis."'
				   AND codintper='".$this->codintper."' ";
						
		$this->RsSeg=$this->io_sql->select($ls_sql);
				
		if($this->RsSeg===false)
		{
			$metodo = 'obtSegEstructuras';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return;					
		}
		
		$this->SegEnable = $this->RsSeg->RecordCount()?1:0;
		
		return $this->SegEnable;
	}
	
   function formato_numerico_us($numero){
	
			$busca = array(".", ",");
			$sustituye   = array("", ".");
			number_format(str_replace($busca,$sustituye,$numero),2,'.','');
			return number_format(str_replace($busca,$sustituye,$numero),2,'.','');
	
	}
	
	
	function ConsultaEstatus($param=array()){
	
			$campos = " * ";
			$criteriosql='';
			$criterio="";
			$param['criterio'] = $param['criterio']?$param['criterio']:'por_listado';
						
			switch($param['criterio']){
								
				case "por_listado":				        
						$campos = " *  ";		
					    $sql_criterio = " WHERE se.codemp ='".$this->ls_codemp."'
											AND se.campo ='".$param['campo']."'
											AND se.dominio ='".$param['dominio']."'
										";
					    break;
				
			    case "por_codigo":				        
						$campos = " *  ";		
					    $sql_criterio = " WHERE se.codemp ='".$this->ls_codemp."'
											AND se.campo ='".$param['campo']."'
											AND se.dominio ='".$param['dominio']."'	
											AND se.valor ='".$param['valor']."'									
										";
					    break;
				
			}
			   
			$query_rs = "SELECT ".$campos." FROM covensol_sigesp_equiv se ".$sql_criterio ." ";			
			
			//echo $query_rs.'<br>';
			$clase = get_class($this);
			$metodo = 'ConsultaEstatus';
			$param['arreglo'] = 'arreglo';
			$param['ajax'] = '0';
			$param['imprimir'] = '1';	
			$msj = '<b>CLASE:</b> '.$clase.' <br><b>METODO:</b> '.$metodo;	
			$respuesta = $this->io_conexiones->conexion($query_rs,$param,$msj);	
			return $respuesta;
	
	}
   
   function ComboEstatus($opciones=array()){
				
				if(!$opciones['campo'] or !$opciones['dominio']){
					$mensaje="Faltan datos para poder generar el combo select de Estatus";		
					$this->io_mensajes->message($mensaje);
					return false;
				}
				
				if(!$opciones['nombre_combo']){$nombre_combo = 'sel_'.$opciones['campo'];}else{$nombre_combo = $opciones['nombre_combo'];}
				if(!$opciones['valor']){$carga = ' Seleccione '; $id_carga = '';}
				else{	
				    $opciones['criterio'] = 'por_codigo';					
					$rs = $this->ConsultaEstatus($opciones);
					if($rs===false){return false;}
					if(!$rs['cantidad']){
						$mensaje = '<b>ERROR DE DATOS: </b> No existe el Código: '.$opciones['valor'].
						   		   '<br><br><b>METODO:</b> ComboEstatus ';					
						$this->io_mensajes->message($mensaje);																	
						return false;	
					}
					$carga = $rs['fila']['descequiv'];				  
					$id_carga = $opciones['valor'];
				}			
				
				$opciones['criterio'] = 'por_listado';							
				$resp = $this->ConsultaEstatus($opciones);
				if($resp===false){return false;}
				
				if($opciones['disable']===true){$disable='disabled';}
				
				$combo = '<select name="'.$nombre_combo.'" id="'.$nombre_combo.'" onChange="'.$opciones['funcion_js'].'" '.$disable.'>
				              <option value="'.$id_carga.'">- '.$carga.' -</option>';
				
				foreach($resp['rs'] as $dato) { 				
					$combo .= '<option value="'.$dato["valor"].'">'.$dato["descequiv"].'</option>';								
				}
				$combo .= '</select>';
																							
				return $combo;
	}
	
	function SelectUbicaViatico($prop=array())
	{
				
		$ls_sql=" 
		
				SELECT DISTINCT uf.codubifis,uf.desubifis 
				FROM scv_dt_personal dtp
				INNER JOIN scv_solicitudviatico sv ON sv.codemp = dtp.codemp
									  AND sv.codsolvia = dtp.codsolvia
				LEFT JOIN sno_personalnomina pn ON pn.codemp = dtp.codemp
												AND pn.codper = lpad(dtp.codper,10,'0')
												AND pn.codnom = dtp.codnom
				LEFT JOIN sno_personal p ON pn.codemp = p.codemp 
										 AND pn.codper = p.codper
				LEFT JOIN sno_nomina n ON n.codemp = pn.codemp
									   AND n.codnom = pn.codnom
							   AND n.espnom='0'
				LEFT JOIN sno_cargo ca ON pn.codemp = ca.codemp
							  AND pn.codnom = ca.codnom
							  AND pn.codcar = ca.codcar
				LEFT JOIN sno_ubicacionfisica uf ON pn.codemp = uf.codemp
								AND pn.codubifis = uf.codubifis				
				LEFT JOIN sno_asignacioncargo ac ON pn.codemp = ac.codemp
								AND pn.codnom = ac.codnom
								AND pn.codasicar = ac.codasicar
				LEFT JOIN covensol_sigesp_equiv e_estsolvia ON e_estsolvia.dominio='scv_solicitudviatico'
									   AND e_estsolvia.campo='estsolvia'
									   AND e_estsolvia.valor= sv.estsolvia::text
				WHERE dtp.codemp = '".$this->ls_codemp."'
				ORDER BY 2

		";
						
		$this->RsUbiVia=$this->io_sql->select($ls_sql);
				
		if($this->RsUbiVia===false)
		{
			$metodo = 'SelectUbicaViatico';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return false;					
		}	
		
		return $this->RsUbiVia;
	}
	
	function SelectUbicaViaticoUniAdm($prop=array())
	{
				
		$ls_sql=" 
		
				SELECT DISTINCT pn.minorguniadm,pn.ofiuniadm,pn.uniuniadm,pn.depuniadm,pn.prouniadm,
								ua.desuniadm as desubifis,count(*) AS cantidad 
				FROM scv_dt_personal dtp
				INNER JOIN scv_solicitudviatico sv ON sv.codemp = dtp.codemp
									  AND sv.codsolvia = dtp.codsolvia
				LEFT JOIN sno_personalnomina pn ON pn.codemp = dtp.codemp
												AND pn.codper = lpad(dtp.codper,10,'0')
												AND pn.codnom = dtp.codnom
				LEFT JOIN sno_personal p ON pn.codemp = p.codemp 
										 AND pn.codper = p.codper
				LEFT JOIN sno_nomina n ON n.codemp = pn.codemp
									   AND n.codnom = pn.codnom
							   AND n.espnom='0'
				LEFT JOIN sno_cargo ca ON pn.codemp = ca.codemp
							  AND pn.codnom = ca.codnom
							  AND pn.codcar = ca.codcar
				LEFT JOIN sno_ubicacionfisica uf ON pn.codemp = uf.codemp
								                AND pn.codubifis = uf.codubifis
				LEFT JOIN sno_unidadadmin ua ON pn.codemp = ua.codemp
								  AND pn.minorguniadm = ua.minorguniadm
								  AND pn.ofiuniadm = ua.ofiuniadm
								  AND pn.uniuniadm = ua.uniuniadm
								  AND pn.depuniadm = ua.depuniadm
								  AND pn.prouniadm = ua.prouniadm			
				LEFT JOIN sno_asignacioncargo ac ON pn.codemp = ac.codemp
								AND pn.codnom = ac.codnom
								AND pn.codasicar = ac.codasicar
				LEFT JOIN covensol_sigesp_equiv e_estsolvia ON e_estsolvia.dominio='scv_solicitudviatico'
									   AND e_estsolvia.campo='estsolvia'
									   AND e_estsolvia.valor= sv.estsolvia::text
				WHERE dtp.codemp = '".$this->ls_codemp."'
				GROUP BY pn.minorguniadm,pn.ofiuniadm,pn.uniuniadm,pn.depuniadm,pn.prouniadm,ua.desuniadm
				ORDER BY 2

		";
						
		$this->RsUbiVia=$this->io_sql->select($ls_sql);
				
		if($this->RsUbiVia===false)
		{
			$metodo = 'SelectUbicaViatico';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return false;					
		}	
		
		return $this->RsUbiVia;
	}
	
	function EncabezadoRelViaMensual($parametro=array()){		
		
		$encabezado = '<p  style="text-align:center;"><table cellspacing="0" cellpadding="1" border="1">
					<thead>
						<tr bgcolor="'.$this->RepParam['encabezado2']['color_fondo'].'" color="'.$this->RepParam['encabezado2']['color_letra'].'" >
						  <td colspan="14" align="center" width="'.$this->RepParam['ancho']['total'].'">
							<font size="12">					            
								<b>VIÁTICOS MENSUALES</b>								
							</font>
						  </td>
					   </tr>
						<tr bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" color="'.$this->RepParam['encabezado']['color_letra'].'" height="6">						
							<td align="center"  width="'.$this->RepParam['ancho'][1].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> </font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][2].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">enero</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][3].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">febrero</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][4].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">marzo</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][5].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">abril</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][6].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">mayo</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][7].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">junio</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][8].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">julio</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][9].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">agosto</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][10].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">septiembre</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][11].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">octubre</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][12].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">novimebre</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][13].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">diciembre</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][14].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'">sub. tot.</font></td>
						</tr>							
					</thead>';
					
		return $encabezado; 
	}
	
	function FinTablaRelViaMensual($datos=array()){
			
						
			$fin_tabla = '   <tr bgcolor="'.$this->RepParam['totales']['color_fondo'].'">
							   <td width="'.$this->RepParam['ancho'][1].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"><b>TOTALES:</b></font>
							   </td>						  
							   <td width="'.$this->RepParam['ancho'][2].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_enero'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][3].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_febrero'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][4].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_marzo'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][5].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_abril'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][6].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_mayo'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][7].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_junio'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][8].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_julio'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][9].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_agosto'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][10].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_septiembre'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][11].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_octubre'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][12].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_noviembre'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][13].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['subtot_diciembre'],2,',','.').'</font>
							   </td>
							   <td width="'.$this->RepParam['ancho'][14].'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($datos['total'],2,',','.').'</font>
							   </td>
							 </tr>							 
						   </table></p>';
			return $fin_tabla; 
	}
	
	function FilaRelViaMensual($datos){	
			
			
			$filas .= '<tr bgcolor="'.$this->RepParam['fila']['color_fondo'].'" color="'.$this->RepParam['fila']['color_letra'].'">																							
							<td width="'.$this->RepParam['ancho'][1].'" align="left" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.utf8_decode($datos['desubifis']).'</font></td>
							<td width="'.$this->RepParam['ancho'][2].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_enero'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][3].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_febrero'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][4].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_marzo'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][5].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_abril'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][6].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_mayo'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][7].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_junio'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][8].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_julio'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][9].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_agosto'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][10].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_septiembre'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][11].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_octubre'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][12].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_noviembre'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][13].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monto_diciembre'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][14].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['subtotubic'],2,',','.').'</font></td>
							
					 </tr>';
			
			return $filas;
	}
	
	
	function SelectDtViaMensual($prop=array())
	{
				
		
		$ls_sql=" 
				   SELECT DATE_PART('month',sv.fecsolvia) as mes,
				   (CASE DATE_PART('month',sv.fecsolvia) WHEN '1' THEN 'enero' 
								  WHEN '2' THEN 'febrero'
								  WHEN '3' THEN 'marzo'
								  WHEN '4' THEN 'abril'
								  WHEN '5' THEN 'mayo'
								  WHEN '6' THEN 'junio'
								  WHEN '7' THEN 'julio'
								  WHEN '8' THEN 'agosto'
								  WHEN '9' THEN 'septiembre'
								  WHEN '10' THEN 'octubre'
								  WHEN '11' THEN 'noviembre'
								  WHEN '12' THEN 'diciembre'				      
												  ELSE 'numero de mes inválido' END) AS desmes,
				   uf.desubifis,
				   sum(monpervia) as subtot,count(*) as cantidad         
			FROM scv_dt_personal dtp
			INNER JOIN scv_solicitudviatico sv ON sv.codemp = dtp.codemp
								  AND sv.codsolvia = dtp.codsolvia
			LEFT JOIN sno_personalnomina pn ON pn.codemp = dtp.codemp
											AND pn.codper = lpad(dtp.codper,10,'0')
											AND pn.codnom = dtp.codnom
			LEFT JOIN sno_personal p ON pn.codemp = p.codemp 
									 AND pn.codper = p.codper
			LEFT JOIN sno_nomina n ON n.codemp = pn.codemp
								   AND n.codnom = pn.codnom
						   AND n.espnom='0'
			LEFT JOIN sno_cargo ca ON pn.codemp = ca.codemp
						  AND pn.codnom = ca.codnom
						  AND pn.codcar = ca.codcar
			LEFT JOIN sno_ubicacionfisica uf ON pn.codemp = uf.codemp
							AND pn.codubifis = uf.codubifis				
			LEFT JOIN sno_asignacioncargo ac ON pn.codemp = ac.codemp
							AND pn.codnom = ac.codnom
							AND pn.codasicar = ac.codasicar
			LEFT JOIN covensol_sigesp_equiv e_estsolvia ON e_estsolvia.dominio='scv_solicitudviatico'
								   AND e_estsolvia.campo='estsolvia'
								   AND e_estsolvia.valor= sv.estsolvia::text
			WHERE pn.codubifis='".$this->codubifis."'
			  AND sv.estsolvia!='A'
			GROUP BY 1,3
			ORDER BY 1,3

		";
						
		$this->RsUbiVia=$this->io_sql->select($ls_sql);
				
		if($this->RsUbiVia===false)
		{
			$metodo = 'SelectDtViaMensual';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return false;					
		}	
		
		return $this->RsUbiVia;
	}
	
	
	function SelectDtViaMensualUniAdm($prop=array())
	{
				
		
		$ls_sql=" 
				   SELECT DATE_PART('month',sv.fecsolvia) as mes,
				   (CASE DATE_PART('month',sv.fecsolvia) WHEN '1' THEN 'enero' 
								  WHEN '2' THEN 'febrero'
								  WHEN '3' THEN 'marzo'
								  WHEN '4' THEN 'abril'
								  WHEN '5' THEN 'mayo'
								  WHEN '6' THEN 'junio'
								  WHEN '7' THEN 'julio'
								  WHEN '8' THEN 'agosto'
								  WHEN '9' THEN 'septiembre'
								  WHEN '10' THEN 'octubre'
								  WHEN '11' THEN 'noviembre'
								  WHEN '12' THEN 'diciembre'				      
												  ELSE 'numero de mes inválido' END) AS desmes,
				   ua.desuniadm as desubifis,
				   sum(monpervia) as subtot,count(*) as cantidad         
			FROM scv_dt_personal dtp
			INNER JOIN scv_solicitudviatico sv ON sv.codemp = dtp.codemp
								  AND sv.codsolvia = dtp.codsolvia
			LEFT JOIN sno_personalnomina pn ON pn.codemp = dtp.codemp
											AND pn.codper = lpad(dtp.codper,10,'0')
											AND pn.codnom = dtp.codnom
			LEFT JOIN sno_personal p ON pn.codemp = p.codemp 
									 AND pn.codper = p.codper
			LEFT JOIN sno_nomina n ON n.codemp = pn.codemp
								   AND n.codnom = pn.codnom
						   AND n.espnom='0'
			LEFT JOIN sno_cargo ca ON pn.codemp = ca.codemp
						  AND pn.codnom = ca.codnom
						  AND pn.codcar = ca.codcar
			LEFT JOIN sno_ubicacionfisica uf ON pn.codemp = uf.codemp
							                AND pn.codubifis = uf.codubifis	
			LEFT JOIN sno_unidadadmin ua ON pn.codemp = ua.codemp
									  AND pn.minorguniadm = ua.minorguniadm
									  AND pn.ofiuniadm = ua.ofiuniadm
									  AND pn.uniuniadm = ua.uniuniadm
									  AND pn.depuniadm = ua.depuniadm
									  AND pn.prouniadm = ua.prouniadm					
			LEFT JOIN sno_asignacioncargo ac ON pn.codemp = ac.codemp
							AND pn.codnom = ac.codnom
							AND pn.codasicar = ac.codasicar
			LEFT JOIN covensol_sigesp_equiv e_estsolvia ON e_estsolvia.dominio='scv_solicitudviatico'
								   AND e_estsolvia.campo='estsolvia'
								   AND e_estsolvia.valor= sv.estsolvia::text
			WHERE pn.minorguniadm||pn.ofiuniadm||pn.uniuniadm||pn.depuniadm||pn.prouniadm='".$this->coduniadm."'
			  AND sv.estsolvia!='A'
			GROUP BY 1,3,sv.fecsolvia
			ORDER BY 1,3

		";
						
		$this->RsUbiVia=$this->io_sql->select($ls_sql);
				
		if($this->RsUbiVia===false)
		{
			$metodo = 'SelectDtViaMensualUniAdm';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return false;					
		}	
		
		return $this->RsUbiVia;
	}
	
	function SelectDtViaMensualUniAdmBenef($prop=array())
	{
				
		
		$ls_sql=" 
				   SELECT DATE_PART('month',sv.fecsolvia) as mes,
				   (CASE DATE_PART('month',sv.fecsolvia) WHEN '1' THEN 'enero' 
								  WHEN '2' THEN 'febrero'
								  WHEN '3' THEN 'marzo'
								  WHEN '4' THEN 'abril'
								  WHEN '5' THEN 'mayo'
								  WHEN '6' THEN 'junio'
								  WHEN '7' THEN 'julio'
								  WHEN '8' THEN 'agosto'
								  WHEN '9' THEN 'septiembre'
								  WHEN '10' THEN 'octubre'
								  WHEN '11' THEN 'noviembre'
								  WHEN '12' THEN 'diciembre'				      
												  ELSE 'numero de mes inválido' END) AS desmes,
				   'Foraneos' as desubifis,
				   sum(monpervia) as subtot,count(*) as cantidad         
			FROM scv_dt_personal dtp
			INNER JOIN scv_solicitudviatico sv ON sv.codemp = dtp.codemp
								  AND sv.codsolvia = dtp.codsolvia			
			LEFT JOIN covensol_sigesp_equiv e_estsolvia ON e_estsolvia.dominio='scv_solicitudviatico'
								   AND e_estsolvia.campo='estsolvia'
								   AND e_estsolvia.valor= sv.estsolvia::text
			WHERE (dtp.codnom = '' or dtp.codnom IS NULL)
			  AND sv.estsolvia!='A'
			GROUP BY 1,3,sv.fecsolvia
			ORDER BY 1,3

		";
						
		$this->RsUbiVia=$this->io_sql->select($ls_sql);
				
		if($this->RsUbiVia===false)
		{
			$metodo = 'SelectDtViaMensualUniAdmBenef';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return false;					
		}	
		
		return $this->RsUbiVia;
	}
	
	function RepRelViaMensual($datos=array()){
			
			
			if($_GET['tiporep']=='UA'){$RsUbic = $this->SelectUbicaViaticoUniAdm($datos);}
			if($_GET['tiporep']=='UF'){$RsUbic = $this->SelectUbicaViatico($datos);}
			
			if($RsUbic===false){return false;}			
			if(!$RsUbic->RecordCount()){return 0;}
			$filasREP = "";
			
			$datos['subtot_enero']=0;
			$datos['subcan_enero']=0;
			$datos['subtot_febrero']=0;
			$datos['subcan_febrero']=0;
			$datos['subtot_marzo']=0;
			$datos['subcan_marzo']=0;
			$datos['subtot_abril']=0;
			$datos['subcan_abril']=0;
			$datos['subtot_mayo']=0;
			$datos['subcan_mayo']=0;
			$datos['subtot_junio']=0;
			$datos['subcan_junio']=0;
			$datos['subtot_julio']=0;
			$datos['subcan_julio']=0;
			$datos['subtot_agosto']=0;
			$datos['subcan_agosto']=0;
			$datos['subtot_septiembre']=0;
			$datos['subcan_septiembre']=0;
			$datos['subtot_octubre']=0;
			$datos['subcan_octubre']=0;
			$datos['subtot_noviembre']=0;
			$datos['subcan_noviembre']=0;
			$datos['subtot_diciembre']=0;
			$datos['subcan_diciembre']=0;
			$datos['total'] = 0;
			$datos['totalcant']= 0;
			foreach($RsUbic as $datosREP){
			        
					$this->codubifis = $datosREP['codubifis']; 		
					$this->coduniadm = $datosREP['minorguniadm'].$datosREP['ofiuniadm'].$datosREP['uniuniadm'].$datosREP['depuniadm'].$datosREP['prouniadm'];
					
					$this->coduni = $_GET['tiporep']=='UA'?$this->coduniadm:$this->codubifis;
					
					if($this->coduni){
						if($_GET['tiporep']=='UA'){$RsDt = $this->SelectDtViaMensualUniAdm($datosREP);}
						if($_GET['tiporep']=='UF'){$RsDt = $this->SelectDtViaMensual($datosREP);}
					}
					else{$RsDt = $this->SelectDtViaMensualUniAdmBenef($datosREP);}
					
					
					if($RsDt===false){return false;}			
									
					$datos['monto_enero'] = 0;
					$datos['monto_febrero'] = 0;
					$datos['monto_marzo'] = 0;
					$datos['monto_abril'] = 0;
					$datos['monto_mayo'] = 0;
					$datos['monto_junio'] = 0;
					$datos['monto_julio'] = 0;
					$datos['monto_agosto'] = 0;
					$datos['monto_septiembre'] = 0;
					$datos['monto_octubre'] = 0;
					$datos['monto_noviembre'] = 0;
					$datos['monto_diciembre'] = 0;
					$datos['subtotubic'] = 0;
					$datos['cantidad_enero'] = 0;
					$datos['cantidad_febrero'] = 0;
					$datos['cantidad_marzo'] = 0;
					$datos['cantidad_abril'] = 0;
					$datos['cantidad_mayo'] = 0;
					$datos['cantidad_junio'] = 0;
					$datos['cantidad_julio'] = 0;
					$datos['cantidad_agosto'] = 0;
					$datos['cantidad_septiembre'] = 0;
					$datos['cantidad_octubre'] = 0;
					$datos['cantidad_noviembre'] = 0;
					$datos['cantidad_diciembre'] = 0;
					$datos['cantidad_subtotubic'] = 0;
					$datos['cantidad_desubifis'] = "";
					$datos['subtotcant'] = 0;
					$datos['desubifis'] = $datosREP['desubifis']?$datosREP['desubifis']:'FORANEOS';
					
					if(!$RsDt->RecordCount()){
						$datos['subtotubic'] = 0;
						$datos['subtotcant'] = 0;
						$filasREP .= $this->FilaRelViaMensual($datos);
						continue;
					}
					
					
					foreach($RsDt as $DatosMen){
					
									switch($DatosMen['mes']){
									
												case 1:
													$datos['monto_enero'] = $DatosMen['subtot'];
													$datos['cantidad_enero'] = $DatosMen['cantidad'];
													$datos['subtot_enero'] += $DatosMen['subtot'];
													$datos['subcan_enero'] += $DatosMen['cantidad'];
													break;
												
												case 2:
													$datos['monto_febrero'] = $DatosMen['subtot'];
													$datos['cantidad_febrero'] = $DatosMen['cantidad'];
													$datos['subtot_febrero'] += $DatosMen['subtot'];
													$datos['subcan_febrero'] += $DatosMen['cantidad'];
													break;
												
												case 3:
													$datos['monto_marzo'] = $DatosMen['subtot'];
													$datos['cantidad_marzo'] = $DatosMen['cantidad'];
													$datos['subtot_marzo'] += $DatosMen['subtot'];
													$datos['subcan_marzo'] += $DatosMen['cantidad'];
													break;
												
												case 4:
													$datos['monto_abril'] = $DatosMen['subtot'];
													$datos['cantidad_abril'] = $DatosMen['cantidad'];
													$datos['subtot_abril'] += $DatosMen['subtot'];
													$datos['subcan_abril'] += $DatosMen['cantidad'];
													break;
													
												case 5:
													$datos['monto_mayo'] = $DatosMen['subtot'];
													$datos['cantidad_mayo'] = $DatosMen['cantidad'];
													$datos['subtot_mayo'] += $DatosMen['subtot'];
													$datos['subcan_mayo'] += $DatosMen['cantidad'];
													break;
												
												case 6:
													$datos['monto_junio'] = $DatosMen['subtot'];
													$datos['cantidad_junio'] = $DatosMen['cantidad'];
													$datos['subtot_junio'] += $DatosMen['subtot'];
													$datos['subcan_junio'] += $DatosMen['cantidad'];
													break;
												
												case 7:
													$datos['monto_julio'] = $DatosMen['subtot'];
													$datos['cantidad_julio'] = $DatosMen['cantidad'];
													$datos['subtot_julio'] += $DatosMen['subtot'];
													$datos['subcan_julio'] += $DatosMen['cantidad'];
													break;
												
												case 8:
													$datos['monto_agosto'] = $DatosMen['subtot'];
													$datos['cantidad_agosto'] = $DatosMen['cantidad'];
													$datos['subtot_agosto'] += $DatosMen['subtot'];
													$datos['subcan_agosto'] += $DatosMen['cantidad'];
													break;
												
												case 9:
													$datos['monto_septiembre'] = $DatosMen['subtot'];
													$datos['cantidad_septiembre'] = $DatosMen['cantidad'];
													$datos['subtot_septiembre'] += $DatosMen['subtot'];
													$datos['subcan_septiembre'] += $DatosMen['cantidad'];
													break;
												
												case 10:
													$datos['monto_octubre'] = $DatosMen['subtot'];
													$datos['cantidad_octubre'] = $DatosMen['cantidad'];
													$datos['subtot_octubre'] += $DatosMen['subtot'];
													$datos['subcan_octubre'] += $DatosMen['cantidad'];
													break;
												
												case 11:
													$datos['monto_noviembre'] = $DatosMen['subtot'];
													$datos['cantidad_noviembre'] = $DatosMen['cantidad'];
													$datos['subtot_noviembre'] += $DatosMen['subtot'];
													$datos['subcan_noviembre'] += $DatosMen['cantidad'];
													break;
												
												case 12:
													$datos['monto_diciembre'] = $DatosMen['subtot'];
													$datos['cantidad_diciembre'] = $DatosMen['cantidad'];
													$datos['subtot_diciembre'] += $DatosMen['subtot'];
													$datos['subcan_diciembre'] += $DatosMen['cantidad'];
													break;
									
									}
									
									$datos['subtotubic'] += $DatosMen['subtot'];
									$datos['subtotcant'] += $DatosMen['cantidad'];
									$datos['total'] += $DatosMen['subtot'];
									$datos['totalcant'] += $DatosMen['cantidad'];
					}
					
					$filasREP .= $this->FilaRelViaMensual($datos);			
			}
			
			$InfoREP = $this->EncabezadoRelViaMensual().$filasREP.$this->FinTablaRelViaMensual($datos);
			
			return $InfoREP;
	
	}
	
	
	
	function SelectInfoViaticoPersona($prop=array())
	{
		
		
		$criterio="";
		if($prop['nomper']){$criterio .= "  AND p.nomper ".$this->postgres_ilike."LIKE('%".$prop['nomper']."%') ";}	
		if($prop['apeper']){$criterio .= "  AND p.apeper ".$this->postgres_ilike."LIKE('%".$prop['apeper']."%') ";}	
		if($prop['desubifis']){$criterio .= "  AND uf.desubifis ".$this->postgres_ilike."LIKE('%".$prop['desubifis']."%') ";}
		if($prop['cedper']){$criterio .= "  AND p.cedper ".$this->postgres_ilike."LIKE('%".$prop['cedper']."%') ";}		
		if($prop['codubifis']!=""){$criterio .= "  AND pn.codubifis ='".$prop['codubifis']."' ";}
		if($prop['codper']){$criterio .= "  AND pn.codper ='".$prop['codper']."' ";}
		if($prop['fecsolviades']){
		        $prop['fecsolviahas'] = $prop['fecsolviahas']?$prop['fecsolviahas']:$prop['fecsolviades'];
				$criterio .= "  AND sv.fecsolvia BETWEEN '".$this->io_conexiones->formatea_fecha_bd($prop['fecsolviades'])."' AND '".$this->io_conexiones->formatea_fecha_bd($prop['fecsolviahas'])."' ";
		}
		if($prop['codrut']){$criterio .= "  AND sv.codrut ='".$prop['codrut']."' ";}
		if($prop['codmis']){$criterio .= "  AND sv.codmis ='".$prop['codmis']."' ";}
		if($prop['codubifis']){$criterio .= "  AND pn.codubifis ='".$prop['codubifis']."' ";}
		if($prop['coduniadm']){$criterio .= "  AND pn.minorguniadm||'-'||pn.ofiuniadm||'-'||pn.uniuniadm||'-'||pn.depuniadm||'-'||pn.prouniadm ='".$prop['coduniadm']."' ";}
		if($prop['mes']){$criterio .= "  AND DATE_PART('month',sv.fecsolvia) ='".$prop['mes']."' ";}
		if($prop['estsolvia']){$criterio .= "  AND sv.estsolvia ='".$prop['estsolvia']."' ";}
		if($prop['solviaext']){$criterio .= "  AND sv.solviaext ='".$prop['solviaext']."' ";}
		
		$prop['orden'] = $prop['orden']?$prop['orden']:'sv.codsolvia';
		
		$ls_sql=" 		
				SELECT dtp.codper,				       
					   
					   (CASE dtp.codnom WHEN NULL THEN  (ben.nombene||' '||ben.apebene)
									    WHEN '' THEN (ben.nombene||' '||ben.apebene) 
									    ELSE (p.nomper||' '||p.apeper) END) AS nomape,
					   
					   (CASE dtp.codnom WHEN NULL THEN ben.ced_bene
									    WHEN '' THEN ben.ced_bene
									    ELSE p.cedper END) AS cedper,
					   
					   (CASE dtp.codnom WHEN NULL THEN 'Foraneo (Benef.)'
									    WHEN '' THEN 'Foraneo (Benef.)'
									    ELSE (CASE n.racnom WHEN '1' THEN ac.denasicar ELSE ca.descar END) END) AS cargo,
					   									   					   				  
				       ua.desuniadm,uf.desubifis,
					   e_estsolvia.descequiv AS desc_estsolvia,
					   (CASE DATE_PART('month',sv.fecsolvia) WHEN '1' THEN 'enero' 
									  WHEN '2' THEN 'febrero'
									  WHEN '3' THEN 'marzo'
									  WHEN '4' THEN 'abril'
									  WHEN '5' THEN 'mayo'
									  WHEN '6' THEN 'junio'
									  WHEN '7' THEN 'julio'
									  WHEN '8' THEN 'agosto'
									  WHEN '9' THEN 'septiembre'
									  WHEN '10' THEN 'octubre'
									  WHEN '11' THEN 'noviembre'
									  WHEN '12' THEN 'diciembre'				      
									  ELSE 'numero de mes inválido' END) AS desmes,
					   (abs((sv.fecsalvia::date-sv.fecregvia::date)) + 1) as dias,
					   dtp.monpervia, pn.codnom,
					   'SCV-0'||lpad(sv.codsolvia,10,'0') AS codsolvia,
					   sv.fecsalvia,sv.fecregvia,sv.fecsolvia,
					   (SELECT DISTINCT ON(codrut) desrut
					  FROM scv_rutas rut
					 WHERE sv.codemp=rut.codemp
					   AND sv.codrut=rut.codrut
					 GROUP BY codrut,desrut) AS desrut,
					   mis.denmis
				FROM scv_dt_personal dtp
				INNER JOIN scv_solicitudviatico sv ON sv.codemp = dtp.codemp
									  AND sv.codsolvia = dtp.codsolvia
				LEFT JOIN sno_personalnomina pn ON pn.codemp = dtp.codemp
												AND pn.codper = lpad(dtp.codper,10,'0')
												AND pn.codnom = dtp.codnom
												AND pn.staper != '3'
				LEFT JOIN rpc_beneficiario ben ON dtp.codemp=ben.codemp
				                              AND dtp.codper=ben.ced_bene
				LEFT JOIN sno_personal p ON pn.codemp = p.codemp 
										 AND pn.codper = p.codper
				LEFT JOIN sno_nomina n ON n.codemp = pn.codemp
									   AND n.codnom = pn.codnom
							           AND n.espnom='0'
				LEFT JOIN sno_unidadadmin ua ON pn.codemp = ua.codemp
								  AND pn.minorguniadm = ua.minorguniadm
								  AND pn.ofiuniadm = ua.ofiuniadm
								  AND pn.uniuniadm = ua.uniuniadm
								  AND pn.depuniadm = ua.depuniadm
								  AND pn.prouniadm = ua.prouniadm
				LEFT JOIN scv_misiones mis ON mis.codemp = sv.codemp
								   AND mis.codmis = sv.codmis
				LEFT JOIN sno_cargo ca ON pn.codemp = ca.codemp
							  AND pn.codnom = ca.codnom
							  AND pn.codcar = ca.codcar
				LEFT JOIN sno_asignacioncargo ac ON pn.codemp = ac.codemp
								AND pn.codnom = ac.codnom
								AND pn.codasicar = ac.codasicar
				LEFT JOIN sno_ubicacionfisica uf ON pn.codemp = uf.codemp
								AND pn.codubifis = uf.codubifis
				LEFT JOIN covensol_sigesp_equiv e_estsolvia ON e_estsolvia.dominio='scv_solicitudviatico'
									   AND e_estsolvia.campo='estsolvia'
									   AND e_estsolvia.valor= sv.estsolvia::text
				WHERE dtp.codemp = '".$this->ls_codemp."'
				".$criterio."
				ORDER BY ".$prop['orden'].",sv.fecsolvia
		";
				
		$this->RsPerVia=$this->io_sql->select($ls_sql);
				
		if($this->RsPerVia===false)
		{
			$metodo = 'SelectInfoViaticoPersona';
			$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR->:</b><br>'.$this->io_sql->message;					
			$this->io_mensajes->message($mensaje);
			return false;					
		}	
		
		return $this->RsPerVia;
	}
	
	
	function EncabezadoDtRepRelViaPersona($parametro=array()){		
		
		$encabezado = '<p  style="text-align:center;"><table cellspacing="0" cellpadding="1" border="1">
					<thead>
						<tr bgcolor="'.$this->RepParam['encabezado2']['color_fondo'].'" color="'.$this->RepParam['encabezado2']['color_letra'].'" >
						  <td colspan="8" align="center" width="'.$this->RepParam['ancho']['total'].'">
							<font size="12">					            
								<b>DETALLE VIATICO POR PERSONA</b>								
							</font>
						  </td>
					   </tr>
						<tr bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" color="'.$this->RepParam['encabezado']['color_letra'].'" height="6">						
							<td align="center"  width="'.$this->RepParam['ancho'][1].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> VIATICO</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][2].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> PERSONA </font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][3].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> CARGO </font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][4].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> UBIC. </font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][5].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> FEC</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][6].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> DESCRIP</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][7].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> DÍAS</font></td>
							<td align="center"  width="'.$this->RepParam['ancho'][8].'" bgcolor="'.$this->RepParam['encabezado']['color_fondo'].'" ><font size="'.$this->RepParam['encabezado']['tamaño'].'"> MONTO</font></td>
						</tr>							
					</thead>';
					
		return $encabezado; 
	}
	
	function FinTablaRepRelViaPersona($datos=array()){
			
			$fin_tabla = '   <tr>
							   <td colspan="7"  width="'.($this->RepParam['ancho'][1]+$this->RepParam['ancho'][2]+$this->RepParam['ancho'][3]+$this->RepParam['ancho'][4]+$this->RepParam['ancho'][5]+$this->RepParam['ancho'][6]+$this->RepParam['ancho'][7]).'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> <b>TOTAL:</b></font>
							   </td>							  
							   <td width="'.($this->RepParam['ancho'][8]).'" align="right">
								 <font size="'.$this->RepParam['encabezado']['tamaño'].'"> '.number_format($this->total_rep,2,',','.').'</font>
							   </td>
							 </tr>							 
						   </table></p>';
			return $fin_tabla; 
	}
	
	function FilaDtRepRelViaPersona($datos){			
					
			$filas .= '<tr bgcolor="'.$this->RepParam['fila']['color_fondo'].'" color="'.$this->RepParam['fila']['color_letra'].'">																							
							<td width="'.$this->RepParam['ancho'][1].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.$this->InfoVia.'</font></td>
							<td width="'.$this->RepParam['ancho'][2].'" align="left" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.$this->DatosPersona.'</font></td>
							<td width="'.$this->RepParam['ancho'][3].'" align="left" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.$datos['cargo'].'</font></td>
							<td width="'.$this->RepParam['ancho'][4].'" align="left" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.$this->UbicPer.'</font></td>
					        <td width="'.$this->RepParam['ancho'][5].'" align="left" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.$this->FecRep.'</font></td>
							<td width="'.$this->RepParam['ancho'][6].'" align="left" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.trim($datos['denmis']).'<br />'.trim($datos['desrut']).'</font></td>
							<td width="'.$this->RepParam['ancho'][7].'" align="center" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['dias'],2,',','.').'</font></td>
							<td width="'.$this->RepParam['ancho'][8].'" align="right" bgcolor="'.$this->RepParam['fila']['color_fondo'].'"><font size="'.$this->RepParam['fila']['tamaño'].'">'.number_format($datos['monpervia'],2,',','.').'</font></td>
					 </tr>';
			
			return $filas;
	}
	
	
	function RepRelViaPersona($param=array()){			
			//$datos['fecsolviades'] = "01/06/2013";	
			//$datos['fecsolviahas'] = "30/06/2013";	
			$datos = $_GET;	
			if(!$datos['fecsolviades']){
			    $mensaje = "Debe seleccionar un rango de fechas !";
				$this->io_mensajes->message($mensaje);
				return false;
			}	
			
			$rep = $this->SelectInfoViaticoPersona($datos);	
			
			if($rep===false){return false;}			
			if(!$rep->RecordCount()){return "";}
			$filasREP = "";
			$this->total_rep=0;
			foreach($rep as $datosREP){	
			        $this->FecRep = '<b>Salida: </b>'.$this->io_conexiones->formatea_fecha_normal($datosREP['fecsalvia']).'<br />
					                 <b>Regreso: </b>'.$this->io_conexiones->formatea_fecha_normal($datosREP['fecregvia']).'<br />
									 <b>Viático: </b>'.$this->io_conexiones->formatea_fecha_normal($datosREP['fecsolvia']);
					$this->InfoVia = '<b>'.$datosREP['codsolvia'].'</b><br />
					                 <span style="color:#DD0000;">('.$datosREP['desc_estsolvia'].')</span>';
					$this->DatosPersona = $datosREP['nomape'].'<br />
					                       <b>Cédula: </b><span style="color:#0000FF;">'.$datosREP['cedper'].'</span>';										   
					$this->UbicPer = $datos['campoubic']=="UF"?trim(utf8_decode($datosREP['desubifis'])):trim(utf8_decode($datosREP['desuniadm']));				
					if($datosREP['estsolvia']!="A"){$this->total_rep += $datosREP['monpervia'];}
							        		
					$filasREP .= $this->FilaDtRepRelViaPersona($datosREP);	
					
			}
			
			$InfoREP = $this->EncabezadoDtRepRelViaPersona().$filasREP.$this->FinTablaRepRelViaPersona($datosREP);
			//echo $InfoREP;
			return $InfoREP;
	
	}

}
?>