<?php
declare(strict_types=0);

function set_vtascuni($docu,$idnum)
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     
     $fecha0=date('Y-m-01',strtotime('-3 month'));
//      $fecha0=date('Y-m-01',strtotime('-24 month'));
     
     
     $sql_docu1 ='select * from vtas1 left join vtas2 on idnum1=idnum2 ';
     $sql_docu1.='where idnum1="'.$idnum.'"';
     $res_docu1=msql_query($sql_docu1,$link_data);

//      echo '<br>'.$fecha0;
//           if($idnum==2999)
//      echo '<br>=== '.$sql_docu1;

     
     if(msql_result($res_docu1,0,'fecha')<$fecha0){return;}

//      if($idnum==2999)
//      echo '<br>=== '.$sql_docu1;

     msql_data_seek($res_docu1);
     while($aso_docu1=msql_fetch_assoc($res_docu1))
     {
          $xidnum=$aso_docu1['idnum1'];
          $xiddet=$aso_docu1['iddet'];
          $xitem=$aso_docu1['item'];
          $xfecha=$aso_docu1['fecha'];
          $xnumero=$aso_docu1['numero'];
          
          if(substr($docu,0,2)=='FC'){$docu2='EB10';}
          if(substr($docu,0,2)=='NC'){$docu2='IB12';}
          
          $xfecha1=date('Y-m-d',strtotime($xfecha.' -90 days'));
          $xfecha2=date('Y-m-d',strtotime($xfecha.' +90 days'));
          
          $sql_inve ='select  ';
          $sql_inve.='abs(DATEDIFF("'.$xfecha.'",fecha)) as diasdif, ';
          $sql_inve.='inve1.*, inve2.* ';
          $sql_inve.='from inve1 ';
          $sql_inve.='left join inve2 on idnum1=idnum2 ';
          $sql_inve.='where ifnull(status,"")not in("O","X") ';
          $sql_inve.='and docu like "'.$docu2.'%" ';
          $sql_inve.='and numfac*1="'.$xnumero.'" ';
          $sql_inve.='and item="'.$xitem.'" ';
          $sql_inve.='order by diasdif, fecha ';
          $sql_inve.='limit 1 ';
          $res_inve=msql_query($sql_inve,$link_data);

          
          if(msql_num_rows($res_inve)==0 and substr($docu,0,2)=='FC')
          {
//                echo '<br>===>';
               $sql_inve=str_replace($docu2,'EB19',$sql_inve);
               $res_inve=msql_query($sql_inve,$link_data);
          }
          
//           if($xidnum==3011)
//           {echo '<br>==== '.$sql_inve;}
          
//           $cuni=1/100;
          $cuni=0;
          if(msql_num_rows($res_inve)!=0)
          {$cuni=msql_result($res_inve,0,'puni');}
//           if($cuni==0){$cuni=1/100;}
          
          $sql_updt ='update vtas2 set cuni='.$cuni.' ';                    
          $sql_updt.='where idnum2="'.$xidnum.'" ';
          $sql_updt.='and iddet="'.$xiddet.'" ';
          $sql_updt.='limit 1 ';
          $res_updt=msql_query($sql_updt,$link_data);
          
//           if($xidnum==2999)
//           echo '<br>==='.$sql_updt;
          
     }
          
          
     
}

function gen_fcnc0($docu,$idnum)
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}

     if(substr($docu,0,2)!='FC'){return;}
     
     $docu2='NC10';
     $tablao='vtas';
     $tablad='vtas';
     
     $tablao1=$tablao.'1';
     $tablao2=$tablao.'2';
     $tablad1=$tablad.'1';
     $tablad2=$tablad.'2';
     
     $sql_docu1 ='select * from '.$tablao1.' left join '.$tablao2.' on idnum1=idnum2 ';
//      $sql_docu1=calc_fields($tablao,$sql_docu1);
     $sql_docu1.='where idnum1="'.$idnum.'"';
     $sql_docu1.='group by idnum1';
     
     $res_docu1=msql_query($sql_docu1,$link_data);
     $aso_docu1=msql_fetch_assoc($res_docu1);
          
