<?php
/**
 * Clase DP para CrPlanillaDP
 *
 * @package    
 * @subpackage CrPlanillaDP
 * @author     Willy
 * @version    SVN:: CrPlanillaDP.class.php,v 1.1 2014-03-11 18:51:03 william.taype Exp $
 */
class CrPlanillaDP extends BaseCrPlanillaDP
{
	private $diasLaborables	= 30;
	private $sueldoBasico	= 1025 ;
	
	public function getPlanilla($a_con_ingresos,$a_con_descuentos,$a_con_aportes,$a_con_otros,$a_con_header){
		
		
		if($this->getIdColaborador() == "67"){
			 "entro";
		}
		//reset($a_con_ingresos);
		foreach ($a_con_ingresos as $key =>$o_con_ingresos){
			switch($o_con_ingresos->getCodigo()){
				case "[REMUN]": $monto = $this->getRemuneracion();break;
				case "[BIAT]": $monto =($this->getPlanillaTemporalExiste($o_con_ingresos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_ingresos->getIdConcepto()):$this->getBiaticos();/*$this->getRemuneracionBasica();*/break;
				case "[RBASICA]": $monto = ($this->getPlanillaTemporalExiste($o_con_ingresos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_ingresos->getIdConcepto()):$this->getRemuneracionBasica();/*$this->getRemuneracionBasica();*/break;
				case "[ASIG_FAM]": $monto = ($this->getPlanillaTemporalExiste($o_con_ingresos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_ingresos->getIdConcepto()):$this->getAsignacionFamiliar($this->getIdColaborador());break;
				case "[BONO]": $monto = $this->getPlanillaTemporal($o_con_ingresos->getIdConcepto());break;
				//Para lectura
				case "[VACACION]": $monto = $this->getPlanillaTemporal($o_con_ingresos->getIdConcepto());break;
			}
			$a_conceptos_valor[$o_con_ingresos->getCodigo()] = $monto;
		}	
		$this->setConceptosValor($a_conceptos_valor);
		//reset($a_con_descuentos);
		foreach ($a_con_descuentos as $key =>$o_con_descuentos){
			$monto = '0.00';
			switch($o_con_descuentos->getCodigo()){
				case "[ADEL]": $monto = ($this->getPlanillaTemporalExiste($o_con_descuentos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_descuentos->getIdConcepto()):$this->getAdelanto($this->getIdColaborador());/*$this->getRemuneracionBasica();*/break;
				case "[FALT]": $monto = ($this->getPlanillaTemporalExiste($o_con_descuentos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_descuentos->getIdConcepto()):$this->getFalta($this->getIdColaborador());/*$this->getRemuneracionBasica();*/break;
				case "[FALTANTES]": $monto = ($this->getPlanillaTemporalExiste($o_con_descuentos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_descuentos->getIdConcepto()):$this->getFaltantes($this->getIdColaborador());/*$this->getRemuneracionBasica();*/break;
				
				case "[TARD]": $monto = $monto = ($this->getPlanillaTemporalExiste($o_con_descuentos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_descuentos->getIdConcepto()):$this->getTardanza($this->getIdColaborador());/*$this->getRemuneracionBasica();*/;break;
				case "[COMRPM]": $monto = $this->getRpm($this->getIdColaborador());break;
				case "[T.AFP]": $monto = $this->getPlanillaTemporal($o_con_descuentos->getIdConcepto());/*$this->getTotalAFP();*/break;
				case "[T.ONP]": $monto = ($this->getPlanillaTemporalExiste($o_con_descuentos->getIdConcepto())==true)?$this->getPlanillaTemporal($o_con_descuentos->getIdConcepto()):$this->getONP();/*$this->getRemuneracionBasica();*/break;
				
				
				case "[T.AFP_COM]": $monto =$this->getAFPComision();break;
				case "[T.AFP_SEG]": $monto =$this->getAFPSeguro();break;
				case "[T.AFP_PEN]": $monto = $this->getAFPPension();break;
				
				case "[PRESTAMO]": $monto = $this->getPlanillaTemporal($o_con_descuentos->getIdConcepto());break;
				
			}
			$a_conceptos_valor[$o_con_descuentos->getCodigo()] = $monto;
		}
		$this->setConceptosValor($a_conceptos_valor);
		//reset($a_con_descuentos);
		foreach ($a_con_aportes as $key =>$o_con_aportes){
			switch($o_con_aportes->getCodigo()){
				case "[ESSALUD]": $monto = ($this->getPlanillaTemporal($o_con_aportes->getIdConcepto())>0)?$this->getPlanillaTemporal($o_con_aportes->getIdConcepto()):$this->getEssalud($this->getIdColaborador());/*$this->getRemuneracionBasica();*/break;
				case "[SIS]": $monto = ($this->getPlanillaTemporal($o_con_aportes->getIdConcepto())>0)?$this->getPlanillaTemporal($o_con_aportes->getIdConcepto()):$this->getSis($this->getIdColaborador());/*$this->getRemuneracionBasica();*/break;
			}
			$a_conceptos_valor[$o_con_aportes->getCodigo()] = $monto;
		}
		$this->setConceptosValor($a_conceptos_valor);
		//reset($a_con_descuentos);
		foreach ($a_con_otros as $key =>$o_con_otros){
			switch($o_con_otros->getCodigo()){
				case "[NRO_TARD]": $valor = $this->getNTardanza($this->getIdColaborador());break;
				case "[NRO_FALT]": $valor = $this->getNFalta($this->getIdColaborador());break;
			}
			$a_conceptos_valor[$o_con_otros->getCodigo()] = $valor;
		}
		$this->setConceptosValor($a_conceptos_valor);
		foreach ($a_con_header as $key =>$o_con_header){
			switch($o_con_header->getCodigo()){
				case "[N.COMPANIA]"	: $valor = $this->getNCompania();break;
				case "[RUTA_LOGO]"	: $valor = $this->getLogocompania();break;
				case "[N.RUC]"		: $valor = $this->getNRUC();break;
				case "[AFP_NOMBRE]"		: $valor = $this->getNombreAFP($this->getIdColaborador());break;
				case "[DNI_COL]"		: $valor = $this->getDNI($this->getIdColaborador());break;
				case "[FECHAING_COL]"	: $valor = ($this->getPlanillaTemporal($o_con_header->getIdConcepto())>0)?$this->getPlanillaTemporal($o_con_header->getIdConcepto()):$this->getFechaIngreso();break;
				case "[DIAS_LAB]"	: $valor = ($this->getPlanillaTemporal($o_con_header->getIdConcepto())>0)?$this->getPlanillaTemporal($o_con_header->getIdConcepto()):$this->getDiasLaborables();break;
				case "[DIAS_NO_LAB]"	: $valor = ($this->getPlanillaTemporal($o_con_header->getIdConcepto())>0)?$this->getPlanillaTemporal($o_con_header->getIdConcepto()):$this->getDiasNoLaborables();break;
				case "[HORAS_NORMALES]"	: $valor = ($this->getPlanillaTemporal($o_con_header->getIdConcepto())>0)?$this->getPlanillaTemporal($o_con_header->getIdConcepto()):$this->getHorasNormales();break;
				case "[HORAS_SOBRETIEMPO]"	: $valor = ($this->getPlanillaTemporal($o_con_header->getIdConcepto())>0)?$this->getPlanillaTemporal($o_con_header->getIdConcepto()):$this->getHorasSobretiempo();break;
				case "[PEN_TIPO]"	: $valor = $this->getPensionTipo($this->getIdColaborador());break;
				case "[PEN_NUMERO]"	: $valor = $this->getNumeroPension($this->getIdColaborador());break;
				case "[SEG_NUMERO]"	: $valor = $this->getNumeroSeguro($this->getIdColaborador());break;
				case "[SEG_TIPO]"	: $valor = $this->getSeguroTipo($this->getIdColaborador());break;
				case "[SUELDO]"	: $valor = $this->getSueldo($this->getIdColaborador());break;
			}
			$a_conceptos_valor[$o_con_header->getCodigo()] = $valor;
		}
		$this->setConceptosValor($a_conceptos_valor);
		return $a_conceptos_valor;
	}
	
	public function getAFPComision(){
		$a_por = $this->getPorcentajesAFP();
		$totalIngresos = $this->getTotalIngresos();
		$montoComision =  round($a_por['comision'] * $totalIngresos,2);
		return $montoComision;
		
	}
	
	public function getAFPSeguro(){
		$a_por = $this->getPorcentajesAFP();
		$totalIngresos = $this->getTotalIngresos();
		if($a_por['Tipo'] == "flujo"){	
			if($totalIngresos <= $a_por['RMA']){
				$montoSeguro =  $a_por['seguro'] * $a_por['RMA'];
			}else{
				$montoSeguro =  $a_por['seguro'] * $totalIngresos;
			}
		}else{
			$montoSeguro =  round($a_por['seguro'] * $totalIngresos,2);	
		}
		return $montoSeguro;
	}
	
	public function getAFPPension(){
		$a_por = $this->getPorcentajesAFP();
		$totalIngresos = $this->getTotalIngresos();
		$montoPension =  round($a_por['pension'] * $totalIngresos,2);
		return $montoPension;
	}
	
	public function getPlanillaTemporalExiste($concepto){
		if($this->getPeriodo()){ $where .= " AND Periodo = '".$this->getPeriodo()."'"; }
		if($this->getIdColaborador()){ $where .= " AND idColaborador = '".$this->getIdColaborador()."'"; }
		if($concepto){ $where .= " AND IdConcepto = '".$concepto."'"; }
	      
		$con = Conexion::getConexion();
		$sql = "SELECT Valor FROM cr_planilla_temp WHERE 1 ".$where." ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			  return true;
		}else{
			return false;
		}
	}
	
	public function getPlanillaTemporal($concepto){
		if($this->getPeriodo()){ $where .= " AND Periodo = '".$this->getPeriodo()."'"; }
		if($this->getIdColaborador()){ $where .= " AND idColaborador = '".$this->getIdColaborador()."'"; }
		if($concepto){ $where .= " AND IdConcepto = '".$concepto."'"; }
	      
		$con = Conexion::getConexion();
		$sql = "SELECT Valor FROM cr_planilla_temp WHERE 1 ".$where." ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  return $o_valor->Valor;
			}
		}
	}
		
	public function getRemuneracion(){
			
	      if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
	      
	      $con = Conexion::getConexion();
	      $sql = "SELECT Sueldo FROM cr_colaborador WHERE 1 ".$where." ";
	       
	       $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	      $num_rows = mysql_num_rows($result);
	      $a_tmp = array();
	      if($num_rows>0){
	        while ($o_valor = mysql_fetch_object($result)) {
	          return $o_valor->Sueldo;
	        }
	      }
	}
	public function getEssalud(){
			
		
	      if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
	      
	      $con = Conexion::getConexion();
	      $sql = "SELECT TipoSeguro FROM cr_colaborador WHERE 1 ".$where." AND TipoSeguro = 'ESSALUD' ";
	      //if($this->getIdColaborador() == 39)    echo $sql;
	       $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	      $num_rows = mysql_num_rows($result);
	      $a_tmp = array();
	      if($num_rows>0){
	      	$remuneracionBasica = $this->getConceptoPlanilla('[RBASICA]');
	      	//if($this->getIdColaborador() == 39)  echo $parametro_essalud."##";
	      	
	      	$parametro_essalud = $this->getParametroPlanilla('[P_ESSALUD]');
	      	//--view
	      	return round($remuneracionBasica*$parametro_essalud,2);
	      }
	}
	
	public function getSis(){
			
	      if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
	      
	      $con = Conexion::getConexion();
	      $sql = "SELECT TipoSeguro FROM cr_colaborador WHERE 1 ".$where." AND TipoSeguro = 'SIS' ";
	      //echo $sql;
	       $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	      $num_rows = mysql_num_rows($result);
	      $a_tmp = array();
	            
	      if($num_rows>0){
	      	$remuneracionBasica = $this->getConceptoPlanilla('[RBASICA]');
	      	$parametro_sis = $this->getParametroPlanilla('[P_SIS]');
	        return round($remuneracionBasica*$parametro_sis,2);
	      }
	}
	
	public function getParametroPlanilla($codigo){
		
		$con = Conexion::getConexion();
	    $sql = "SELECT Formula FROM cr_planilla_concepto WHERE 1 ".$where." AND Codigo = '".$codigo."' and Tipo = 'P'";
	    
	   $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	      $num_rows = mysql_num_rows($result);
	    
	      if($num_rows>0){
	        while ($o_valor = mysql_fetch_object($result)) {
	          return $o_valor->Formula;
	        }
	      }
	}
	
	public function getConceptoPlanilla($codigo){
		
		$con = Conexion::getConexion();
	    $sql = "SELECT Formula FROM cr_planilla_concepto WHERE 1 ".$where." AND Codigo = '".$codigo."' and Tipo = 'CAL'";
	    
	 $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	      $num_rows = mysql_num_rows($result);
	    
	      if($num_rows>0){
	        while ($o_valor = mysql_fetch_object($result)) {
	          return $o_valor->Formula;
	        }
	      }
	}
	
	public function getBiaticos(){
			
	     	      
	      $remuneracion = $this->getRemuneracion();
	      $remuneracionBasica = $this->getRemuneracionBasicaPre();
		  
	      if($remuneracionBasica > $this->sueldoBasico){
			
	      	$Biatico = $remuneracionBasica-$this->sueldoBasico;
			if($this->getIdColaborador() == 60 ){
			//echo $Biatico."------------";
			}
	      }else
	      	$Biatico = 0;
	      return $Biatico;
	}
	
	public function getRemuneracionBasicaPre(){
	     $diaslaborables = $this->getDiasLaborables();  
	    $remuneracion 	= $this->getRemuneracion();
	    if($this->getIdColaborador()){
	    	
	    }
		return ($remuneracion/$this->diasLaborables)*$diaslaborables;
	}
	
	public function getRemuneracionBasica(){
	    $diaslaborables = $this->getDiasLaborables();  
	    $remuneracion 	= $this->getRemuneracionBasicaPre();
	    if($remuneracion >= $this->sueldoBasico){
	    	$remuneracion =  $this->sueldoBasico;
	    }
		return $remuneracion;
	}
	public function getDiasNoLaborables(){
		return 30 - $this->getDiasLaborables();
	}
	
	public function getHorasSobretiempo(){
		return 0;
	}
	public function getHorasNormales(){
		return $this->getDiasLaborables()*8;
	}
	public function getDiasLaborables(){
				
		$diasLaborables = $this->diasLaborables;
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
	    if($this->getPeriodo()){ $where .= " AND FechaIngreso like '".$this->getPeriodo()."%'"; }  
      	$con = Conexion::getConexion();
      	$sql = "SELECT FechaIngreso as FechaIngreso FROM cr_colaborador WHERE 1 ".$where." ";
		
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		  $num_rows = mysql_num_rows($result);
		  $a_tmp = array();
		  if($num_rows>0){
		    while ($o_valor = mysql_fetch_object($result)) {
		      $FechaIngreso = $o_valor->FechaIngreso;
		      $diaIngreso = substr($FechaIngreso,8,2);
		      $diasLaborables = $diasLaborables - $diaIngreso + 1;
		    }
		  }
	    if($this->getIdColaborador() == "128") echo $diasLaborables;
		return $diasLaborables;
	}
	
	public function getRpm(){
			
	      if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
	      
	      $con = Conexion::getConexion();
	      $sql = "SELECT PagoRpm as RPM FROM cr_colaborador WHERE 1 ".$where." ";
	      //echo $sql;
	       $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	      $num_rows = mysql_num_rows($result);
	      $a_tmp = array();
	      if($num_rows>0){
	        while ($o_valor = mysql_fetch_object($result)) {
	          return $o_valor->RPM;
	        }
	      }
	}
	
	public function getAdelanto(){
		
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		if($this->getPeriodo()){ $where .= " AND FechaAdelanto like '".$this->getPeriodo()."%'"; }
		$where .= " AND Eliminado = '0'"; 
		
		$con = Conexion::getConexion();
		$sql = "SELECT SUM(Monto) Monto FROM cr_adelanto_sueldo WHERE 1 ".$where." ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  return $o_valor->Monto;
			}
		}else{
			return "0.00";
		}
	}
	
	public function getEmpresa(){
		
		$where .= " AND idEmpresa in (select idempresa from pla_empresa_colaborador where idcolaborador = '".$this->getIdColaborador()."')";
		
		
		$con = Conexion::getConexion();
		$sql = "SELECT * FROM pla_empresa WHERE 1 $where  ";
		//echo $sql;
		//exit;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  return $o_valor->Descripcion;
			}
		}else{
			return "-";
		}
	}
	
