<?php
##########################################################################################################################################################################
#                                                                                              Modificaciones
##########################################################################################################################################################################
#29/08/2017 | Erica G. | Encabezado
#07/03/2017 |ERICA G.|CONSULTAS A FUNCION
#02-02-2017 | 9:30 | Erica González //Modificacion búsqueda disponibilidades
##########################################################################################################################################################################

?>
<?php

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Informe_Ejec_Pptal_Gasto_Obligaciones.xls");
require_once("../../Conexion/conexion.php");
require_once '../../Conexion/ConexionPDO.php';
require 'consultas.php';
ini_set('max_execution_time', 0);
$usuario = $_SESSION['usuario'];
$fechaActual = date('d/m/Y');
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];

$calendario = CAL_GREGORIAN;
$parmanno = $_REQUEST['sltAnnio'];
$an = $con->Listar("SELECT anno FROM gf_parametrizacion_anno WHERE id_unico =$parmanno");
// $an = $mysqli->query($an);
// $an = mysqli_fetch_row($an);
$anno = $an[0][0];
$mes = $_REQUEST['sltmes'];
$dia            = cal_days_in_month($calendario, $mes, $anno);
$fecha          = $anno . '-' . $mes . '-' . $dia;
$fechaInicial   = $anno . '-' . '01-01';
$codigoI = $_REQUEST['sltcni'];
$codigoF = $_REQUEST['sltcnf'];
$meses = array(
  "01" => 'Enero', "02" => 'Febrero', "03" => 'Marzo', "04" => 'Abril', "05" => 'Mayo', "06" => 'Junio',
  "07" => 'Julio', "08" => 'Agosto', "09" => 'Septiembre', "10" => 'Octubre', "11" => 'Noviembre', "12" => 'Diciembre'
);
$month1 = $meses[$mes];

#************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];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>EJECUCIÓN PPTAL GASTOS - OBLIGACIONES</title>
</head>