//      $cantidad=$aso_docu1['efectivo'];
//      if($cantidad>$aso_docu1['total']){$cantidad=$aso_docu1['total'];}
//      if($cantidad==0)
//      {$cantidad=$aso_docu1['total']-$aso_docu1['credito']-$aso_docu1['tarjeta'];}
     
     $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and idfrom="'.$idnum.'" and mdfrom="'.$tablao.'" ';
     $res_docu2=msql_query($sql_docu2,$link_data);
     
     if(msql_num_rows($res_docu2)==0 )
     {
          $sql_inse='insert into '.$tablad1.'(docu,idfrom,mdfrom,iuser,idate) value("'.$docu2.'","'.$idnum.'","'.$tablao.'","'.$_SESSION['user_codigo'].'",now())';
          $res_inse=msql_query($sql_inse,$link_data);
          $res_docu2=msql_query($sql_docu2,$link_data);
     }
     
     $aso_docu2=msql_fetch_assoc($res_docu2);
     $idnumd=msql_result($res_docu2,0,'idnum1');
     $new_numero=msql_result($res_docu2,0,'numero');
     
     
     if(!empty($idnumd))
     {
          if($cantidad==0)
          {
               $sql_updt='update '.$tablad1.' set status="O" where idnum1="'.$idnumd.'"';
               $res_updt=msql_query($sql_updt,$link_data);
               return;
          }
          
          $ptov0=data_maes('ptov',$aso_docu1['ptov']);
          $caja=$ptov0['ptov_caja'];
          if(empty($caja)){$caja='001001';}
          
          $_PARAMS=[];
          $_PARAMS['docu']=$docu2;
          $_PARAMS['caja']=$caja;
          if(empty($new_numero))
          {$new_numero=new_numero($_PARAMS);}
               
          $sql_updt ='update '.$tablad1.' set ';
          $sql_updt.='fecha="'.$aso_docu1['fecha'].'", ';
          $sql_updt.='enti="'.$aso_docu1['enti'].'", ';
          $sql_updt.='ptoe="'.$caja.'", ';
          $sql_updt.='caja="'.$caja.'", ';
          $sql_updt.='numero="'.$new_numero.'", ';
          $sql_updt.='status="'.$aso_docu1['status'].'", ';
          $sql_updt.='uuser="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='udate=now() ';
          $sql_updt.='where idnum1="'.$idnumd.'" ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          $sql_deta='select * from '.$tablad2.' where idnum2="'.$idnumd.'" and iddet=1';
          $res_deta=msql_query($sql_deta,$link_data);
          
          if(msql_num_rows($res_deta)==0)
          {
               $sql_inse='insert into '.$tablad2.'(idnum2,iddet,iuser2,idate2) value("'.$idnumd.'","1","'.$_SESSION['user_codigo'].'",now())';
               $res_inse=msql_query($sql_inse,$link_data);
          }

          
          $sql_updt ='update '.$tablad2.' set ';
          $sql_updt.='docum="'.$aso_docu1['docu'].'", ';
          $sql_updt.='ptoem="'.$aso_docu1['ptoe'].'", ';
          $sql_updt.='numer="'.$aso_docu1['numero'].'", ';
          $sql_updt.='cant="'.$cantidad.'", ';
          $sql_updt.='puni="1", ';
          $sql_updt.='iuser2="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='idate2=now() ';
//           $sql_updt.='status="'.$aso_docu1['status'].'" ';
          $sql_updt.='where idnum2="'.$idnumd.'" ';
          $sql_updt.='and iddet=1 ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          
     }
     
     
}

function gen_fcpp10($docu,$idnum)
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
//      echo '*/*/*'.$docu.$idnum;
     
     if(!mb_stristr('imcp',$empr)){return;}
     if(substr($docu,0,2)!='FC'){return;}
     
     $docu2='PP12';
     $tablao='vtas';
     $tablad='comp';
     
     $tablao1=$tablao.'1';
     $tablao2=$tablao.'2';
     $tablad1=$tablad.'1';
     $tablad2=$tablad.'2';
     
     $sql_docu1 ='select * from '.$tablao1.' left join '.$tablao2.' on idnum1=idnum2 ';
     $sql_docu1=calc_fields($tablao,$sql_docu1);
     $sql_docu1.='where idnum1="'.$idnum.'"';
     $sql_docu1.='group by idnum1,iddet';
     
     $res_docu1=msql_query($sql_docu1,$link_data);
     $aso_docu1=msql_fetch_assoc($res_docu1);
     
     if($aso_docu1['fecha']<'2022-10-01'){return;}

     $sal_docu=sal_docu($docu,$idnum);
   
     if(abs($sal_docu)<0.02){$sal_docu=0;}
     
     if($sal_docu==0)
     {}
//      echo '<br>*/*/*'.$sal_docu;
     
     return;
     
     if($cantidad>$aso_docu1['total']){$cantidad=$aso_docu1['total'];}
     if($cantidad==0)
     {$cantidad=$aso_docu1['total']-$aso_docu1['credito']-$aso_docu1['tarjeta'];}

     
     $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and idfrom="'.$idnum.'" and mdfrom="'.$tablao.'" ';
     $res_docu2=msql_query($sql_docu2,$link_data);
     
     if(msql_num_rows($res_docu2)==0 and $cantidad>0)
     {
          $sql_inse='insert into '.$tablad1.'(docu,idfrom,mdfrom,iuser,idate) value("'.$docu2.'","'.$idnum.'","'.$tablao.'","'.$_SESSION['user_codigo'].'",now())';
          $res_inse=msql_query($sql_inse,$link_data);
     }
     $res_docu2=msql_query($sql_docu2,$link_data);
     $aso_docu2=msql_fetch_assoc($res_docu2);
     $idnumd=msql_result($res_docu2,0,'idnum1');
     $new_numero=msql_result($res_docu2,0,'numero');
     
     
     if(!empty($idnumd))
     {
          
          if($cantidad==0)
          {
               $sql_updt='update '.$tablad1.' set status="O" where idnum1="'.$idnumd.'"';
               $res_updt=msql_query($sql_updt,$link_data);
               return;
          }
          
          $ptov0=data_maes('ptov',$aso_docu1['ptov']);
          $caja=$ptov0['ptov_caja'];
          if(empty($caja)){$caja='001001';}
          
          $_PARAMS=[];
          $_PARAMS['docu']=$docu2;
          $_PARAMS['caja']=$caja;
          if(empty($new_numero))
          {$new_numero=new_numero($_PARAMS);}
               
          $sql_updt ='update '.$tablad1.' set ';
          $sql_updt.='fecha="'.$aso_docu1['fecha'].'", ';
          $sql_updt.='enti="'.$aso_docu1['enti'].'", ';
          $sql_updt.='ptoe="'.$caja.'", ';
          $sql_updt.='caja="'.$caja.'", ';
          $sql_updt.='numero="'.$new_numero.'", ';
          $sql_updt.='status="'.$aso_docu1['status'].'", ';
          $sql_updt.='uuser="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='udate=now() ';
          $sql_updt.='where idnum1="'.$idnumd.'" ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          $sql_deta='select * from '.$tablad2.' where idnum2="'.$idnumd.'" and iddet=1';
          $res_deta=msql_query($sql_deta,$link_data);
          
          if(msql_num_rows($res_deta)==0)
          {
               $sql_inse='insert into '.$tablad2.'(idnum2,iddet,iuser2,idate2) value("'.$idnumd.'","1","'.$_SESSION['user_codigo'].'",now())';
               $res_inse=msql_query($sql_inse,$link_data);
          }

          
          $sql_updt ='update '.$tablad2.' set ';
          $sql_updt.='docum="'.$aso_docu1['docu'].'", ';
          $sql_updt.='ptoem="'.$aso_docu1['ptoe'].'", ';
          $sql_updt.='numer="'.$aso_docu1['numero'].'", ';
          $sql_updt.='cant="'.$cantidad.'", ';
          $sql_updt.='puni="1", ';
          $sql_updt.='iuser2="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='idate2=now() ';
//           $sql_updt.='status="'.$aso_docu1['status'].'" ';
          $sql_updt.='where idnum2="'.$idnumd.'" ';
          $sql_updt.='and iddet=1 ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          
     }
     
     
}

