<?php

//Clase de mANTENIMIENTO NOMINA
class clase{
  	var  $no_reg = '0';
	var  $nom_tabla = '0';
  	var  $cve_nomi = '0';
	var  $no_nomi = '0';
	var  $no_nomina = '0';
	var  $operac = '0';
	var  $no_pd = '0';
	var  $can_mov = '0';
	var  $imp_mov = '0';
	var  $cve_mae = '0';
	var  $imp_gra_isp = '0';
	var  $imp_exe_isp = '0';
	var  $imp_gra_ims = '0';
	var  $imp_exe_ims = '0';
	var  $inf_perc = '0';
	var  $no_depto = '0';
	var  $area = '0';
	var  $usuario = '0';
	var  $axo_pro = '0';
	var  $mes_pro = '0';	
	//constructor
	function clase($nomtabla,$axopro,$mespro,$cvenomi,$nonomi,$nonomina,$usu){
		$this->cve_nomi = $cvenomi;
		$this->nom_tabla = $nomtabla;
		$this->no_nomi = $nonomi;
		$this->no_nomina = $nonomina;
		$this->usuario = $usu;
		$this->axo_pro = $axopro;
		$this->mes_pro = $mespro;
	}
	
	//Funcion cuenta registros	
	function conReg(){
		$sql = "SELECT count(*) FROM $this->nom_tabla WHERE cve_nomi = '$this->cve_nomi' and no_nomi = '$this->no_nomi' and axo_pro ='$this->axo_pro' and mes_pro='$this->mes_pro' ";
	   	$result = mysqli_query($GLOBALS['con'] ,$sql);
	   	$num_salidas=mysqli_num_rows($result); 
		if($num_salidas>=0){
			return $num_salidas;
		}else{
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
			return "$error()";  
		}
	}

	//Funcion de Agregar
	function agregar($operac,$no_pd,$can_mov,$imp_mov,$cve_mae,$imp_gra_isp,$imp_exe_isp,$imp_gra_ims,$imp_exe_ims,$inf_perc,$no_depto,$area){
		$sql = "insert into $this->nom_tabla (cve_nomi, no_nomi, no_nomina, operac, no_pd, can_mov, imp_mov, cve_mae, imp_gra_isp, imp_exe_isp, imp_gra_ims, imp_exe_ims, inf_perc, no_depto, area, axo_pro, mes_pro, fec_acc, hor_acc, usuario) values('$this->cve_nomi', '$this->no_nomi', '$this->no_nomina', '$operac', '$no_pd', '$can_mov', '$imp_mov', '$cve_mae', '$imp_gra_isp', '$imp_exe_isp', '$imp_gra_ims', '$imp_exe_ims', '$inf_perc', '$no_depto','$area','$this->axo_pro','$this->mes_pro','" .date('Y-m-d'). "','".date('H:i:s')."','$this->usuario')";
	   	$result = mysqli_query($GLOBALS['con'] ,$sql);
		if ($result){
			return "ok";
		}else{
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
			return "$error()";  
		}
	}
	
	//Funcion de Lista Completa
	function listaElem(){
		//$sql = "SELECT * FROM $this->nom_tabla WHERE cve_nomi = '$this->cve_nomi' and no_nomi = '$this->no_nomi' and axo_pro ='$this->axo_pro' and mes_pro='$this->mes_pro' group by no_nomina ";
		$sql="select dndatnom.* from dndatnom INNER JOIN dnnomina ON(dnnomina.no_nomina = dndatnom.no_nom) INNER JOIN dntrab_a ON (dnnomina.no_nomina = dntrab_a.no_trab) where dnnomina.cve_nomi = '$this->cve_nomi' and dnnomina.no_nomi = '$this->no_nomi' and dnnomina.axo_pro ='$this->axo_pro' and dnnomina.mes_pro='$this->mes_pro'  group by dnnomina.no_nomina order by dndatnom.depto, dntrab_a.no_nom ";
		$lista = mysqli_query($GLOBALS['con'] ,$sql);
		if ($lista)
			return $lista;
		else
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
		return "$error()";  
	}
	