	public function getEmpresaRuc(){
		
		$where .= " AND idEmpresa in (select idempresa from pla_empresa_colaborador where idcolaborador = '".$this->getIdColaborador()."')";
		
		
		$con = Conexion::getConexion();
		$sql = "SELECT * FROM pla_empresa WHERE 1 $where  ";
		//echo $sql;
		//exit;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  return $o_valor->RUC;
			}
		}else{
			return "-";
		}
	}
	
	public function getRutaLogo(){
		
		$where .= " AND idEmpresa in (select idempresa from pla_empresa_colaborador where idcolaborador = '".$this->getIdColaborador()."')";
		
		
		$con = Conexion::getConexion();
		$sql = "SELECT * FROM pla_empresa WHERE 1 $where  ";
		//echo $sql;
		//exit;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  return $o_valor->RutaLogo;
			}
		}else{
			return "-";
		}
	}
	
	public function getDataSucursal($campo,$default){
		$where .= " AND idcolaborador = '".$this->getIdColaborador()."'";
		
		
		$con = Conexion::getConexion();
		$sql = "SELECT idcolaborador,idPadre,IdRol FROM cr_colaborador WHERE 1 $where  ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			   if($o_valor->IdRol=='sys.ope'){
			   	$idAdministrador = $o_valor->idPadre;
			   }elseif($o_valor->IdRol=='sys.res'){
			   	$idAdministrador = $o_valor->idcolaborador;
			   }elseif($o_valor->IdRol=='sys.sup'){
			   	$idAdministrador = $o_valor->idPadre;
			   }else{
			   	$idAdministrador = "xx";	
			   }
			}
			if($idAdministrador <> "xx"){
				
				$wheres = " AND idAdministrador = '".$idAdministrador."'";
				$sql = "SELECT $campo FROM cr_sucursal WHERE 1 $wheres  ";
				
				$result2 = mysql_db_query(Conexion::getNameDb(), $sql, $con);
				$num_rows2 = mysql_num_rows($result2);
				$a_tmp = array();
				if($num_rows2 > 0){
					while ($o_valor2 = mysql_fetch_object($result2)) {
						return $o_valor2->{$campo};
					}
				}else{
					return "-";
				}
				
			}else{
				return $default;
			}
		}else{
			return "-";
		}
	}
	
	public function getDataColaborador($campo,$default){
		$where .= " AND idcolaborador = '".$this->getIdColaborador()."'";
		
		
		$con = Conexion::getConexion();
		$sql = "SELECT $campo FROM cr_colaborador WHERE 1 $where  ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			   return $o_valor->{$campo};
			}
		}
		return $default;
	}
	
	public function getLogocompania(){
		
		return $this->getRutaLogo();
			
	}
	
	public function getNcompania(){
		
		return $this->getEmpresa();
			
	}
	
	public function getNRUC(){
		
		return $this->getEmpresaRuc();
			
	}
	
	
	
	public function getNumeroSeguro(){
		
		return $this->getDataColaborador("NumeroSeguro","-");
			
	}
	
	public function getSeguroTipo(){
		
		return $this->getDataColaborador("TipoSeguro","-");
			
	}
	
	
	
	public function getPensionTipo(){
		
		return $this->getDataColaborador("TipoPension","Pension");
			
	}
	
	public function getNumeroPension(){
		
		return $this->getDataColaborador("NumeroPension","Pension");
			
	}
	
	/*public function getNRUC(){
		
		return $this->getDataSucursal("Ruc","99999999999");
			
	}*/
	
	public function getNombreAFP(){
		
		return $this->getDataColaborador("NombrePension","-");
			
	}
	
	public function getSueldo(){
		
		return $this->getDataColaborador("Sueldo","Sueldo");
			
	}
	
	public function getDNI(){
		
		return $this->getDataColaborador("Dni","-");
			
	}
	
	public function getFechaIngreso(){
		
		return $this->getDataColaborador("FechaIngreso","-");
			
	}
	
	public function getNFalta(){
		
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		if($this->getPeriodo()){ $where .= " AND Fecha like '".$this->getPeriodo()."%'"; }
		$where .= " AND TipoAsistencia = 'F'";
		$where .= " AND Eliminado = '-1'";
		
		$con = Conexion::getConexion();
		$sql = "SELECT Monto FROM cr_asistencia WHERE 1 ".$where." ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		return $num_rows;
			
	}
	
	public function getFalta(){
		
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		if($this->getPeriodo()){ $where .= " AND Fecha like '".$this->getPeriodo()."%'"; }
		$where .= " AND TipoAsistencia = 'F'";
		$where .= " AND Eliminado = '-1'";
		
		$con = Conexion::getConexion();
		$sql = "SELECT SUM(Monto) Monto FROM cr_asistencia WHERE 1 ".$where." ";
		
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  return $o_valor->Monto;
			}
		}else{
			return "0.00";
		}
	}
	
	public function getFaltantes(){
		
		
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		if($this->getPeriodo()){ $where .= " AND FechaSofa like '".$this->getPeriodo()."%'"; }
		
		$where .= " AND Eliminado = '0'";
		
		$con = Conexion::getConexion();
		$sql = "SELECT TipoSofa,SUM(Monto) Monto FROM  cr_sobrante_faltante WHERE 1 ".$where." group by TipoSofa";
		//if($this->getIdColaborador() == 44) echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  if($o_valor->TipoSofa == 'f') $MontoFaltante= $o_valor->Monto;
			  if($o_valor->TipoSofa == 's') $MontoSobrante= $o_valor->Monto;
			}
			if($MontoFaltante > $MontoSobrante){
				return round($MontoFaltante - $MontoSobrante,2);
			}
		}else{
			return "0.00";
		}
	}
	
	public function getTotalPorcentaje($idPension,$Periodo,$TipoPension){
		$con = Conexion::getConexion();
		
		$sql = "SELECT ComisionFlujo,ComisionMixtaFlujo,ComisionMixtaASaldo,Seguro,PorcentajeAporteObligatorio,RMA 
				FROM rh_pension_devengue  WHERE 1 ".$where." 
				and IdPension = '".$idPension."' 
				and IdPeriodo = '".str_replace("-","",$Periodo)."' 
				";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
				$ComisionFlujo = $o_valor->ComisionFlujo;
				$ComisionMixtaFlujo = $o_valor->ComisionMixtaFlujo;
				$ComisionMixtaASaldo = $o_valor->ComisionMixtaASaldo;
				$Seguro = $o_valor->Seguro;
				$PorcentajeAporteObligatorio = $o_valor->PorcentajeAporteObligatorio;
				$RMA = $o_valor->RMA;
			}
		}
		 
		
		if($TipoPension == "flujo"){
			$a_por['comision'] = round(($ComisionFlujo)/100,4);
			$a_por['seguro'] = round($Seguro/100,4);
			$a_por['pension'] = round($PorcentajeAporteObligatorio/100,4);
			$a_por['RMA'] = $RMA;
			$a_por['Tipo'] = "flujo";
		}
		if($TipoPension == "mixto"){
			$a_por['comision'] = round($ComisionMixtaFlujo/100,4);
			$a_por['seguro'] = round($Seguro/100,4);
			$a_por['pension'] = round($PorcentajeAporteObligatorio/100,4);
			$a_por['Tipo'] = "mixto";
		}
				
		return $a_por;
	}
	
	public function getTotalPorcentajeONP($idPension,$Periodo){
		$con = Conexion::getConexion();
		
		$sql = "SELECT ComisionFlujo,ComisionMixtaFlujo,ComisionMixtaASaldo,Seguro,PorcentajeAporteObligatorio,RMA 
				FROM rh_pension_devengue  WHERE 1 ".$where." 
				and IdPension = '".$idPension."' 
				and IdPeriodo = '".str_replace("-","",$Periodo)."' 
				and Seguro = 0
				";
		
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
				$PorcentajeAporteObligatorio = $o_valor->PorcentajeAporteObligatorio/100;
			}
		}
		 
		return $PorcentajeAporteObligatorio;
	}
	
	public function getTotalAFP(){
		$con = Conexion::getConexion();
		//Determinar si es mixto
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		$con = Conexion::getConexion();
		$sql = "SELECT Pension,TipoPension FROM cr_colaborador WHERE 1 ".$where."";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  $Pension = $o_valor->Pension;
			  $TipoPension = $o_valor->TipoPension;
			  
			  if($TipoPension){
			  	if($TipoPension == "nada") return 0;
			  		
			  	$a_porcentajes = $this->getTotalPorcentaje($Pension,$this->getPeriodo(),$TipoPension);
			  	$this->setPorcentajesAFP($a_porcentajes);
			  	
			  }
			}
		}
				
		
		return ($this->getAFPComision()+$this->getAFPSeguro()+$this->getAFPPension());
		
	}
	
	public function getONP(){
		$con = Conexion::getConexion();
		//Determinar si es mixto
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		$con = Conexion::getConexion();
		$sql = "SELECT Pension,TipoPension FROM cr_colaborador WHERE 1 ".$where."";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  $Pension = $o_valor->Pension;
			  $TipoPension = $o_valor->TipoPension;
			  
			  if($TipoPension){
			  	if($TipoPension == "nada") return 0;
			  		
			  	$porcentajeONP = $this->getTotalPorcentajeONP($Pension,$this->getPeriodo());
			  	$totalIngresos = $this->getTotalIngresos();
			  	
			  }
			}
		}
				
		
		return ($totalIngresos*$porcentajeONP);
		
	}
	
	public function getTotalIngresos(){
		$a_conceptos 	= $this->getConceptosValor();
		//$REMUN 			= $a_conceptos['[REMUN]'];
		//$BIAT 			= $a_conceptos['[BIAT]'];
		$RBASICA 		= $a_conceptos['[RBASICA]'];
		//$BONO 			= $a_conceptos['[BONO]'];
		
		$totalIngresos = $REMUN + $BIAT + $RBASICA + $BONO;
		return $totalIngresos;
	}
	
	public function getBono(){
		
		return $this->getDataColaborador("Bono","-");
	}
	
		
	public function getAsignacionFamiliar(){
		
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		
		
		$con = Conexion::getConexion();
		$sql = "SELECT AsignacionFamiliar FROM cr_colaborador WHERE 1 ".$where." and AsignacionFamiliar > 0 ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  $AsignacionFamiliar = $o_valor->AsignacionFamiliar;
			  if($AsignacionFamiliar){
			  	$remuneracionMV = $this->getParametroPlanilla('[P_RMV]');
	      	   	$porcentajeAsignado = $this->getParametroPlanilla('[P_PORC_ASIG_FAM]');
	      	   	return ($porcentajeAsignado*$remuneracionMV);
			  }
			}
		}else{
			return 0;
		}
		
	}
	
	public function getNTardanza(){
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		if($this->getPeriodo()){ $where .= " AND Fecha like '".$this->getPeriodo()."%'"; }
		$where .= " AND TipoAsistencia = 'T'";
		$where .= " AND Eliminado = '-1'";
		
		$con = Conexion::getConexion();
		$sql = "SELECT Monto FROM cr_asistencia WHERE 1 ".$where." ";
		//echo $sql;
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		return $num_rows;
	}
	
	public function getTardanza(){
		if($this->getIdColaborador()){ $where .= " AND idcolaborador = '".$this->getIdColaborador()."'"; }
		if($this->getPeriodo()){ $where .= " AND Fecha like '".$this->getPeriodo()."%'"; }
		$where .= " AND TipoAsistencia = 'T'";
		$where .= " AND Eliminado = '-1'";
		
		$con = Conexion::getConexion();
		$sql = "SELECT SUM(Monto) Monto FROM cr_asistencia WHERE 1 ".$where." ";
		$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
		$num_rows = mysql_num_rows($result);
		$a_tmp = array();
		if($num_rows>0){
			while ($o_valor = mysql_fetch_object($result)) {
			  return $o_valor->Monto;
			}
		}else{
			return "0.00";
		}
	}
	
	public function buildConsultPlanilla(){
		
		//if($this->getPeriodo()){ $where .= " AND periodo = '".$this->getPeriodo()."'"; }
      	
		return $where;
	}
	
	
}