<?php
declare(strict_types=0);
function info_inve($params)
{
// params informe/fecha1/fecha2/linea/item/bode/tipobode/valores     
     
}



function gen_bode0($fecha1,$fecha2)
{
     
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     
     if(empty($fecha1)){$fecha1=date('Y-m-d');}
     if(empty($fecha2)){$fecha2=date('Y-m-d');}
     $fecha0=date('Y-m-d',strtotime('-3 month'));
     
//      $sql_eb13='select * from inve1 where docu like "EB13" and fecha>="'.$fecha1.'" and fecha<="'.$fecha2.'" order by fecha';
     $sql_eb13='select * from inve1 where docu like "EB13" and fecha>="'.$fecha0.'" and fecha>="'.$fecha1.'" and fecha<="'.$fecha2.'" order by fecha';
     $res_eb13=msql_query($sql_eb13,$link_data);
     
//      while($aso_eb13=msql_fetch_assoc($res_eb13))
//      {gen_bode13($aso_eb13['docu'],$aso_eb13['idnum1']);}
     
     while($aso_eb13=msql_fetch_assoc($res_eb13))
     {gen_invent($aso_eb13['docu'],$aso_eb13['idnum1']);}
     
}

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

//      if(substr($docu,0,2)!='RB'){return;}
     if($docu!='EB13'){return;}

     $sql_eb13='select * from inve1 where docu="'.$docu.'" and idnum1="'.$idnum.'"';
     $res_eb13=msql_query($sql_eb13,$link_data);
     
//      $fecha0=date('Y-m-d',strtotime('-3 month'));
     $fecha0=date('Y-m-d',strtotime('-1 day'));
     
     if(msql_num_rows($res_eb13)==0){return;}     
     if(msql_result($res_eb13,0,'fecha')<=$fecha0){return;}

     $docu1=data_docu($docu,$idnum);
     $docu2='IB13';
     $newid=0;
     
     
//      $sql_ib13='select * from inve1 where docu = "'.$docu2.'" and bode="'.$docu1['bode2'].'" and bode2="'.$docu1['bode'].'" and idfrom="'.$idnum.'"';
//      $res_ib13=msql_query($sql_bcos,$link_data);
     
//      if(msql_num_rows($res_ib13)==0)
     {$newid=clon_docu($docu,$idnum,$docu2);}
     
//      if(msql_num_rows($res_ib13)==1)
//      {$newid=msql_result($res_ib13,0,'idnum1');}     

     
     if(!empty($newid))
     {
     $sql_updt='update inve1 set bode="'.$docu1['bode2'].'",  ';
     $sql_updt.='bode2="'.$docu1['bode'].'",  ';
     $sql_updt.='fecha=adddate(fecha,ifnull(dias,0)),  ';
     $sql_updt.='status="'.$docu1['status'].'" ';
     $sql_updt.='where idnum1="'.$newid.'"';
     $res_updt=msql_query($sql_updt,$link_data);
//      echo '<br>==='.$sql_updt;
     }
     
     
     $sql_updt='update inve2 set nega=null ';
     $sql_updt.='where idnum2="'.$newid.'"';
     $res_updt=msql_query($sql_updt,$link_data);
     

     
     $sql_ib13='select * from inve1 where docu = "'.$docu2.'" ';
     $sql_ib13.='and bode!="'.$docu1['bode2'].'" ';
//      $sql_ib13.='and ifnull(bode2,"")!="'.$docu1['bode'].'" ';
     $sql_ib13.='and idfrom="'.$idnum.'"';
     $res_ib13=msql_query($sql_ib13,$link_data);
//           echo '<br>*/*/*/'.$sql_ib13;
     while($aso_ib13=msql_fetch_assoc($res_ib13))
     {
//           echo '<br>*/*/*/'.$aso_ib13['idnum1'];
          $sql_updt='update inve1 set status="O" where idnum1='.$aso_ib13['idnum1'].' limit 1';
          $res_updt=msql_query($sql_updt,$link_data);
     }
     
}


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

     $empr0=data_maes('empr',$empr);
     if($empr0['empr_inve']!='1'){return;}
     
     $docu0=data_maes('docu',$docu);
     
     $sql_docu='select * from '.strtolower($docu0['docu_tabla']).'1 where docu="'.$docu.'" and idnum1="'.$idnum.'"';
     $res_docu=msql_query($sql_docu,$link_data);
     
     if(msql_num_rows($res_docu)==0){return;}    
     
     $fecha0=date('Y-m-d',strtotime('-3 month'));
     if(msql_result($res_docu,0,'fecha')<=$fecha0){return;}
     
     if($docu=='EB13')
     {
          $docu1=data_docu($docu,$idnum);
          $docu2='IB13';
          $newid=0;
          $newid=clon_docu($docu,$idnum,$docu2);

          if(!empty($newid))
          {
               $sql_updt='update inve1 set ';
               $sql_updt.='bode="'.$docu1['bode2'].'", ';
               $sql_updt.='bode2="'.$docu1['bode'].'", ';
               $sql_updt.='fecha=adddate(fecha,ifnull(dias,0)), ';
               $sql_updt.='status="'.$docu1['status'].'" ';
               $sql_updt.='where idnum1="'.$newid.'"';
               $res_updt=msql_query($sql_updt,$link_data);
          }

          $sql_updt='update inve2 set nega=null ';
          $sql_updt.='where idnum2="'.$newid.'"';
          $res_updt=msql_query($sql_updt,$link_data);

          $sql_updt='update inve1 left join bode0 on bode=bode_codigo set ptoe=bode_ptoe ';
          $sql_updt.='where idnum1="'.$newid.'"';
          $res_updt=msql_query($sql_updt,$link_data);
          
          $sql_updt='update inve1 set status="'.$docu1['status'].'" where idnum1="'.$newid.'"';
          $res_updt=msql_query($sql_updt,$link_data);

          // anula ib13 (si cambio bodega destino)
          $sql_ib13='select * from inve1 where docu = "'.$docu2.'" ';
          $sql_ib13.='and bode!="'.$docu1['bode2'].'" ';
          $sql_ib13.='and idfrom="'.$idnum.'"';
          $res_ib13=msql_query($sql_ib13,$link_data);
          while($aso_ib13=msql_fetch_assoc($res_ib13))
          {
               $sql_updt='update inve1 set status="O" where idnum1='.$aso_ib13['idnum1'].' limit 1';
               $res_updt=msql_query($sql_updt,$link_data);
          }
          
     }
     
     if($docu=='IB11')
     {
          $docu1=data_docu($docu,$idnum);
          $docu2='EB11';
          $newid=0;
          $newid=clon_docu($docu,$idnum,$docu2);
          

          if(!empty($newid))
          {
               $sql_eb11='select * from inve2 where idnum2="'.$newid.'"';
               $res_eb11=msql_query($sql_eb11,$link_data);
               while($aso_eb11=msql_fetch_assoc($res_eb11))
               {
                    $xiddet=$aso_eb11['iddet'];
                    $xitem=$aso_eb11['item'];
                    $xcambio=$aso_eb11['cambio'];
                    
                    $sql_ib11='select * from inve2 where idnum2="'.$idnum.'" and iddet="'.$xiddet.'"';
                    $res_ib11=msql_query($sql_ib11,$link_data);
                    $xitem=msql_result($res_ib11,0,'item');
                    $xcambio=msql_result($res_ib11,0,'cambio');
                    
                    $sql_updt='update inve2 set item="'.$xcambio.'" where idnum2='.$newid.' and iddet='.$xiddet.' ';
                    $res_updt=msql_query($sql_updt,$link_data);
                    
                    $sql_updt='update inve2 set cambio="'.$xitem.'" where idnum2='.$newid.' and iddet='.$xiddet.' ';
                    $res_updt=msql_query($sql_updt,$link_data);
               }
               
               $sql_updt='update inve1 set status="'.$docu1['status'].'" where idnum1="'.$newid.'"';
               $res_updt=msql_query($sql_updt,$link_data);
               
//                $sql_updt='update inve1 set idfrom="'.$docu1['idnum1'].'" where idnum1="'.$newid.'"';
//                $res_updt=msql_query($sql_updt,$link_data);
//                echo '<br>==== '.$sql_updt;
          }
          

     }
     
          
     if(mb_stristr2('.demo.pcs1.mhec',$empr0['empr_codigo']))     
     if($docu=='FC10')
     {
//           echo '============>'.$bode;
          $docu1=data_docu($docu,$idnum);
          $docu2='EB10';
          $newid=0;
          
          $ptov0=data_maes('ptov',$docu1['ptov']);
          $docu1['bode']=$ptov0['ptov_bode'];
          
          $bode0=data_maes('bode',$docu1['bode']);
          if(empty($bode0['bode_codigo'])){return;}
          
          {$newid=clon_docu($docu,$idnum,$docu2);}
          
          if(!empty($newid))
          {
               $sql_eb10='select * from inve2 where idnum2="'.$newid.'"';
               $res_eb10=msql_query($sql_eb10,$link_data);
               while($aso_eb10=msql_fetch_assoc($res_eb10))
               {
                    $xiddet=$aso_eb10['iddet'];
                    $sal_item=sal_item($aso_eb10['item']);
                    if($sal_item['uni_ini']+$sal_item['uni_deb']==0)
                    {
                         $sql_updt='update inve2 set cant=0 where idnum2='.$newid.' and iddet='.$xiddet.' ';
                         $res_updt=msql_query($sql_updt,$link_data);
                    }
                    
                    
               }
               
               $sql_updt='update inve1 set status="'.$docu1['status'].'" where idnum1="'.$newid.'"';
               $res_updt=msql_query($sql_updt,$link_data);
               
               $sql_updt='update inve1 set numfac="'.$docu1['numero'].'" where idnum1="'.$newid.'"';
               $res_updt=msql_query($sql_updt,$link_data);
               
//                echo '====='.$docu1['bode'];
               
               // anula eb10 (si cambio bodega despacho)
               $sql_eb10='select * from inve1 where docu = "'.$docu2.'" ';
               $sql_eb10.='and bode!="'.$docu1['bode'].'" ';
               $sql_eb10.='and mdfrom="vtas"';
               $sql_eb10.='and idfrom="'.$idnum.'"';
               $res_eb10=msql_query($sql_eb10,$link_data);
               while($aso_eb10=msql_fetch_assoc($res_eb10))
               {
                    $sql_updt='update inve1 set status="O" where idnum1='.$aso_eb10['idnum1'].' limit 1';
                    $res_updt=msql_query($sql_updt,$link_data);
               }
               
               
          }
          

     }
     
     
     
}


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

	if(empty($docu)){return;}
	if(empty($idnum)){return;}
