<? session_start();

if (isset($_SESSION['tipousuario']))
		{if ($_SESSION['tipousuario']=='1')
		header ('location:menu_personal.php');
		}

if  (trim($_SESSION['nombre_validar'])=='') header ('location:index.php');

	include ("fphp.php");


	$enlace=cargar_conexion();
	$consultaEmpleados="select * from personal where id='".$_SESSION['id_validar']."' and status<>'I'  order by fechai desc";
	$resultado = mysqli_query($enlace,$consultaEmpleados) or die('Error consultando empleados: ' . mysqli_error($enlace));
	$num_rows = mysqli_num_rows($resultado);

    //============ datos de empresa
    $consulta=mysqli_query($enlace,"SELECT * from empresa where id='".$_SESSION['id_validar']."'")  or die (mysqli_error($enlace));
    $rowr=mysqli_fetch_array($consulta);
    $ince=$rowr['ince'];
    $dvac=$rowr['dbon'];
    $duti=$rowr['duti'];
    $icon=$rowr['icon'];
    $con01=$rowr['constante01'];
    $con02=$rowr['constante02'];
    $con03=$rowr['constante03'];
    $con04=$rowr['constante04'];
    $sueldominimo=$rowr['sueldominimo'];

    while ($fila = mysqli_fetch_array($resultado)) {

	    $cedula=str_repeat('0',8-strlen(trim($fila["codigo"]))).trim($fila["codigo"]);
        $tiponomina=$fila['nomina'];
        //===========egresado o no
        $egresado=false;

        //=========== datos de prestaciones
        $consultax="select * from liquidaciones where cedula='".$cedula."' and id='".$_SESSION['id_validar']."' ";
        $resultadox = mysqli_query($enlace,$consultax) or die('verificaci&oacute; del c&oacute;digo fall&oacute;: ' . mysqli_error($enlace));
        if (mysqli_num_rows($resultadox)>0) {
            $rowx=mysqli_fetch_array($resultadox);
            $smes = $rowx['smes'];
            $dias = $rowx['dias'];
            $fec1 = $rowx['fechai'];
            $fec2 = $rowx['egreso'];
            $vac = $rowx['vacacion'];
            $egresado=true;
        } else {
            $smes = $row['smes'];
            $dias = 0;
            $fec1 = $row['fechai'];
            $fec2 = date('Y-m-d');
            $vac = 0;
        }

        $semana=0;
        if ($dias>1 && $dias<=7) $semana=1;
        if ($dias>7) $semana=2;

        $fec1=$row['fechai'];
        $fec2=date('Y-m-d');
        $egresado=false;
        $afn=substr($fec1,0,4);
        $mfn=substr($fec1,5,2);
        $a=substr($fec2,0,4);
        $m=substr($fec2,5,2);
        if ($m-$mfn<0) $meses = ($a-$afn-1)*12 + ($m-$mfn+12);
        else $meses = ($a-$afn)*12 + ($m-$mfn);

        if ($mfn>=1 && $mfn < $m) $mesutilidad = $m - $mfn;
        else $mesutilidad = $m;
        $utilidad = $duti/12*$mesutilidad*($smes/30);


        //============ datos inicializando
        $fec11x = $fec1;
        $fec22x = $fec2;
        $fec11 = substr($fec1,0,7);
        $fec22 = substr($fec2,0,7);
        $inicio=0; $tri=0; $salto=0; $anosx=0; $anos=0; $entrosueldo=0;  
        $acumulado=0; $intereses=0; $tdias=0; $prestaciones=0;$interesganados=0;  
        $cuantosmeses=0; 

        //=============totalizar otras columnas
        $acumintpag=0;
        $acumanticp=0;

        //============ datos de sueldo
        $consulta=mysqli_query($enlace,"select sueldo from personal_sueldo where id='".$_SESSION['id_validar']."' and substring(fec,1,7)='".$fec11."' and codigo='".$cedula."'") or die (mysqli_error($enlace));
        $row=mysqli_fetch_array($consulta);
        if (mysqli_num_rows($consulta)!=0) $sueldo=$row['sueldo'];
        //===========Agregado para calcular el trimestre
        $fec11 = $fec1;
        $fec22 = $fec2;
        //====================== proceso de prestaciones
        $datetime1=new DateTime($fec11);
        $datetime2=new DateTime($fec22);
        $interval=$datetime2->diff($datetime1);
        $months=$interval->format("%m")+($interval->format("%y")*12);
        $days=$interval->format("%d");
        $months=$months<4&&$days>0?($months+1):$months;
        
        //********** CONSULTA PRESTACION ********************/
        $selectPrestacion = "SELECT IFNULL(monto_prestacion,0) AS mtoPrestacion, IFNULL(monto_dias,0) as mtoDias,  IFNULL(anticipo,0) as mtoAnticipo, fecha_desde, ano, mes, dias_base, dias_adicionales FROM prestaciones WHERE cedula = '".$cedula."' AND id ='".$_SESSION['id_validar']."' AND fecha_desde = '2021-12-31'";
        $consultaPrestacion = mysqli_query($enlace,$selectPrestacion) or die ($selectPrestacion.mysqli_error($enlace));
        $inicioPrestacion=mysqli_fetch_array($consultaPrestacion);
        $mtoPrestacion = 0;
        $mtoDias = 0;
        $mtoAnticipo = 0;
        $acumulado = 0;
     
        
        if (mysqli_num_rows($consultaPrestacion)!=0){
            $mtoPrestacion = $inicioPrestacion['mtoPrestacion'];
            $mtoDias = $inicioPrestacion['mtoDias'];
            $mtoAnticipo = $inicioPrestacion['mtoAnticipo'];
            $acumulado = $mtoPrestacion + $mtoDias - $mtoAnticipo;
            $fec11 ='2021-12-28';
            
            $anos = $inicioPrestacion['ano'];
            $anosx = $inicioPrestacion['mes'];
            $cuantosmeses = number_format($anosx,0);
            $tdias = $inicioPrestacion['dias_base'] + $inicioPrestacion['dias_adicionales'];
            
    
            $selectPrestacion="delete from prestaciones where id='".$_SESSION['id_validar']."' and cedula = '".$cedula."' and fecha_desde > '2021-12-31'";
            $eliminaPrestacion = mysqli_query($enlace,$selectPrestacion) or die ($selectPrestacion.':>'.mysqli_error($enlace));
        }

       
        while ($fec11<$fec22) {
            echo " meses : ".$anosx." anos: ".$anos." cuantos m: ".$cuantosmeses;
            echo " fec11: ".$fec11." fec22".$fec22;
        
                    $cuantosmeses++;
                    $anosx++;
                    if ($anosx>12) {
                        $anos++;
                        $anosx=1;
                    }
                   
                    
                    $nuevafecha = strtotime ( '+1 month' , strtotime ( $fec11 ) ) ;
                    $fec11 = date ( 'Y-m-d' , $nuevafecha );
                   
                    $dvacx=$dvac;
                    $dutix=$duti;
                    if($cuantosmeses%3!=0){
                        $dias=0;
                    } else {
                        $dias=15;
                    }
        
                    //Agregado por cambios en dia de ingreso
                    $fecAux=$fec11;
                    $mostrar=true;
                    if($fec11>=$fec22){
                    $fec11=$fec22;
                    if($egresado){
                            if($cuantosmeses>3){
                                $ultdias=true;
                                if($dias==0){
                                    $dias=15;
                                }
                            }
                    }else{
                        if($cuantosmeses%3!=0){
                            $dias=0;
                        }
                    }
                    }
        
                    if($fecAux>$fec22&&!$egresado){
                        $mostrar=false;
                    }
                    if($egresado){
                    if($months<4){
                            if($months==$cuantosmeses){
                                $dias=5*$months;
                            }else{
                                $dias=0;
                            }
                        $ultdias=false;
                        }
                    }
                if($mostrar){
                    //====================== calcular inicio
                    $inicio++;
                    if ($inicio<=3 && $fec11<'2012-04-01') $dias=0;
        
                    //============ datos de adelantos
                    $consulta=mysqli_query($enlace,"select IFNULL(sum(monto),0) as total from prestacion_adelanto where id='".$_SESSION['id_validar']."' and substring(fecha,1,7)='".substr($fecAux,0,7)."' and cedula='".$cedula."'") or die (mysqli_error($enlace));
                    $row=mysqli_fetch_array($consulta);
                    $adelanto=$row['total'];
                    $consulta=mysqli_query($enlace,"select IFNULL(sum(monto),0) as total from prestacion_interes where id='".$_SESSION['id_validar']."' and substring(fecha,1,7)='".substr($fecAux,0,7)."' and cedula='".$cedula."'") or die (mysqli_error($enlace));
                    $row=mysqli_fetch_array($consulta);
                    $adeinteres=$row['total'];
        
                    //============ datos de sueldo
                    $fec11ant = strtotime ( '-1 month' , strtotime ( $fec11 ) ) ;
                        $fec11ant = date ( 'Y-m' , 	$fec11ant );
        
                    $consulta=mysqli_query($enlace,"select SUM(sueldo) AS sueldo from personal_sueldo where id='".$_SESSION['id_validar']."' and substring(fec,1,7)='".substr($fec11ant,0,7)."' and codigo='".$cedula."' ") or die (mysqli_error($enlace));
                    $row=mysqli_fetch_array($consulta);
                    if (mysqli_num_rows($consulta)!=0) {
        
                        $sueldo=$row['sueldo'];
                            if ($con01!='') {
                                $consultax="select monto from constante_individual where id='".$_SESSION['id_validar']."' and codigo='".$con01."' and cedula='".$cedula."' and nomina='".$tiponomina."'";
                                $resultadox = mysqli_query($enlace,$consultax) or die('verificaci&oacute; del c&oacute;digo fall&oacute;: ' . mysqli_error($enlace));
                                if (mysqli_num_rows($resultadox)!=0) {
                                    $rowx=mysqli_fetch_array($resultadox);
                                    if ($tipoclase==1) $sueldo=$sueldo + $rowx['monto']/7*30;
                                    //else if ($tipoclase==2) $sueldo=$sueldo + $rowx['monto']*2;
                                        else if ($tipoclase==2) $sueldo=$sueldo *2; //porque debe funcionar con nom,inas cerradas unciamente -- Miguelangel 26/04/22
                                        else $sueldo=$sueldo + $rowx['monto'];
                                }
                            }
                            if ($con02!='') {
                                $consultax="select monto from constante_individual where id='".$_SESSION['id_validar']."' and codigo='".$con02."' and cedula='".$cedula."' and nomina='".$tiponomina."'";
                                $resultadox = mysqli_query($enlace,$consultax) or die('verificaci&oacute; del c&oacute;digo fall&oacute;: ' . mysqli_error($enlace));
                                if (mysqli_num_rows($resultadox)!=0) {
                                    $rowx=mysqli_fetch_array($resultadox);
                                    if ($tipoclase==1) $sueldo=$sueldo + $rowx['monto']/7*30;
                                    else if ($tipoclase==2) $sueldo=$sueldo + $rowx['monto']*2;
                                        else $sueldo=$sueldo + $rowx['monto'];
                                }
                            }

                    } else {
                            //====================== buscar monto conceptos acmulado
                            //echo $con04."<br>";
                            if ($con04!='') {
        
                                $consultax="select sum(monto) as total from historico where id='".$_SESSION['id_validar']."' and substring(desperiodo,1,7)='".substr($fec11,0,7)."' and substring(concepto,1,".strlen($con04).")='".$con04."' and cedula='".$cedula."' and nomina='".$tiponomina."'";
                                $resultadox = mysqli_query($enlace,$consultax) or die('verificaci&oacute; del c&oacute;digo fall&oacute;: ' . mysqli_error($enlace));
                                $rowx=mysqli_fetch_array($resultadox);
                                if ($rowx['total']>0) $sueldo= ($rowx['total']<$sueldominimo ? $sueldominimo : $rowx['total']);
                                else $sueldo= $sueldominimo;
                                $consulta5=mysqli_query($enlace,"select codigo from personal_sueldo where id='".$_SESSION['id_validar']."' and substring(fec,1,7)='".substr($fec11,0,7)."' and codigo='".$cedula."'") or die (mysqli_error($enlace));
                                if (mysqli_num_rows($consulta5)==0)
                                    $consulta5=mysqli_query($enlace,"insert into personal_sueldo (id,fec,codigo,sueldo) values ('".$_SESSION['id_validar']."','".(substr($fec11,0,7).'-01')."','".$cedula."','".$sueldo."')") or die (mysqli_error($enlace));
                            }
                    }
                    //$alivac= ($dvacx/12*$sueldo/30/30);
                    $alivac = ($dvacx/360*$sueldo/30);
                    //$aliuti= ($dutix/12*$sueldo/30/30);
                    $aliuti = ($dutix/360*$sueldo/30);
                    $integral = ($sueldo/30) + $alivac + $aliuti;
        
                    //============ datos de interes
                    if ($icon!=2) {
                        $consulta=mysqli_query($enlace,"select mon as total from tab_interes where substring(fec,1,7)='".substr($fec11,0,7)."'");
                        $row=mysqli_fetch_array($consulta);
                    }
                    if ($row['total']==0) $tcolor='red';
                    else $tcolor='black';
                    $interes=($row['total']==0?$interes:$row['total']);
        
                    //============ calculo
                    $acumulado += $integral*$dias - $adelanto;
                    $fechaPrestacion = substr($fec11,0,7).'-28';
                    
                    $interesganados += ($acumulado*$interes/100/12)-$adeinteres;
                    if ($anosx==12 && $anos>=1) {
                        $diaa = $anos*2;
                        if ($diaa>30) {
                            $diaa=30;
                        }
                        $acumulado += $integral*$diaa;
                    
                } else $diaa=0;
        
                if ($fechaPrestacion > '2021-12-31'){
                    $interes = $interes ? $interes : 0;
                    $valorSueldo = $sueldo ? $sueldo : 0;
                    $crearRegistro = "INSERT INTO `prestaciones` (`ano`, `mes`, `cedula`, `nomina`, `id`, `sueldo`, `sueldo_integral`, `dias_base`, `monto_prestacion`, `dias_adicionales`, `monto_dias`, `monto_interes`, `anticipo`, `anticipo_interes`, `fecha_desde`)
                    VALUES ('".$anos."','".$anosx."','".$cedula."','".$tiponomina."','".$_SESSION['id_validar']."',$valorSueldo,$integral,$dias,$integral*$dias,$diaa, $integral*$diaa, $acumulado*$interes/100/12,$adelanto, $adeinteres,'".$fechaPrestacion."')";
                    $qpersonal = mysqli_query($enlace,$crearRegistro) or die ($crearRegistro.mysqli_error($enlace));
        
                }
        
                $acumintpag+=$adeinteres;
                $acumanticp+=$adelanto;
                $tdias += $dias+$diaa;
                $prestaciones += ($integral*$dias)+($integral*$diaa)-$adelanto;
            }
        }
    }
	//====================== proceso de prestaciones
	//====================== proceso de prestaciones
	
	
?>
