🌹🏠🌹？》《》？《》？<?php
ini_set('max_execution_time', 0);

//include_once "../include/session.php";
include_once "../include/session.php";
include_once "../include/inicio.php";
include_once "../Lib/inicio.php";
include_once "../Lib/PDF.php";
include_once "../Lib/PHPExcel-1.8/Classes/PHPExcel.php";
include_once "../Lib/r_mails.php";
include_once "../Lib/r_general.php";
include_once "../Lib/funciones.php";

$p_header_html=r_header_html();
$vistas->preparar_vista('r_header_html',$p_header_html);
$p_html="../Lib/vista_grabar.html";
$pa_return['error'] = 'OK';
$pa_return['msg']   = '';

$p_empresa  = $_GET['emp'];
$p_titulo   = r_empresa_des($p_empresa);
$p_tit      = '';
$p_cabecera = r_header($p_titulo);
$vistas->preparar_vista('r_header',$p_cabecera);
$p_pie=r_footer();
$vistas->preparar_vista('r_footer',$p_pie);

$PiePagina="<a id='salida' href='index.php'>Volver</a>";
$vistas->preparar_vista('PiePaginaBoton',$PiePagina);
$vistas->preparar_vista('PiePagina','');
$vistas->preparar_vista('visible_salida','DivInvisible');

$p_archivo_xls = "Stock15-0.xls";
$p_archivo_pdf = "Stock15-0.pdf";
$p_archivo_txt = "almacen.txt";

$pdf = new PDF();
$objPHPExcel = new PHPExcel();
$p_control = fopen($p_archivo_txt,"w+");
if ( $p_control == false) {
   $pa_return['error'] = 'NOK';
   $pa_return['msg']   =  "01- No se pudo abrir archivo para Informe !! ";
   r_salida_listado();
}

$p_alto   = 5;
$p_borde  = 0;
$pa_tit   = array();
$pdf->encabezado = $pa_tit;

$pdf->AliasNbPages();
$pdf->SetLeftMargin(5);
$pdf->AddPage();
$pdf->SetFillColor(255,255,255);
$pdf->SetFont('Arial','', 7);

$objPHPExcel->getProperties()->setCreator("GLSA")
                ->setLastModifiedBy('web')
                ->setTitle($p_titulo)
                ->setSubject($p_titulo)
                ->setDescription("")
                ->setKeywords("")
                ->setCategory("");

$objPHPExcel->getActiveSheet()->setTitle('Stock15');
$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(40);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);

$p_empresa_des = r_empresa_des($_GET['emp']);
$p_tex1 = "STOCK POR ARTICULO / AREA";
$p_tex2 = "Stock en (Bultos) al ".date("d-m-Y");
$pdf->cell(30,$p_alto,'',0);
$pdf->cell(170,$p_alto,$p_tex1,$p_borde,1);
$pdf->cell(30,$p_alto,'',0);
$pdf->cell(170,$p_alto,$p_empresa_des,$p_borde,1);
$pdf->cell(30,$p_alto,'',0);
$pdf->cell(170,$p_alto,$p_tex2,$p_borde,1);
$pdf->cell(200,$p_alto,'',$p_borde,1);

$p_row     = 1;
$p_columna = 1;
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, 'STOCK POR ARTICULO/AREA');
$p_row ++;
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, $p_empresa_des);
$p_row ++;
$p_tex = "Stock en (Bultos) al ".date("d-m-Y");
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, $p_tex);
$p_row ++;

$objPHPExcel->setActiveSheetIndex(0)
   ->setCellValue('A4', 'Articulo')
   ->setCellValue('B4', 'Descripcion')
   ->setCellValue('C4', '910')
   ->setCellValue('D4', '911')
   ->setCellValue('E4', '916');

$pdf->SetFont('Arial','B', 7);
$pdf->cell(30,$p_alto,"Articulo",$p_borde,0);
$pdf->cell(70,$p_alto,"Descripcion",$p_borde,0);
$pdf->cell(20,$p_alto,"910 ",$p_borde,0,'R');
$pdf->cell(20,$p_alto,"911",$p_borde,0,'R');
$pdf->cell(20,$p_alto,"916",$p_borde,1,'R');
$pdf->SetFont('Arial','', 7);

$p_row     = 5;
$pa_return['error'] = 'OK';
$pa_return['msg'] = '';
$p_total_910 = 0;
$p_total_911 = 0;
$p_total_916 = 0;