<body>
  <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr>
      <th colspan="12" align="center"><strong>
          <br />&nbsp;
          <br /><?php echo $razonsocial ?>
          <br /><?php echo $nombreIdent . ' : ' . $numeroIdent . "<br/>" . $direccinTer . ' Tel:' . $telefonoTer ?>
          <br />&nbsp;
          <br />EJECUCIÓN PRESUPUESTAL GASTOS - OBLIGACIONES
          <br />Rubros del <?php echo $codigoI . ' al ' . $codigoF ?>
          <br />Mes Acumulado <?php echo $month1 . ' - ' . $anno ?><br />&nbsp;</strong>
      </th>
    </tr>
    <tr>
      <td rowspan="2" align="center"><strong>RUBRO</strong></td>
      <td colspan="1" rowspan="2" align="center"><strong>DETALLE</strong></td>
      <td rowspan="2" align="center"><strong>FUENTE</strong></td>
      <td colspan="2" rowspan="2" align="center"><strong>PRESUPUESTO INICIAL</strong></td>
      <td colspan="4" align="center"><strong>MODIFICACIONES PRESUPUESTALES</strong></td>
      <td rowspan="2" align="center"><strong>PRESUPUESTO DEFINITIVO</strong></td>
      <td rowspan="2" align="center"><strong>TOTAL OBLIGACIONES</strong></td>
      <td rowspan="2" align="center"><strong>SALDO PRESUPUESTO</strong></td>

    </tr>
    <tr>
      <td align="center"><strong>ADICION</strong></td>
      <td align="center"><strong>REDUCCION</strong></td>
      <td align="center"><strong>TRAS.CREDITO</strong></td>
      <td align="center"><strong>TRAS.CONT</strong></td>
    </tr>
    <?php

    #VACIAR LA TABLA TEMPORAL
    $vaciarTabla = $con->Listar('TRUNCATE temporal_consulta_pptal_gastos ');
    // $mysqli->query($vaciarTabla);

    #CONSULTA TODAS LA CUENTAS
    $ctass = $con->Listar("SELECT DISTINCT
         rpp.nombre,
         rpp.codi_presupuesto,
         f.id_unico,
         rpp2.codi_presupuesto, 
         rf.id_unico 
         FROM gf_rubro_pptal rpp
         LEFT JOIN gf_rubro_fuente rf ON rf.rubro = rpp.id_unico
         LEFT JOIN gf_fuente f ON rf.fuente = f.id_unico
         LEFT JOIN gf_rubro_pptal rpp2 ON rpp.predecesor = rpp2.id_unico 
         WHERE rpp.codi_presupuesto BETWEEN '$codigoI' AND '$codigoF' 
         AND rpp.tipoclase=7 AND rpp.tipovigencia=1
         AND rpp.parametrizacionanno = $parmanno 
         ORDER BY rpp.codi_presupuesto ASC");
    // $ctass= $mysqli->query($ctas);
    #GUARDA LOS DATOS EN LA TABLA TEMPORAL
    // while ($row1 = mysqli_fetch_row($ctass)) {
    for ($row1 = 0; $row1 < count($ctass); $row1++) {
      // $insert = "INSERT INTO temporal_consulta_pptal_gastos "
      //   . "(cod_rubro, nombre_rubro,cod_predecesor, cod_fuente, rubro_fuente) "
      //   . "VALUES ('$row1[1]','$row1[0]','$row1[3]','$row1[2]','$row1[4]' )";
      // $mysqli->query($insert);

      $sql_cons = "INSERT INTO temporal_consulta_pptal_gastos 
        (cod_rubro, nombre_rubro,cod_predecesor, cod_fuente, rubro_fuente) 
        VALUES (:cod_rubro,:nombre_rubro,:cod_predecesor,:cod_fuente,:rubro_fuente)";

      $sql_dato = array(
        array(":cod_rubro", $ctass[$row1][1]),
        array(":nombre_rubro", $ctass[$row1][0]),
        array(":cod_predecesor", $ctass[$row1][3]),
        array(":cod_fuente", $ctass[$row1][2]),
        array(":rubro_fuente", $ctass[$row1][4]),
      );
      $obj_resp = $con->InAcEl($sql_cons, $sql_dato);
    }

    #CONSULTA CUENTAS SEGUN VARIABLES QUE RECIBE
    #CONSULTA CUENTAS SEGUN VARIABLES QUE RECIBE
    #SI SELECCIONA O NO FUENTE
    if (empty($_REQUEST['fuente'])) {
      $select1 = $con->Listar("SELECT DISTINCT
            rpp.nombre,
            rpp.codi_presupuesto,
            f.id_unico, 
            rpp2.codi_presupuesto, 
            dcp.rubrofuente 
          FROM gf_detalle_comprobante_pptal dcp
          LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
          LEFT JOIN gf_rubro_pptal rpp ON rf.rubro = rpp.id_unico
          LEFT JOIN gf_fuente f ON rf.fuente = f.id_unico
          LEFT JOIN gf_rubro_pptal rpp2 ON rpp.predecesor = rpp2.id_unico 
          LEFT JOIN  gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico 
          WHERE rpp.codi_presupuesto BETWEEN '$codigoI' AND '$codigoF' 
          AND rpp.tipoclase=7 AND rpp.tipovigencia=1
          AND cp.parametrizacionanno = $parmanno ORDER BY rpp.codi_presupuesto ASC");
    } else {
      $fuente = $_REQUEST['fuente'];
      $select1 = $con->Listar("SELECT DISTINCT
            rpp.nombre,
            rpp.codi_presupuesto,
            f.id_unico, 
            rpp2.codi_presupuesto, 
            dcp.rubrofuente 
          FROM gf_detalle_comprobante_pptal dcp
          LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
          LEFT JOIN gf_rubro_pptal rpp ON rf.rubro = rpp.id_unico
          LEFT JOIN gf_fuente f ON rf.fuente = f.id_unico
          LEFT JOIN gf_rubro_pptal rpp2 ON rpp.predecesor = rpp2.id_unico 
          LEFT JOIN gf_comprobante_pptal cp ON dcp.comprobantepptal = cp.id_unico 
          WHERE f.id_unico ='$fuente' AND cp.parametrizacionanno = $parmanno 
          AND rpp.tipoclase=7 AND rpp.tipovigencia=1
           AND rpp.codi_presupuesto BETWEEN '$codigoI' AND '$codigoF' ORDER BY rpp.codi_presupuesto ASC");
    }
    // $select1 = $mysqli->query($select);


    // while ($row = mysqli_fetch_row($select1)) {
    for ($row = 0; $row < count($select1); $row++) {

      #PRESUPUESTO INICIAL
      $pptoInicial = presupuestos($select1[$row][4], 1, $fechaInicial, $fecha);
      #ADICION
      $adicion = presupuestos($select1[$row][4], 2, $fechaInicial, $fecha);
      #REDUCCION
      $reduccion = presupuestos($select1[$row][4], 3, $fechaInicial, $fecha);
      #TRAS.CRED Y CONT.
      $tras = presupuestos($select1[$row][4], 4, $fechaInicial, $fecha);
      if ($tras > 0) {
        $trasCredito = $tras;
        $trasCont = 0;
      } else {
        $trasCredito = 0;
        $trasCont = $tras;
      }

      #PRESUPUESTO DEFINITIVO
      $presupuestoDefinitivo = $pptoInicial + $adicion - $reduccion + $trasCredito + $trasCont;
      #DISPONIBILIDAD
      $disponibilidad = disponibilidades($select1[$row][4], 14, $fechaInicial, $fecha);
      #SALDO DISPONIBLE
      $saldoDisponible = $presupuestoDefinitivo - $disponibilidad;
      #REGISTROS
      $registros = disponibilidades($select1[$row][4], 15, $fechaInicial, $fecha);
      #REGISTROS ABIERTOS
      $disponibilidadesAbiertas = $disponibilidad - $registros;
      #TOTAL OBLIGACIONES
      $totalObligaciones = disponibilidades($select1[$row][4], 16, $fechaInicial, $fecha);
      #REGISTROS ABIERTOS
      $registrosAbiertos = $registros - $totalObligaciones;
      #TOTAL PAGOS
      $totalPagos = disponibilidades($select1[$row][4], 17, $fechaInicial, $fecha);
      #RESERVAS
      $reservas = $registros - $totalObligaciones;
      #CUENTAS POR PAGAR
      $cuentasxpagar = $totalObligaciones - $totalPagos;

      #ACTUALIZAR TABLA CON DATOS HALLADOS
      // $update = "UPDATE temporal_consulta_pptal_gastos SET "
      //   . "ptto_inicial ='$pptoInicial', "
      //   . "adicion = '$adicion', "
      //   . "reduccion = '$reduccion', "
      //   . "tras_credito = '$trasCredito', "
      //   . "tras_cont = '$trasCont', "
      //   . "presupuesto_dfvo = '$presupuestoDefinitivo', "
      //   . "disponibilidades = '$disponibilidad', "
      //   . "saldo_disponible = '$saldoDisponible', "
      //   . "registros = '$registros', "
      //   . "registros_abiertos = '$registrosAbiertos', "
      //   . "total_obligaciones = '$totalObligaciones', "
      //   . "total_pagos = '$totalPagos', "
      //   . "reservas = '$reservas', "
      //   . "cuentas_x_pagar = '$cuentasxpagar' "
      //   . "WHERE rubro_fuente = '$row[4]'";
      // $update = $mysqli->query($update);

      $sql_cons = "UPDATE temporal_consulta_pptal_gastos SET 
      ptto_inicial       = :ptto_inicial, 
      adicion            = :adicion, 
      reduccion          = :reduccion, 
      tras_credito       = :tras_credito, 
      tras_cont          = :tras_cont, 
      presupuesto_dfvo   = :presupuesto_dfvo, 
      disponibilidades   = :disponibilidades,       
      saldo_disponible   = :saldo_disponible,
      registros          = :registros, 
      registros_abiertos = :registros_abiertos, 
      total_obligaciones = :total_obligaciones, 
      total_pagos        = :total_pagos, 
      reservas           = :reservas, 
      cuentas_x_pagar    = :cuentas_x_pagar 
      WHERE rubro_fuente = :rubro_fuente ";

      $sql_dato = array(
        array(":ptto_inicial", $pptoInicial),
        array(":adicion", $adicion),
        array(":reduccion", $reduccion),
        array(":tras_credito", $trasCredito),
        array(":tras_cont", $trasCont),
        array(":presupuesto_dfvo", $presupuestoDefinitivo),
        array(":disponibilidades", $disponibilidad),
        array(":saldo_disponible", $saldoDisponible),
        array(":registros", $registros),
        array(":registros_abiertos", $registrosAbiertos),
        array(":total_obligaciones", $totalObligaciones),
        array(":total_pagos", $totalPagos),
        array(":reservas", $reservas),
        array(":cuentas_x_pagar", $cuentasxpagar),
        array(":rubro_fuente", $select1[$row][4]),

      );
      $obj_resp = $con->InAcEl($sql_cons, $sql_dato);
    }
    #CONSULTAR LA TABLA TEMPORAL PARA HACER ACUMULADO
    $acum = $con->Listar("SELECT id_unico, 
    cod_rubro,
    cod_predecesor, 
    ptto_inicial, adicion, tras_credito, tras_cont, 
    presupuesto_dfvo, disponibilidades, 
    saldo_disponible,registros, 
    registros_abiertos,total_obligaciones, 
    total_pagos,reservas,cuentas_x_pagar, reduccion 
    FROM temporal_consulta_pptal_gastos 
    ORDER BY cod_rubro DESC ");
    // $acum = $mysqli->query($acum);

    // while ($rowa1 = mysqli_fetch_row($acum)) {
    for ($rowa1 = 0; $rowa1 < count($acum); $rowa1++) {
      $acumd = $con->Listar("SELECT id_unico, 
        cod_rubro,
        cod_predecesor, 
        ptto_inicial, adicion, tras_credito, tras_cont, 
        presupuesto_dfvo, disponibilidades, 
        saldo_disponible,registros, 
        registros_abiertos,total_obligaciones, 
        total_pagos,reservas,cuentas_x_pagar, reduccion 
        FROM temporal_consulta_pptal_gastos WHERE id_unico =" . $acum[$rowa1][0] . " 
        ORDER BY cod_rubro DESC");
      // $acumd = $mysqli->query($acumd);
      // while ($rowa = mysqli_fetch_row($acumd)) {
      for ($rowa = 0; $rowa < count($acumd); $rowa++) {
        if (!empty($acumd[$rowa][2])) {
          $va = $con->Listar("SELECT id_unico,
            cod_rubro
            cod_predecesor,
            ptto_inicial, adicion, tras_credito, tras_cont,
            presupuesto_dfvo, disponibilidades,
            saldo_disponible,registros,
            registros_abiertos,total_obligaciones,
            total_pagos,reservas,cuentas_x_pagar, reduccion
            FROM temporal_consulta_pptal_gastos WHERE cod_rubro =" . $acumd[$rowa][2]);
          // $va1 = $mysqli->query($va11);
          $va = $va1;
          $pptoInicialM           = $acumd[$rowa][3]  + $va[0][3];
          $adicionM               = $acumd[$rowa][4]  + $va[0][4];
          $trasCreditoM           = $acumd[$rowa][5]  + $va[0][5];
          $trasContM              = $acumd[$rowa][6]  + $va[0][6];
          $presupuestoDefinitivoM = $acumd[$rowa][7]  + $va[0][7];
          $disponibilidadM        = $acumd[$rowa][8]  + $va[0][8];
          $saldoDisponibleM       = $acumd[$rowa][9]  + $va[0][9];
          $registrosM             = $acumd[$rowa][10] + $va[0][10];
          $registrosAbiertosM     = $acumd[$rowa][11] + $va[0][11];
          $totalObligacionesM     = $acumd[$rowa][12] + $va[0][12];
          $totalPagosM            = $acumd[$rowa][13] + $va[0][13];
          $reservasM              = $acumd[$rowa][14] + $va[0][14];
          $cuentasxpagarM         = $acumd[$rowa][15] + $va[0][15];
          $reduccionM             = $acumd[$rowa][16] + $va[0][16];
          #ACTUALIZAR TABLA CON DATOS HALLADOS
          // $updateA = "UPDATE temporal_consulta_pptal_gastos SET "
          //   . "ptto_inicial ='$pptoInicialM', "
          //   . "adicion = '$adicionM', "
          //   . "reduccion = '$reduccionM', "
          //   . "tras_credito = '$trasCreditoM', "
          //   . "tras_cont = '$trasContM', "
          //   . "presupuesto_dfvo = '$presupuestoDefinitivoM', "
          //   . "disponibilidades = '$disponibilidadM', "
          //   . "saldo_disponible = '$saldoDisponibleM', "
          //   . "registros = '$registrosM', "
          //   . "registros_abiertos = '$registrosAbiertosM', "
          //   . "total_obligaciones = '$totalObligacionesM', "
          //   . "total_pagos = '$totalPagosM', "
          //   . "reservas = '$reservasM', "
          //   . "cuentas_x_pagar = '$cuentasxpagarM' "
          //   . "WHERE cod_rubro = '$rowa[2]'";
          // $updateA = $mysqli->query($updateA);
          $sql_cons = "UPDATE temporal_consulta_pptal_gastos SET 
          ptto_inicial       = :ptto_inicial, 
          adicion            = :adicion, 
          reduccion          = :reduccion, 
          tras_credito       = :tras_credito, 
          tras_cont          = :tras_cont, 
          presupuesto_dfvo   = :presupuesto_dfvo, 
          disponibilidades   = :disponibilidades, 
          saldo_disponible   = :saldo_disponible, 
          registros          = :registros, 
          registros_abiertos = :registros_abiertos, 
          total_obligaciones = :total_obligaciones, 
          total_pagos        = :total_pagos, 
          reservas           = :reservas, 
          cuentas_x_pagar    = :cuentas_x_pagar,
          WHERE cod_rubro    = :cod_rubro";

          $sql_dato = array(
            array(":ptto_inicial",     $pptoInicialM),
            array(":adicion",          $adicionM),
            array(":reduccion",        $reduccionM),
            array(":tras_credito",     $trasCreditoM),
            array(":tras_cont",        $trasContM),
            array(":presupuesto_dfvo", $presupuestoDefinitivoM),
            array(":disponibilidades", $disponibilidadM),
            array(":saldo_disponible", $saldoDisponibleM),
            array(":registros",        $registrosM),
            array(":registros_abiertos", $registrosAbiertosM),
            array(":total_obligaciones", $totalObligacionesM),
            array(":total_pagos",      $totalPagosM),
            array(":reservas",         $reservasM),
            array(":cuentas_x_pagar",  $cuentasxpagarM),
            array(":cod_rubro",        $acumd[$rowa][2]),

          );
          $obj_resp = $con->InAcEl($sql_cons, $sql_dato);
        }
      }
    }


    #Consulta Cuentas
    $conejc = $con->Listar("SELECT DISTINCT 
                        cod_rubro           as codrub, 
                        nombre_rubro        as nomrub,
                        cod_fuente          as codfte,
                        ptto_inicial        as ppti,
                        adicion             as adi,
                        reduccion           as red,
                        tras_credito        as tcred,
                        tras_cont           as trcont,
                        presupuesto_dfvo    as ppdf,
                        disponibilidades    as disp,
                        saldo_disponible    as sald,
                        registros           as reg,
                        registros_abiertos  as rega,
                        total_obligaciones  as tobl,
                        total_pagos         as tpag,
                        reservas            as reserv,
                        cuentas_x_pagar     as cpag                        
from temporal_consulta_pptal_gastos ORDER BY cod_rubro ASC");
    // $conejc  = $mysqli->query($sql2);

    // while ($filactas = mysqli_fetch_array($conejc)) {
    for ($filactas = 0; $filactas < count($conejc); $filactas++) {

      $p1  = (float) $conejc[$filactas][3];
      $p2  = (float) $conejc[$filactas][4];
      $p3  = (float) $conejc[$filactas][5];
      $p4  = (float) $conejc[$filactas][6];
      $p5  = (float) $conejc[$filactas][7];
      $p6  = (float) $conejc[$filactas][8];
      $p7  = (float) $conejc[$filactas][9];
      $p8  = (float) $conejc[$filactas][10];
      $p9  = (float) $conejc[$filactas][11];
      $p10 = (float) $conejc[$filactas][12];
      $p11 = (float) $conejc[$filactas][13];
      $p12 = (float) $conejc[$filactas][14];
      $p13 = (float) $conejc[$filactas][15];
      $p14 = (float) $conejc[$filactas][16];
      $t = $p6 - $p11;
      # $codd = $codd + 1;
      if ($p1 == 0  && $p2 == 0  && $p3 == 0 && $p4 == 0 && $p5 == 0 && $p6 == 0 && $p7 == 0 && $p8 == 0 && $p9 == 0 && $p10 == 0 && $p11 == 0 && $p12 == 0 && $p13 == 0) {
      } else {
    ?>
        <tr>
          <td><?php echo $conejc[$filactas][0]; ?></td>
          <td><?php echo $conejc[$filactas][1]; ?></td>
          <td align="center"><?php echo $conejc[$filactas][2]; ?></td>
          <td align="right" colspan="2"><?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>
          <td align="right"><?php echo number_format($p6, 2, '.', ','); ?></td>
          <td align="right"><?php echo number_format($p11, 2, '.', ','); ?></td>
          <td align="right"><?php echo number_format($t, 2, '.', ','); ?></td>
        </tr>
    <?php
      }
    }
    ?>
  </table>
</body>

</html>