<?php 


class covensol_snoh {

	function covensol_snoh($param=array())
	{
		
		global $ruta;		
		if($ruta==''){$ruta="../";}	
		
		require_once($ruta."shared/class_folder/sigesp_include_covensol.php");
		require_once($ruta."shared/class_folder/class_sql_covensol.php");
		require_once($ruta."shared/class_folder/class_mensajes.php");
		require_once($ruta."shared/class_folder/class_funciones.php");	
		require_once($ruta."shared/class_folder/class_fecha.php");
		require_once("config_snoh.php");
				
		$this->io_mensajes        = new class_mensajes();		
		$this->io_funciones       = new class_funciones();		
		$this->io_fecha           = new class_fecha();
		$io_conect	              = new sigesp_include_covensol();		
		$io_conexion       = $io_conect->uf_conectar_otra_bd($dbhistorica["hostname"],$dbhistorica["login"],$dbhistorica["password"],$dbhistorica["database"],$dbhistorica["gestor"],$dbhistorica["port"]); 
		$this->io_sql      = new class_sql_covensol($io_conexion);
		$ld_fecha=date("d-m-Y");		
		$ls_nombrearchivo         = "resultado/"."snoh_logs_".$ld_fecha.".txt";
		$this->lo_archivo         = @fopen("$ls_nombrearchivo","a+");
		$this->codemp = $_SESSION["la_empresa"]["codemp"];
		
		require_once($ruta."shared/class_folder/sigesp_conexiones.php");
		$this->io_conexiones=new conexiones();
		
	}// end function 

    function log_txt($texto){
		if($this->lo_archivo){@fwrite($this->lo_archivo," \r\n".date('H:i:s').'.- '.$texto." \r\n");}
	}
	
	
	function consulta_resumen_neto($prop=array()){
				
			    $sql_criterio='';
				if(!$prop['cedper'] and !$prop['codper']){
				    $mensaje='Falta el Criterio de Búsqueda del personal!';
					if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
					$this->io_mensajes->message($mensaje);
					return false;
				
				}
				
				if($prop['cedper']){$sql_criterio .= " AND p.cedper='".$prop['cedper']."' ";}	
				if($prop['codper']){$sql_criterio .= " AND p.codper='".$prop['codper']."' ";}
				if($prop['anodes'] or $prop['anohas']){				    
					$prop['anohas'] = $prop['anohas']?$prop['anohas']:$prop['anodes'];
					$prop['anodes'] = $prop['anodes']?$prop['anodes']:$prop['anohas'];
					$sql_criterio .= " AND r.anocur>='".$prop['anodes']."' AND r.anocur<='".$prop['anohas']."' ";				
				}
					
				$ls_sql = " SELECT r.anocur AS anonom,* 
				            FROM sno_hresumen r
							INNER JOIN sno_hnomina n ON r.codnom = n.codnom 
							                          AND r.codemp = n.codemp 
													  AND r.codperi = n.peractnom 
													  AND r.anocur = n.anocurnom
							INNER JOIN sno_personal p ON r.codper = p.codper 
							                          AND r.codemp = p.codemp
							INNER JOIN sno_hperiodo hp ON r.codemp = hp.codemp
													   AND r.codnom = hp.codnom
													   AND r.anocur = hp.anocur
													   AND r.codperi = hp.codperi						
						    WHERE p.nomper ILIKE'%%' ".$sql_criterio."
							  AND r.monnetres<>0 
							ORDER BY r.anocur,fechasper,r.codperi
							";
							 
							 				
				$this->rs_resumen=$this->io_sql->select($ls_sql);
				//echo $ls_sql.'<br>';
				if($this->rs_resumen==false){
					
					$metodo = 'consulta_resumen_neto';
					$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;
					if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
					$this->io_mensajes->message($mensaje);
					return false;
					
				}
				
				return $this->rs_resumen;
		
	}
	