function gen_fcie10($docu,$idnum)
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}

     if(!mb_stristr('hg01.icvs',$empr)){return;}
     if(substr($docu,0,2)!='FC'){return;}
     
     $docu2='IE10';
     $tablao='vtas';
     $tablad='caja';
     
     $tablao1=$tablao.'1';
     $tablao2=$tablao.'2';
     $tablad1=$tablad.'1';
     $tablad2=$tablad.'2';
     
     
     $sql_docu1 ='select * from '.$tablao1.' left join '.$tablao2.' on idnum1=idnum2 ';
     $sql_docu1=calc_fields($tablao,$sql_docu1);
     $sql_docu1.='where idnum1="'.$idnum.'"';
     $sql_docu1.='group by idnum1';
     
     $res_docu1=msql_query($sql_docu1,$link_data);
     $aso_docu1=msql_fetch_assoc($res_docu1);
     
     if($aso_docu1['fecha']<'2000-07-01'){return;}

          
     $cantidad=$aso_docu1['efectivo'];
     if($cantidad>$aso_docu1['total']){$cantidad=$aso_docu1['total'];}
     if($cantidad==0)
     {$cantidad=$aso_docu1['total']-$aso_docu1['credito']-$aso_docu1['tarjeta'];}
     
     $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and idfrom="'.$idnum.'" and mdfrom="'.$tablao.'" ';
     $res_docu2=msql_query($sql_docu2,$link_data);
     
     if(msql_num_rows($res_docu2)==0 and $cantidad>0)
     {
          $sql_inse='insert into '.$tablad1.'(docu,idfrom,mdfrom,iuser,idate) value("'.$docu2.'","'.$idnum.'","'.$tablao.'","'.$_SESSION['user_codigo'].'",now())';
          $res_inse=msql_query($sql_inse,$link_data);
          $res_docu2=msql_query($sql_docu2,$link_data);
     }
     
     $aso_docu2=msql_fetch_assoc($res_docu2);
     $idnumd=msql_result($res_docu2,0,'idnum1');
     $new_numero=msql_result($res_docu2,0,'numero');
     
     
     if(!empty($idnumd))
     {
          if($cantidad==0)
          {
               $sql_updt='update '.$tablad1.' set status="O" where idnum1="'.$idnumd.'"';
               $res_updt=msql_query($sql_updt,$link_data);
               return;
          }
          
          $ptov0=data_maes('ptov',$aso_docu1['ptov']);
          $caja=$ptov0['ptov_caja'];
          if(empty($caja)){$caja='001001';}
          
          $_PARAMS=[];
          $_PARAMS['docu']=$docu2;
          $_PARAMS['caja']=$caja;
          if(empty($new_numero))
          {$new_numero=new_numero($_PARAMS);}
               
          $sql_updt ='update '.$tablad1.' set ';
          $sql_updt.='fecha="'.$aso_docu1['fecha'].'", ';
          $sql_updt.='enti="'.$aso_docu1['enti'].'", ';
          $sql_updt.='ptoe="'.$caja.'", ';
          $sql_updt.='caja="'.$caja.'", ';
          $sql_updt.='numero="'.$new_numero.'", ';
          $sql_updt.='status="'.$aso_docu1['status'].'", ';
          $sql_updt.='uuser="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='udate=now() ';
          $sql_updt.='where idnum1="'.$idnumd.'" ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          $sql_deta='select * from '.$tablad2.' where idnum2="'.$idnumd.'" and iddet=1';
          $res_deta=msql_query($sql_deta,$link_data);
          
          if(msql_num_rows($res_deta)==0)
          {
               $sql_inse='insert into '.$tablad2.'(idnum2,iddet,iuser2,idate2) value("'.$idnumd.'","1","'.$_SESSION['user_codigo'].'",now())';
               $res_inse=msql_query($sql_inse,$link_data);
          }

          
          $sql_updt ='update '.$tablad2.' set ';
          $sql_updt.='docum="'.$aso_docu1['docu'].'", ';
          $sql_updt.='ptoem="'.$aso_docu1['ptoe'].'", ';
          $sql_updt.='numer="'.$aso_docu1['numero'].'", ';
          $sql_updt.='cant="'.$cantidad.'", ';
          $sql_updt.='puni="1", ';
          $sql_updt.='iuser2="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='idate2=now() ';
//           $sql_updt.='status="'.$aso_docu1['status'].'" ';
          $sql_updt.='where idnum2="'.$idnumd.'" ';
          $sql_updt.='and iddet=1 ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          
     }
     
     
}

function gen_fc10cob($docu,$idnum)
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}

     
     if(!mb_stristr('hg01.icvs.demo.mhec',$empr)){return;}
     if(substr($docu,0,2)!='FC'){return;}
     
     $tablao='vtas';
     $tablao1=$tablao.'1';
     $tablao2=$tablao.'2';

     $sql_docu1 ='select * from '.$tablao1.' left join '.$tablao2.' on idnum1=idnum2 ';
     $sql_docu1=calc_fields($tablao,$sql_docu1);
     $sql_docu1.='where idnum1="'.$idnum.'"';
     $sql_docu1.='group by idnum1';
     $res_docu1=msql_query($sql_docu1,$link_data);
     $aso_docu1=msql_fetch_assoc($res_docu1);
     
     if($aso_docu1['fecha']<'2000-07-01'){return;}

     $efectivo=$aso_docu1['efectivo'];
     $transf=$aso_docu1['transf'];
     $tarjeta=$aso_docu1['tarjeta'];
     

