<?php
##############################################################################################################
#                           INFORME CUENTA POR PAGAR
#                                   Excel
##############################################################################################################
#28/04/2018 | Erica G.   | Creado
##############################################################################################################

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Informe_Cuentas_Pagar.xls");
session_start();
require_once('../estructura_apropiacion.php');
require_once('../estructura_saldo_obligacion.php');
require_once('../numeros_a_letras.php');
require '../fpdf/fpdf.php';
require '../Conexion/ConexionPDO.php';
$conexion = $_SESSION['conexion'];
$con = new ConexionPDO();
ini_set('max_execution_time', 0);
ob_start();
$meses = array('no', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
#********Comprobante pptal ********
switch ($conexion) {
  case 1:
    $compp = $con->Listar("SELECT id_unico, numero, tipocomprobante , DATE_FORMAT(fecha,'%d/%m/%Y') 
    FROM gf_comprobante_pptal 
    WHERE id_unico=" . $_SESSION['id_comp_pptal_CP']);
    break;
  case 2:
    $compp = $con->Listar("SELECT id_unico, numero, tipocomprobante, TO_CHAR(fecha, 'DD/MM/YYYY') AS fecha
    FROM gf_comprobante_pptal
    WHERE id_unico = " . $_SESSION['id_comp_pptal_CP']);
    break;
  default:
    # code...
    break;
}
// $compp = $mysqli->query($compp);
// $compp = mysqli_fetch_row($compp);
$tipocomprobantepptal  = $compp[0][2];
$fechaComprobante = $compp[0][3];
$rowComp = $con->Listar("SELECT
  compCnt.id_unico,
  compCnt.numero,
  compCnt.fecha,
  compCnt.descripcion,
  compCnt.fecha,
  compCnt.tipocomprobante,
  tipCom.sigla,
  tipCom.nombre,
  compCnt.tercero,
  compCnt.clasecontrato,
  compCnt.numerocontrato,
  clasec.nombre
FROM
  gf_comprobante_cnt compCnt
LEFT JOIN
  gf_tipo_comprobante tipCom ON compCnt.tipocomprobante = tipCom.id_unico
LEFT JOIN
  gf_clase_contrato clasec ON compCnt.clasecontrato = clasec.id_unico
LEFT JOIN 
  gf_tipo_contrato tcon ON tcon.id_unico = clasec.tipocontrato
WHERE
  compCnt.tipocomprobante = tipCom.id_unico AND compCnt.id_unico = " . $_SESSION['idCompCntV']);

// $comp = $mysqli->query($sqlComp);
// $rowComp = mysqli_fetch_array($comp);
$idComp = $rowComp[0][0];
$nomcomp = $rowComp[0][1]; //Número de comprobante      
$fechaComp = $rowComp[0][2]; //Fecha       
$descripcion = $rowComp[0][3]; //Descripción  
$fechaVen = $rowComp[0][4]; //Fecha de vencimiento  
$tipocomprobante = $rowComp[0][5]; //id tipo comprobante  
$codigo = $rowComp[0][6]; //Código de tipo comprobante  
$nombre = $rowComp[0][7]; //Nombre de tipo comprobante  
$terceroComp = intval($rowComp[0][8]); //Tercero del comprobante
$claseContra = $rowComp[0][9];
$numroContra = $rowComp[0][10];
$claseContraNom = ucwords(mb_strtolower($rowComp[0][11]));

$rowT = $con->Listar("SELECT nombreuno, nombredos, apellidouno, apellidodos, numeroidentificacion, razonsocial  
      FROM gf_tercero
      WHERE id_unico = $terceroComp");

// $terc = $mysqli->query($sqlTerc);
// $rowT = mysqli_fetch_array($terc);

$razonSoc = $rowT[0][0] . ' ' . $rowT[0][1] . ' ' . $rowT[0][2] . ' ' . $rowT[0][3] . ' ' . $rowT[0][5];
$nit = $rowT[0][4];

$compania = $_SESSION['compania'];
$rowLogo = $con->Listar("SELECT ter.ruta_logo, ciu.nombre 
  FROM gf_tercero ter 
  LEFT JOIN gf_ciudad ciu ON ter.ciudadidentificacion = ciu.id_unico 
  WHERE ter.id_unico = $compania");
// $rutaLogo = $mysqli->query($sqlRutaLogo);
// $rowLogo = mysqli_fetch_array($rutaLogo);
$ruta = $rowLogo[0][0];
$ciudadCompania = $rowLogo[0][1];

$rowVTD = $con->Listar("SELECT  SUM(valor) 
        FROM gf_detalle_comprobante dc 
        WHERE naturaleza=2  AND valor >0 AND dc.comprobante = " . $_SESSION['idCompCntV']);
// $valortotDet = $mysqli->query($sqlValorTot);
// $rowVTD = mysqli_fetch_array($valortotDet);
$totalValorDet = $rowVTD[0];
##COMPAÑIA##   
$compania = $_SESSION['compania'];
$rowLogo = $con->Listar("SELECT
  ter.ruta_logo,
  ciu.nombre,
  ter.razonsocial,
  ter.numeroidentificacion,
  ter.digitoverficacion
FROM  gf_tercero ter
LEFT JOIN   gf_ciudad ciu ON ter.ciudadidentificacion = ciu.id_unico
WHERE  ter.id_unico = $compania");
// $rutaLogo = $mysqli->query($sqlRutaLogo);
// $rowLogo = mysqli_fetch_row($rutaLogo);
$ruta = $rowLogo[0][0];
$ciudadCompania = $rowLogo[0][1];
$nombre_com = $rowLogo[0][2];
if (empty($rowLogo[0][4])) {
  $numICompañia = $rowLogo[0][3];
} else {
  $numICompañia = $rowLogo[0][3] . '-' . $rowLogo[0][4];
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Informe Cuentas Por Pagar</title>
</head>

<body>
  <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr>
      <td colspan="6">
        <CENTER><strong><?php echo mb_strtoupper($nombre_com); ?>
            <br />&nbsp;<?php echo 'NIT:' . $numICompañia; ?>
            <br />&nbsp;<?php echo mb_strtoupper($nombre) . ' ' . 'No: ' . $nomcomp; ?>
            <br />&nbsp;<?php echo 'Fecha:' . $fechaComp; ?>
            <br />&nbsp;
          </strong></CENTER>
      </td>
    </tr>
    <tr>
      <td align="left"></td>
    </tr>
    <tr>
      <td colspan="6">
        <center><strong> <br />&nbsp;1.DATOS DEL BENEFICIARIO <br />&nbsp;</strong></center>
      </td>
    </tr>
    <tr>
      <td colspan="6"><STRONG>Nombre: </STRONG><?php echo ucwords(mb_strtolower($razonSoc)); ?></td>
    </tr>
    <tr>
      <td colspan="3"><strong>CC. o NIT: </strong><?php echo $nit; ?></td>
      <?php
      $telef = "";
      $tel = $con->Listar("SELECT valor FROM gf_telefono WHERE tercero = $terceroComp");
      // $tel = $mysqli->query($tel);
      if (count($tel) > 0) {
        // while ($row = mysqli_fetch_row($tel)) {
        for ($row = 0; $row < count($tel); $row++) {
          $telef = $telef . " - " . $tel[$row][0];
        }
      } ?>
      <td colspan="3"><strong>Teléfonos: </strong><?php echo $telef; ?></td>
    </tr>
    <tr>
      <?php
      $direc = "";
      switch ($conexion) {
        case 1:
          $dir = $con->Listar("SELECT CONCAT(d.direccion, '  ', c.nombre) 
          FROM gf_direccion d LEFT JOIN gf_ciudad c ON c.id_unico = d.ciudad_direccion 
          WHERE d.tercero = $terceroComp");
          break;
        case 2:
          $dir = $con->Listar("SELECT d.direccion || '  ' || c.nombre
         FROM gf_direccion d
         LEFT JOIN gf_ciudad c ON c.id_unico = d.ciudad_direccion
         WHERE d.tercero = $terceroComp");

          break;
        default:
          # code...
          break;
      }

      // $dir = $mysqli->query($dir);
      if (count($dir) > 0) {
        // while ($rowD = ($dir)) 
        for ($rowD = 0; $rowD < count($dir); $rowD++) {
          $direc = $direc . " - " . $dir[$rowD][0];
        }
      }
      ?>
      <td colspan="6"><strong>Dirección: </strong><?php echo $direc; ?></td>
    </tr>
    <tr>
      <td colspan="6"><strong>Descripción: </strong><?php echo $descripcion; ?></td>
    </tr>
    <tr>
      <td colspan="3"><strong>Tipo Contato: </strong><?php echo $claseContraNom; ?></td>
      <td colspan="3"><strong>N° de Contato: </strong><?php echo $numroContra; ?></td>
    </tr>
    <?php
    if ($totalValorDet < 0) {
      $totalValorDet = $totalValorDet * -1;
    } else {
      $totalValorDet = $totalValorDet;
    } ?>
    <tr>
      <td colspan="3"><strong>N° de Documento: </strong><?php echo $nomcomp; ?></td>
      <td colspan="3"><strong>Valor: </strong><?php echo '  $ ' . number_format($totalValorDet, 2, '.', ','); ?></td>
    </tr>

    <tr>
      <td colspan="6">
        <center><strong> <br />&nbsp;2.MOVIMIENTO PRESUPUESTAL <br />&nbsp;</strong></center>
      </td>
    </tr>
    <tr>
      <td><strong>
          <center>Disponibilidad Presupuestal</center>
        </strong></td>
      <td><strong>
          <center>Registro Presupuestal</center>
        </strong></td>
      <td><strong>
          <center>Código</center>
        </strong></td>
      <td><strong>
          <center>Nombre Rubro</center>
        </strong></td>
      <td><strong>
          <center>Fuente</center>
        </strong></td>
      <td><strong>
          <center>Valor</center>
        </strong></td>
    </tr>
    <?php

    $detallePtal = $con->Listar("SELECT DISTINCT
        cpop.numero,
        cpr.numero,
        cpd.numero,
        dcpcx.valor,
        rpptal.codi_presupuesto,
        rpptal.nombre, 
        f.id_unico, 
        f.nombre, rf.id_unico, dcpcx.id_unico  
      FROM
        gf_detalle_comprobante_pptal dcpcx 
      LEFT JOIN
        gf_comprobante_pptal cpcx ON dcpcx.comprobantepptal = cpcx.id_unico
      LEFT JOIN
        gf_tipo_comprobante_pptal tccx ON tccx.id_unico = cpcx.tipocomprobante
      LEFT JOIN
        gf_detalle_comprobante_pptal dcpop ON dcpcx.comprobanteafectado = dcpop.id_unico
      LEFT JOIN
        gf_comprobante_pptal cpop ON dcpop.comprobantepptal = cpop.id_unico
      LEFT JOIN
        gf_tipo_comprobante_pptal tcop ON cpop.tipocomprobante = tcop.id_unico
      LEFT JOIN
        gf_detalle_comprobante_pptal dcpr ON dcpop.comprobanteafectado = dcpr.id_unico
      LEFT JOIN
        gf_comprobante_pptal cpr ON dcpr.comprobantepptal = cpr.id_unico
      LEFT JOIN
        gf_tipo_comprobante_pptal tcr ON cpr.tipocomprobante = tcr.id_unico
      LEFT JOIN
        gf_detalle_comprobante_pptal dcpd ON dcpr.comprobanteafectado = dcpd.id_unico
      LEFT JOIN
        gf_comprobante_pptal cpd ON dcpd.comprobantepptal = cpd.id_unico
      LEFT JOIN
        gf_tipo_comprobante_pptal tcd ON cpd.tipocomprobante = tcd.id_unico
      LEFT JOIN
        gf_rubro_fuente rf ON dcpop.rubrofuente = rf.id_unico
      LEFT JOIN
        gf_rubro_pptal rpptal ON rf.rubro = rpptal.id_unico
      LEFT JOIN
        gf_fuente f ON rf.fuente = f.id_unico
      WHERE
        cpcx.id_unico=" . $_SESSION['id_comp_pptal_CP']);

    // $detallePtal = $mysqli->query($sqlDetallPptal);
    $totalValor1 = 0;
    // while ($rowDetallPtal = mysqli_fetch_array($detallePtal)) {

    for ($rowDetallPtal = 0; $rowDetallPtal < count($detallePtal); $rowDetallPtal++) {
      if (empty($detallePtal[$rowDetallPtal][2])) {
        $numComPtalDisponibilidad = $detallePtal[$rowDetallPtal][1];
        $numComPtalRegistro = $detallePtal[$rowDetallPtal][0];
      } else {
        $numComPtalDisponibilidad = $detallePtal[$rowDetallPtal][2];
        $numComPtalRegistro = $detallePtal[$rowDetallPtal][1];
      }

      $fuente = $detallePtal[$rowDetallPtal][7];
      //$detPtal = $rowDetallPtal[3];
      $idRubroFuen = $detallePtal[$rowDetallPtal][8];
      $codRubro = $detallePtal[$rowDetallPtal][4];
      $nomRubro = $detallePtal[$rowDetallPtal][5];
      $halla = 0;
      $totalValor1 += $detallePtal[$rowDetallPtal][3];
      $saldoDisponible = apropiacion($idRubroFuen) - disponibilidades($idRubroFuen);


      echo '<tr>';
      echo '<td>' . $numComPtalDisponibilidad . '</td>';
      echo '<td>' . $numComPtalRegistro . '</td>';
      echo '<td>' . $codRubro . '</td>';
      echo '<td>' . ucwords(mb_strtolower($nomRubro)) . '</td>';
      echo '<td>' . ucwords(($fuente)) . '</td>';
      echo '<td>' . number_format($detallePtal[$rowDetallPtal][3], 2, '.', ',') . '</td>';
      echo '</tr>';
    }

    echo '<tr>';
    echo '<td colspan="5"><strong>Total</strong></td>';
    echo '<td ><strong>' . number_format($totalValor1, 2, '.', ',') . '</strong></td>';
    echo '</tr>';

    ?>
    <tr>
      <td colspan="6">
        <center><strong> <br />&nbsp;3.MOVIMIENTO FINANCIERO Y CONTABLE <br />&nbsp;</strong></center>
      </td>
    </tr>
    <tr>
      <td><strong>
          <center>Cuenta</center>
        </strong></td>
      <td><strong>
          <center>Nombre Cuenta</center>
        </strong></td>
      <td><strong>
          <center>Tercero</center>
        </strong></td>
      <td><strong>
          <center>Centro Costo</center>
        </strong></td>
      <td><strong>
          <center>Débito</center>
        </strong></td>
      <td><strong>
          <center>Crédito</center>
        </strong></td>
    </tr>
    <?php
    $comp = $_SESSION['idCompCntV'];
    switch ($conexion) {
      case 1:
        $movimientoFinanciero = $con->Listar("SELECT DISTINCT detComp.id_unico idDetalleComp, detComp.valor valorDetalle, 
                cuen.nombre nombreCuenta, cuen.codi_cuenta codigoCuenta, 
                cuen.naturaleza naturalezaCuenta, 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,
                                                    claseC.nombre , cc.nombre
                FROM gf_detalle_comprobante detComp 
                LEFT JOIN gf_centro_costo cc ON detComp.centrocosto = cc.id_unico 
                LEFT JOIN gf_tercero tr ON detComp.tercero = tr.id_unico 
                LEFT JOIN gf_retencion ret ON ret.comprobante = detComp.comprobante
                LEFT JOIN gf_cuenta cuen ON cuen.id_unico = detComp.cuenta
                LEFT JOIN gf_clase_cuenta claseC ON claseC.id_unico = cuen.clasecuenta
            WHERE detComp.comprobante = $comp AND cuen.nombre IS NOT NULL");
        break;
      case 2:
        $movimientoFinanciero = $con->Listar("SELECT DISTINCT
                detComp.id_unico AS idDetalleComp,
                detComp.valor AS valorDetalle,
                cuen.nombre AS nombreCuenta,
                cuen.codi_cuenta AS codigoCuenta,
                cuen.naturaleza AS naturalezaCuenta,
                LTRIM(tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos || ' ' || tr.razonsocial)
                AS NOMBRE,
                claseC.nombre,
                cc.nombre
                FROM gf_detalle_comprobante detComp
                LEFT JOIN gf_centro_costo cc ON detComp.centrocosto = cc.id_unico
                LEFT JOIN gf_tercero tr ON detComp.tercero = tr.id_unico
                LEFT JOIN gf_retencion ret ON ret.comprobante = detComp.comprobante
                LEFT JOIN gf_cuenta cuen ON cuen.id_unico = detComp.cuenta
                LEFT JOIN gf_clase_cuenta claseC ON claseC.id_unico = cuen.clasecuenta
                WHERE detComp.comprobante = $comp
                AND cuen.nombre IS NOT NULL");
        break;
      default:
        break;
    }
    // $movimientoFinanciero = $mysqli->query($sqlMovFina);
    $totalDebito = 0;
    $totalCredito = 0;
    for ($rowMF = 0; $rowMF < count($movimientoFinanciero); $rowMF++) {
      $debito = 0;
      $credito = 0;
      $cod = $movimientoFinanciero[$rowMF][3];

      $nombCuen = mb_strtolower($movimientoFinanciero[$rowMF][2], 'utf-8');
      $nombCuen = ucwords($nombCuen);

      $tercero = mb_strtolower($movimientoFinanciero[$rowMF][5], 'utf-8');
      $tercero = ucwords($tercero);

      $centroCost = mb_strtolower($movimientoFinanciero[$rowMF][7], 'utf-8');
      $centroCost = ucwords($centroCost);

      if ($movimientoFinanciero[$rowMF][4] == 1) {
        if ($movimientoFinanciero[$rowMF][1] >= 0) {
          $debito = $movimientoFinanciero[$rowMF][1];
        } else {
          $debito = '0.00';
        }
      } else if ($movimientoFinanciero[$rowMF][4] == 2) {
        if ($movimientoFinanciero[$rowMF][1] <= 0) {
          $x = ($movimientoFinanciero[$rowMF][1] * -1);
          $debito = $x;
        } else {
          $debito = 0;
        }
      }

      if ($movimientoFinanciero[$rowMF][4] == 1) {
        if ($movimientoFinanciero[$rowMF][1] >= 0) {

          $credito = '0.00';
        } else {
          $x = ($movimientoFinanciero[$rowMF][1] * -1);
          $credito = $x;
        }
      } else if ($movimientoFinanciero[$rowMF][4] == 2) {
        if ($movimientoFinanciero[$rowMF][1] <= 0) {
          $credito = '0.00';
        } else {

          $credito = $movimientoFinanciero[$rowMF][1];
        }
      }


      if (strcasecmp($movimientoFinanciero[$rowMF][6], 'pasivo general') || strcasecmp($movimientoFinanciero[$rowMF][6], 'cuentas por pagar')) {
        $totalValor = $movimientoFinanciero[$rowMF][1];
      }

      $totalDebito += $debito;
      $totalCredito += $credito;

      echo '<tr>';
      echo '<td>' . $cod . '</td>';
      echo '<td>' . ucwords(mb_strtolower($nombCuen)) . '</td>';
      echo '<td>' . ucwords(mb_strtolower($tercero)) . '</td>';
      echo '<td>' . ucwords(mb_strtolower($centroCost)) . '</td>';
      echo '<td>' . number_format($debito, 2, '.', ',') . '</td>';
      echo '<td>' . number_format($credito, 2, '.', ',') . '</td>';
      echo '</tr>';
    }
    // while ($rowMF = mysqli_fetch_array($movimientoFinanciero)) {


    // }
    echo '<tr>';
    echo '<td colspan="4"><strong>Totales</strong></td>';
    echo '<td ><strong>' . number_format($totalDebito, 2, '.', ',') . '</strong></td>';
    echo '<td ><strong>' . number_format($totalCredito, 2, '.', ',') . '</strong></td>';
    echo '</tr>';
    #########################################################################################################
    #VALIDAR SI EL TIPO DE COMPROBANTE CNT APLICA RETENCIÓN
    $tc1 = $con->Listar("SELECT
      tc.retencion
    FROM  gf_comprobante_cnt cn
    LEFT JOIN  gf_tipo_comprobante tc ON cn.tipocomprobante = tc.id_unico
    WHERE cn.id_unico = $comp");
    // $tc1 = $mysqli->query($tc);
    if (count($tc1) > 0) {
      $r = ($tc1);
      $ret = $r[0][0];
    } else {
      $ret = 0;
    }
    if ($ret == 1) {
      $resultR = $con->Listar("SELECT tpr.nombre,tpr.porcentajeaplicar,rt.valorretencion,rt.retencionbase 
      FROM gf_retencion rt 
      LEFT JOIN gf_tipo_retencion tpr ON tpr.id_unico = rt.tiporetencion 
      LEFT JOIN gf_comprobante_cnt cnt ON rt.comprobante = cnt.id_unico 
      WHERE cnt.id_unico=$idComp");

      // $resultR = $mysqli->query($sqlR);
      $valorR = 0;
      if (count($resultR) > 0) { ?>
        <tr>
          <td colspan="6">
            <center><strong> <br />&nbsp;4.RETENCIÓN Y DESCUENTOS <br />&nbsp;</strong></center>
          </td>
        </tr>
        <tr>
          <td colspan="3"><strong>
              <center>Tipo Retención</center>
            </strong></td>
          <td><strong>
              <center>Porcentaje</center>
            </strong></td>
          <td><strong>
              <center>Valor Retención</center>
            </strong></td>
          <td><strong>
              <center>Retención Base</center>
            </strong></td>
        </tr>

    <?php
        // while ($f = mysqli_fetch_row($resultR)) {
        for ($f = 0; $f < count($resultR); $f++) {
          echo '<tr>';
          echo '<td colspan="3">' . $resultR[$f][0] . '</td>';
          echo '<td>' . ucwords(mb_strtolower($resultR[$f][1])) . '</td>';
          echo '<td>' . number_format($resultR[$f][2], 2, '.', ',') . '</td>';
          echo '<td>' . number_format($resultR[$f][3], 2, '.', ',') . '</td>';
          echo '</tr>';
        }
      }
    }

    $ValorT = $con->Listar("SELECT SUM(valor) 
    FROM  gf_detalle_comprobante dc
    LEFT JOIN gf_cuenta c ON dc.cuenta = c.id_unico 
    WHERE (c.clasecuenta = 4 OR c.clasecuenta=8) AND valor >0 AND dc.comprobante =" . $_SESSION['idCompCntV']);
    // $ValorT = $mysqli->query($sqlValorT);
    if (count($ValorT) > 0) {
      $ValorT = ($ValorT);
      if (empty($ValorT[0][0])) {
        $ValorT = 0.00;
      } else {
        $ValorT = $ValorT[0][0];
      }
    } else {
      $ValorT = 0.00;
    }
    $valorLetras = numtoletras($ValorT);
    echo '<tr>';
    echo '<td colspan="6"><strong> <br/>&nbsp;Total: $' . number_format($ValorT, 2, '.', ',') . '</strong> <br/>&nbsp;</td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td colspan="6"><strong> <br/>&nbsp;Valor en letras:  <br/>&nbsp;</strong>' . $valorLetras . '</td>';
    echo '</tr>';


    ?>