	function consulta_neto($prop=array()){
				
			    
				if(!$prop['codnom'] or !$prop['codperi'] or !$prop['codper'] or !$prop['anocur']){
				    $mensaje='Faltan datos para realizar la consulta del neto !';
					if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
					$this->io_mensajes->message($mensaje);
				
				}
				
				$ls_sql = " SELECT pn.codper, nomper, apeper, sueper,monnetres,
								   pn.anocur,u.desuniadm,hc.descar,hrac.denasicar,hp.fecdesper,hp.fechasper,hb.nomban,tp.dentippersss,
								   r.*,p.*,pn.*,pn.fecingper as fecingnom, p.fecingper as fecinginst
							FROM sno_hpersonalnomina pn
							INNER JOIN sno_personal p ON p.codemp=pn.codemp AND p.codper=pn.codper
							INNER JOIN sno_tipopersonalsss tp ON  tp.codemp=p.codemp  
															  AND tp.codtippersss = p.codtippersss
							INNER JOIN sno_hresumen r ON r.codemp=pn.codemp 
													   AND r.codnom=pn.codnom 
													   AND r.anocur=pn.anocur 
													   AND r.codperi=pn.codperi 
													   AND r.codper=pn.codper 
							INNER JOIN sno_hunidadadmin u ON pn.codemp = u.codemp
											  AND pn.anocur = u.anocur
											  AND pn.codperi = u.codperi
											  AND pn.codnom = u.codnom
											  AND pn.minorguniadm = u.minorguniadm
											  AND pn.ofiuniadm = u.ofiuniadm
											  AND pn.uniuniadm = u.uniuniadm
											  AND pn.depuniadm = u.depuniadm
											  AND pn.prouniadm = u.prouniadm
							INNER JOIN sno_hcargo hc ON pn.codemp = hc.codemp
										AND pn.codnom = hc.codnom
										AND pn.anocur = hc.anocur
										AND pn.codcar = hc.codcar
										AND pn.codperi = hc.codperi
							INNER JOIN sno_hasignacioncargo hrac ON pn.codemp = hrac.codemp
												 AND pn.codnom = hrac.codnom
												 AND pn.anocur = hrac.anocur
												 AND pn.codasicar = hrac.codasicar
												 AND pn.codperi = hrac.codperi
							INNER JOIN sno_hperiodo hp ON pn.codemp = hp.codemp
													   AND pn.codnom = hp.codnom
													   AND pn.anocur = hp.anocur
													   AND pn.codperi = hp.codperi
							LEFT JOIN scb_hbanco hb ON hb.codemp = pn.codemp
 													 AND hb.anocur = pn.anocur
													 AND hb.codban = pn.codban						                        
							WHERE r.codnom = '".$prop['codnom']."'
							AND r.codperi = '".$prop['codperi']."'
							AND r.codper = '".$prop['codper']."'
							AND r.anocur='".$prop['anocur']."' ";
							 
							 				
				$this->rs_resumen=$this->io_sql->select($ls_sql);
				//echo $ls_sql.'<br>';
				if($this->rs_resumen==false){
					
					$metodo = 'consulta_neto';
					$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;
					if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
					$this->io_mensajes->message($mensaje);
					return false;
					
				}
				
				return $this->rs_resumen;
		
	}
	
