<?php
##########################################################################################################################################################################
#                                                                                              Modificaciones
##########################################################################################################################################################################
#29/08/2017 | Erica G. | Encabezado
#04/03/2017 | ERICA G. | ARREGLO BUSQUEDA MODIFICACION Y AFECTADO
##########################################################################################################################################################################

use PgSql\Lob;

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Informe_Listado_Comprobantes_Abiertos.xls");
require '../../Conexion/conexion.php';
require_once '../../Conexion/ConexionPDO.php';
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
session_start();
ini_set('max_execution_time', 0);
$usuario = $_SESSION['usuario'];
$fechaActual = date('d/m/Y');
$anno = $_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 = $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>Listado Comprobantes Abiertos</title>
</head>

<body>
  <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr>
      <th colspan="9" align="center"><strong>
          <br />&nbsp;
          <br /><?php echo $razonsocial ?>
          <br /><?php echo $nombreIdent . ' : ' . $numeroIdent . "<br/>" . $direccinTer . ' Tel:' . $telefonoTer ?>
          <br />&nbsp;LISTADO COMPROBANTES ABIERTOS
          <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>REGISTRO</strong></td>
      <td rowspan="2" align="center"><strong>FECHA</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>MOVIMIENTO</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></TR>
    <?php

    $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.parametrizacionanno = $anno AND rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin' 
     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++) {
      $condR = $rubroP[$rubro][0];
      $con1 = $con->Listar("SELECT
      rp.codi_presupuesto   as rpcodp,
      tcp.id_unico as tipocom, 
      dcp.valor as valor, 
      dcp.id_unico as idDetalle 
      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 ='$condR' AND  
      cp.fecha BETWEEN '$fechaI' AND '$fechaF' ");

      // $con1 = $mysqli->query($con1);
      $numd = 0;
      // while ($row1 = mysqli_fetch_array($con1)) {
      for ($row1 = 0; $row1 < count($con1); $row1++) {
        $rpcodp =   $con1[$row1][0] ;
        $codigoR =   $rubroP[$rubro][0];
        if ($rpcodp == $codigoR) {
          $tipo = $con1[$row1][1];
          $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 = $comprobanteI1;
            $cod = $row11[0][0];
            if ($cod >= $compini && $cod <= $compfin) {
              $valor = $con1[$row1][2] ;
              #AFECTADO
              $comp =  $con1[$row1][3];
              $af = $con->Listar("SELECT valor as value, dcp.id_unico as id 
                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 =  $af[$sum1][0] + $sum;
                  #Buscar Afectaciones del afectado 
                  $moda = $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 = '" . $af[$sum1][1] . "' AND top.id_unico != 1");
                  // $modia = $mysqli->query($moda);
                  if (count($modia) > 0) {
                    // while ($modifa = mysqli_fetch_array($modia)) {
                    for ($modifa = 0; $modifa < count($modia); $modifa++) {
                      if ($modia[$modifa][1] == 2) {
                        $sum +=  $modia[$modifa][0];
                      } else {
                        if ($modia[$modifa][1] == 3) {
                          $sum += ($modia[$modifa][0] * -1);
                        }
                      }
                    }
                  }
                }
              } 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 = $modi[$modif][0];
                  $idCom = $modi[$modif][1];
                  if ($idCom == 2) {
                    $modifi = $modificacion + $modifi;
                  } else {
                    if ($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;

              $sl = number_format($saldo, 2, '.', ',') . '<br/>';

              if ($sl != 0.00 || $sl != -0.00) {


                $numd = $numd + 1;
              }
            }
          }
        }
      }
      if ($numd > 0) { ?>
        <tr>
          <td colspan="9"><strong><i><?php echo 'Rubro: ' . $rubroP[$rubro][0] . ' - ' . mb_strtoupper($rubroP[$rubro][1]) ?></i></strong></td>
        </tr>

        <?php
        switch ($conexion) {
          case 1:
            $con4 = $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.parametrizacionanno = $anno AND rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin' AND  
              cp.fecha BETWEEN '$fechaI' AND '$fechaF' ORDER BY cp.numero ASC");
            break;
          case 2:
            $con4 = $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(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos)) IS NULL OR 
                     (TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos)) = ''
                THEN tr.razonsocial
                ELSE (TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(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.parametrizacionanno = $anno AND rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin'
        AND cp.fecha BETWEEN TO_DATE('$fechaI', 'YYYY-MM-DD') AND TO_DATE('$fechaF', 'YYYY-MM-DD') 
        ORDER BY cp.numero ASC");
            break;
          default:
            # code...
            break;
        }
        // $con = $mysqli->query($con);
        $total1 = 0;
        $total2 = 0;
        // while ($row = mysqli_fetch_array($con4)) {
        for ($row = 0; $row < count($con4); $row++) {
          if ($con4[$row][0] == $rubroP[$rubro][0]) {
            $tipo = $con4[$row][13];
            $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')");
            // $comprobanteI = $mysqli->query($comprobanteI);
            if (count($comprobanteI) > 0) {
              $row1 = $comprobanteI;
              if ($row1[0][0] >= $compini && $row1[0][0] <= $compfin) {
                $valor = $con4[$row][12];
                #AFECTADO
                $comp = $con4[$row][11];
                $af = $con->Listar("SELECT valor as value, dcp.id_unico as id 
                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 = $af[$sum1][0] + $sum;
                    #Buscar Afectaciones del afectado 
                    $modia = $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 = '" . $af[$sum1][1] . "' AND top.id_unico != 1");
                    // $modia = $mysqli->query($moda);
                    if (count($modia) > 0) {
                      // while ($modifa = mysqli_fetch_array($modia)) {
                      for ($modifa = 0; $modifa < count($modia); $modifa++) {
                        if ($modia[$modifa][1] == 2) {
                          $sum += $modia[$modifa][0];
                        } else {
                          if ($modia[$modifa][1] == 3) {
                            $sum += ($modia[$modifa][0] * -1);
                          }
                        }
                      }
                    }
                  }
                } 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 = $modi[$modif][0];
                    if ($modi[$modif][1] == 2) {
                      $modifi = $modificacion + $modifi;
                    } else {
                      if ($modi[$modif][1] == 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);

                #$fechaD = DateTime::createFromFormat('d/m/Y', "$row['cpfecha']");
                #$fechaD = $fechaD->format('Y/m/d');
                $dat = $con4[$row][5]; //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;
                $sl = number_format($p5, 2, '.', ',');

                if ($sl != 0.00 || $sl != -0.00) {
        ?>
                  <tr>
                    <td align="center"><?php echo $con4[$row][7]; ?></td>
                    <td align="center"><?php echo $dat; ?></td>
                    <td align="left"><?php echo ucwords(mb_strtolower($con4[$row][8])); ?></td>
                    <td align="left"><?php echo ucwords(mb_strtolower($con4[$row][9])); ?></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>
                    <?php
                    $total1 = $total1 + $p3;
                    $total2 = $total2 + $p5; ?>
                  </tr>
        <?php
                }
              }
            }
          }
        }
        ?>
        <tr>
          <td colspan="6"><strong><i><?php echo 'TOTALES'; ?></i></strong></td>
          <td><strong><i><?php echo number_format($total1, 2, '.', ',') ?></i></strong></td>
          <td></td>
          <td><strong><i><?php echo number_format($total2, 2, '.', ',') ?></i></strong></td>
        </tr>

    <?php


      }
    }
    ?>