<?php
session_start(); 
foreach($_GET as $campo => $valor){${$campo}=$valor;}
foreach($_POST as $campo => $valor){${$campo}=$valor;}

$user_codigo=$_SESSION['user_codigo'];
include_once('lib_main.php');
if(!empty($empr)){$link_data=msql_connect('','','',$empr); $cfg_empr=$empr;}
$user0=data_maes('user',$user_codigo);

$modu=strtolower($modu);

if(empty($exte)){$exte='xml';}
// validar usuario / accesos

if(empty($docu)){$tabla=$modu;}
else
{
     $sql_query='select * from docu0 where docu_codigo like "'.$docu.'%"';
     $res_query=msql_query($sql_query,$link_data);
     $tabla=msql_result($res_query,0,'docu_tabla');
}

if(empty($numero1)){$numero1=1;}
if(empty($numero2)){$numero2=999999999;}
if($numero2<$numero1){$numero2=$numero1;}

if(empty($fecha1)){$fecha1=date('Y-01-01');}
if(empty($fecha2)){$fecha2=date('Y-m-d');}
$fecha1=date('Ymd',strtotime($fecha1));
$fecha2=date('Ymd',strtotime($fecha2));
if($fecha2<$fecha1){$fecha2=$fecha1;}

$enti=substr($enti,0,10);

// reportes
// resu : resumen documentos
// deta : detalle documentos
// docu : inf.x documentos
// enti : inf.x entidad
// item : inf.x item
// ctas : inf.x cuentas

if(empty($repo)){$repo='resu';}
switch($repo)
{
     case 'docu'    :    $groupby='docu_descri '; 
                         $orderby='signo desc,docu_descri ';
                         break;
     case 'resu'    :    $groupby='fecha,idnum1 '; 
                         $orderby='fecha,idnum1 ';
                         break;
     case 'deta'    :    $groupby='fecha,idnum1,iddet '; 
                         $orderby='fecha,idnum1,iddet ';
                         break;
     case 'enti'    :    $groupby='left(enti,10) '; 
                         $orderby='enti_descri,enti ';
                         break;
     case 'item'    :    $groupby='item_descri '; 
                         $orderby='item_descri,item ';
                         break;
     case 'ctas'    :    $groupby='ctas '; 
                         $orderby='ctas ';
                         break;
     case 'fecha'   :    $groupby='fecha '; 
                         $orderby='fecha ';
                         break;
//      case 'fames'   :    $groupby='left(fecha,7) '; 
//                          $orderby='fecha ';
//                          break;
     case 'fanio'   :    $groupby='left(fecha,4) '; 
                         $orderby='fecha ';
                         break;
     case 'fmes'    :    $groupby='left(fecha,7) '; 
                         $orderby='fecha ';
                         break;
     case 'fsema'   :    $groupby='fsema '; 
                         $orderby='fsema ';
                         break;
//      default        :    $groupby=''; 
//                          $orderby='';
}

$sql_query ='select * ';
$sql_query.='from '.$tabla.'1 ';

// joins
{
     $sql_query.='left join '.$tabla.'2 on idnum1=idnum2 ';
     $sql_query.='left join docu0 on docu=docu_codigo ';
     $sql_query.='left join enti0 on enti=enti_codigo ';
     $sql_query.='left join item0 on item=item_codigo ';
     $sql_query.='left join ctas0 on ctas=ctas_codigo ';
     if(mb_stristr('inve.prod',$tabla))
     {
          $sql_query.='left join bode0 on bode=bode_codigo ';
     }
     if(mb_stristr('vtas.clie.carr.comp.prov.inve.prod',$tabla))
     {
          $sql_query.='left join lsub0 on item_lsub=lsub_codigo ';
          $sql_query.='left join clor0 on item_clor=clor_codigo ';
          $sql_query.='left join tlla0 on item_tlla=tlla_codigo ';
//           $sql_query.='left join kldd0 on item_kldd=kldd_codigo ';
     }
}

$sql_query.='where ';
{
     $sql_query.='status!="X" ';
     if(!empty($idnum)){$sql_query.='and idnum1="'.$idnum.'" ';}
     else
     {
          if(!empty($docu)){$sql_query.='and docu="'.$docu.'" ';}
          if(!empty($numero1)){$sql_query.='and numero>='.$numero1.' ';}
          if(!empty($numero2)){$sql_query.='and numero<='.$numero2.' ';}
          if(!empty($fecha1)){$sql_query.='and fecha>="'.$fecha1.'" ';}
          if(!empty($fecha2)){$sql_query.='and fecha<="'.$fecha2.'" ';}
          
          if(!empty($enti)){$sql_query.='and enti like "'.substr($enti,0,10).'%" ';}
          if(!empty($item)){$sql_query.='and item like "'.$item.'%" ';}
          if(!empty($ctas)){$sql_query.='and ctas like "'.$ctas.'%" ';}
          
          if(!empty($ptoe)){$sql_query.='and ptoe like "'.$ptoe.'%" ';}
          if(!empty($ptov)){$sql_query.='and ptov like "'.$ptov.'%" ';}
          if(!empty($caja)){$sql_query.='and caja like "'.$caja.'%" ';}
          if(!empty($ctab)){$sql_query.='and ctab like "'.$ctab.'%" ';}
          if(!empty($bode)){$sql_query.='and bode like "'.$bode.'%" ';}
          
          if(!empty($lsub)){$sql_query.='and lsub_codigo like "'.$lsub.'%" ';}
          if(!empty($clor)){$sql_query.='and clor_codigo like "'.$clor.'" ';}
          if(!empty($tlla)){$sql_query.='and tlla_codigo like "'.$tlla.'" ';}
     }     
}

if(!empty($groupby)){$sql_query.='group by '.$groupby;}
if(!empty($orderby)){$sql_query.='order by '.$orderby;}

$calc_tran=calc_tran($tabla);
if(!empty($calc_tran))
{$sql_query=str_replace(' from ',','.$calc_tran.' from ',$sql_query);}

$calc_maes=calc_maes($sql_query);
if(!empty($calc_maes))
{$sql_query=str_replace(' from ',','.$calc_maes.' from ',$sql_query);}

if(empty($fields))
{
     if($modu=='vtas' and $repo=='item')
     {
          $fields ='';
          $fields.='item,item_descri as producto,';
          $fields.='clor_descri as color,tlla_descri as talla,';
          $fields.='cant,puni as p_unit,tdcto as dcto,tiva,tirbp,subt,total,';
          $fields.='ctas,detalle,status as st';
     }
     if($modu=='comp' and $repo=='item')
     {
          $fields ='';
          $fields.='item,item_descri as producto,';
//           $fields.='clor_descri as color,tlla_descri as talla,';
          $fields.='cant,puni as p_unit,tdcto as dcto,tiva,tirbp,subt,total,';
          $fields.='ctas,detalle,status as st';
     }
}

$fields=str_replace('-','__',$fields);
if(!empty($fields))
{$sql_query='select '.$fields.' from ('.$sql_query.') as query';}     

$res_query=msql_query($sql_query,$link_data);
// $xml=reso2file($res_query,'test.xml');    

// echo '*/*/*/*/'.$sql_query;
// echo '*/*/*/*/'.$exte;

if(!empty($exte))
{
     $result=reso2file($res_query,'test.'.$exte);
     echo $result;
}     


// phpinfo();


?>