$p_sql_s = "select a.articulo, b.descripcion
              from stock a, articulo b
             where a.empresa  = b.empresa
               and a.articulo = b.articulo
               and a.empresa = '$p_empresa'
               and a.bultos <> 0
               and a.estado = 'C' 
              group by a.articulo, b.descripcion 
              order by 1,2 ";
$resultado=@odbc_exec($Base->conexion,$p_sql_s);
if (!$resultado){

   $pa_return['error'] = 'NOK';
   $pa_return['msg']   =  "02- No se pudo leer [stock] !! ";
   r_salida_listado();
}
$p_total_910 = 0;
$p_total_911 = 0;
$p_total_916 = 0;
$tabla    = "";
$p_cancel = false;
while ($row=odbc_fetch_array($resultado)) {

   $p_bul_910 = 0;
   $p_bul_911 = 0;
   $p_bul_916 = 0;
   $p_articulo = rtrim($row['articulo']);
   $p_articulo_des = trim($row['descripcion']);

   $p_sql_s = "select sum(bultos-bultos_res) bultos from stock
            where empresa = '$p_empresa'
              and articulo = '$p_articulo'
              and area     in ( 910, 912 )
              and bultos != 0
              and estado = 'C' ";
   $Base->r_select_fila($p_sql_s, "stock");
   if ($Base->error != 0) {
      $pa_return['error'] = 'NOK';
      $pa_return['msg'] = '03- Error. No se pudo leer [stock] !! ';
      break;
   }
   $p_bul_910 = $Base->row['bultos'];

   $p_sql_s = "select sum(bultos_res) bultos from stock
            where empresa = '$p_empresa'
              and articulo = '$p_articulo'
              and area     = 910
              and bultos_res != 0
              and estado = 'C' ";
   $Base->r_select_fila($p_sql_s, "stock");
   if ($Base->error != 0) {
      $pa_return['error'] = 'NOK';
      $pa_return['msg'] = '04- Error. No se pudo leer [stock] !! ';
      break;
   }
   $p_bul_911 = $Base->row['bultos'];

   $p_sql_s = "select sum(bultos) bultos from stock
            where empresa = '$p_empresa'
              and articulo = '$p_articulo'
              and area     = 911
              and bultos != 0
              and estado = 'C' ";
   $Base->r_select_fila($p_sql_s, "stock");
   if ($Base->error != 0) {
      $pa_return['error'] = 'NOK';
      $pa_return['msg'] = '05- Error. No se pudo leer [stock] !! ';
      break;
   }
   if (strlen($Base->row['bultos']) > 0) {
      $p_bul_911 = $p_bul_911 + $Base->row['bultos'];
   }

   $p_sql_s = "select sum(bultos-bultos_res) bultos from stock
            where empresa = '$p_empresa'
              and articulo = '$p_articulo'
              and area     = 916
              and bultos != 0
              and estado = 'C' ";
   $Base->r_select_fila($p_sql_s, "stock");
   if ($Base->error != 0) {
      $pa_return['error'] = 'NOK';
      $pa_return['msg'] = '06- Error. No se pudo leer [stock] !! ';
      break;
   }
   $p_bul_916 = $Base->row['bultos'];

   if ($p_bul_916 == 0 && $p_bul_911 == 0 && $p_bul_910 == 0){
      continue;
   }

   $pdf->cell(30,$p_alto,$p_articulo,$p_borde,0);
   $pdf->cell(70,$p_alto,$p_articulo_des,$p_borde,0);
   $pdf->cell(20,$p_alto,$p_bul_910,$p_borde,0,'R');
   $pdf->cell(20,$p_alto,$p_bul_911,$p_borde,0,'R');
   $pdf->cell(20,$p_alto,$p_bul_916,$p_borde,1,'R');

   $p_columna=0;
   $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, $p_articulo);
   $p_columna++;
   $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, $p_articulo_des);
   $p_columna++;
   $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, $p_bul_910);
   $p_columna++;
   $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, $p_bul_911);
   $p_columna++;
   $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna, $p_row, $p_bul_916);
   $p_row++;

   $p_total_910 += $p_bul_910;
   $p_total_911 += $p_bul_911;
   $p_total_916 += $p_bul_916;

}
odbc_free_result($resultado);

if ($pa_return['error'] != 'OK'){
   r_salida_listado();
   return;
}

$p_fec  = date("d/m/Y");
$sql="select articulo from articulo
       where empresa = '$p_empresa'
         and activo  = 'S'
         and articulo != 'PRUEBA'
       order by 1  ";
