<?php
{

function gen_ce10($fecha='',$enti='') 
{
//   if(empty($enti)){return;}
  if(empty($fecha)){$fecha=date('Y-m-01',strtotime ('-1 month'));}
  $fecha1=date('Y-m-01',strtotime($fecha));
  $fecha2=date('Y-m-t',strtotime($fecha));
     
     
   $fecha1a=date('Y-m-01',strtotime('-14 month'));
   $fecha2a=date('Y-m-t',strtotime('+ 1 month'));
    if($fecha1<$fecha1a or $fecha1>$fecha2a){return;} 
     
     include('../_cfg/config.php');
     include('php_session.php');
     
     $enti=substr($enti,0,10);

     
  $sql_enti ='select distinct substring(enti,1,10) as empl, enti_descri from susa12 ';
  $sql_enti.=' where ';
//   $sql_enti.=' fecha2<="'.$fecha1.'"';
  $sql_enti.=' substring(fecha2,1,7)<="'.substr($fecha1,0,7).'"';
  $sql_enti.=' and enti!="" ';
  $sql_enti.=' and enti is not null ';
  if($enti!='')
  {$sql_enti.=' and enti like"'.substr($enti,0,10).'%"';}
  $sql_enti.=' order by enti_descri';
  $res_enti=msql_query($sql_enti,$link_vcrx);
  
//      echo '<msgalert>';
//      echo $sql_enti;
//      echo '</msgalert>';
     
  while($aso_enti=msql_fetch_assoc($res_enti))
  {
     
     $xenti=$aso_enti['empl'];
//   $docu='EMP1';
  $docu='CE10';
  $sql_nomi ='select * from nomi12 ';
  $sql_nomi.='where status not in("O","X") ';
  $sql_nomi.='and enti2 like "'.$xenti.'%" ';
  $sql_nomi.='and fecha>="'.$fecha1.'" ';
  $sql_nomi.='and fecha<="'.$fecha2.'" ';
//   $sql_nomi.='and fecha<="'.$fecha2.'" ';
  $sql_nomi.='order by nvdd_tipo,nvdd ';
  $res_nomi=msql_query($sql_nomi,$link_vcrx);
  
//   echo '*/*/*/'.$sql_nomi;
  
  $sql_empl ='select * from empl1 ';
  $sql_empl.='where status not in("O","X") ';
  $sql_empl.='and docu = "'.$docu.'" ';
  $sql_empl.='and enti like "'.$xenti.'%" ';
  $sql_empl.='and fecha="'.$fecha2.'" ';
  $res_empl=msql_query($sql_empl,$link_vcrx);
  
//   echo '*/*/*/*'.$sql_empl;
  
  if(msql_num_rows($res_empl)==0)
  {
    $ptoe='001001';
    $numero=nume_docu($docu,$ptoe);
    $sql_inse ='insert into empl1(docu,ptoe,numero,fecha,enti,status,idate,iuser)';
    $sql_inse.='value("'.$docu.'","'.$ptoe.'","'.$numero.'","'.$fecha2.'","'.$xenti.'","-",now(),"'.$user_codigo.'")';
    $res_inse=msql_query($sql_inse,$link_vcrx);
  }
  
  $res_empl=msql_query($sql_empl,$link_vcrx);
  $idnum=msql_result($res_empl,0,'idnum1');
  
  if($idnum>0)
  {
    $sql_dele='delete from empl2 where idnum2="'.$idnum.'"';
    $res_inse=msql_query($sql_dele,$link_vcrx);

    $iddet=0;
    while($aso_nomi=msql_fetch_assoc($res_nomi))
    {
      $iddet++;
      $sql_inse='insert into empl2(idnum2,iddet)value("'.$idnum.'","'.$iddet.'")';
      $res_inse=msql_query($sql_inse,$link_vcrx);
      
      $sql_updt ='update empl2 set ';
      $sql_updt.='fecha2="'.$aso_nomi['fecha'].'",';
      $sql_updt.='csub="'.$aso_nomi['csub'].'",';
      $sql_updt.='nvdd="'.$aso_nomi['nvdd'].'",';
      $sql_updt.='cant="'.$aso_nomi['cant'].'",';
      $sql_updt.='puni="'.$aso_nomi['puni'].'",';
      $sql_updt.='docum="'.$aso_nomi['docu'].'",';
      $sql_updt.='ptoem="'.$aso_nomi['ptoe'].'",';
      $sql_updt.='numer="'.$aso_nomi['numero'].'",';
      $sql_updt.='detalle="'.$aso_nomi['detalle'].'",';
      $sql_updt.='iddet=iddet ';
      $sql_updt.=' where idnum2="'.$idnum.'" and iddet="'.$iddet.'"';
      
      $res_updt=msql_query($sql_updt,$link_vcrx);
         
//      echo '<msgalert>';
//      echo $sql_updt.msql_error($link_vcrx);
//      echo '</msgalert>';
         
         
    }
    
    
  }
  }  
}

  
  
function Xgen_rolp($enti,$fecha1,$fecha2) 
{
  if(empty($enti)){return;}
  
	include('../_cfg/config.php');
// 	include('php_gene1.php');
  
  if(empty($fecha1)){$fecha1=date('Y-m-01',strtotime ('-1 month'));}
  if(empty($fecha2)){$fecha2=$fecha1;}
  $fecha2=date('Y-m-t',strtotime($fecha2));
  
  $sql_rolp ='select * from nomi12 ';
  $sql_rolp.='where status!="O" ';
  $sql_rolp.='and enti like "'.$enti.'%" ';
  $sql_rolp.='and fecha>="'.$fecha1.'" ';
  $sql_rolp.='and fecha<="'.$fecha2.'" ';
  $sql_rolp.='and fecha<="'.$fecha2.'" ';
  $sql_rolp.='order by nvdd_tipo,nvdd ';

  
$xml=new DomDocument("1.0","UTF-8");
$xml->xmlStandalone = true;
$xml->formatOutput = true;

// $valor='Prueba';
$div=$xml->appendChild($xml->createElement("div"));
//   $div->setAttribute("id","titulo");
      $div->setAttribute("style","font-size:12px;border:solid 1px;font-family:arial;width:210mm; height:120mm;");

$div=$xml->appendChild($xml->createElement("titulo"));
  
  $ttab0=$div->appendChild($xml->createElement("table"));
  $ttab0->setAttribute("style","font-size:12px;width:100%;border-collapse:collapse;");
  
    $trow0=$ttab0->appendChild($xml->createElement("tr"));
    $trow0->setAttribute("style","font-weight:bolder;background:gainsboro;border-top:solid 1px;border-bottom:solid 1px;");

      $tcel0=$trow0->appendChild($xml->createElement("td",""));
      $tcel0->setAttribute("style","width:20%;font-size:50%;");
  
      $tcel0=$trow0->appendChild($xml->createElement("td","COMPROBANTE - ELECTRONICO"));
      $tcel0->setAttribute("align","center");
      $tcel0->setAttribute("style","width:60%;letter-spacing:5pt;");

      $tcel0=$trow0->appendChild($xml->createElement("td","REGISTRADO POR"));
      $tcel0->setAttribute("align","right");
      $tcel0->setAttribute("style","width:20%;font-size:50%;");
  

$div=$xml->appendChild($xml->createElement("cabecera"));
  
  $ttab0=$div->appendChild($xml->createElement("table"));
  $ttab0->setAttribute("style","font-size:12px;width:100%;border-collapse:collapse;");
  
    $trow0=$ttab0->appendChild($xml->createElement("tr"));
    $trow0->setAttribute("style","font-weight:bolder;background:gainsboro;border-top:solid 1px;border-bottom:solid 1px;");

      $tcel0=$trow0->appendChild($xml->createElement("td",""));
      $tcel0->setAttribute("style","width:20%;font-size:50%;");
  
      $tcel0=$trow0->appendChild($xml->createElement("td","COMPROBANTE - ELECTRONICO"));
      $tcel0->setAttribute("align","center");
      $tcel0->setAttribute("style","width:60%;letter-spacing:5pt;");

      $tcel0=$trow0->appendChild($xml->createElement("td","REGISTRADO POR"));
      $tcel0->setAttribute("align","right");
      $tcel0->setAttribute("style","width:20%;font-size:50%;");
  
  
  
  
  
  
echo $xml->saveXML();
  
    
}
   
function get_sbu($fecha='')
{
// echo '*/**/*'.$fecha;   
   if(empty($fecha)){$fecha=date('Y-m-d');}
   $sbu=300;
   if($fecha>='2019-01-01'){$sbu=394;}
   if($fecha>='2020-01-01'){$sbu=400;}
   return $sbu;
}
   
function get_sueldo($xempl,$xfecha='')
{
	include('../_cfg/config.php');
// 	include('php_session.php');
  if($xfecha=='')
  {$xfecha=date('Y-m-01',strtotime('today'));}

  $sql_suel ='select * from susa2 ';
    $sql_suel.='where enti2 like "'.$xempl.'%" ';
    $sql_suel.=' and fecha2<="'.$xfecha.'"';
    $sql_suel.='order by fecha2 desc';
    $sql_suel.=' limit 1';
    $res_suel=msql_query($sql_suel,$link_vcrx);

//     $sueldo=@msql_result($res_suel,0,'sueldo');
   $enti_suel=array();
   if(msql_num_rows($res_suel)!=0)
   {
      $cfield=msql_num_fields($res_suel);
      $enti_suel=msql_fetch_assoc($res_suel);
   }
   
//    if($sueldo<1){$sueldo=0;}
//    if ($xempl=='0952049682')
//     echo '<msgalert>';
//    echo $sql_suel;
// //    var_dump($enti_suel);
//    echo '</msgalert>';
   
 
  return $enti_suel;
  
//   die();
}
  
function get_nvdd0($nvdd,$xtipo='')
{
	include('../_cfg/config.php');
//    if($xtipo==''){$xtipo='1';}
    $nvdd=trim($nvdd);
    $sql_nvdd ='select * from nvdd0 ';
//     $sql_nvdd.='where trim(nvdd_descri) like "'.$nvdd.'" ';
    $sql_nvdd.='where trim(nvdd_descri) like "'.$nvdd.'%" ';
   if($xtipo==1)
   {$sql_nvdd.=' and nvdd_tipo=1';}
    $sql_nvdd.='order by nvdd_codigo ';
    $res_nvdd=msql_query($sql_nvdd,$link_vcrx);
    $nvdd=@msql_result($res_nvdd,0,'nvdd_codigo');
    return $nvdd;  
}
  
  
function gen_nov1($fecha1='',$fecha2='',$enti='')
{
     
  $horasxmes=240;
  $xaniomes=date('Ym',strtotime($fecha1));
  
  if($cfg_empr=='tfle' and 1==2)
  {
    if($xaniomes=='202001'){$horasxmes=184;}
    if($xaniomes=='202002'){$horasxmes=160;}
    if($xaniomes=='202003'){$horasxmes=176;}
    if($xaniomes=='202004'){$horasxmes=176;}
    if($xaniomes=='202005'){$horasxmes=168;}
    if($xaniomes=='202006'){$horasxmes=176;}
    if($xaniomes=='202007'){$horasxmes=184;}
    if($xaniomes=='202008'){$horasxmes=168;}
    if($xaniomes=='202009'){$horasxmes=176;}
    if($xaniomes=='202010'){$horasxmes=176;}
    if($xaniomes=='202011'){$horasxmes=168;}
    if($xaniomes=='202012'){$horasxmes=184;}
  }
  
  $docu='NOV1';
  if($fecha1=='')
  {$fecha1=date('Y-m-01',strtotime('today'));}
    
  if($fecha2=='')
  {$fecha2=date('Y-m-t',strtotime($fecha1));}

   $fecha1a=date('Y-m-01',strtotime('-14 month'));
   $fecha2a=date('Y-m-t',strtotime('+ 1 month'));
    if($fecha1<$fecha1a or $fecha1>$fecha2a){return;} 
     
     include('../_cfg/config.php');
     include('php_session.php');
     
  $sql_enti ='select distinct substring(enti,1,10) as empl, enti_descri from susa12 ';
  $sql_enti.=' where ';
//   $sql_enti.=' fecha2<="'.$fecha1.'"';
  $sql_enti.=' substring(fecha2,1,7)<="'.substr($fecha1,0,7).'"';
  $sql_enti.=' and enti!="" ';
  $sql_enti.=' and enti is not null ';
  if($enti!='')
  {$sql_enti.=' and enti like"'.substr($enti,0,10).'%"';}
  $sql_enti.=' order by enti_descri';
  $res_enti=msql_query($sql_enti,$link_vcrx);
  
  while($aso_enti=msql_fetch_assoc($res_enti))
  {
    $empl=$aso_enti['empl'];
     $enti_sueldo=get_sueldo($empl,$fecha2);
     
     $sueldo=$enti_sueldo['sueldo'];
     $valanti=$enti_sueldo['valanti'];
     $poranti=$enti_sueldo['poranti'];
     $de13=$enti_sueldo['de13'];
     $de14=$enti_sueldo['de14'];
     $fres=$enti_sueldo['fres'];
     
    if($sueldo>1)
    {
       $tot_sueldo=$sueldo;
       $val_orap=$enti_sueldo['alimentacion']+$enti_sueldo['movilizacion']+$enti_sueldo['comision'];
       $val_xhora=$sueldo/$horasxmes;
//       $val_horasx=val_horasx($fecha1,$fecha2,$enti);
       $val_horasx=0;
       $val_comisiones=0;
       
       // retribuciones accesorias permanentes
       $dias_lab=30;
       
      $sql_nomi='select * from nomi1 where docu="'.$docu.'" and fecha="'.$fecha2.'"';
      $res_nomi=msql_query($sql_nomi,$link_vcrx);
      
      if(msql_num_rows($res_nomi)==0)
      {
        $sql_inse='insert into nomi1(docu,fecha)value("'.$docu.'","'.$fecha2.'")';
        $res_inse=msql_query($sql_inse,$link_vcrx);
        $res_nomi=msql_query($sql_nomi,$link_vcrx);
      }
      $idnum=@msql_result($res_nomi,0,'idnum1');
      
      $numero='0'.str_replace('-','',$fecha2);
      $sql_updt ='update nomi1 set ';
      $sql_updt.='enti="'.$cfg_ruc.'",';
      $sql_updt.='numero="'.$numero.'",';
      $sql_updt.='status="-"';
      $sql_updt.=' where idnum1="'.$idnum.'"';
      $res_updt=msql_query($sql_updt,$link_vcrx);

       
       
      $tot_sueldo=0;
       
      //************************************
      $nvdd=get_nvdd0('SUELDO');
      {
         $cant=$dias_lab;
         $puni=$enti_sueldo['sueldo']/$cant;
         $cant=$cant-$faltas;
         $tot_sueldo=$tot_sueldo+$cant*$puni;
       
         // descontar dias no laborados faltas
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
         
      } 

      //************************************
      $nvdd=get_nvdd0('ANTIC');
      {
         $cant=1;
         $puni=$enti_sueldo['valanti'];
           if($puni==0)
           {
                $cant=$enti_sueldo['sueldo'];
                $puni=$enti_sueldo['poranti']/100;
           }

//          $cant=$cant-$faltas;
         $tot_sueldo=$tot_sueldo+$cant*$puni;
         
         // descontar dias no laborados faltas
         
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

      //************************************
      $nvdd=get_nvdd0('ALIMENTACION');
      {
         $cant=$dias_lab;
         $puni=$enti_sueldo['alimentacion']/$cant;
         $cant=$cant-$faltas;
         $tot_sueldo=$tot_sueldo+$cant*$puni;
         
         // descontar dias no laborados faltas
         
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

      //************************************
      $nvdd=get_nvdd0('MOVILIZACION');
      {
         $cant=$dias_lab;
         $puni=$enti_sueldo['movilizacion']/$cant;
         $cant=$cant-$faltas;
         $tot_sueldo=$tot_sueldo+$cant*$puni;
         
         // descontar dias no laborados faltas
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

      //************************************
      $nvdd=get_nvdd0('COMISION');
      {
         $cant=$dias_lab;
         $puni=$enti_sueldo['comision']/$cant;
         $cant=$cant-$faltas;
         $tot_sueldo=$tot_sueldo+$cant*$puni;
         
         // descontar dias no laborados faltas
         
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

      //************************************
      $nvdd=get_nvdd0('APORTE PERSONAL');
      {
        $cant=$enti_sueldo['sueldo'];
        $puni=9.35/100;
        if($fecha2>="2019-01-01")
        {$puni=9.45/100;}


        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

      //************************************
      $nvdd=get_nvdd0('APORTE PATRONAL');
      {
        $cant=$enti_sueldo['sueldo'];
        $puni=11.15/100;
        if($fecha2>="2019-01-01")
        {$puni=12.15/100;}

        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

       // si es mensual o cuando toca pagarlo get_nvdd0('DECIMO TERCERO',1)
      //************************************
      $nvdd=get_nvdd0('DECIMO TERCERO');
      {
        $cant=$tot_sueldo;
        $puni=1/12;
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

      //************************************
      $nvdd=get_nvdd0('DECIMO CUARTO');
      {
        $cant=get_sbu($fecha2);
        $puni=1/12;

         
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 


      //************************************
      $nvdd=get_nvdd0('FONDOS DE RESERVA');
      {
        $cant=$enti_sueldo['sueldo'];
        $puni=1/12;

         
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
      } 

       
      //************************************
      $nvdd=get_nvdd0('VACACIONES');
      {
        $cant=$enti_sueldo['sueldo'];
        $puni=1/24;
  
        gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
         
      } 


         
       
    }

  }
    
  
  
}


function get_ce20($fecha1='',$fecha2='',$enti='')
{
     
  $horasxmes=240;
  $xaniomes=date('Ym',strtotime($fecha1));
  
  
  $docu='NOV2';
  if($fecha1=='')
  {$fecha1=date('Y-m-01',strtotime('today'));}
    
  if($fecha2=='')
  {$fecha2=date('Y-m-t',strtotime($fecha1));}

   $fecha1a=date('Y-m-01',strtotime('-14 month'));
   $fecha2a=date('Y-m-t',strtotime('+ 1 month'));
    if($fecha1<$fecha1a or $fecha1>$fecha2a){return;} 
     
     include('../_cfg/config.php');
     include('php_session.php');
     
  $sql_enti ='select distinct substring(enti,1,10) as empl, enti_descri from susa12 ';
  $sql_enti.=' where ';
//   $sql_enti.=' fecha2<="'.$fecha1.'"';
  $sql_enti.=' substring(fecha2,1,7)<="'.substr($fecha1,0,7).'"';
  $sql_enti.=' and enti!="" ';
  $sql_enti.=' and enti is not null ';
  if($enti!='')
  {$sql_enti.=' and enti like"'.substr($enti,0,10).'%"';}
  $sql_enti.=' order by enti_descri';
  $res_enti=msql_query($sql_enti,$link_vcrx);
  
  while($aso_enti=msql_fetch_assoc($res_enti))
  {
    $empl=$aso_enti['empl'];
     $enti_sueldo=get_sueldo($empl,$fecha2);
     
     $sueldo=$enti_sueldo['sueldo'];
     $valanti=$enti_sueldo['valanti'];
     $poranti=$enti_sueldo['poranti'];
     $de13=$enti_sueldo['de13'];
     $de14=$enti_sueldo['de14'];
     $fres=$enti_sueldo['fres'];
     
    if($sueldo>1)
    {
       $tot_sueldo=$sueldo;
       $val_orap=$enti_sueldo['alimentacion']+$enti_sueldo['movilizacion']+$enti_sueldo['comision'];
       $val_xhora=$sueldo/$horasxmes;
//       $val_horasx=val_horasx($fecha1,$fecha2,$enti);
       $val_horasx=0;
       $val_comisiones=0;
       
       // retribuciones accesorias permanentes
       $dias_lab=30;

         
         
         
         
      //************************************
      // ANTICIPOS /PRESTAMOS
      {
           $sql_anti ='select * from empl1 left join empl2 on idnum1=idnum2 ';
           $sql_anti.='where status not in("O","X") and docu like "CE2%" ';
           $sql_anti.='and enti like "'.$empl.'%" and fecha2>="'.$fecha1.'" and fecha2<="'.$fecha2.'" ';
           $sql_anti.='order by fecha';
           $res_anti=msql_query($sql_anti,$link_vcrx);
        
           while($asoc_anti=msql_fetch_assoc($res_anti))
           {
                
                
               $nvdd=$asoc_anti['nvdd'];
               $cant=$asoc_anti['cant'];
               $puni=$asoc_anti['puni'];
               $fecha2b=$asoc_anti['fecha2'];
               $detalle=$asoc_anti['detalle'];
                
      $sql_nomi='select * from nomi1 where docu="'.$docu.'" and fecha="'.$fecha2b.'"';
      $res_nomi=msql_query($sql_nomi,$link_vcrx);
      
      if(msql_num_rows($res_nomi)==0)
      {
        $sql_inse='insert into nomi1(docu,fecha)value("'.$docu.'","'.$fecha2b.'")';
        $res_inse=msql_query($sql_inse,$link_vcrx);
        $res_nomi=msql_query($sql_nomi,$link_vcrx);
      }
      $idnum=@msql_result($res_nomi,0,'idnum1');
      
      $numero='0'.str_replace('-','',$fecha2b);
      $sql_updt ='update nomi1 set ';
      $sql_updt.='enti="'.$cfg_ruc.'",';
      $sql_updt.='numero="'.$numero.'",';
      $sql_updt.='status="-"';
      $sql_updt.=' where idnum1="'.$idnum.'"';
      $res_updt=msql_query($sql_updt,$link_vcrx);

               gen_nov12($idnum,$empl,$nvdd,$cant,$puni,$detalle);
           }
           
      }
         
         
         
         
         
         
       
       
      $tot_sueldo=0;
       
     

         
       
    }

  }
    
  
  
}

     
     
     
     
     
     
     
   
function gen_nov12($idnum,$empl,$nvdd,$cant,$puni,$detalle='')
{
//            gen_nov12($idnum,$empl,$nvdd,$cant,$puni);
   if(empty($idnum) or empty($empl) or empty($nvdd) or $cant*$puni<=0){return 0;}
   
	include('../_cfg/config.php');
   $docu='NOV1';
   
     $sql_nomi='select * from nomi2 where idnum2="'.$idnum.'" and enti2 like "'.$empl.'" and nvdd="'.$nvdd.'"';
     $res_nomi=msql_query($sql_nomi,$link_vcrx);

     if(msql_num_rows($res_nomi)==0)
     {
       $iddet=get_iddet($docu,$idnum);
       $sql_inse='insert into nomi2(idnum2,iddet)value("'.$idnum.'","'.$iddet.'")';
       $res_inse=msql_query($sql_inse,$link_vcrx);
     }
     else
     {$iddet=msql_result($res_nomi,0,'iddet');}

     $sql_updt ='update nomi2 set ';
     $sql_updt.='enti2="'.$empl.'",';
     $sql_updt.='nvdd="'.$nvdd.'",';
     $sql_updt.='cant='.$cant.',';
     $sql_updt.='puni='.$puni.',';
     $sql_updt.='detalle="'.$detalle.'",';
     $sql_updt.='iddet="'.$iddet.'"';
     $sql_updt.=' where idnum2="'.$idnum.'"';
     $sql_updt.=' and iddet="'.$iddet.'"';
     $res_updt=msql_query($sql_updt,$link_vcrx);
   
//    echo '<msgalert>';
//    echo $sql_updt.msql_error($link_vcrx);
//    echo '</msgalert>';
   
   return $iddet;

}
   
   
   

}



?>