	function listaElemEmp(){
		//$sql = "SELECT * FROM $this->nom_tabla WHERE cve_nomi = '$this->cve_nomi' and no_nomi = '$this->no_nomi' and axo_pro ='$this->axo_pro' and mes_pro='$this->mes_pro' group by no_nomina ";
		$sql="select dndatnom.* from dndatnom INNER JOIN dnnomina ON(dnnomina.no_nomina = dndatnom.no_nom) INNER JOIN dntrab_a ON (dnnomina.no_nomina = dntrab_a.no_trab) where dnnomina.cve_nomi = '$this->cve_nomi' and dnnomina.no_nomi = '$this->no_nomi' and dnnomina.axo_pro ='$this->axo_pro' and dnnomina.mes_pro='$this->mes_pro'  group by dnnomina.no_nomina order by dntrab_a.no_nom ";
		$lista = mysqli_query($GLOBALS['con'] ,$sql);
		if ($lista)
			return $lista;
		else
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
		return "$error()";  
	}
//Funcion de Lista con Busqueda
	function listaBusq(){
		$sql = "SELECT * FROM $this->nom_tabla WHERE cve_nomi = '$this->cve_nomi' and no_nomi = '$this->no_nomi' and no_nomina = '$this->no_nomina' and axo_pro ='$this->axo_pro' and mes_pro='$this->mes_pro' order by operac asc, no_pd asc";
		$lista = mysqli_query($GLOBALS['con'] ,$sql);
		if ($lista)
			return $lista;
		else
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
		return "$error()";   
	}
	//Funcion de lista con busqueda registro
	function lstBusqElem($noreg){
		$sql = "SELECT * FROM $this->nom_tabla WHERE cve_nomi = '$this->cve_nomi' and no_nomi = '$this->no_nomi' and no_nomina = '$this->no_nomina' and no_reg='$noreg' and axo_pro ='$this->axo_pro' and mes_pro='$this->mes_pro'";
		$lista = mysqli_query($GLOBALS['con'] ,$sql);
		if ($lista)
			return $lista;
		else
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
		return "$error()";   
	}
//Funcion de Modificar
	function modifica($noreg,$operac,$no_pd,$can_mov,$imp_mov,$cve_mae,$imp_gra_isp,$imp_exe_isp,$imp_gra_ims,$imp_exe_ims,$inf_perc,$no_depto,$area){
		$sql = "update $this->nom_tabla set operac = '$operac', no_pd = '$no_pd', can_mov = '$can_mov', imp_mov = '$imp_mov', cve_mae = '$cve_mae', imp_gra_isp = '$imp_gra_isp', imp_exe_isp = '$imp_exe_isp', imp_gra_ims = '$imp_gra_ims', imp_exe_ims = '$imp_exe_ims', inf_perc = '$inf_perc', no_depto = '$no_depto', area = '$area', fec_acc ='" .date('Y-m-d'). "',hor_acc='".date('H:i:s')."',usuario='$this->usuario' where no_reg = '$noreg' and axo_pro = '$this->axo_pro' and mes_pro = '$this->mes_pro'";
		$result= mysqli_query($GLOBALS['con'] ,$sql);
		if($result){
			return "ok";
		}else{
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
			return "$error()"; 
		}
	}
//Funcion de eliminar
	function eliminar($noreg){   
		$sql = "DELETE FROM $this->nom_tabla WHERE cve_nomi = '$this->cve_nomi' and no_nomi = '$this->no_nomi' and no_nomina = '$this->no_nomina' and no_reg = '$noreg' and axo_pro ='$this->axo_pro' and mes_pro='$this->mes_pro'";
		$resultado = mysqli_query($GLOBALS['con'] ,$sql);
		if($resultado)
			return "ok";
		else
			$error = 'Error N:' . mysqli_errno($GLOBALS['con']) . ": " . mysqli_error($GLOBALS['con']);
			return "$error()";         
	}
	