// 	if(empty($docu2)){$docu2=$docu1;}
     
     $docu1=data_docu($docu,$idnum);
     $docu2='';
     
     if($docu=='EB13'){$docu2='IB13';}
     
     if(empty($docu2)){return;}
     
//      echo '<br>*/*/*/*';
//      echo '==='.$docu;
//      echo '==='.$idnum;
     
//      $idib13=clon_docu($docu,$idnum,$docu2,$docu1['bode2']);
     
//      echo '===='.$idib13;
     
     return;
}


function sal_inve($item,$lsub='',$bode='',$tbod='',$fecha1='',$fecha2='',$link_data='')
{
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     $modu='inve';
     $info='iiiiee';
     $fecha0=fecha0($modu);
     $cost='true';
     if(empty($fecha1)){$fecha1=$fecha0;}
     if(empty($fecha2)){$fecha2=date('Y-m-d');}
     
     include('sele_info.php');
     
     if(!empty($sql_info))
     {$res_inve=msql_query($sql_info,$link_data);}

     $idx=0;
//      echo '-----'.msql_num_rows($res_inve);
     msql_data_seek($res_inve);
     while($aso_inve=msql_fetch_assoc($res_inve))
     {
          $sal_inve[$idx]=$aso_inve;
          $idx++;
     }
//      echo '----///'.$idx;
     return $sal_inve;     
}

function Xsal_item2($item,$bode='',$tbod='',$fecha1='',$fecha2='',$link_data='')
{
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}

     $modu='inve';
     $info='ssiiee';
     $fecha0=fecha0($modu);
     $cost='true';
     if(empty($fecha1)){$fecha1=$fecha0;}
     if(empty($fecha2)){$fecha2=date('Y-m-d');}

     include('sele_info.php');
     
     if(!empty($sql_info))
     {$res_inve=msql_query($sql_info,$link_data);}
     
//      echo $sql_info;

     $sal_inve=array();
     $sal_inve['item_codigo']=msql_result($res_inve,0,'item_codigo_hide');
     return $sal_inve;     
}


function sal_item($pitem,$pbode='',$pbtipo='',$pfecha1='',$pfecha2='',$link_data='')
{
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     
//      $pfecha0='2000-01-01';
     $pfecha0=fecha0('inve');
     if(empty($pfecha1)){$pfecha1=$pfecha0;}
     if(empty($pfecha2)){$pfecha2=date('Y-m-d');}
//      if(empty($pfecha1)){$pfecha1=date('Y-m-01', strtotime($pfecha2));}
     
     $sql_inve ='select *, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="I" and fecha<"'.$pfecha1.'" then abs(cant) ';
     $sql_inve.='when left(docu,1)="E" and fecha<"'.$pfecha1.'" then abs(cant)*-1 ';
     $sql_inve.='else 0 end) as uni_ini, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="I" and fecha>="'.$pfecha1.'" and fecha<="'.$pfecha2.'" then abs(cant) ';
     $sql_inve.='else 0 end) as uni_deb, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="E" and fecha>="'.$pfecha1.'" and fecha<="'.$pfecha2.'" then abs(cant) ';
     $sql_inve.='else 0 end) as uni_cre, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="I" then abs(cant) ';
     $sql_inve.='when left(docu,1)="E" then abs(cant)*-1 ';
     $sql_inve.='else 0 end) as uni_fin, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="I" and fecha<"'.$pfecha1.'" then abs(cant*puni) ';
     $sql_inve.='when left(docu,1)="E" and fecha<"'.$pfecha1.'" then abs(cant*puni)*-1 ';
     $sql_inve.='else 0 end) as val_ini, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="I" and fecha>="'.$pfecha1.'" and fecha<="'.$pfecha2.'" then abs(cant*puni) ';
     $sql_inve.='else 0 end) as val_deb, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="E" and fecha>="'.$pfecha1.'" and fecha<="'.$pfecha2.'" then abs(cant*puni) ';
     $sql_inve.='else 0 end) as val_cre, ';
     $sql_inve.='sum(case ';
     $sql_inve.='when left(docu,1)="I" then abs(cant*puni) ';
     $sql_inve.='when left(docu,1)="E" then abs(cant*puni)*-1 ';
     $sql_inve.='else 0 end) as val_fin ';
     $sql_inve.='from inve1 ';
     $sql_inve.='left join inve2 on idnum1=idnum2 ';
     $sql_inve.='left join bode0 on bode=bode_codigo ';
     $sql_inve.='left join item0 on item=item_codigo ';
     $sql_inve.='left join lsub0 on item_lsub=lsub_codigo ';
     $sql_inve.='where status not in("O","X") ';
     $sql_inve.='and item like "'.$pitem.'%"';
     $sql_inve.='and fecha>= "'.$pfecha0.'"';
     $sql_inve.='and fecha<= "'.$pfecha2.'"';
     if(!empty($pbode))
     {$sql_inve.='and bode like "'.$pbode.'%"';}
     if(!empty($pbtipo))
     {$sql_inve.='and bode_tipo like "'.$pbtipo.'%"';}
     $sql_inve.='group by item ';
     $sql_inve.='order by item ';
     
//      echo '<br><br>=== '.$sql_inve;
     
     $res_inve=msql_query($sql_inve,$link_data);
     
     $sal_inve=array();
     $sal_inve['item_codigo']=msql_result($res_inve,0,'item_codigo');
     $sal_inve['uni_ini']=msql_result($res_inve,0,'uni_ini');
     $sal_inve['uni_deb']=msql_result($res_inve,0,'uni_deb');
     $sal_inve['uni_cre']=msql_result($res_inve,0,'uni_cre');
     $sal_inve['uni_fin']=msql_result($res_inve,0,'uni_fin');
     $sal_inve['val_ini']=msql_result($res_inve,0,'val_ini');
     $sal_inve['val_deb']=msql_result($res_inve,0,'val_deb');
     $sal_inve['val_cre']=msql_result($res_inve,0,'val_cre');
     $sal_inve['val_fin']=msql_result($res_inve,0,'val_fin');
     
//      echo '<br>'.$sal_inve['item'];
//      echo '<br>'.$sal_inve['uni_ini'];
//      echo '<br>'.$sal_inve['uni_deb'];
//      echo '<br>'.$sal_inve['uni_cre'];
//      echo '<br>'.$sal_inve['uni_fin'];
//      echo '<br>'.$sal_inve['val_ini'];
//      echo '<br>'.$sal_inve['val_deb'];
//      echo '<br>'.$sal_inve['val_cre'];
//      echo '<br>'.$sal_inve['val_fin'];
//      echo '<br>'.$sql_inve;
     
     return $sal_inve;     
}