//      echo '=====> '.$tarjeta;
     
     if($efectivo>0)
     {
          $cantidad=$efectivo;
          $docu2='IE10';
          $tablad='caja';
          $tablad1=$tablad.'1';
          $tablad2=$tablad.'2';

          if($cantidad>$aso_docu1['total']){$cantidad=$aso_docu1['total'];}
          if($cantidad==0)
          {$cantidad=$aso_docu1['total']-$aso_docu1['credito']-$aso_docu1['tarjeta'];}

          $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and idfrom="'.$idnum.'" and mdfrom="'.$tablao.'" ';
          $res_docu2=msql_query($sql_docu2,$link_data);

          if(msql_num_rows($res_docu2)==0 and $cantidad>0)
          {
               $sql_inse='insert into '.$tablad1.'(docu,idfrom,mdfrom,iuser,idate) value("'.$docu2.'","'.$idnum.'","'.$tablao.'","'.$_SESSION['user_codigo'].'",now())';
               $res_inse=msql_query($sql_inse,$link_data);
               $res_docu2=msql_query($sql_docu2,$link_data);
          }

          $aso_docu2=msql_fetch_assoc($res_docu2);
          $idnumd=msql_result($res_docu2,0,'idnum1');
          $new_numero=msql_result($res_docu2,0,'numero');

          if(!empty($idnumd))
          {
               if($cantidad==0)
               {
                    $sql_updt='update '.$tablad1.' set status="O" where idnum1="'.$idnumd.'"';
                    $res_updt=msql_query($sql_updt,$link_data);
                    return;
               }

               $ptov0=data_maes('ptov',$aso_docu1['ptov']);
               $caja=$ptov0['ptov_caja'];
               if(empty($caja)){$caja='001001';}

               $_PARAMS=[];
               $_PARAMS['docu']=$docu2;
               $_PARAMS['caja']=$caja;
               if(empty($new_numero))
               {$new_numero=new_numero($_PARAMS);}

               $sql_updt ='update '.$tablad1.' set ';
               $sql_updt.='fecha="'.$aso_docu1['fecha'].'", ';
               $sql_updt.='enti="'.$aso_docu1['enti'].'", ';
               $sql_updt.='ptoe="'.$caja.'", ';
               $sql_updt.='caja="'.$caja.'", ';
               $sql_updt.='numero="'.$new_numero.'", ';
               $sql_updt.='status="'.$aso_docu1['status'].'", ';
               $sql_updt.='uuser="'.$_SESSION['user_codigo'].'", ';
               $sql_updt.='udate=now() ';
               $sql_updt.='where idnum1="'.$idnumd.'" ';
               $res_updt=msql_query($sql_updt,$link_data);


               $sql_deta='select * from '.$tablad2.' where idnum2="'.$idnumd.'" and iddet=1';
               $res_deta=msql_query($sql_deta,$link_data);

               if(msql_num_rows($res_deta)==0)
               {
                    $sql_inse='insert into '.$tablad2.'(idnum2,iddet,iuser2,idate2) value("'.$idnumd.'","1","'.$_SESSION['user_codigo'].'",now())';
                    $res_inse=msql_query($sql_inse,$link_data);
               }


               $sql_updt ='update '.$tablad2.' set ';
               $sql_updt.='docum="'.$aso_docu1['docu'].'", ';
               $sql_updt.='ptoem="'.$aso_docu1['ptoe'].'", ';
               $sql_updt.='numer="'.$aso_docu1['numero'].'", ';
               $sql_updt.='cant="'.$cantidad.'", ';
               $sql_updt.='puni="1", ';
               $sql_updt.='iuser2="'.$_SESSION['user_codigo'].'", ';
               $sql_updt.='idate2=now() ';
     //           $sql_updt.='status="'.$aso_docu1['status'].'" ';
               $sql_updt.='where idnum2="'.$idnumd.'" ';
               $sql_updt.='and iddet=1 ';
               $res_updt=msql_query($sql_updt,$link_data);



          }
     }     

     if($tarjeta>0)
     {
          $cantidad=$tarjeta;
          $docu2='IV10';
          $tablad='caja';
          $tablad1=$tablad.'1';
          $tablad2=$tablad.'2';

//           if($cantidad>$aso_docu1['total']){$cantidad=$aso_docu1['total'];}
//           if($cantidad==0)
//           {$cantidad=$aso_docu1['total']-$aso_docu1['credito']-$aso_docu1['tarjeta'];}

//           $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and idfrom="'.$idnum.'" and mdfrom="'.$tablao.'" ';
          $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and (idfrom="'.$idnum.'" and mdfrom="'.$tablao.'") ';
          $res_docu2=msql_query($sql_docu2,$link_data);

          if(msql_num_rows($res_docu2)==0)
          {
               $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and (numero*1)="'.($aso_docu1['numvou']*1).'" ';
               $res_docu2=msql_query($sql_docu2,$link_data);
          }
          
//           echo '===>'.$sql_docu2.'==*/*/*/'.$cantidad;
          
          $caja=$aso_docu1['caja'];
          $numero=$aso_docu1['numvou'];
          $numero=str_pad($numero,9,'0',STR_PAD_LEFT);

          if(msql_num_rows($res_docu2)==0 and $cantidad>0)
          {
//                $sql_inse='insert into '.$tablad1.'(docu,idfrom,mdfrom,iuser,idate) value("'.$docu2.'","'.$idnum.'","'.$tablao.'","'.$_SESSION['user_codigo'].'",now())';
               $sql_inse='insert into '.$tablad1.'(docu,caja,numero,idfrom,mdfrom,iuser,idate) ';
               $sql_inse.='                  value("'.$docu2.'","'.$caja.'","'.$numero.'","'.$idnum.'","'.$tablao.'","'.$_SESSION['user_codigo'].'",now())';
               $res_inse=msql_query($sql_inse,$link_data);
               $res_docu2=msql_query($sql_docu2,$link_data);
               
//                echo '===>>>>> '.$sql_inse;
          }

          $aso_docu2=msql_fetch_assoc($res_docu2);
          $idnumd=msql_result($res_docu2,0,'idnum1');
//           $new_numero=msql_result($res_docu2,0,'numero');
          $new_numero=$numero;
          
          
//           echo '======> '.$idnumd;

          if(!empty($idnumd))
          {
               if($cantidad==0)
               {
                    $sql_updt='update '.$tablad1.' set status="O" where idnum1="'.$idnumd.'"';
                    $res_updt=msql_query($sql_updt,$link_data);
                    return;
               }

//                $ptov0=data_maes('ptov',$aso_docu1['ptov']);
//                $caja=$ptov0['ptov_caja'];
//                if(empty($caja)){$caja='001001';}

//                $_PARAMS=[];
//                $_PARAMS['docu']=$docu2;
//                $_PARAMS['caja']=$caja;
//                if(empty($new_numero))
//                {$new_numero=new_numero($_PARAMS);}

               $sql_updt ='update '.$tablad1.' set ';
               $sql_updt.='fecha="'.$aso_docu1['fecha'].'", ';
               $sql_updt.='enti="'.$aso_docu1['enti'].'", ';
//                $sql_updt.='ptoe="'.$caja.'", ';
//                $sql_updt.='caja="'.$caja.'", ';
               $sql_updt.='numero="'.$new_numero.'", ';
               $sql_updt.='idfrom="'.$idnum.'", ';
               $sql_updt.='mdfrom="vtas", ';
               $sql_updt.='status="'.$aso_docu1['status'].'", ';
               $sql_updt.='uuser="'.$_SESSION['user_codigo'].'", ';
               $sql_updt.='udate=now() ';
               $sql_updt.='where idnum1="'.$idnumd.'" ';
               $res_updt=msql_query($sql_updt,$link_data);
               
//                echo '==== '.$sql_updt;


               $sql_deta='select * from '.$tablad2.' where idnum2="'.$idnumd.'" and iddet=1';
               $res_deta=msql_query($sql_deta,$link_data);

               if(msql_num_rows($res_deta)==0)
               {
                    $sql_inse='insert into '.$tablad2.'(idnum2,iddet,iuser2,idate2) value("'.$idnumd.'","1","'.$_SESSION['user_codigo'].'",now())';
                    $res_inse=msql_query($sql_inse,$link_data);
               }


               $sql_updt ='update '.$tablad2.' set ';
               $sql_updt.='docum="'.$aso_docu1['docu'].'", ';
               $sql_updt.='ptoem="'.$aso_docu1['ptoe'].'", ';
               $sql_updt.='numer="'.$aso_docu1['numero'].'", ';
               $sql_updt.='cant="'.$cantidad.'", ';
               $sql_updt.='puni="1", ';
               $sql_updt.='iuser2="'.$_SESSION['user_codigo'].'", ';
               $sql_updt.='idate2=now() ';
     //           $sql_updt.='status="'.$aso_docu1['status'].'" ';
               $sql_updt.='where idnum2="'.$idnumd.'" ';
               $sql_updt.='and iddet=1 ';
               $res_updt=msql_query($sql_updt,$link_data);

//                echo '<br>*/*/*/*/*'.$sql_updt;

          }
     }     
     
}


