<?php //foreach($_POST as $campo => $valor){${$campo}=$valor;} ?>
<?php
if(empty($pid)){$pid='dl_'.$ptabla;}
if(empty($psize)){$psize=1;}

if(empty($pstyle)){$pstyle.=';';}
if(!empty($psize) and $psize!=1){$pstyle.='font-size:'.($psize*100).'%;';$pstyle.='height:'.($psize*100).'%;';}
if(!empty($pwidth)){$pstyle.='width:'.$pwidth.';';}

if(empty($ptabla))
{
      $sql_gettab='select * from docu0 where docu_codigo like "'.$pdocu.'%"  and docu_status!="X" order by docu_codigo';
//      echo '*/*/*/*'.$sql_gettab;
      $res_gettab=msql_query($sql_gettab,$link_data);
      if(!msql_error($link_data)){$ptabla=@msql_result($res_gettab,0,'docu_tabla').'';}
}
if(empty($pcolu)){$pcolu=$ptabla.'_codigo,'.$ptabla.'_descri';}
// if($ptabla=='item'){$pcolu.=',clor_codigo,clor_descri,tlla_codigo,tlla_descri';}
if($ptabla=='item'){$pcolu.=',clor_descri,tlla_descri';}

if(mb_stristr($pcolu,','))
{
   $pvalue=substr($pcolu,0,strpos($pcolu,','));
   $poption=substr($pcolu,strpos($pcolu,',')+1);
}
else
{$pvalue=$pcolu; $poption=$pcolu;}

$sql_datal ='select distinct ';
$sql_datal.= $pvalue.',';
$sql_datal.= $poption.',';
$sql_datal.='concat('.str_replace(',','," .",',$poption).') as datalist, ';
// $sql_datal.='concat('.str_replace(',','," .",ifnull(',$poption).') as datalist, ';
// $sql_datal.='concat('.str_replace(',','," .",ifnull(',$poption).') as datalist, ';

// if(mb_stristr('item',$ptabla))
if(mb_stristr('item',$ptabla) and empty($pcolu))
{
  	$sql_datal.= $ptabla.'_codigov as codigov, ';
  	$sql_datal.= $ptabla.'_puni as puni, ';
  	$sql_datal.= $ptabla.'_pvp1 as pvp1, ';
}
    
// if(mb_stristr('item.enti',$ptabla))
if(mb_stristr('item.enti',$ptabla) and empty($pcolu))
{
   $sql_datal.= 'year('.$ptabla.'_lused) as fanio,';
   $sql_datal.= 'month('.$ptabla.'_lused) as fmes, ';
}
    
if(!empty($pdocu))
{
   $sql_datal.= 'year(fecha) as fanio, ';
   $sql_datal.= 'month(fecha) as fmes, ';
}
    
$sql_datal.= $ptabla.'_status as status ';
$sql_datal.=' from '.$ptabla.'0 ';

if(mb_stristr('item',$ptabla))
{
     $sql_datal.= 'left join tlla0 on item_tlla=tlla_codigo ';
     $sql_datal.= 'left join clor0 on item_clor=clor_codigo ';
}

$sql_datal.=' where '.$ptabla.'_status!="X" ';
if(!empty($pwhere)){$sql_datal.=' and '.$pwhere.' ';}

if(!empty($ptabla))
{
   $sql_datal.=' and '.$ptabla.'_descri!=""  ';
   $sql_datal.=' and '.$ptabla.'_descri is not null  ';
}

if(!empty($pdocu))
{
   $sql_datal.=' and docu like "'.$pdocu.'%" ';
   $sql_datal.=' and '.$pcolu.'!=""  ';
   $sql_datal.=' and '.$pcolu.' is not null  ';

   $lyear=strtotime('-12 month');
   if(mb_stristr('DPU1.DPU2',$pdocu)){$lyear=strtotime('-120 month');}
   $lyear=date('Y-m-'.'01',$lyear);
   $sql_datal.=' and fecha>="'.$lyear.'" ';
   
}

if(mb_stristr('item.enti',$ptabla) and empty($pcolu))
{
   $lyear=strtotime('-12 month');
   $lyear=date('Y-m-'.'01',$lyear);
   $sql_datal.=' and '.$ptabla.'_lused>="'.$lyear.'" ';
}

if(!empty($pdocu))
{
//    $lyear=strtotime('-12 month');
//    if(mb_stristr('DPU1.DPU2',$pdocu)){$lyear=strtotime('-120 month');}
//    $lyear=date('Y-m-'.'01',$lyear);
//    $sql_datal.=' and fecha>="'.$lyear.'" ';
}

if($cfg_tipo=='cong')
{if($pdocu!='DPU2' and !empty($pcolu)){$sql_datal.=' and cong="'.$_SESSION['cong_codigo'].'" ';}}

if(!empty($pdocu)){$sql_datal.= 'group by '.$pvalue;}
$xorder=' order by '.$poption;

// if(mb_stristr('item.enti',$ptabla))
if(mb_stristr('item.enti',$ptabla) and empty($pcolu))
{$xorder=' order by fanio desc, fmes desc,'.$ptabla.'_descri,'.$ptabla.'_codigo';}	

if(mb_stristr('clor',$ptabla))
{$xorder=' order by clor_tipo,clor_hexa,fanio desc, fmes desc,'.$ptabla.'_descri,'.$ptabla.'_codigo';}	
// {$xorder=' order by clor_hexa,fanio desc, fmes desc,'.$ptabla.'_descri,'.$ptabla.'_codigo';}	

