<?php
##########################################################################################################################################################################
#                                                                                              Modificaciones
##########################################################################################################################################################################
#29/08/2017 | Erica G. | Encabezado
#03/03/2017 | ERICA G. | ARREGLO BUSQUEDA MODIFICACION Y AFECTADO
##########################################################################################################################################################################
session_start();
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Informe_Auxiliar_Pptal_Gastos.xls");
require '../../Conexion/conexion.php';
require_once '../../Conexion/ConexionPDO.php';
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
ini_set('max_execution_time', 0);
$panno = $_SESSION['anno'];
$rubini         = $_REQUEST["sltrubi"];
$rubfin         = $_REQUEST["sltrubf"];
$fechaini       = $_REQUEST["fechaini"];
$fechafin       = $_REQUEST["fechafin"];
$compini        = $_REQUEST["sltTci"];
$compfin        = $_REQUEST["sltTcf"];
$head           = $_REQUEST["headH"];
$foot           = $_REQUEST["footH"];

#Conversión Fecha 
$fechaI = DateTime::createFromFormat('d/m/Y', "$fechaini");
$fechaI = $fechaI->format('Y/m/d');

$fechaF = DateTime::createFromFormat('d/m/Y', "$fechafin");
$fechaF = $fechaF->format('Y/m/d');