$resultado=@odbc_exec($Base->conexion,$sql);
if (!$resultado){
   $pa_return['error'] = 'NOK';
   $pa_return['msg']   = '07- Error. No se pudo leer [articulo] !! ';
   r_salida_listado();
   return;
}
while ($row=odbc_fetch_array($resultado)){
   $p_art   = rtrim($row['articulo']);

   $sql = "select area from areas_empresas
            where empresa = '$p_empresa'
            order by prioridad ";
   $resultado2=@odbc_exec($Base->conexion,$sql);
   if (!$resultado2){
      $pa_return['error'] = 'NOK';
      $pa_return['msg']   = '08- Error. No se pudo leer [areas_empresas] !!';
      break;
   }
   while ($row2=odbc_fetch_array($resultado2)){
      $p_area  = str_pad($row2['area'],4,"0",STR_PAD_LEFT);
      $p_bultos = 0;
      $p_bultos2 = 0;
      switch ($p_area){
         case 911:
            $sql="select sum(bultos) bultos from stock
                where empresa  = '$p_empresa'
                  and area     = 911
                  and articulo = '$p_art'
                  and bultos != 0
                  and estado   = 'C' ";
            $Base->r_select_fila($sql,"stock");
            if ($Base->error == 0){
               $p_bultos2 = $Base->row['bultos'];
            }
            $sql="select sum(bultos_res) bultos from stock
                where empresa  = '$p_empresa'
                  and area     = 910
                  and articulo = '$p_art'
                  and bultos_res != 0
                  and estado   = 'C' ";
            break;
         case 910:
            $sql="select sum(bultos-bultos_res) bultos from stock
                where empresa  = '$p_empresa'
                  and area     in ('910','912')
                  and articulo = '$p_art'
                  and estado   = 'C' ";
            break;
         default:
            $sql="select sum(bultos-bultos_res) bultos from stock
                where empresa  = '$p_empresa'
                  and area     = '$p_area'
                  and articulo = '$p_art'
                  and estado   = 'C' ";
            break;
      }
      $Base->r_select_fila($sql,"stock");
      if ($Base->error == 0 && strlen($Base->row['bultos']) > 0 ){
         $p_bultos = $Base->row['bultos'];
      }
      $p_bultos = $p_bultos + $p_bultos2;

      $p_linea = str_pad($p_art,10,' ',STR_PAD_RIGHT).$p_fec.$p_area.
                 str_pad($p_bultos,6,'0',STR_PAD_LEFT)."\n";
      file_put_contents($p_archivo_txt, $p_linea, FILE_APPEND);
   }
   odbc_free_result($resultado2);

   if ($pa_return['error'] != 'OK'){
      break;
   }
}
odbc_free_result($resultado);

if ($pa_return['error'] != 'OK' ){
   r_salida_listado();
   return;
}

$pdf->SetFont('Arial','B', 7);
$pdf->cell(20,$p_alto,"",$p_borde,1);
$pdf->cell(30,$p_alto,"TOTALES:",$p_borde,0);
$pdf->cell(70,$p_alto,'',$p_borde,0);
$pdf->cell(20,$p_alto,$p_total_910,$p_borde,0,'R');
$pdf->cell(20,$p_alto,$p_total_911,$p_borde,0,'R');
$pdf->cell(20,$p_alto,$p_total_916,$p_borde,1,'R');

$p_columna = 0;
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna,$p_row,"TOTALES:");
$p_columna++;
$p_columna++;
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna,$p_row,$p_total_910);
$p_columna++;
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna,$p_row,$p_total_911);
$p_columna++;
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($p_columna,$p_row,$p_total_916);

switch ($_GET['donde']) {
case 'I':
   $pdf->Output();
   break;
case 'E':
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename='.$p_archivo_xls);
    header('Cache-Control: max-age=0');
    $objWriter->save('php://output');
    $objWriter->save($p_archivo_xls);
    r_envio($_SESSION['mail'],$p_titulo," ",$p_archivo_xls,$p_archivo_txt);
    break;
 
default:   
   $pdf->Output("F",$p_archivo_pdf);
   r_envio($_SESSION['mail'],$p_titulo," ",$p_archivo_pdf);
   break;
} 

function r_salida_listado()
{

global $p_html,$pa_return,$vistas,$p_tdoc,$p_tdoc_des,$p_nrodoc;

$p_planilla = $p_tdoc." - ".$p_tdoc_des." - ".$p_nrodoc;

$vistas->preparar_vista('r_msg',$pa_return['msg']);
$vistas->preparar_vista('PiePagina',$pa_return['msg']);
$vistas->preparar_vista('r_codigo',$p_planilla);
$vistas->preparar_vista('visible_salida','DivInvisible');
echo $vistas->r_arma_vista($p_html);   

}

?>