if(mb_stristr('docu',$ptabla))
{$xorder=' order by '.$ptabla.'_tabla,'.$ptabla.'_codigo';}	

if(mb_stristr('ctas.suco.cair.fpag.cntn.vhcl.',$ptabla))
{$xorder=' order by '.$ptabla.'_codigo';}	

if(mb_stristr('tlla.asub',$ptabla))
{$xorder=' order by '.$ptabla.'_codigo';}	

if(mb_stristr('orat.bsqj',$ptabla))
{$xorder=' order by '.$ptabla.'_codigo';}	

$sql_datal.=$xorder;

// if($plimit==0 and mb_stristr('item',$ptabla)){$plimit=1000;}

    
if($plimit>0){$sql_datal.=' limit '.$plimit;}

$res_datal=msql_query($sql_datal,$link_data);

// echo '<br>'.$sql_datal;
// echo '<br>'.msql_error($link_data);
if(!msql_error($link_data)){$dlok=1;}
else
{
   $sql_datal=str_replace($ptabla.'0 ',$ptabla.'00 ',$sql_datal);
   $res_datal=msql_query($sql_datal,$link_data);
   if(!msql_error($link_data)){$dlok=1;}
   else
   {
      $sql_datal=str_replace($ptabla.'00 ',$ptabla.'1 ',$sql_datal);
      $sql_datal=str_replace('_codigo','',$sql_datal);
      $sql_datal=str_replace($ptabla.'_status','status',$sql_datal);
//       $sql_datal.=str_replace('and status!="I"',$sql_datal1,$sql_datal);
      $res_datal=msql_query($sql_datal,$link_data);
      if(!msql_error($link_data)){$dlok=1;}
      else
      {
         $sql_datal=str_replace($ptabla.'1 ',$ptabla.'12 ',$sql_datal);
         $res_datal=msql_query($sql_datal,$link_data);
         if(!msql_error($link_data)){$dlok=1;}
      }
   }
}
if(empty($pid)){$pid=$ptabla;}
if(empty($pid)){$pid=microtime()*1000000;}



$dom=new DomDocument();
     $dom->encoding = 'utf-8';
     $dom->xmlVersion = '1.0';
     $dom->formatOutput = true;

$vrdatal=$dom->appendChild($dom->createElement("div"));   

$datal=$vrdatal->appendChild($dom->createElement("datalist"));   
if(!empty($pid)){$datal->setAttribute("id",$pid);}
if(!empty($pname)){$datal->setAttribute("name",$pname);}
$options=$datal->appendChild($dom->createElement("options"));   
// $options=$options->appendChild($dom->createElement("optgroup"));   
// $options->setAttribute("label","grupo1");
// echo '<br>NR   '.msql_num_rows($res_datal);
while($aso_datal=msql_fetch_assoc($res_datal))
{
   $option='';
   $xvalue=trim($aso_datal[$pvalue]);
   $xoption=$aso_datal['datalist'];
   if(empty($xoption))
   {
        $xoption=$aso_datal[$ptabla.'_descri'];
        if($ptabla=='item')
        {
             $xoption.=' .'.@$aso_datal['clor_descri'];
             $xoption.=' .'.@$aso_datal['tlla_descri'];
        }
   }
  
   if(mb_stristr($xoption,'->')){$xoption='';}
   if(mb_stristr($xoption,'***')){$xoption='';}
  
//      if($ptabla=='item')
//      echo '<br>'.$xvalue.'-'.$xoption;
     
    if(!empty($xvalue) and !empty($xoption))
    {
      
     if(mb_stristr($xvalue,'.') and ((int)$xvalue*1)!=0){$xvalue=rtrim($xvalue,'0'); $xvalue.='0';}
     if(mb_stristr($xoption,'.') and ((int)$xoption*1)!=0){$xoption=rtrim($xoption,'0'); $xoption.='0';}

     if($ptabla=='ctas' and strlen($xvalue)>5)
     {
          $ctas_deta=ctas_deta($xvalue);
          if($ctas_deta)
          {$xoption='*** '.$xoption.' ***' ;}
//           {$xoption='»»» '.$xoption.' «««' ;}
     }
          
     if($ptabla=='item' and $aso_list['codigov']!='')
     {$xoption.=' ('.$aso_list['codigov'].')';}

     if($ptabla=='item' and $aso_list['tlla_descri']!='')
     {$xoption.=' ('.$aso_list['tlla_descri'].')';}

     if($ptabla=='clor' and $aso_list['clor_hexa']!='')
     {$xstyle='font-weight:bold;'.'background-color:'.$aso_list['clor_hexa'].';';}

     if(mb_stristr($osver,'Edge'))
     {$xvalue.=' => '.trim($xoption); }
      
     $xoption=htmlspecialchars($xoption);
//      $xvalue=utf8_encode($xvalue);
     $xvalue=htmlspecialchars($xvalue);
         
     $option=$options->appendChild($dom->createElement("option",$xoption));   
     $option->setAttribute("value",$xvalue);
     if($ptabla=='clor' )
     {$option->setAttribute("class","bold");}
     if($ptabla=='clor' )
     {$option->setAttribute("style",$xstyle);}
    }
}
   

echo $dom->saveXML();

// echo 'test';

$pid='';
$plabel='';
$ptabla='';
$pcolu='';

$pstyle='';
$pwidth='';

?>