function vtas_ingr_difer($docu,$idnum)
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     
     $xingdif=0;
     if(!mb_stristr('FC.NC',substr($docu,0,2))){return 0;}
     
     
//      if($empr=='imcp' and $idnum==3690){return 0;}
     
     if(substr($docu,0,2)=='NC')
     {
          $sql_fact='select * from vtas1 where idnum1="'.$idnum.'" ';
          $res_fact=msql_query($sql_fact,$link_data);

          $todocu=msql_result($res_fact,0,'todocu');
          $toptoe=msql_result($res_fact,0,'toptoe');
          $tonume=msql_result($res_fact,0,'tonume');

          $sql_fact='select * from vtas1 where docu="'.$todocu.'" and  ptoe="'.$toptoe.'" and  numero="'.$tonume.'"';
          $res_fact=msql_query($sql_fact,$link_data);
          $docu=msql_result($res_fact,0,'docu');
          $idnum=msql_result($res_fact,0,'idnum1');
     }
  
     $sql_fact='select *,sum(cant) as tcantfc from vtas1 left join vtas2 on idnum1=idnum2 where idnum1="'.$idnum.'" ';
     $sql_fact.='and item in(select distinct item from inve2)';
//      echo '<br>=== '.$sql_fact;
     $res_fact=msql_query($sql_fact,$link_data);
     $entiv=msql_result($res_fact,0,'enti');
     $docuv=msql_result($res_fact,0,'docu');
     $ptoev=msql_result($res_fact,0,'ptoe');
     $numev=msql_result($res_fact,0,'numero');
     $fechav=msql_result($res_fact,0,'fecha');
     $tcantfc=msql_result($res_fact,0,'tcantfc');
     
     
     $ptov0=data_maes('ptov',$ptoev);
     if($ptov0['ptov_autocon']==1)
     {return 0;}
     
     if(substr($empr0['empr_ruc'],0,10)==substr($entiv,0,10))
     {return 0;}
     
  
     $fecha1=date('Y-01-01', strtotime($fechav));
     $fecha2=date('Y-m-t', strtotime($fechav));

     $sql_fact='select *,sum(cant) as tcantnc from vtas1 left join vtas2 on idnum1=idnum2 ';
     $sql_fact.='where todocu="'.$docu.'" and  toptoe="'.$ptoev.'" and  tonume*1="'.(int)$numev.'" and fecha between "'.$fecha1.'" and "'.$fecha2.'" and status not in("O","X")';
     $res_fact=msql_query($sql_fact,$link_data);
     $tcantnc=@msql_result($res_fact,0,'tcantnc');

     $sql_inve='select *,sum(cant) as tcanteb from inve1 left join inve2 on idnum1=idnum2 ';
     $sql_inve.='where numfac*1="'.(int)$numev.'" and fecha between "'.$fecha1.'" and "'.$fecha2.'" and status not in("O","X")';
     $res_inve=msql_query($sql_inve,$link_data);
     $tcanteb=@msql_result($res_inve,0,'tcanteb');
  