function cost_prom($pitem,$pfecha='',$pbode='',$preca=0)
{
//      if(date('Y-m-d')=='2023-06-06'){return;}
//      $pitem='2021100059';
     
     if(empty($empr)){$empr=$_SESSION['empr_codigo'];}     
     
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     if(empty($pfecha)){$pfecha=date('Y-m-d');}

     if($cfg_empr=='hfre')
     {
          $sql_item='select * from item0 where item_codigo="'.$pitem.'"';
          $res_item=msql_query($sql_item,$link_data);
          $xlsub=@msql_result($res_item,0,'item_lsub');     
          if(substr($xlsub,0,4)!='INAG'){return 0.000001;}
//           if(substr($xlsub,0,4)=='INAG'){return 0.000001;}
     }
     

     // promos promociones regalos
//      0 : ignora las promos en el costeo
//      1 : cuenta las promos en el costeo    
          
     $costo_regalo=0;

//      if(empty($pbode))
     {
          $sql_bode ='select distinct bode from inve1 ';
          $sql_bode.='left join inve2 on idnum1=idnum2 ';
          $sql_bode.='where status not in("O","X") '; 
          $sql_bode.='and item = "'.$pitem.'" ';
          $sql_bode.='and fecha<="'.$pfecha.'" ';
          $sql_bode.='order by bode ';
          $res_bode=msql_query($sql_bode,$link_data);
     }

//      $sql_nega='update item0 set item_boden=null, item_fechan=null where item_codigo="'.$pitem.'"';
//      $res_nega=msql_query($sql_nega,$link_data);
     
     $sql_nega='update inve1,inve2 set nega=null where idnum1=idnum2 and ifnull(status,"")in ("O","X") and item="'.$pitem.'"';
     $res_nega=msql_query($sql_nega,$link_data);
     
//      echo '*/*/*'.$sql_bode;     
     
     
     while($aso_bode=msql_fetch_assoc($res_bode))
     {
          $pbode=$aso_bode['bode'];
          
     
          $sql_inve ='select *, ';
          $sql_inve.='case when left(docu,1)="I" then 1 else -1 end as signo, ';
          $sql_inve.='case ';
          $sql_inve.='when left(docu,1)="I" and docu!="IB13" then 1 ';
          $sql_inve.='when left(docu,1)="E" and docu="EB13" then 2 ';
          $sql_inve.='when left(docu,1)="E" and docu!="EB13" then 3 ';
          $sql_inve.='when left(docu,1)="I" and docu="IB13" then 4 ';
          $sql_inve.='else 9 end as orden ';
          $sql_inve.='from inve1 left join inve2 on idnum1=idnum2 ';
          $sql_inve.='where item="'.$pitem.'" ';
          $sql_inve.='and fecha<="'.$pfecha.'" ';
          if(!empty($pbode))
          {$sql_inve.='and bode="'.$pbode.'" ';}
          $sql_inve.='and status not in("O","X") ';
          $sql_inve.='order by fecha, signo desc, docu, idnum1, iddet';
//           $sql_inve.='order by fecha, signo desc, docu, idnum1, puni, iddet';
          
//           echo '<br><br> ==== '.$sql_inve;
          
          $res_inve=msql_query($sql_inve,$link_data);
          $xprom=0;
          $xsaldou=0;
          $xsaldov=0;
          while($aso_inve=msql_fetch_assoc($res_inve))
          {
               $xidnum1=$aso_inve['idnum1'];
               $xdocu=$aso_inve['docu'];
               $xbode=$aso_inve['bode'];
               $xenti=$aso_inve['enti'];
               $xfecha=$aso_inve['fecha'];
               $ximpor=$aso_inve['impor'];
               
               $xiddet=$aso_inve['iddet'];
               $xitem=$aso_inve['item'];
               $xcant=abs($aso_inve['cant']);
               $xpuni=$aso_inve['puni'];
               
               $xnumfac=$aso_inve['numfac'];
               $xidfrom=$aso_inve['idfrom'];
               $xreval=$aso_inve['reval'];

               if($xdocu=='IB17' and $xreval==0){$xreval=$xpuni;}

//                if(substr($xdocu,0,2)=='IB')
               if(substr($xdocu,0,2)=='IB' or ($xdocu=='EB17' and $xreval>0))
               {
                    {
                    if($xdocu=='IB00' and $xpuni==0)                         
                    {
                         $fecha1=$xfecha;
                         $fecha2=$xfecha;

                         $fecha1=date('Y-m-d',strtotime($fecha1.' -1 month'));
                         $fecha2=date('Y-m-d',strtotime($fecha2.' +1 month'));

                         $sql_pcp1 ='select * from comp1  ';
                         $sql_pcp1.='left join comp2 on idnum1=idnum2 ';
                         $sql_pcp1.='where ifnull(status,"") not in("O","X") ';
                         $sql_pcp1.='and item="'.$pitem.'"';
                         $sql_pcp1.='and fecha<="'.$xfecha.'" ';
                         $sql_pcp1.='order by fecha desc ';
                         $sql_pcp1.='limit 1 ';
                         $res_pcp1 = msql_query($sql_pcp1,$link_data);

                         if(msql_num_rows($res_pcp1)==0)
                         {
                              $sql_pcp1 ='select * from comp1  ';
                              $sql_pcp1.='left join comp2 on idnum1=idnum2 ';
                              $sql_pcp1.='where ifnull(status,"") not in("O","X") ';
                              $sql_pcp1.='and item="'.$pitem.'" ';
                              $sql_pcp1.='and fecha>"'.$xfecha.'" ';
                              $sql_pcp1.='order by fecha ';
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                         }

                         if(msql_num_rows($res_pcp1)!=0)
                         {
                              $xcantp=msql_result($res_pcp1,0,'cant');
                              $xpunip=msql_result($res_pcp1,0,'puni');
                              $xdctop=msql_result($res_pcp1,0,'dcto');
                              $xuxpre=msql_result($res_pcp1,0,'uxpre');
                              $xfacon=msql_result($res_pcp1,0,'facon');
                              $xcantumdd=msql_result($res_pcp1,0,'cantumdd');
                              $xcantumdd=abs($xcantp*$xuxpre*$xfacon);

                              $xpcp1=$xpunip*(1-$xdctop/100);
                              if($xuxpre*$xfacon!=1){$xpcp1=$xpcp1*$xcantp/$xcantumdd;}
                              $xpcp1=abs($xpcp1);

                              $sql_updt ='update inve2 set puni="'.$xpcp1.'" where idnum2="'.$xidnum1.'" and item="'.$pitem.'" ';
                              $res_updt=msql_query($sql_updt,$link_data);
                              $xpuni=$xpcp1;
                         }
                    }

                    if($xdocu=='IB10')
                    {
                         $costo_regalo=0;  
                         if($empr=='hfre' and $xfecha>='2024-01-01')
                         {$costo_regalo=1;}
                         
                         $fecha1=$xfecha;
                         $fecha2=$xfecha;

                         $fecha1=date('Y-m-01',strtotime($fecha1.' -1 month'));
                         $fecha2=date('Y-m-t',strtotime($fecha2.' +1 month'));
                         
                         $fecha1m=date('Y-m-01',strtotime($xfecha));
                         $fecha2m=date('Y-m-t',strtotime($xfecha));

                         // pcp0
                         {
                              
                         $sql_pcp0 ='select ';
                         $sql_pcp0.='abs(DATEDIFF("'.$xfecha.'",fecha)) as diasdif,';
                              
                              
                         $coltcant='sum(cant) as tcant,';
                         $colcosto='puni * (1 - ifnull(dcto,0) / 100) /ifnull(uxpre,1) *ifnull(facon,1) as costo,';
                              
//                               echo '==='.$xfecha;
                         if($xfecha>='2024-01-01')
                         {
                              $coltcant='sum(cant*(ifnull(uxpre,1)*ifnull(facon,1))) as tcant,';
                              $colcosto='sum(cant *puni * (1 - ifnull(dcto,0) / 100) ) as costo,  ';
                         }
                              
                         $sql_pcp0.=$coltcant;
                         $sql_pcp0.=$colcosto;
                              
                         $sql_pcp0.='comp1.*, comp2.* from comp1  ';
                         $sql_pcp0.='left join comp2 on idnum1=idnum2 ';
                         $sql_pcp0.='where ifnull(status,"") not in("O","X") ';
                         $sql_pcp0.='and item="'.$pitem.'" ';

                              
                         if($costo_regalo==0)
                         {
                              $wherepuni='';
                              $wherepuni.='and cant*ifnull(puni,0)>0 ';
                              $wherepuni.='and ifnull(dcto,0)<99 ';
                              $sql_pcp0.=$wherepuni;     
                         }
                              
//                               echo '<br><br>/*/*'.$sql_pcp0;
                              // orderby                          
                              {
                              $xorderby='order by diasdif, fecha ';
     //                          if($xfecha>="2021-07-01")
     //                          {$xorderby='order by diasdif,fecha,dcto desc ';}
                              if($xfecha>='2022-05-01')
                              {$xorderby='order by diasdif,fecha,puni desc, dcto ';};
                              if($xfecha>='2022-11-01')
                              {$xorderby='order by diasdif,fecha,costo desc, dcto ';};
                              if($xfecha>='2023-01-01')
                              {$xorderby='order by diasdif,fecha,costo, dcto ';};

                              }
                              
                              
                              // groupby                          
                              {
                              $xgroupby='group by idnum1,iddet ';
                              if($xfecha>='2024-01-01')
                              {$xgroupby='group by idnum1,item ';};
//                              {$xgroupby='group by idnum1,item,uxpre,facon ';};

                              }
                              
                              
                              
                         }
                         
                         $xdias=0;
                         $fecha_fp=$xfecha;
                         
//                          echo '<br>*/*/*'.$xnumfac;
                         // verifica si de verdad existe el numero de factura
                         if((int)$xnumfac>0)
                         {
                              $sql_pcp1 = $sql_pcp0;
                              $sql_pcp1.='and numero='.$xnumfac.' ';
                              $sql_pcp1.='and fecha>="'.$fecha1.'" ';
                              $sql_pcp1.='and fecha<="'.$fecha2.'" ';
                              $sql_pcp1.='and cant*puni>0 ';
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                              if(msql_num_rows($res_pcp1)==0){$xnumfac=0;}
                              if(msql_num_rows($res_pcp1)!=0){$fecha_fp=msql_result($res_pcp1,0,'fecha');}
                         }
                         $xdias=days_diff($fecha_fp,$xfecha);
//                          if($xdias<0){$xdias=0;}
                         
                         $sql_updt='update inve1 set dias="'.$xdias.'" where idnum1="'.$xidnum1.'" ';
                         $res_updt=msql_query($sql_updt,$link_data);
                         
                         // busca la fp en el mes del ib
                         $sql_pcp1 = $sql_pcp0;
                         if((int)$xnumfac>0)
                         {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                         $sql_pcp1.='and fecha>="'.$fecha1m.'" ';
                         $sql_pcp1.='and fecha<="'.$fecha2m.'" ';
                         $sql_pcp1.='and enti like "'.substr($xenti0,10).'%" ';
                         
                         if($costo_regalo==0)
                         {$sql_pcp1.='and ifnull(dcto,0)<99 ';}
                         
                         $sql_pcp1.=$xgroupby;   
                         $sql_pcp1.=$xorderby;   
                         $sql_pcp1.='limit 1 ';
                         $res_pcp1 = msql_query($sql_pcp1,$link_data);

                         
                         if(msql_num_rows($res_pcp1)==0)
                         {
                              // busca la fp 30 dias antes y despues
//                               echo '<br>*/*/*AAA '.$xnumfac;
                              $sql_pcp1 = $sql_pcp0;
                              if((int)$xnumfac>0)
                              {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                              $sql_pcp1.='and fecha>="'.$fecha1.'" ';
                              $sql_pcp1.='and fecha<="'.$fecha2.'" ';
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                              
                         }

                         if(msql_num_rows($res_pcp1)==0)
                         {
                              // busca una fp X del mismo prov
                              $sql_pcp1 = $sql_pcp0;
                              if((int)$xnumfac>0)
                              {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                              $sql_pcp1.='and enti like "'.substr($xenti0,10).'%" ';
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                         }

                         if(msql_num_rows($res_pcp1)==0)
                         {
                              $sql_pcp1 = $sql_pcp0;
                              if((int)$xnumfac>0)
                              {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                         }
 
                         if(msql_num_rows($res_pcp1)==0)
                         {
                              $sql_pcp1 = $sql_pcp0;
                              $sql_pcp1 =str_replace($wherepuni,' ',$sql_pcp1);
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                         }
                         
//                               echo '<br>*/*/*'.$xnumfac;
//                          if($xidnum1==30580)
//                               echo '<br>*/*/* '.$sql_pcp1;
//                          if($xidnum1==10060)
//                               echo '<br>*/*/* '.$sql_pcp1;
                         
                         $sql_updt='';
                         msql_data_seek($res_pcp1);
                         if(msql_num_rows($res_pcp1)!=0)
                         {
                              $xidfact=msql_result($res_pcp1,0,'idnum1');
                              $xnumfac=msql_result($res_pcp1,0,'numero');
                              $xcantp=msql_result($res_pcp1,0,'tcant');
                              $xpunip=msql_result($res_pcp1,0,'puni');
                              $xdctop=msql_result($res_pcp1,0,'dcto');
                              $xuxpre=msql_result($res_pcp1,0,'uxpre');
                              $xfacon=msql_result($res_pcp1,0,'facon');
                              $xtcosto=msql_result($res_pcp1,0,'costo');
                              if(empty($xuxpre)){$xuxpre=1;}
                              if(empty($xfacon)){$xfacon=1;}
                              $xcantumdd=msql_result($res_pcp1,0,'cantumdd');
                              $xcantumdd=abs($xcantp*$xuxpre*$xfacon);
                              $xpcp1=$xpunip*(1-$xdctop/100);

                              if(($xcantumdd*1)==0){$xcantumdd=1;}
                              if($xuxpre*$xfacon!=1){$xpcp1=$xpcp1*$xcantp/$xcantumdd;}
                              $xpcp1=abs($xpcp1);
                              
                              if($xfecha>='2024-01-01')
                              {if($xcantp>0){$xpcp1=$xtcosto/$xcantp;}}
                              
//                               if($costo_regalo==1)
//                               {if($xcantp>0){$xpcp1=$xtcosto/$xcantp;}}
                              
                              
                              $sql_updt='update inve2 set puni="'.$xpcp1.'" where idnum2="'.$xidnum1.'" and item="'.$pitem.'" ';
                              $res_updt=msql_query($sql_updt,$link_data);
                              $xpuni=$xpcp1;
                              

                         }


                         
                         
                    }

//                     if(1==2)
                    if($xfecha>='2025-01-01')
                    if($xdocu=='IB12')
                    {
                         $costo_regalo=0;  
                         
                         $fecha1=$xfecha;
                         $fecha2=$xfecha;

                         $fecha1=date('Y-m-01',strtotime($fecha1.' -1 month'));
                         $fecha2=date('Y-m-t',strtotime($fecha2.' +1 month'));
                         
                         $fecha1m=date('Y-m-01',strtotime($xfecha));
                         $fecha2m=date('Y-m-t',strtotime($xfecha));

                         // puni N/C
                         {
                              
                         $sql_pcp0 ='select ';
                         $sql_pcp0.='abs(DATEDIFF("'.$xfecha.'",fecha)) as diasdif,';
                              
                         $coltcant='sum(cant) as tcant,';
                         $colcosto='puni * (1 - ifnull(dcto,0) / 100)  as costo,';
                         if($xfecha>='2024-01-01')
                         {
//                               $coltcant='sum(cant*(ifnull(uxpre,1)*ifnull(facon,1))) as tcant,';
                              $coltcant='sum(cant) as tcant,';
                              $colcosto='sum(cant *puni * (1 - ifnull(dcto,0) / 100) ) as costo,  ';
                         }
                              
                         $sql_pcp0.=$coltcant;
                         $sql_pcp0.=$colcosto;
                              
                         $sql_pcp0.='vtas1.*, vtas2.* from vtas1  ';
                         $sql_pcp0.='left join vtas2 on idnum1=idnum2 ';
                         $sql_pcp0.='where ifnull(status,"") not in("O","X") ';
                         $sql_pcp0.='and docu like "NC%" ';
                         $sql_pcp0.='and item="'.$pitem.'" ';
                              
                         if($costo_regalo==0)
                         {
                              $wherepuni='';
                              $wherepuni.='and cant*ifnull(puni,0)>0 ';
                              $wherepuni.='and ifnull(dcto,0)<99 ';
                              $sql_pcp0.=$wherepuni;     
                         }
                              
                              {
                              $xorderby='order by diasdif, fecha ';
                              if($xfecha>='2022-05-01')
                              {$xorderby='order by diasdif,fecha,puni desc, dcto ';};
                              if($xfecha>='2022-11-01')
                              {$xorderby='order by diasdif,fecha,costo desc, dcto ';};
                              if($xfecha>='2023-01-01')
                              {$xorderby='order by diasdif,fecha,costo, dcto ';};

                              }
                              
                              
                              // groupby                          
                              {
                              $xgroupby='group by idnum1,iddet ';
                              if($xfecha>='2024-01-01')
                              {$xgroupby='group by idnum1,item ';};
//                              {$xgroupby='group by idnum1,item,uxpre,facon ';};

                              }
                              
                              
                              
                         }
                         
                         $xdias=0;
                         $fecha_fp=$xfecha;
                         
//                          echo '<br>*/*/*'.$xnumfac;
                         // verifica si de verdad existe el numero de factura
                         if((int)$xnumfac>0)
                         {
                              $sql_pcp1 = $sql_pcp0;
                              $sql_pcp1.='and numero='.$xnumfac.' ';
                              $sql_pcp1.='and fecha>="'.$fecha1.'" ';
                              $sql_pcp1.='and fecha<="'.$fecha2.'" ';
                              $sql_pcp1.='and cant*puni>0 ';
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                              if(msql_num_rows($res_pcp1)==0){$xnumfac=0;}
                              if(msql_num_rows($res_pcp1)!=0){$fecha_fp=msql_result($res_pcp1,0,'fecha');}
                         }
                         $xdias=days_diff($fecha_fp,$xfecha);
//                          if($xdias<0){$xdias=0;}
                         
                         $sql_updt='update inve1 set dias="'.$xdias.'" where idnum1="'.$xidnum1.'" ';
                         $res_updt=msql_query($sql_updt,$link_data);
                         
                         // busca la fp en el mes del ib
                         $sql_pcp1 = $sql_pcp0;
                         if((int)$xnumfac>0)
                         {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                         $sql_pcp1.='and fecha>="'.$fecha1m.'" ';
                         $sql_pcp1.='and fecha<="'.$fecha2m.'" ';
                         $sql_pcp1.='and enti like "'.substr($xenti0,10).'%" ';
                         
                         if($costo_regalo==0)
                         {$sql_pcp1.='and ifnull(dcto,0)<99 ';}
                         
                         $sql_pcp1.=$xgroupby;   
                         $sql_pcp1.=$xorderby;   
                         $sql_pcp1.='limit 1 ';
                         $res_pcp1 = msql_query($sql_pcp1,$link_data);

                         
                         if(msql_num_rows($res_pcp1)==0)
                         {
                              // busca la fp 30 dias antes y despues
//                               echo '<br>*/*/*AAA '.$xnumfac;
                              $sql_pcp1 = $sql_pcp0;
                              if((int)$xnumfac>0)
                              {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                              $sql_pcp1.='and fecha>="'.$fecha1.'" ';
                              $sql_pcp1.='and fecha<="'.$fecha2.'" ';
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                              
                         }

                         if(msql_num_rows($res_pcp1)==0)
                         {
                              // busca una fp X del mismo prov
                              $sql_pcp1 = $sql_pcp0;
                              if((int)$xnumfac>0)
                              {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                              $sql_pcp1.='and enti like "'.substr($xenti0,10).'%" ';
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                         }

                         if(msql_num_rows($res_pcp1)==0)
                         {
                              $sql_pcp1 = $sql_pcp0;
                              if((int)$xnumfac>0)
                              {$sql_pcp1.='and numero*1 ="'.$xnumfac.'" ';}
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                         }
 
                         if(msql_num_rows($res_pcp1)==0)
                         {
                              $sql_pcp1 = $sql_pcp0;
                              $sql_pcp1 =str_replace($wherepuni,' ',$sql_pcp1);
                              $sql_pcp1.=$xgroupby;   
                              $sql_pcp1.=$xorderby;   
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1 = msql_query($sql_pcp1,$link_data);
                         }
                         
//                               echo '<br>*/*/*'.$xnumfac;
//                          if($xidnum1==30580)
//                               echo '<br>*/*/* '.$sql_pcp1;
//                          if($xidnum1==10060)
//                               echo '<br>*/*/* '.$sql_pcp1;
                         
                         $sql_updt='';
                         msql_data_seek($res_pcp1);
                         if(msql_num_rows($res_pcp1)!=0)
                         {
                              $xidfact=msql_result($res_pcp1,0,'idnum1');
                              $xnumfac=msql_result($res_pcp1,0,'numero');
                              $xcantp=msql_result($res_pcp1,0,'tcant');
                              $xpunip=msql_result($res_pcp1,0,'puni');
                              $xdctop=msql_result($res_pcp1,0,'dcto');
                              $xuxpre=msql_result($res_pcp1,0,'uxpre');
                              $xfacon=msql_result($res_pcp1,0,'facon');
                              $xtcosto=msql_result($res_pcp1,0,'costo');
                              if(empty($xuxpre)){$xuxpre=1;}
                              if(empty($xfacon)){$xfacon=1;}
                              $xcantumdd=msql_result($res_pcp1,0,'cantumdd');
                              $xcantumdd=abs($xcantp*$xuxpre*$xfacon);
                              $xpcp1=$xpunip*(1-$xdctop/100);

                              if(($xcantumdd*1)==0){$xcantumdd=1;}
                              if($xuxpre*$xfacon!=1){$xpcp1=$xpcp1*$xcantp/$xcantumdd;}
                              $xpcp1=abs($xpcp1);
                              
                              if($xfecha>='2024-01-01')
                              {if($xcantp>0){$xpcp1=$xtcosto/$xcantp;}}
                              
//                               if($costo_regalo==1)
//                               {if($xcantp>0){$xpcp1=$xtcosto/$xcantp;}}
                              
                              
                              $sql_updt='update inve2 set puni="'.$xpcp1.'" where idnum2="'.$xidnum1.'" and item = "'.$pitem.'" ';
                              $res_updt=msql_query($sql_updt,$link_data);
                              $xpuni=$xpcp1;
                              
//                               echo '<br>== '.$sql_updt;
                      
//                               if($xidnum1==4406){return;}

                         }


                         
                         
                    }

                    if($xdocu=='IB13')
                    {
                         $fecha1=$xfecha;
                         $fecha2=$xfecha;

                         $fecha1=date('Y-m-d',strtotime($fecha1.' -2 week'));
                         $xpcp1=0;

                         if($xpcp1==0) 
                         {
                              $sql_pcp1 ='select * ';
                              $sql_pcp1.='from inve1  ';
                              $sql_pcp1.='left join inve2 on idnum1=idnum2 ';
                              $sql_pcp1.='where ifnull(status,"") not in("O","X") ';
                              $sql_pcp1.='and docu="EB13" ';
                              $sql_pcp1.='and item="'.$pitem.'" ';
                              $sql_pcp1.='and idnum1="'.$xidfrom.'" ';
                              $sql_pcp1.='order by fecha desc ';
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1=msql_query($sql_pcp1,$link_data);
                              $xpcp1=msql_result($res_pcp1,0,'puni');
                         }

//                          if(1==2)
                         if($xpcp1==0) 
                         {

                              $sql_pcp1 ='select * ';
                              $sql_pcp1.='from inve1  ';
                              $sql_pcp1.='left join inve2 on idnum1=idnum2 ';
                              $sql_pcp1.='where ifnull(status,"") not in("O","X") ';
                              $sql_pcp1.='and docu="EB13" ';
                              $sql_pcp1.='and item="'.$pitem.'" ';
                              $sql_pcp1.='and bode2="'.$xbode.'" ';
                              $sql_pcp1.='and fecha>="'.$fecha1.'" ';
                              $sql_pcp1.='and fecha<="'.$fecha2.'" ';
                              $sql_pcp1.='order by fecha desc ';
                              $sql_pcp1.='limit 1 ';
                              $res_pcp1=msql_query($sql_pcp1,$link_data);
                              $xpcp1=msql_result($res_pcp1,0,'puni');
                         }

//                          if(1==2)
                         if($xpcp1==0){$xpcp1=$xprom;}

                         $sql_updt='update inve2 set puni="'.$xpcp1.'" where idnum2="'.$xidnum1.'" and item="'.$pitem.'" ';
                         $res_updt=msql_query($sql_updt,$link_data);

                         $xpuni=$xpcp1;

                    }

                    if($xdocu=='IB14')
                    {
                         
                         if(empty($aso_inve['nume_opro']))
                         {
                              $xpuni=0;
                              $fecha1=date('Y-m-d',strtotime($aso_inve['fecha'].'-1 days'));
//                               $fecha1=date('Y-m-d',strtotime($aso_inve['fecha'].'-15 days'));
//                               $fecha1=date('Y-m-d',strtotime($aso_inve['fecha'].'-120 days'));
                              

                              
                              // busca eb14 con  igual cantidad / igual fecha / solo 1 registro
                              if($xpuni==0)
                              {
                                   $sql_opro='select * ';                                                  
                                   $sql_opro.='from inve1 ';
                                   $sql_opro.='left join inve2 on idnum1=idnum2 ';
                                   $sql_opro.='where ifnull(status,"") not in("O","X") ';
                                   $sql_opro.='and cant*puni>0 ';
                                   $sql_opro.='and fecha="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and docu like "EB14" ';
                                   $sql_opro.='and item!="'.$aso_inve['item'].'" ';
//                                    $sql_opro.='and cambio="'.$aso_inve['item'].'" ';
                                   $sql_opro.='and cant='.$aso_inve['cant'].' ';
//                                    $sql_opro.='and lote="'.$aso_inve['lote'].'" ';
                                   $sql_opro.='order by fecha desc, idnum1 desc ';
                                   $res_opro=msql_query($sql_opro,$link_data);
                                   if(msql_num_rows($res_opro)==1)
                                   {$xpuni=msql_result($res_opro,0,'puni');}
                              }
                              
                              // busca eb14 con  igual cantidad / inve2.cambio 
                              if($xpuni==0 and 1==1)
                              {
                                   $sql_opro='select * ';                                                  
                                   $sql_opro.='from inve1 ';
                                   $sql_opro.='left join inve2 on idnum1=idnum2 ';
                                   $sql_opro.='where ifnull(status,"") not in("O","X") ';
                                   $sql_opro.='and cant*puni>0 ';
//                                    $sql_opro.='and fecha>="'.$fecha1.'" ';
                                   $sql_opro.='and fecha<="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and docu like "EB14" ';
                                   $sql_opro.='and item!="'.$aso_inve['item'].'" ';
                                   $sql_opro.='and cambio="'.$aso_inve['item'].'" ';
                                   $sql_opro.='and cant='.$aso_inve['cant'].' ';
//                                    $sql_opro.='and lote="'.$aso_inve['lote'].'" ';
                                   $sql_opro.='order by fecha desc, idnum1 desc ';
                                   $res_opro=msql_query($sql_opro,$link_data);
//                                    if(msql_num_rows($res_opro)==1)
                                   {$xpuni=msql_result($res_opro,0,'puni');}
                                   
                              }
                              
                              // busca eb14 con  inve2.cambio /diferente cantidad
                              if($xpuni==0 and 1==1)
                              {
                                   $sql_opro='select * ';                                                  
                                   $sql_opro.='from inve1 ';
                                   $sql_opro.='left join inve2 on idnum1=idnum2 ';
                                   $sql_opro.='where ifnull(status,"") not in("O","X") ';
                                   $sql_opro.='and cant*puni>0 ';
//                                    $sql_opro.='and fecha>="'.$fecha1.'" ';
//                                    $sql_opro.='and fecha>="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and fecha<="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and docu like "EB14" ';
                                   $sql_opro.='and item!="'.$aso_inve['item'].'" ';
                                   $sql_opro.='and cambio="'.$aso_inve['item'].'" ';
//                                    $sql_opro.='and cant='.$aso_inve['cant'].' ';
//                                    $sql_opro.='and lote="'.$aso_inve['lote'].'" ';
                                   $sql_opro.='order by fecha desc, idnum1 desc ';
                                   $res_opro=msql_query($sql_opro,$link_data);
//                                    if(msql_num_rows($res_opro)==1)
                                   {$xpuni=msql_result($res_opro,0,'puni');}
                              }
                              
                              // busca eb14 de 1 solo item x la misma cantidad y lote
                              if($xpuni==0)
                              {
                                   $sql_opro='select * ';                                                  
                                   $sql_opro.='from inve1 ';
                                   $sql_opro.='left join inve2 on idnum1=idnum2 ';
                                   $sql_opro.='where ifnull(status,"") not in("O","X") ';
                                   $sql_opro.='and cant*puni>0 ';
                                   $sql_opro.='and fecha>="'.$fecha1.'" ';
//                                    $sql_opro.='and fecha>="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and fecha<="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and docu like "EB14" ';
                                   $sql_opro.='and item!="'.$aso_inve['item'].'" ';
                                   $sql_opro.='and cant='.$aso_inve['cant'].' ';
                                   $sql_opro.='and lote="'.$aso_inve['lote'].'" ';
     //                               $sql_opro.='and docu like "IB%" ';
     //                               $sql_opro.='and item="'.$pitem.'" ';
     //                               $sql_opro.='and idnum1!="'.$aso_inve['idnum1'].'" ';
     //                               $sql_opro.='and trim(nume_opro)="'.$nume_opro.'" ';
                                   $sql_opro.='order by fecha desc, idnum1 desc ';
                                   $res_opro=msql_query($sql_opro,$link_data);
                                   if(msql_num_rows($res_opro)==1)
                                   {$xpuni=msql_result($res_opro,0,'puni');}
                              }
                              
                              // busca eb14 de 1 solo item x la misma cantidad
                              if($xpuni==0)
                              {
                                   $sql_opro='select * ';                                                  
                                   $sql_opro.='from inve1 ';
                                   $sql_opro.='left join inve2 on idnum1=idnum2 ';
                                   $sql_opro.='where ifnull(status,"") not in("O","X") ';
                                   $sql_opro.='and cant*puni>0 ';
                                   $sql_opro.='and fecha>="'.$fecha1.'" ';
//                                    $sql_opro.='and fecha>="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and fecha<="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and docu like "EB14" ';
                                   $sql_opro.='and item!="'.$aso_inve['item'].'" ';
                                   $sql_opro.='and cant='.$aso_inve['cant'].' ';
     //                               $sql_opro.='and docu like "IB%" ';
     //                               $sql_opro.='and item="'.$pitem.'" ';
     //                               $sql_opro.='and idnum1!="'.$aso_inve['idnum1'].'" ';
     //                               $sql_opro.='and trim(nume_opro)="'.$nume_opro.'" ';
                                   $sql_opro.='order by fecha desc, idnum1 desc ';
                                   $res_opro=msql_query($sql_opro,$link_data);
                                   if(msql_num_rows($res_opro)==1)
                                   {$xpuni=msql_result($res_opro,0,'puni');}
                              }
                              
                              // busca eb14 de 1 solo item x el doble de cantidad (produccion de pares)
                              if($xpuni==0)
                              {
                                   $sql_opro='select * ';                                                  
                                   $sql_opro.='from inve1 ';
                                   $sql_opro.='left join inve2 on idnum1=idnum2 ';
                                   $sql_opro.='where ifnull(status,"") not in("O","X") ';
                                   $sql_opro.='and cant*puni>0 ';
                                   $sql_opro.='and fecha>="'.$fecha1.'" ';
//                                    $sql_opro.='and fecha>="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and fecha<="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and docu like "EB14" ';
                                   $sql_opro.='and item!="'.$aso_inve['item'].'" ';
                                   $sql_opro.='and cant='.($aso_inve['cant']*2).' ';
     //                               $sql_opro.='and docu like "IB%" ';
     //                               $sql_opro.='and item="'.$pitem.'" ';
     //                               $sql_opro.='and idnum1!="'.$aso_inve['idnum1'].'" ';
     //                               $sql_opro.='and trim(nume_opro)="'.$nume_opro.'" ';
                                   $sql_opro.='order by fecha desc, idnum1 desc ';
                                   $res_opro=msql_query($sql_opro,$link_data);
                                   if(msql_num_rows($res_opro)==1)
                                   {$xpuni=msql_result($res_opro,0,'puni')*2;}
                              }


                              
                              // busca el ultimo costo/prom del item
                              if($xpuni==0)
                              {
                                   $sql_opro='select * ';                                                  
                                   $sql_opro.='from inve1 ';
                                   $sql_opro.='left join inve2 on idnum1=idnum2 ';
                                   $sql_opro.='where ifnull(status,"") not in("O","X") ';
                                   $sql_opro.='and cant*puni>0 ';
//                                    $sql_opro.='and fecha>="'.$fecha1.'" ';
//                                    $sql_opro.='and fecha>="'.$aso_inve['fecha'].'" ';
//                                    $sql_opro.='and fecha<="'.$aso_inve['fecha'].'" ';
                                   $sql_opro.='and (fecha<"'.$aso_inve['fecha'].'" or (fecha<="'.$aso_inve['fecha'].'" and docu like "IB%"))';
//                                    $sql_opro.='and docu like "EB14" ';
                                   $sql_opro.='and item='.$aso_inve['item'].' ';
//                                    $sql_opro.='and cant='.($aso_inve['cant']*2).' ';
     //                               $sql_opro.='and docu like "IB%" ';
     //                               $sql_opro.='and item="'.$pitem.'" ';
                                   $sql_opro.='and idnum1!="'.$aso_inve['idnum1'].'" ';
     //                               $sql_opro.='and trim(nume_opro)="'.$nume_opro.'" ';
                                   $sql_opro.='order by fecha desc, idnum1 desc ';
                                   $res_opro=msql_query($sql_opro,$link_data);
//                                    if(msql_num_rows($res_opro)==1)
                                   {$xpuni=msql_result($res_opro,0,'puni');}
                              }

                              if($aso_inve['idnum1']==2857)
                              {
//                                    echo ' <br>=== '.$sql_opro;
                              }

                              
                              
                              
                         }
                         
                         
                         
                         if(empty($xpuni)){$xpuni=0.01;}
                         $sql_updt='update inve2 set puni='.$xpuni.' where idnum2="'.$xidnum1.'" and item="'.$xitem.'"';
                         $sql_updt.='and iddet="'.$xiddet.'"';
                         $res_updt=msql_query($sql_updt,$link_data);
                         
                         
                         
                    }

                    if($xdocu=='IB15')
                    {
                         $fecha1=date('Y-m-d',strtotime('-90 days'));
//                          $fecha1=date('Y-m-d',strtotime('-137 days'));

                         $sql_cimp ='select * ';
                         $sql_cimp.='from prov1  ';
                         $sql_cimp.='left join prov2 on idnum1=idnum2 ';
                         $sql_cimp.='where ifnull(status,"") not in("O","X") ';
                         $sql_cimp.='and docu="DA16" ';
                         $sql_cimp.='and cant*cuni>0 ';
                         $sql_cimp.='and item="'.$pitem.'" ';
                         $sql_cimp.='and fecha>="'.$fecha1.'" ';
                         $sql_cimp.='and trim(impor)="'.$ximpor.'" ';
                         $res_cimp=msql_query($sql_cimp,$link_data);
                         
//                          if($ximpor=='2024-07')   
//                          echo '<br>==> '.$sql_cimp;
                         
                         if(msql_num_rows($res_cimp)!=0)
                         {
                              $xcuni=msql_result($res_cimp,0,'cuni');
                              $xpcp1=$xcuni;
                              $sql_updt='update inve2 set puni="'.$xpcp1.'" where idnum2="'.$xidnum1.'" and item="'.$pitem.'" ';
                              $res_updt=msql_query($sql_updt,$link_data);
                              $xpuni=$xpcp1;
//                               if($pitem=='2021100059')
//                               {echo '<br>==> '.$sql_updt;}
                         }

                         $xdias=0;
                         $fecha_fp=$xfecha;
                         
                         $sql_cimp ='select * ';
                         $sql_cimp.='from comp1  ';
                         $sql_cimp.='where ifnull(status,"") not in("O","X") ';
                         $sql_cimp.='and docu="FP15" ';
                         $sql_cimp.='and trim(impor)="'.$ximpor.'" ';
                         $res_cimp=msql_query($sql_cimp,$link_data);
                         
                         if(msql_num_rows($res_cimp)!=0){$fecha_fp=msql_result($res_cimp,0,'fecha');}
                         $xdias=days_diff($fecha_fp,$xfecha);
                         
//                          if($xdias<0){$xdias=0;}
                         $sql_updt='update inve1 set dias="'.$xdias.'" where idnum1="'.$xidnum1.'" ';
                         $res_updt=msql_query($sql_updt,$link_data);
                         
                    }

                    if($xdocu=='IB17')
                    {
                         $puni0=(1/1000000);
                         
                         if($aso_inve['reval']*1 > $puni0)
                         {$xpuni=$aso_inve['reval'];}
                         
                         if($aso_inve['puni']*1 > $puni0)
                         {$xpuni=$aso_inve['puni'];}
                         
//                          echo '<br>';
//                          if($xpuni==(1/1000000)){$xpuni=0;}
//                               echo '<br>=='.$xidnum1;
// //                               echo '<br>=='.$aso_inve['puni'];
// //                               echo '<br>=='.$aso_inve['puni'];
//                               echo '<br>=='.$xpuni;
//                               echo '<br>=='.$puni0;
                              
//                          if(empty($xpuni))
                         if($xpuni<= $puni0)
                         {
//                               echo '<br>=='.$xidnum1;
                              $sql_ib17 ='select * from inve1 ';
                              $sql_ib17.='left join inve2 on idnum1=idnum2 ';
                              $sql_ib17.='where ifnull(status,"") not in ("O","X") ';
                              $sql_ib17.='and item="'.$xitem.'" ';
                              $sql_ib17.='and fecha<="'.$xfecha.'" ';
                              $sql_ib17.='and bode="'.$xbode.'" ';
                              $sql_ib17.='and idnum1!="'.$xidnum1.'" ';
                              $sql_ib17.='and puni>0 ';
                              $sql_ib17.='order by fecha desc ';
                              $sql_ib17.='limit 1 ';
                              $res_ib17=msql_query($sql_ib17,$link_data);
                              if(msql_num_rows($res_ib17)==0)
                              {$sql_ib17=str_replace('and bode="'.$xbode.'" ','',$sql_ib17);}
                              $res_ib17=msql_query($sql_ib17,$link_data);
                              $xpuni=msql_result($res_ib17,0,'puni');
                         }
                         
                         
                         
                         if(empty($xpuni)){$xpuni=0;}
                         $sql_updt='update inve2 set puni='.$xpuni.' where idnum2="'.$xidnum1.'" and item="'.$xitem.'"';
                         $res_updt=msql_query($sql_updt,$link_data);

                    }
                         
                    if($xdocu=='EB17')
                    {
                         if($xreval>0)
                         {$xpuni=$xreval;}
                         else
                         {
                            $sql_ib17 ='select * from inve1 ';
                            $sql_ib17.='left join inve2 on idnum1=idnum2 ';
                            $sql_ib17.='where ifnull(status,"") not in ("O","X") ';
                            $sql_ib17.='and item="'.$xitem.'" ';
                            $sql_ib17.='and fecha<="'.$xfecha.'" ';
                            $sql_ib17.='and bode="'.$xbode.'" ';
                            $sql_ib17.='and idnum1!="'.$xidnum1.'" ';
                            $sql_ib17.='and puni>0 ';
                            $sql_ib17.='order by fecha desc ';
                            $sql_ib17.='limit 1 ';

                            $res_ib17=msql_query($sql_ib17,$link_data);
                            if(msql_num_rows($res_ib17)==0)
                            {$sql_ib17=str_replace('and bode="'.$xbode.'" ','',$sql_ib17);}
                            $res_ib17=msql_query($sql_ib17,$link_data);
                            $xpuni=msql_result($res_ib17,0,'puni');
                         }
                         $sql_updt='update inve2 set puni='.$xpuni.' where idnum2="'.$xidnum1.'" and item="'.$xitem.'"';
                         $res_updt=msql_query($sql_updt,$link_data);
                    }
                         
                    }

                    
                    if($xfecha<="2023-12-31")
                    {
//                          $xsaldou=$xsaldou+$xcant;
//                          $xsaldov=$xsaldov+($xcant*$xpuni);
                    }
                    
                    if($xfecha>="2024-01-01")
                    {}
                    
                    if(substr($xdocu,0,2)=='IB')
                    {
                         $xsaldou=$xsaldou+$xcant;
                         $xsaldov=$xsaldov+($xcant*$xpuni);
                    }
                    if(substr($xdocu,0,2)=='EB')
                    {
                         $xsaldou=$xsaldou-$xcant;
                         $xsaldov=$xsaldov-($xcant*$xpuni);
                    }
               }
               else
               {
                    $xsaldou=$xsaldou-$xcant;
                    $xsaldov=$xsaldov-($xcant*$xprom);
               }
               
               // aviso negativos
//                echo '<br>'
//                if($xsaldou< -0.1){echo '<br> UN '.$pitem.' - '.$pbode.' - '.$xfecha;}
//                if($xsaldov< -0.1){echo '<br> VN '.$pitem.' - '.$pbode.' - '.$xfecha;}
               
               $saldo0u=(-0.1);
               $saldo0v=(-0.1);

               
               $sql_nega='update inve2 set nega=0 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
               $res_nega=msql_query($sql_nega,$link_data);
               if($xsaldou<$saldo0u or $xsaldov<$saldo0v)
               {
                    if(substr($xdocu,0,2)=='EB')
                    {
                         $sql_nega='update inve2 set nega=1 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
                         $res_nega=msql_query($sql_nega,$link_data);
                    }
               }
               
//                if(mb_stristr('IB00.IB10.IB13.IB14.IB15.IB17',$xdocu))
//                if(mb_stristr('IB00.IB10.IB13.IB14.IB15.IB17',$xdocu) or ($xdocu=='EB17' and $xreval>0))
               $xdocustr='.IB00.IB10.IB13.IB14.IB15.IB17.';
               if($xfecha>='2025-01-01')
               {$xdocustr='.IB00.IB10.IB13.IB14.IB15.IB17.IB12';}
               
               if(mb_stristr2($xdocustr,$xdocu) or ($xdocu=='EB17' and $xreval>0))                    
               {
                    $vpro=0;
                    if($xsaldou>0.01){$vpro=abs($xsaldov/$xsaldou)-abs($xprom);}
                    if($xsaldou>0){$xprom=$xsaldov/$xsaldou;  
//                                    echo '<br>===='.$xbode.$xfecha.'===='.$xsaldov.'===='.$xsaldou;
                                  }
                    
                    $sql_vpro ='update inve2 set ';
                    $sql_vpro.='vpro="'.$vpro.'", ';
                    $sql_vpro.='cprom="'.$xprom.'" ';
                    $sql_vpro.='where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
                    $res_vpro=msql_query($sql_vpro,$link_data);
//                     echo '<br>=='.$sql_vpro;
               }
               else
               {
//                     echo '<br>==='.$xdocu.'**'.$xfecha.' === '.$xprom;
                    if(!empty($pbode))
                    {
//                          if($xprom<abs($saldo0v) and substr($xdocu,0,2)=='EB')
                         if($xprom==0 and substr($xdocu,0,2)=='EB')
                         {
                              $sql_npro ='select ';
                              $sql_npro.='abs(DATEDIFF("'.$xfecha.'",fecha)) as diasdif, ';
                              $sql_npro.='inve1.*, inve2.* ';
                              $sql_npro.='from inve1 ';
                              $sql_npro.='left join inve2 on idnum1=idnum2 ';
                              $sql_npro.='where ifnull(status,"") not in("O","X") ';
                              $sql_npro.='and docu like "IB%" ';
                              $sql_npro.='and item="'.$pitem.'"  ';
                              $sql_npro.='and bode="'.$pbode.'" ';
                              $sql_npro.='order by diasdif, fecha limit 1';
                              $res_npro=msql_query($sql_npro,$link_data);
                              $xprom=msql_result($res_npro,0,'puni');
                              $xsaldov=$xsaldov-($xcant*$xprom);

//                               echo '<br>==='.$xdocu.'**'.$xfecha.' === '.$xprom;
//                               echo '<br>=='. $sql_npro;
                              
                              
                         }
                         $sql_updt ='update inve2 set ';
                         $sql_updt.='puni="'.$xprom.'", ';
                         $sql_updt.='cprom="'.$xprom.'" ';
                         $sql_updt.='where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'" ';
                         $res_updt=msql_query($sql_updt,$link_data);
                         
//           echo '<br>=== '.$pbode.'  ===  '.$pitem.' - '.$xfecha.' - '.$xprom; 
//           echo '<br>=== '.$sql_updt; 
                         
                         
                    }
               }
               
//                if(abs($xprom) < abs($saldo0v)){$xprom=0;}
//           if($user0['user_codigo']==2)
          {
//           if($xfecha>='2024-01-01' and $pbode=='B004')               
//           echo '<br>=== '.$pbode.'  ===  '.$pitem.' - '.$xfecha.' - '.$xprom; 
          }
               

          }
          
//           if($user0['user_codigo']==2)
//           {echo '<br>==>'.$pbode;}
          

          
          
     }

//           if($user0['user_codigo']==2)
//           echo '<br>*/*/'.$pitem.' - '.$xprom;     
     
     return $xprom;
}


function cons_prom($item,$pfecha='',$prdo='A')
{
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
  
     $fecha0=fecha0('inve');
     $fecha2=$pfecha;
  
     if(empty($fecha2)){$fecha2=date('Y-m-d');}
     $fecha1=date('Y-m-01',strtotime($fecha2.' -360 days'));
//      $fecha1=date('Y-m-01',strtotime($fecha2.' -11 month'));
     if($prdo=='M')
     {$fecha1=date('Y-m-01',strtotime($fecha2.' -28 days'));}
//      {$fecha1=date('Y-m-01',strtotime($fecha2.' -1 month'));}
     
     $sql_inve='select sum(cant) as tot_eb, min(fecha) as minfec ';
     $sql_inve.='from inve1 left join inve2 on idnum1=idnum2 ';
     $sql_inve.='where status not in("O","X") ';
     $sql_inve.='and item ="'.$item.'" ';
     $sql_inve.='and fecha>="'.$fecha0.'" ';
     $sql_inve.='and fecha>="'.$fecha1.'" ';
     $sql_inve.='and fecha<="'.$fecha2.'" ';
     $sql_inve.='and docu in("EB10","EB19") ';
     $res_inve=msql_query($sql_inve,$link_data);
     $xtot_eb=msql_result($res_inve,0,'tot_eb');
     $xtot_eb=$xtot_eb*(-1);

     $minfec=msql_result($res_inve,0,'minfec');

     if($fecha0>$fecha1){$fecha1=$fecha0;}
     $xdias=days_diff($fecha1,$fecha2)+1;
     $xsema=ceil($xdias/7);
     $xmeses=ceil($xdias/30);

     $xconpro=array();
     //   if($prdo=='M'){$xconpro=$xtot_eb/$xmeses*(-1)};
     //   if($prdo=='S'){$xconpro=$xtot_eb/$xsema*(-1);}
     //   if($prdo=='D'){$xconpro=$xtot_eb/$xdias*(-1);}

     $xconpro[0]=$xtot_eb*(-1);
     $xconpro[1]=$xtot_eb/$xdias*(-1);
     $xconpro[2]=$xtot_eb/$xsema*(-1);
     $xconpro[3]=$xtot_eb/$xmeses*(-1);

     return $xconpro;
}


function gen_ebib13($item,$cant,$bode,$bode2)
{
     
}

function get_ebode($docu,$fecha1,$fecha2)
{
//      foreach($_PARAMS as $campo => $valor){${$campo}=trim($valor);} 
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}

     if(empty($fecha1)){$fecha1=date('Y-m-d');}
     if(empty($fecha2)){$fecha2=$fecha1;}
     $fecha2=date('Y-m-d',strtotime($fecha2.' +2 month'));
     
     $sql_ebod='';
     $sql_ebod.='select ';
     $sql_ebod.='numfac, ';
     $sql_ebod.='fecha, min(fecha) as fecha1, max(fecha) as fecha2,';
     $sql_ebod.='sum(cant) as cant ';
     $sql_ebod.='from inve1 ';
     $sql_ebod.='left join inve2 on idnum1=idnum2 ';
     $sql_ebod.='where status not in("O","X") ';
     $sql_ebod.='and ifnull(numfac,"")!=""';
     $sql_ebod.='and docu like "EB%" ';
     $sql_ebod.='and fecha>="'.$fecha1.'" ';
     $sql_ebod.='and fecha<="'.$fecha2.'" ';
     if($docu=='OP')
     {$sql_ebod.='and docu like "EB19" ';}
//      if(!empty($item))
//      {$sql_ebod.='and item like "'.$item.'%" ';}
//      if(!empty($enti))
//      {$sql_ebod.='and enti like "'.substr($enti,0,10).'%" ';}
     $sql_ebod.='group by docu,numfac ';
     $sql_ebod.='order by docu,numfac ';
     
     $res_ebod=msql_query($sql_ebod,$link_data);
     
//      $ebod=msql_result($res_ebod,0,'cant');

//      echo '*/*/*/*'.msql_num_rows($res_ebod);
//      echo '*/*/*/*'.$sql_ebod;
     
     $result=array();
     
     $idx=0;
     msql_data_seek($res_ebod);
     while($aso_ebod=msql_fetch_assoc($res_ebod))
     {
          $xfecha=trim($aso_ebod['fecha']);
          $xnumfac=$aso_ebod['numfac'];
          $xcant=trim($aso_ebod['cant']);
          
          $result[$idx]['numfac']=$xnumfac;
          $result[$idx]['ebode']=$xcant;
          
//           echo '<br>*/*/*/*';
//           echo '<br>*/*/*/*'.$xnumfac;
//           echo '<br>*/*/*/*'.$xfecha;
//           echo '<br>*/*/*/*'.$xcant;
          $idx++;
     }
     return $result;
     
     
}


function get_factu($docu,$idnum)
{
//      return;
     if(empty($link_data)){$link_data=$_SESSION['link_data'];}
     
     if($docu!='IB10'){return;}
     $docu1=data_docu($docu,$idnum);
     if(!empty($docu1['numfac'])){return;}
     
     $xfecha=$docu1['fecha'];
     $xenti=$docu1['enti'];

     if($xfecha<date('Y-m-01',strtotime('-1 month'))){return;}
     
     $fecha1=$xfecha;
     $fecha2=$xfecha;
     $fecha1=date('Y-m-d',strtotime($fecha1.' -1 week'));
     $fecha2=date('Y-m-d',strtotime($fecha2.' +1 week'));
//      $fecha1m=date('Y-m-01',strtotime($xfecha));
//      $fecha2m=date('Y-m-t',strtotime($xfecha));

     $sql_pcp0 ='select ';
     $sql_pcp0.='abs(DATEDIFF("'.$xfecha.'",fecha)) as diasdif,';
     
     $sql_pcp0.='comp1.* ';
     $sql_pcp0.='from comp1 ';
//      $sql_pcp0.='puni * (1 - ifnull(dcto,0) / 100) /ifnull(uxpre,1) *ifnull(facon,1) as costo,  ';
//      $sql_pcp0.='comp1.*, comp2.* from comp1  ';
//      $sql_pcp0.='left join comp2 on idnum1=idnum2 ';
     
     $sql_pcp0.='where ifnull(status,"") not in("O","X") ';
     $sql_pcp0.='and left(enti,10)="'.substr($xenti,0,10).'" ';
     $sql_pcp0.='and fecha>="'.$fecha1.'" ';
     $sql_pcp0.='and fecha<="'.$fecha2.'" ';
//      $sql_pcp0.='and cant*puni>0 ';
//      $sql_pcp0.='and item="'.$pitem.'" ';

     $sql_pcp0.='order by diasdif, fecha ';
     
     $res_pcp0=msql_query($sql_pcp0,$link_data);

     $xnumfac='';
     if(msql_num_rows($res_pcp0)==1)
     {$xnumfac=msql_result($res_pcp0,0,'numero');}
     
     if(!empty($xnumfac))
     {
          $sql_updt='update inve1 set numfac="'.$xnumfac.'" where ifnull(numfac,0)=0 and idnum1="'.$idnum.'"';
          $res_updt=msql_query($sql_updt,$link_data);
     }
     
//      echo '<br>==== '.$sql_pcp0;
//      echo '<br>==== '.$docu1['numero'].'::::'.$xnumfac;
     
}






?>