	function modEmp($emp){
		$this->no_nomina=$emp;
	}  
	function getEmp(){
		return $this->no_nomina;
	}
	
	function getDataEmp(){
		$noPeriodo=$this->no_nomi;//no_nomi en dncageno
		$idNomina=$this->cve_nomi;//cve_nomi en dncageno, NOTA: NO ES EL ID DE EMPLEADO
		$idEmp=$this->no_nomina;//no_trab en dntrab_a y no_nom en las demas tablas, NOTA: ESTE SI ES EL ID DE EMPLEADO
		$tipMov=array(	"TN"=>array("nomCam"=>"tip_nom","des"=>"TIPO DE NOMINA"),
						"FA"=>array("nomCam"=>"fec_ini_even","des"=>"FECHA DE ALTA"),
						"FB"=>array("nomCam"=>"fec_fin_even","des"=>"FECHA DE BAJA"),
						"SA"=>array("nomCam"=>"sal_diario","des"=>"SALARIO"),
						"DE"=>array("nomCam"=>"depto","des"=>"DEPARTAMENTO"),
						"PU"=>array("nomCam"=>"puesto","des"=>"PUESTO"),
						"NE"=>array("nomCam"=>"niv_emp","des"=>"NIVEL DE EMPLEADO"),
						"TE"=>array("nomCam"=>"tip_emp","des"=>"TIPO DE EMPLEADO"));
		$dt_cageno=mysqli_fetch_array(mysqli_query($GLOBALS['con'] ,"SELECT * FROM dncageno where no_nomi='$noPeriodo' && cve_nomi='$idNomina'"));
		//echo "SELECT * FROM dncageno where no_nomi='$noPeriodo' && cve_nomi='$idNomina'<br>";
		foreach($tipMov as $imov=>$valor){
			$mov=$imov;
			$nomCam=$valor['nomCam'];
			$desCam=$valor['des'];
			/*$sq_hisempnom=mysqli_query($GLOBALS['con'] ,"SELECT * FROM dnhisempnom where no_nom='$idEmp' && fec between '".$dt_cageno['fec_ini']."' && '".$dt_cageno['fec_fin']."' && tip_mov='$mov' order by fec desc,no_reg desc limit 1");
			if(mysqli_num_rows($sq_hisempnom)>0){
				$dt_hisempnom=mysqli_fetch_array($sq_hisempnom);
			}
			else{*/
				$dt_hisempnom=mysqli_fetch_array(mysqli_query($GLOBALS['con'] ,"SELECT * FROM dnhisempnom where no_nom='$idEmp' && tip_mov='$mov' && fec<='".$dt_cageno['fec_ini']."' order by fec desc,no_reg desc limit 1"));
				//echo "SELECT * FROM dnhisempnom where no_nom='$idEmp' && tip_mov='$mov' && fec<='".$dt_cageno['fec_ini']."' order by fec desc,no_reg desc limit 1<br>";
			//}
			if($mov=="SA"){
				$finArr[$nomCam]=$dt_hisempnom[$nomCam];
				$finArr['tip_sal']=$dt_hisempnom['tip_sal'];
				$finArr['dias_mes']=$dt_hisempnom['dias_mes'];
				$finArr['sdo_mensual']=$dt_hisempnom['sdo_mensual'];
				$finArr['factor']=$dt_hisempnom['factor'];
				$finArr['imp_factor']=$dt_hisempnom['imp_factor'];
				$finArr['variable']=$dt_hisempnom['variable'];
				$finArr['sal_int']=$dt_hisempnom['sal_int'];
				$finArr['sdo_mensual']=$dt_hisempnom['sdo_mensual'];
			}else{
				$finArr[$nomCam]=$dt_hisempnom[$nomCam];		
			}
			$dt_hisempnom=NULL;
		}
		return $finArr;
	}    
}       
?>