//      echo '<br>==='.$tcantfc;
//      echo '<br>==='.$tcantnc;
//      echo '<br>==='.$tcanteb;
     
     $tdifer=$tcantfc-$tcantnc-$tcanteb;
  
     if($tdifer>0){$xingdif=1;}
     
     if($fechav>='2025-01-01')
     {if($tcanteb==0){$xingdif=0;}}
     
     return $xingdif;
}


//autoconsumo
function gen_fccc19($docu,$idnum)
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}

//      if(!mb_stristr('hg01.icvs',$empr)){return;}
     if(substr($docu,0,2)!='FC'){return;}
     
     $docu2='CC19';
     $tablao='vtas';
     $tablad='dxco';
     
     $tablao1=$tablao.'1';
     $tablao2=$tablao.'2';
     $tablad1=$tablad.'1';
     $tablad2=$tablad.'2';
     
     $sql_docu1 ='select * from '.$tablao1.' left join '.$tablao2.' on idnum1=idnum2 ';
     $sql_docu1=calc_fields($tablao,$sql_docu1);
     $sql_docu1.='where idnum1="'.$idnum.'"';
     $sql_docu1.='group by idnum1';
     
     $res_docu1=msql_query($sql_docu1,$link_data);
     $aso_docu1=msql_fetch_assoc($res_docu1);
     
     if($aso_docu1['fecha']<'2024-10-01'){return;}
     
     $empr0=data_maes('empr',$empr);
     if(substr($aso_docu1['enti'],0,10)!=substr($empr0['empr_ruc'],0,10)){return;}

          
//      $cantidad=$aso_docu1['efectivo'];
//      if($cantidad>$aso_docu1['total']){$cantidad=$aso_docu1['total'];}
//      if($cantidad==0)
//      {$cantidad=$aso_docu1['total']-$aso_docu1['credito']-$aso_docu1['tarjeta'];}

     $cantidad=$aso_docu1['total'];
     
     $sql_docu2='select * from '.$tablad1.' where docu="'.$docu2.'" and idfrom="'.$idnum.'" and mdfrom="'.$tablao.'" ';
     $res_docu2=msql_query($sql_docu2,$link_data);
     
     if(msql_num_rows($res_docu2)==0 and $cantidad>0)
     {
          $sql_inse='insert into '.$tablad1.'(docu,idfrom,mdfrom,iuser,idate) value("'.$docu2.'","'.$idnum.'","'.$tablao.'","'.$_SESSION['user_codigo'].'",now())';
          $res_inse=msql_query($sql_inse,$link_data);
          $res_docu2=msql_query($sql_docu2,$link_data);
     }
     
     $aso_docu2=msql_fetch_assoc($res_docu2);
     $idnumd=msql_result($res_docu2,0,'idnum1');
     $new_numero=msql_result($res_docu2,0,'numero');
     
     
     if(!empty($idnumd))
     {
          if($cantidad==0)
          {
               $sql_updt='update '.$tablad1.' set status="O" where idnum1="'.$idnumd.'"';
               $res_updt=msql_query($sql_updt,$link_data);
               return;
          }
          
//           $ptov0=data_maes('ptov',$aso_docu1['ptov']);
//           $caja=$ptov0['ptov_caja'];
//           if(empty($caja)){$caja='001001';}
          
          $_PARAMS=$aso_docu1;
          $_PARAMS['docu']=$docu2;
          $_PARAMS['ptoe']='001001';
          
//           $_PARAMS['caja']=$caja;
          if(empty($new_numero))
          {$new_numero=new_numero($_PARAMS);}
               
          $sql_updt ='update '.$tablad1.' set ';
          $sql_updt.='fecha="'.$aso_docu1['fecha'].'", ';
          $sql_updt.='enti="'.$aso_docu1['enti'].'", ';
//           $sql_updt.='ptoe="'.$caja.'", ';
//           $sql_updt.='caja="'.$caja.'", ';
          $sql_updt.='ptoe="001001", ';
          $sql_updt.='numero="'.$new_numero.'", ';
          $sql_updt.='status="'.$aso_docu1['status'].'", ';
          $sql_updt.='uuser="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='udate=now() ';
          $sql_updt.='where idnum1="'.$idnumd.'" ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          $sql_deta='select * from '.$tablad2.' where idnum2="'.$idnumd.'" and iddet=1';
          $res_deta=msql_query($sql_deta,$link_data);
          
          if(msql_num_rows($res_deta)==0)
          {
               $sql_inse='insert into '.$tablad2.'(idnum2,iddet,iuser2,idate2) value("'.$idnumd.'","1","'.$_SESSION['user_codigo'].'",now())';
               $res_inse=msql_query($sql_inse,$link_data);
          }

          
          $sql_updt ='update '.$tablad2.' set ';
          $sql_updt.='docum="'.$aso_docu1['docu'].'", ';
          $sql_updt.='ptoem="'.$aso_docu1['ptoe'].'", ';
          $sql_updt.='numer="'.$aso_docu1['numero'].'", ';
          $sql_updt.='cant="'.$cantidad.'", ';
          $sql_updt.='puni="1", ';
          $sql_updt.='iuser2="'.$_SESSION['user_codigo'].'", ';
          $sql_updt.='idate2=now() ';
//           $sql_updt.='status="'.$aso_docu1['status'].'" ';
          $sql_updt.='where idnum2="'.$idnumd.'" ';
          $sql_updt.='and iddet=1 ';
          $res_updt=msql_query($sql_updt,$link_data);
          
          
          
     }
     
     
}