#************Datos Compañia************#
$compania = $_SESSION['compania'];
$resultC = $con->Listar("SELECT 	ter.id_unico,
                ter.razonsocial,
                UPPER(ti.nombre),
                ter.numeroidentificacion,
                dir.direccion,
                tel.valor,
                ter.ruta_logo
FROM gf_tercero ter
LEFT JOIN 	gf_tipo_identificacion ti ON ter.tipoidentificacion = ti.id_unico
LEFT JOIN   gf_direccion dir ON dir.tercero = ter.id_unico
LEFT JOIN 	gf_telefono  tel ON tel.tercero = ter.id_unico
WHERE ter.id_unico = $compania");
// $resultC = $mysqli->query($sqlC);
// $rowC = mysqli_fetch_row($resultC);
$rowC = $resultC;
$razonsocial = $rowC[0][1];
$nombreIdent = $rowC[0][2];
$numeroIdent = $rowC[0][3];
$direccinTer = $rowC[0][4];
$telefonoTer = $rowC[0][5];
?>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Auxiliar Presupuestal Gastos</title>
</head>

<body>
  <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr>
      <th colspan="10" align="center"><strong>
          <br />&nbsp;
          <br /><?php echo $razonsocial ?>
          <br /><?php echo $nombreIdent . ' : ' . $numeroIdent . "<br/>" . $direccinTer . ' Tel:' . $telefonoTer ?>
          <br />&nbsp;
          <br />AUXILIAR PRESUPUESTAL GASTOS
          <br />Rubros Del <?php echo $rubini . ' al ' . $rubfin ?>
          <br />Comprobantes Del <?php echo $compini . ' al ' . $compfin ?>
          <br />Fecha: Del <?php echo $fechaini . ' al ' . $fechafin ?><br />&nbsp;
        </strong>
      </th>
    </tr>
    <tr>
      <td rowspan="2" align="center"><strong>FECHA</strong></td>
      <td colspan="2" align="center"><strong>COMPROBANTE</strong></td>
      <td rowspan="2" align="center"><strong>NOMBRE TERCERO</strong></td>
      <td rowspan="2" align="center"><strong>DESCRIPCIÓN</strong></td>
      <td rowspan="2" align="center"><strong>VALOR</strong></td>
      <td rowspan="2" align="center"><strong>MODIFICACIONES</strong></td>
      <td rowspan="2" align="center"><strong>TOTAL</strong></td>
      <td rowspan="2" align="center"><strong>AFECTADO</strong></td>
      <td rowspan="2" align="center"><strong>SALDO</strong></td>
    </tr>
    <tr>
      <td align="center"><strong>TIPO</strong></td>
      <td align="center"><strong>NÚMERO</strong></td>
    </tr>


    <?php
    $total1 = 0;
    $rubroP = $con->Listar("SELECT DISTINCT rp.codi_presupuesto AS codigoR, rp.nombre as nombreR 
      FROM gf_detalle_comprobante_pptal dcp 
      LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico 
      LEFT JOIN gf_rubro_pptal rp ON rf.rubro = rp.id_unico 
      LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico 
      LEFT JOIN gf_tipo_comprobante_pptal tcp ON cp.tipocomprobante = tcp.id_unico  
      WHERE rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin' 
      AND (rp.tipoclase = 7 OR rp.tipoclase = 9 OR rp.tipoclase=10 OR rp.tipoclase=15 OR rp.tipoclase=16) 
      AND cp.parametrizacionanno = $panno 
      AND  cp.fecha BETWEEN '$fechaI' AND '$fechaF' 
      ORDER BY codi_presupuesto ASC ");
    // $rubroP = $mysqli->query($rubroP);
    // while ($rubro = mysqli_fetch_assoc($rubroP)) { 
    for ($rubro = 0; $rubro < count($rubroP); $rubro++) { ?>
      <?php $numd = 0;
      switch ($conexion) {
        case 1:
          $cons = $con->Listar("SELECT rp.codi_presupuesto   as rpcodp,
          tcp.id_unico as tipocom 
          FROM gf_detalle_comprobante_pptal dcp
          LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
          LEFT JOIN gf_rubro_pptal rp ON rf.rubro = rp.id_unico
          LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico 
          LEFT JOIN gf_tipo_comprobante_pptal tcp ON cp.tipocomprobante = tcp.id_unico 
          LEFT JOIN gf_tercero t ON t.id_unico = dcp.tercero 
          WHERE    rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin' 
          AND (rp.tipoclase = 7 OR rp.tipoclase = 9 OR rp.tipoclase=10 OR rp.tipoclase=15 OR rp.tipoclase=16) 
          AND cp.parametrizacionanno = $panno 
          AND  cp.fecha BETWEEN '$fechaI' AND '$fechaF' ORDER BY cp.fecha, tcp.codigo, cp.numero ASC");
          break;
        case 2:
          $cons = $con->Listar("SELECT rp.codi_presupuesto AS rpcodp,
          tcp.id_unico AS tipocom 
          FROM gf_detalle_comprobante_pptal dcp
          LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
          LEFT JOIN gf_rubro_pptal rp ON rf.rubro = rp.id_unico
          LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico 
          LEFT JOIN gf_tipo_comprobante_pptal tcp ON cp.tipocomprobante = tcp.id_unico 
          LEFT JOIN gf_tercero t ON t.id_unico = dcp.tercero 
          WHERE rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin'
          AND (rp.tipoclase IN (7, 9, 10, 15, 16))
          AND cp.parametrizacionanno = $panno 
          AND cp.fecha BETWEEN TO_DATE('$fechaI', 'YYYY-MM-DD') AND TO_DATE('$fechaF', 'YYYY-MM-DD') 
          ORDER BY cp.fecha, tcp.codigo, cp.numero ASC");
          break;
        default:
          # code...
          break;
      }

      // $cons = $mysqli->query($cons);
      // while ($row1 = mysqli_fetch_array($cons)) {
      for ($row1 = 0; $row1 < count($cons); $row1++) {
        if (strtoupper($cons[$row1]['rpcodp']) == strtoupper($rubroP[$rubro]['codigoR'])) {
          $tipo = $conexion == 1 ? $cons[$row1]['tipocom'] : $cons[$row1]['TIPOCOM'];
          $comprobanteI1 = $con->Listar("SELECT codigo as cod FROM gf_tipo_comprobante_pptal WHERE id_unico ='$tipo'
            AND (clasepptal ='13' OR clasepptal ='14' OR clasepptal ='15' OR clasepptal ='16' OR clasepptal ='17' OR clasepptal ='20')");
          // $comprobanteI1 = $mysqli->query($comprobanteI1);
          if (count($comprobanteI1) > 0) {
            // $row11 = mysqli_fetch_array($comprobanteI1);
            $row11 = $comprobanteI1;
            $cod = ($conexion == 1) ? $row11[0]['cod'] : $row11[0]['COD'];
            if ($cod >= $compini && $cod <= $compfin) {
              $numd = $numd + 1;
            }
          }
        }
      }
      if ($numd > 0) { ?>
        <tr>
          <?php
          $rubroCo = $conexion == 1 ? $rubroP[$rubro]['codigoR'] : $rubroP[$rubro]['CODIGOR'];
          $nombreR = $conexion == 1 ? $rubroP[$rubro]['nombreR'] : $rubroP[$rubro]['NOMBRER'];
          ?>
          <td colspan="10"><strong><i><?php echo 'Rubro: ' .  $rubroCo . ' - ' . mb_strtoupper($nombreR); ?></i></strong></td>
        </tr>

        <?php
      }
      switch ($conexion) {
        case 1:
          $con = $con->Listar("SELECT
          rp.codi_presupuesto   as rpcodp,
          rp.nombre             as rpnom,
          dcp.rubrofuente       as dcprf,
          dcp.tercero           as dcpter, 
          tcp.clasepptal        as tcpcla, 
          cp.fecha              as cpfecha, 
          tcp.codigo            as tcpcod, 
          cp.numero             as cpnum, 
          IF(CONCAT_WS(' ',
            tr.nombreuno,
            tr.nombredos,
            tr.apellidouno,
            tr.apellidodos) 
            IS NULL OR CONCAT_WS(' ',
            tr.nombreuno,
            tr.nombredos,
            tr.apellidouno,
            tr.apellidodos) = '',
          (tr.razonsocial),
          CONCAT_WS(' ',
            tr.nombreuno,
            tr.nombredos,
            tr.apellidouno,
            tr.apellidodos)) AS NOMBRE, 
          dcp.descripcion       as dcpdesc,
          tcp.tipooperacion     as tcptop, 
          dcp.id_unico  as idDetalle, 
          dcp.valor as valor, 
          tcp.id_unico as tipocom 
          FROM gf_detalle_comprobante_pptal dcp
          LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
          LEFT JOIN gf_rubro_pptal rp ON rf.rubro = rp.id_unico
          LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico 
          LEFT JOIN gf_tipo_comprobante_pptal tcp ON cp.tipocomprobante = tcp.id_unico 
          LEFT JOIN gf_tercero tr ON tr.id_unico = dcp.tercero 
          WHERE     rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin' 
          AND (rp.tipoclase = 7 OR rp.tipoclase = 9 OR rp.tipoclase=10 OR rp.tipoclase=15 OR rp.tipoclase=16) 
          AND cp.parametrizacionanno = $panno 
          AND  cp.fecha BETWEEN '$fechaI' AND '$fechaF' ");
          break;
        case 2:
          $con = $con->Listar("SELECT
         rp.codi_presupuesto AS rpcodp,
         rp.nombre AS rpnom,
         dcp.rubrofuente AS dcprf,
         dcp.tercero AS dcpter, 
         tcp.clasepptal AS tcpcla, 
         cp.fecha AS cpfecha, 
         tcp.codigo AS tcpcod, 
         cp.numero AS cpnum, 
         CASE
        WHEN TRIM(CONCAT_WS(' ', tr.nombreuno, tr.nombredos, tr.apellidouno, tr.apellidodos)) IS NULL 
        OR TRIM(CONCAT_WS(' ', tr.nombreuno, tr.nombredos, tr.apellidouno, tr.apellidodos)) = ''
        THEN tr.razonsocial
        ELSE TRIM(CONCAT_WS(' ', tr.nombreuno, tr.nombredos, tr.apellidouno, tr.apellidodos))
         END AS NOMBRE, 
         dcp.descripcion AS dcpdesc,
         tcp.tipooperacion AS tcptop, 
         dcp.id_unico AS idDetalle, 
         dcp.valor AS valor, 
         tcp.id_unico AS tipocom 
        FROM gf_detalle_comprobante_pptal dcp
        LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
        LEFT JOIN gf_rubro_pptal rp ON rf.rubro = rp.id_unico
        LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico 
        LEFT JOIN gf_tipo_comprobante_pptal tcp ON cp.tipocomprobante = tcp.id_unico 
        LEFT JOIN gf_tercero tr ON tr.id_unico = dcp.tercero 
        WHERE rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin'
        AND (rp.tipoclase IN (7, 9, 10, 15, 16)) 
        AND cp.parametrizacionanno = $panno 
        AND cp.fecha BETWEEN TO_DATE('$fechaI', 'YYYY-MM-DD') AND TO_DATE('$fechaF', 'YYYY-MM-DD')");
          break;
        default:
          # code...
          break;
      }
      // $con = $mysqli->query($con);
      // while ($row = mysqli_fetch_array($con)) {
      for ($row = 0; $row < count($con); $row++) {
        if (strtoupper($con[$row]['rpcodp']) == strtoupper($rubroP[$rubro]['codigoR'])) {
          $tipo = $conexion == 1 ? $con[$row]['tipocom'] :  $con[$row]['tipocom'];
          $comprobanteI = $con->Listar("SELECT codigo as cod FROM gf_tipo_comprobante_pptal WHERE id_unico ='$tipo' 
          AND (clasepptal ='13' OR clasepptal ='14' OR clasepptal ='15' OR clasepptal ='16' OR clasepptal ='17'
           OR clasepptal ='20')");

          if (count($comprobanteI) > 0) {
            // $row1 = mysqli_fetch_array($comprobanteI);
            $row1 = $comprobanteI;
            $cod = $conexion == 1 ?  $row1[0]['cod'] : $row1[0]['COD'];
            if ($cod >= $compini && $cod <= $compfin) {
              $valor = $conexion == 1 ? $con[$row]['valor'] : $con[$row]['VALOR'];
              #AFECTADO
              $comp = $con[$row]['idDetalle'];
              $af = $con->Listar("SELECT SUM(valor) as value
                FROM gf_detalle_comprobante_pptal dcp
                LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico
                LEFT JOIN gf_tipo_comprobante_pptal tcp ON cp.tipocomprobante = tcp.id_unico
                LEFT JOIN gf_tipo_operacion top ON tcp.tipooperacion = top.id_unico
                WHERE dcp.comprobanteafectado = '$comp' AND top.id_unico = 1");
              // $af = $mysqli->query($a);
              if (count($af) > 0) {
                $sum = 0;
                // while ($sum1 = mysqli_fetch_array($af)) {
                for ($sum1 = 0; $sum1 < count($af); $sum1++) {
                  $sum = $conexion == 1 ? $af[$sum1]['value'] : $af[$sum1]['VALUE'] + $sum;
                }
              } else {
                $sum = 0;
              }

              $afectado = $sum;
              #MODIFICACIONES
              $modi = $con->Listar("SELECT valor as value, tcp.tipooperacion as idcom 
                FROM gf_detalle_comprobante_pptal dcp
                LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico
                LEFT JOIN gf_tipo_comprobante_pptal tcp ON cp.tipocomprobante = tcp.id_unico
                LEFT JOIN gf_tipo_operacion top ON tcp.tipooperacion = top.id_unico
                WHERE dcp.comprobanteafectado = '$comp' AND top.id_unico != 1");
              // $modi = $mysqli->query($mod);
              if (count($modi) > 0) {
                $modifi = 0;
                // while ($modif = mysqli_fetch_array($modi)) {
                for ($modif = 0; $modif < count($modi); $modif++) {
                  $modificacion = $conexion == 1 ? $modi[$modif]['value'] : $modi[$modif]['VALUE'];
                  if ($conexion == 1 ? $modi[$modif]['idcom'] : $modi[$modif]['IDCOM'] == 2) {
                    $modifi = $modificacion + $modifi;
                  } else {
                    if ($conexion == 1 ? $modi[$modif]['idcom'] : $modi[$modif]['IDCOM'] == 3) {
                      $modifi = $modifi + ($modificacion * -1);
                    } else {
                      $modifi = 0;
                    }
                  }
                }
              } else {
                $modifi = 0;
              }
              $modificacion1  = $modifi;
              if ($modificacion1 < 0) {
                $modificacion = $modificacion1 * -1;
              } else {
                $modificacion = $modificacion1;
              }

              #TOTAL
              $total = $valor + $modificacion1;
              #SALDO
              $saldo = $total - $afectado;

              $p1   = (float)($valor);
              $p2   = (float)($modificacion);
              $p3   = (float)($total);
              $p4   = (float)($afectado);
              $p5   = (float)($saldo);

              $dat = $conexion == 1 ? $con[$row]['cpfecha'] : $con[$row]['CPFECHA']; //date('Y-m-d');
              $dat = trim($dat, '"');
              $fecha_div = explode("-", $dat);
              $aniodat = $fecha_div[0];
              $mesdat = $fecha_div[1];
              $diadat = $fecha_div[2];
              $dat = $diadat . '/' . $mesdat . '/' . $aniodat;
        ?>
              <tr>
                <td align="left"><?php echo $dat; ?></td>
                <td align="right"><?php echo $conexion == 1 ? $con[$row]['tcpcod'] : $con[$row]['TCPCOD']; ?></td>
                <td align="right"><?php echo $conexion == 1 ? $con[$row]['cpnum'] : $con[$row]['CPNUM']; ?></td>
                <td align="left"><?php echo ucwords(mb_strtolower($con[$row]['NOMBRE'])); ?></td>
                <td align="left"><?php echo ucwords(mb_strtolower($conexion == 1 ? $con[$row]['dcpdesc'] : $con[$row]['DCPDESC'])); ?></td>
                <td align="right"><?php echo number_format($p1, 2, '.', ','); ?></td>
                <td align="right"><?php echo number_format($p2, 2, '.', ','); ?></td>
                <td align="right"><?php echo number_format($p3, 2, '.', ','); ?></td>
                <td align="right"><?php echo number_format($p4, 2, '.', ','); ?></td>
                <td align="right"><?php echo number_format($p5, 2, '.', ','); ?></td>
              </tr>
    <?php
            }
          }
        }
      }
    }
    ?>

  </table>
</body>

</html>