	function consulta_conceptos_neto($prop=array()){
				
			    
				if(!$prop['codnom'] or !$prop['codperi'] or !$prop['codper'] or !$prop['anocur']){
				    $mensaje='Faltan datos para realizar la consulta de los conceptos !';
					if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
					$this->io_mensajes->message($mensaje);
				
				}
				
				$ls_sql = " SELECT *
							FROM sno_hsalida s
							INNER JOIN sno_hconcepto c ON c.codemp=s.codemp 
													   AND c.codnom=s.codnom 
										               AND c.anocur=s.anocur 
										               AND c.codperi=s.codperi 
                           							   AND c.codconc=s.codconc 					                        
							WHERE (  s.tipsal='A' OR s.tipsal='V1' OR s.tipsal='W1' OR  
									 s.tipsal='D' OR s.tipsal='V2' OR s.tipsal='W2' OR  
									 s.tipsal='P1' OR s.tipsal='V3' OR s.tipsal='W3')
							AND valsal<>0
							AND s.codnom = '".$prop['codnom']."'
							AND s.codperi = '".$prop['codperi']."'
							AND s.codper = '".$prop['codper']."'
							AND s.anocur='".$prop['anocur']."' ";
							 
					$this->rs_conc=$this->io_sql->select($ls_sql);
				//echo $ls_sql.'<br>';
				if($this->rs_conc==false){
					
					$metodo = 'consulta_conceptos_neto';
					$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;
					if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
					$this->io_mensajes->message($mensaje);
					return false;
					
				}
				
				return $this->rs_conc;
		
	}
	
	
	function combo_anosnom($nombre){

				$ls_sql=" SELECT DISTINCT anocur FROM sno_hperiodo ORDER BY anocur";
				$resp=$this->io_sql->select($ls_sql);			
				if($resp==false){					
					$metodo = 'combo_anosnom';
					$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;
					if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
					$this->io_mensajes->message($mensaje);
					return false;					
				}
				
				$combo = '<select name="'.$nombre.'" id="'.$nombre.'">
				              <option value="">- -</option>';
				
				foreach($resp as $dato) { 				
					$combo .= '<option value="'.$dato["anocur"].'">'.$dato["anocur"].'</option>';								
				}
				$combo .= '</select>';
																							
				return $combo;
	}
	
	
	function consulta_personal_historico($prop=array()){
																			
			if($prop['cedper']){$sql_criterio = " AND cedper ILIKE'%".$prop['cedper']."%' ";}
			
			$ls_sql = " SELECT codper, nomper||' '||apeper AS nombre 
						FROM sno_personal
						WHERE (nomper ILIKE'%".$prop['nombre']."%' OR apeper ILIKE'%".$prop['nombre']."%')				
					".$sql_criterio;
						 
										
			$this->rs_personal=$this->io_sql->select($ls_sql);
			//echo $ls_sql.'<br>';
			if($this->rs_personal==false){
				
				$metodo = 'consulta_personal_historico';
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;
				if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
				$this->io_mensajes->message($mensaje);
				return false;
				
			}
			
			return $this->rs_personal;
		
	}
	
	function ConsultaFideicomisoPersonal($prop=array()){
																			
			
			
			$ls_sql = "	
						SELECT round((sum(s.valsal)/12/30)::numeric,2) as sueintdia, 
							   round((sum(s.valsal)/12)::numeric,2) as sueintmen,
							   (SELECT abs(EXTRACT(YEAR from (AGE('".$prop['fechasper']."',fecingper)))) AS anos 
							   FROM sno_personal WHERE codper='".$prop['codper']."')::integer as antiguedad,
							   (CASE WHEN (SELECT fecingper FROM sno_personal WHERE codper='".$prop['codper']."')<='1997-06-01' THEN '1997-06-01'
									ELSE (SELECT fecingper FROM sno_personal WHERE codper='".$prop['codper']."')
								END) AS fecinperfid,
								(CASE WHEN (SELECT abs(EXTRACT(YEAR from (AGE('".$prop['fechasper']."',fecingper)))) AS anos FROM sno_personal WHERE codper='".$prop['codper']."')::integer >=15 THEN 15 
									 ELSE (SELECT abs(EXTRACT(YEAR from (AGE('".$prop['fechasper']."',fecingper)))) AS anos FROM sno_personal WHERE codper='".$prop['codper']."')::integer
								END) AS antiguedadfid              
						FROM sno_hsalida s
						INNER JOIN sno_hconcepto c ON c.codemp=s.codemp 
									  AND c.codnom=s.codnom 
									  AND c.anocur=s.anocur 
									  AND c.codperi=s.codperi 
									  AND c.codconc=s.codconc 
						INNER JOIN sno_hperiodo hp ON s.codemp = hp.codemp
									   AND s.codnom = hp.codnom
									   AND s.anocur = hp.anocur
									   AND s.codperi = hp.codperi					                        
						WHERE s.tipsal='A'
						AND valsal<>0
						AND codper='".$prop['codper']."'
						AND (sueintcon=1 OR persalnor='1')
						AND fecdesper >= calcular_fec_ano_anterior('".$prop['fechasper']."')
						AND fechasper < '".substr($prop['fechasper'],0,7)."-01'		
					  ";
						 
										
			$rs=$this->io_sql->select($ls_sql);
			//echo $ls_sql.'<br>';
			if($rs==false){
				
				$metodo = 'ConsultaFideicomisoPersonal';
				$mensaje = '<b>CLASE:</b> '.get_class($this).' <br><b>METODO:</b> '.$metodo.' <br><b>ERROR-></b><br>'.$this->io_sql->message;
				if($this->conecajax==1){$this->io_conexiones->mensajes_ajax($mensaje);}					
				$this->io_mensajes->message($mensaje);
				return false;
				
			}
			
			return $rs;
		
	}
	

}



?>