function get_idvtas($docu,$idnum)
{
     if(!mb_stristr('EB',substr($docu,0,2)) and $docu!='IB12'){return;}

     if($idnum==""){return;}
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}

     $idvtas='';
     $tabla='inve';
     $sql_inve='select * from '.$tabla.'1 where docu="'.$docu.'" and idnum1="'.$idnum.'" and status not in("O","X")';
     $res_inve=msql_query($sql_inve,$link_data);
     if(msql_num_rows($res_inve)!=0)
     {
          $idvtas='';
          $ifecha=msql_result($res_inve,0,'fecha');
          $ienti=msql_result($res_inve,0,'enti');
          $iptoe=msql_result($res_inve,0,'ptoe');
          $inumero=msql_result($res_inve,0,'numero');
          $inumfac=@msql_result($res_inve,0,'numfac');

          $fecha1=date('Y-m-d',strtotime($ifecha.' -30 days')); 
          $fecha2=date('Y-m-d',strtotime($ifecha.' +30 days')); 

          $docu2='FC10';
          if(substr($docu,0,2)=='IB')
          {$docu2='NC10';}
          $tabla='vtas';
          $sql_vtas ='select * from '.$tabla.'1 ';
          $sql_vtas.='where docu="'.$docu2.'" ';
          $sql_vtas.='and status not in("O","X") ';
          $sql_vtas.='and numero="'.$inumfac.'" ';
          $sql_vtas.='order by fecha desc ';
          $res_vtas=msql_query($sql_vtas,$link_data);
          
          if(msql_num_rows($res_vtas)!=0){$idvtas=msql_result($res_vtas,0,'idnum1');}
          else
          {
               $sql_vtas ='select * from '.$tabla.'1 ';
               $sql_vtas.='where docu="'.$docu2.'" ';
               $sql_vtas.='and status not in("O","X") ';
               $sql_vtas.='and idfrom="'.$idnum.'" ';
               $sql_vtas.='and lower(mdfrom)="inve" ';
               $res_vtas=msql_query($sql_vtas,$link_data);
               if(msql_num_rows($res_vtas)!=0){$idvtas=msql_result($res_vtas,0,'idnum1');}
               else
               {
                    $sql_vtas ='select * from '.$tabla.'1 ';
                    $sql_vtas.='left join '.$tabla.'2 on idnum1=idnum2 ';
                    $sql_vtas.='where docu="'.$docu2.'" ';
                    $sql_vtas.='and status not in("O","X") ';
                    $sql_vtas.='and enti like "'.substr($ienti,0,10).'%" ';
                    $sql_vtas.='and fecha>="'.$fecha1.'" ';
                    $sql_vtas.='and fecha<="'.$fecha2.'" ';
                    $sql_vtas.='and item in(select item from inve2 where idnum2="'.$idnum.'")';
                    $sql_vtas.=' order by fecha desc ';
                    $res_vtas=msql_query($sql_vtas,$link_data);
                    if(msql_num_rows($res_vtas)!=0){$idvtas=msql_result($res_vtas,0,'idnum1');}
                    else
                    {
                         $sql_vtas ='select * from '.$tabla.'1 ';
                         $sql_vtas.=' where docu="'.$docu2.'" ';
                         $sql_vtas.='and status not in("O","X") ';
                         $sql_vtas.='and enti like "'.substr($ienti,0,10).'%" ';
                         $sql_vtas.='and fecha>="'.$fecha1.'" ';
                         $sql_vtas.='and fecha<="'.$fecha2.'" ';
                         $sql_vtas.='order by fecha desc ';
                         $res_vtas=msql_query($sql_vtas,$link_data);
                         if(msql_num_rows($res_vtas)!=0){$idvtas=msql_result($res_vtas,0,'idnum1');}
                    }
               }

          }



     //     echo '*/*/*/*/'.$idvtas;
          return $idvtas;

     }

  
}



function get_serie_lote($docu,$idnum)	
{
//      return;
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     if(empty($idnum)){return;}
     
     $serie_lote=array();

	$sql_vtas ='select * from vtas1 where idnum1="'.$idnum.'"';
	$res_vtas=msql_query($sql_vtas,$link_data);
	
     $dvta=data_docu($docu,$idnum);
     $enti=$dvta['enti'];     
     $fecha1=$dvta['fecha'];     
     $fecha2=$dvta['fecha'];     
//      var_dump2($dvta);

	if(strtolower($docu1['idfrom'])=='clie')
	{
		$sql_clie='select * from clie1 where idnum1="'.$idfrom.'"';
		$res_clie=msql_query($sql_clie,$link_data);
		$fecha1=msql_result($res_clie,0,'fecha');
	}
	$numseries='';
	$lotes='';
	
     // 	$sql_vtas2='select distinct idnum2,item,item_descri from vtas12 where idnum2="'.$idnum.'"';
     $sql_vtas2='select distinct idnum2,item,item_descri,item_codigov, min(iddet) as iddet ';
     $sql_vtas2.='from vtas2 left join item0 on item=item_codigo ';
     $sql_vtas2.='where idnum2="'.$idnum.'" ';
     $sql_vtas2.='and ifnull(lote,"")="" ';
     $sql_vtas2.='group by item ';
     $sql_vtas2.='order by iddet ';
     $res_vtas2=msql_query($sql_vtas2,$link_data);

     $citem=0;     
	while($aso_vtas2=msql_fetch_assoc($res_vtas2))
	{
          $xitem=$aso_vtas2['item'];
          $xitem_codigov=$aso_vtas2['item_codigov'];
          $xitem_descri=$aso_vtas2['item_descri'];
          $xfecha1=$fecha1;
          $xfecha2=$fecha2;
          $elote=0;
          $eserie=0;

          {
               $sql_inve ='select *  ';
               $sql_inve.='from inve1 left join inve2 on idnum1=idnum2 ';
               $sql_inve.='where status not in ("O","X") ';
               $sql_inve.='and (fecha between "'.$xfecha1.'" and "'.$xfecha2.'") ';
               $sql_inve.='and enti like "'.substr($enti,0,10).'%" ';
               $sql_inve.='and numfac*1="'.(int)$numero.'" ';
               $sql_inve.='and item="'.$xitem.'" ';
               $res_inve=msql_query($sql_inve,$link_data);
               
          }

          // buscar ampliando la fecha
          if(msql_num_rows($res_inve)==0)
          {
               $xfecha1=date('Y-m-01',strtotime($fecha1. '-1 month'));
               $xfecha2=date('Y-m-t',strtotime($fecha2. '+1 month'));
               $sql_inve ='select *  ';
               $sql_inve.='from inve1 left join inve2 on idnum1=idnum2 ';
               $sql_inve.='where status not in ("O","X") ';
               $sql_inve.='and (fecha between "'.$xfecha1.'" and "'.$xfecha2.'") ';
               $sql_inve.='and enti like "'.substr($enti,0,10).'%" ';
               $sql_inve.='and numfac*1="'.(int)$numero.'" ';
               $sql_inve.='and item="'.$xitem.'" ';
               $res_inve=msql_query($sql_inve,$link_data);
          }

          if(msql_num_rows($res_inve)!=0)
          {
               $elote=1;
               $eserie=1;
          }
          
//           echo '<br>===='.msql_num_rows($res_inve);
          // buscar sin numero fact
          if(msql_num_rows($res_inve)==0)
          {
               $xfecha1=date('Y-m-01',strtotime($fecha1. '-1 month'));
               $xfecha2=date('Y-m-t',strtotime($fecha2. '+1 month'));
               $sql_inve ='select *  ';
               $sql_inve.='from inve1 left join inve2 on idnum1=idnum2 ';
               $sql_inve.='where status not in ("O","X") ';
               $sql_inve.='and (fecha between "'.$xfecha1.'" and "'.$xfecha2.'") ';
               $sql_inve.='and enti like "'.substr($enti,0,10).'%" ';
//                $sql_inve.='and numfac*1="'.(int)$numero.'" ';
               $sql_inve.='and item="'.$xitem.'" ';
               $sql_inve.='order by fecha desc, idnum1 desc ';
               $sql_inve.='limit 1 ';
               $res_inve=msql_query($sql_inve,$link_data);
          }
      
      
//           $iserie='/SN ';
//           $ilote='/LOTES ';
          $iserie='';
          $ilote='';
          $flote='';
          while($aso_inve=msql_fetch_assoc($res_inve))
          {
//                echo '===='.$xtt++;
               $xlote=trim($aso_inve['lote']);
               $xserie=trim($aso_inve['numserie']);
               
               if(!empty($xserie)){$iserie.=' / '.$xserie;}
               
               if($elote==0)
               {if(!empty($xlote)){$ilote.=' / '.$xlote;}}
               
               if($elote==1)
               {
                    if(!empty($xlote)){$flote.=' / '.$flote;}
//                     if($docu1['fecha']>=date('Y-m-01',strtotime('-1 month')))
//                     {
//                          $sql_updt='update vtas2 set lote="'.$xlote.'" where idnum2="'.$docu1['idnum1'].'" and item="'.$aso_inve['item'].'" ';
//                          $res_updt=msql_query($sql_updt,$link_data);
//                     }
               }
               
          }

          if(!empty($flote))          
          if($docu1['fecha']>=date('Y-m-01',strtotime('-1 month')))
          {
               $sql_updt='update vtas2 set lote="'.$flote.'" where idnum2="'.$docu1['idnum1'].'" and item="'.$aso_inve['item'].'" ';
               $res_updt=msql_query($sql_updt,$link_data);
          }
          
          if(!empty($ilote))
          {
               $citem++;
               $serie_lote[$xitem_codigov]=$ilote;
          }
          
	}
     
     return $serie_lote;
}


function calc_dixco($modu='cxco', $info='ccresu')
{
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     
//      echo '<br>==> '.date('Y:i:s');
     
     include('sele_info.php');
     
     $sql_dico=$sql_info;
     $res_dico=msql_query($sql_dico,$link_data);
//      echo '<br>===> '.msql_num_rows($res_dico) ;
     
     msql_data_seek($res_dico,0);
     while ($asoc=msql_fetch_assoc($res_dico))
     {
          if($asoc['vence']>='2000-01-01' and $asoc['u_movi']>='2000-01-01')
          {
               $xu_movi=$asoc['u_movi'];
               if($asoc['saldo']>=$asoc['total'])
               {$xu_movi=$asoc['vence'];}
                    
                    
               $xdixco=days_diff($asoc['vence'], $xu_movi);
               if($asoc['vence']>date('Y-m-d')){$xdixco=0;}
               if($asoc['dias_v']>$xdixco){$xdixco=$asoc['dias_v'];}
               
               $sql_updt='update vtas1 set dixco="'.$xdixco.'" where idnum1="'.$asoc['idnum1_hide'].'"';
               $res_updt=msql_query($sql_updt,$link_data);
          }
     }
     
//      echo '<br>==> '.date('Y:i:s');
     
     
}

?>