
<?php
##################################################################################################################################################################
#                                                                                                                           Modificaciones
##################################################################################################################################################################
#24/08/2017 |Erica G. | Modificacion logo, firmas
##############MODIFICACIONES##########################
#03/03/2017 | ERICA G. | ARREGLO BUSQUEDA MODIFICACION Y AFECTADO
#######################################################
session_start();
require '../../fpdf/fpdf.php';
require '../../Conexion/conexion.php';
require_once '../../Conexion/ConexionPDO.php';
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
ini_set('max_execution_time', 0);
ob_start();
$anno   = $_SESSION['anno'];
$usuario = $_SESSION['usuario'];
$fechaActual = date('d/m/Y');

$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');


class PDF extends FPDF
{
  // Cabecera de página  
  function Header()
  {
    global $nomcomp;
    global $tipodoc;
    global $numdoc;

    global $compini;
    global $compfin;

    global $fechaini;
    global $fechafin;

    global $rub1;
    global $rub2;
    global $rubMin;
    global $rubMax;

    global $head;
    global $foot;
    global $ruta;

    $this->SetFont('Arial', 'B', 10);
    // Título
    $this->SetY(10);
    if ($ruta != '') {
      $this->Image('../../' . $ruta, 60, 6, 20);
    }

    $this->Cell(330, 5, utf8_decode($nomcomp), 0, 0, 'C');
    // Salto de línea
    $this->setX(10);
    $this->SetFont('Arial', 'B', 8);
    $this->Cell(330, 10, utf8_decode('CÓDIGO SGC'), 0, 0, 'R');

    $this->Ln(5);

    $this->SetFont('Arial', '', 8);
    //$this->Cell(121,8,'',0);
    $this->Cell(330, 5, $tipodoc . ': ' . $numdoc, 0, 0, 'C');
    //$this->Cell(93,10,'',0);
    $this->SetFont('Arial', 'B', 8);
    $this->SetX(10);
    $this->Cell(330, 10, utf8_decode('VERSIÓN SGC'), 0, 0, 'R');

    $this->Ln(5);

    $this->SetFont('Arial', '', 8);
    //$this->Cell(105,8,'',0);
    $this->Cell(330, 5, utf8_decode('LISTADO COMPROBANTES PRESUPUESTALES'), 0, 0, 'C');
    $this->SetFont('Arial', 'B', 8);
    $this->SetX(10);
    $this->Cell(330, 10, utf8_decode('FECHA SGC'), 0, 0, 'R');

    $this->Ln(3);

    $this->SetFont('Arial', '', 7);
    $this->Cell(335, 5, utf8_decode('Entre Rubros ' . $rub1 . ' y ' . $rub2), 0, 0, 'C');

    $this->Ln(3);

    $this->SetFont('Arial', '', 7);
    $this->Cell(332, 5, utf8_decode('Fechas ' . $fechaini . ' y ' . $fechafin), 0, 0, 'C');

    $this->Ln(3);

    $this->SetFont('Arial', '', 7);
    $this->Cell(330, 5, utf8_decode('y Comprobantes ' . $compini . ' a ' . $compfin), 0, 0, 'C');

    $this->Ln(5);

    $this->SetX(25);
    #Empty Cells
    $this->Cell(20, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(20, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(20, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(15, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(42, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(40, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(45, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(26, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(40, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(26, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(26, 9, utf8_decode(''), 1, 0, 'C');


    $this->SetX(25);
    #Cell Row 2
    $this->Cell(20, 10, utf8_decode('Número'), 0, 0, 'C');
    $this->Cell(20, 10, utf8_decode('Fecha'), 0, 0, 'C');
    $this->Cell(20, 10, utf8_decode('Rubro'), 0, 0, 'C');
    $this->Cell(15, 10, utf8_decode('Fuente'), 0, 0, 'C');
    $this->Cell(42, 10, utf8_decode('Tipo Afectado'), 0, 0, 'C');
    $this->Cell(40, 10, utf8_decode('Nombre Rubro'), 0, 0, 'C');
    $this->Cell(45, 10, utf8_decode('Concepto'), 0, 0, 'C');
    $this->Cell(26, 10, utf8_decode('Tercero'), 0, 0, 'C');
    $this->Cell(40, 10, utf8_decode('Nombre'), 0, 0, 'C');
    $this->Cell(26, 10, utf8_decode('Crédito'), 0, 0, 'C');
    $this->Cell(26, 10, utf8_decode('ContraCrédito'), 0, 0, 'C');

    $this->Ln(10);
    $this->Cell(326, 5, '', 0);
  }

  function Footer()
  {
    global $usuario;
    global $fechaActual;
    $this->SetY(-15);
    $this->SetFont('Arial', 'B', 8);
    $this->SetX(10);
    $this->Cell(90, 10, utf8_decode('Fecha: ' . $fechaActual), 0, 0, 'L');
    $this->Cell(90, 10, utf8_decode('Máquina: ' . gethostname()), 0, 0, 'C');
    $this->Cell(90, 10, utf8_decode('Usuario: ' . mb_strtoupper($usuario)), 0, 0, 'C');
    $this->Cell(65, 10, utf8_decode('Página ' . $this->PageNo() . '/{nb}'), 0, 0, 'R');
  }
}

// Creación del objeto de la clase heredada
$pdf = new PDF('L', 'mm', 'Legal');

$rubuno = $rubini;
$rubdos = $rubfin;
$compuno = $compini;
$compdos = $compfin;
$fechauno = $fechaini;
$fechados = $fechafin;


$compania = $_SESSION['compania'];

$cmp = $con->Listar("SELECT  t.razonsocial as traz,
                            t.tipoidentificacion as tide,
                            ti.id_unico as tid,
                            ti.nombre as tnom,
                            t.numeroidentificacion tnum, 
                            t.ruta_logo as ruta 
            FROM gf_tercero t
            LEFT JOIN gf_tipo_identificacion ti ON t.tipoidentificacion = ti.id_unico
            WHERE t.id_unico = $compania");

// $cmp = $mysqli->query($consulta);

$minrub = "";
$maxrub = "";
#Consulta Mínima Cuenta
$minrub = $con->Listar("SELECT codi_presupuesto from gf_rubro_pptal WHERE codi_presupuesto = '$rubini'");
// $minrub = $mysqli->query($rb1);
// while ($filarub1 = mysqli_fetch_array($minrub)) {
for ($filarub1 = 0; $filarub1 < count($minrub); $filarub1++) {
  $rubMin = $conexion == 1 ? $minrub[$filarub1]['codi_presupuesto'] : $minrub[$filarub1]['CODI_PRESUPUESTO'];
}
#Fin Consulta Mínima Cuenta
$rub1 = $rubMin;

#Inicio consulta Máxima Cuenta
$maxrub = $con->Listar("SELECT codi_presupuesto from gf_rubro_pptal WHERE codi_presupuesto = '$rubfin'");
// $maxrub = $mysqli->query($rb2);
// while ($filarub2 = mysqli_fetch_array($maxrub)) {
for ($filarub2 = 0; $filarub2 < count($maxrub); $filarub2++) {
  $rubMax = $conexion == 1 ? $maxrub[$filarub2]['codi_presupuesto'] : $maxrub[$filarub2]['CODI_PRESUPUESTO'];
}
#Fin Consulta Maxima Cuenta
$rub2 = $rubMax;
$nomcomp = "";
$tipodoc = "";
$numdoc = "";

// while ($fila = mysqli_fetch_array($cmp)) {
for ($fila = 0; $fila < count($cmp); $fila++) {
  $nomcomp = ($conexion == 1 ? $cmp[$fila]['traz'] : $cmp[$fila]['TRAZ']);
  $tipodoc = ($conexion == 1 ? $cmp[$fila]['tnom'] : $cmp[$fila]['TNOM']);
  $numdoc = ($conexion == 1 ? $cmp[$fila]['tnum'] : $cmp[$fila]['TNUM']);
  $ruta = ($conexion == 1 ? $cmp[$fila]['ruta'] : $cmp[$fila]['RUTA']);
}

#Variable Conteo de Páginas
$nb = $pdf->AliasNbPages();

#Creación del objeto
$pdf->AddPage();

#Definición Alias para número de Páginas
$pdf->AliasNbPages();

$pdf->SetX(25);
$pdf->Ln(-1);
$yp = $pdf->GetY();
//$pdf->setY(37);
switch ($conexion) {
  case 1:
    $rubroP1 = $con->Listar("SELECT DISTINCT 
  tcp.codigo as tcpCodigo, tcp.nombre as tcpNombre 
  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  cp.fecha BETWEEN '$fechaI' AND '$fechaF'  
  AND cp.parametrizacionanno = $anno 
  ORDER BY tcpCodigo ASC ");
    break;
  case 2:
    $rubroP1 = $con->Listar("SELECT DISTINCT 
    tcp.codigo AS tcpCodigo, 
    tcp.nombre AS tcpNombre 
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 cp.fecha BETWEEN TO_DATE('$fechaI', 'YYYY-MM-DD') AND TO_DATE('$fechaF', 'YYYY-MM-DD')  
AND cp.parametrizacionanno = $anno
ORDER BY tcpCodigo ASC");
    break;
  default:
    # code...
    break;
}

// $rubroP1 = $mysqli->query($rubroP);
// while ($rubro = mysqli_fetch_assoc($rubroP1)) {
for ($rubro = 0; $rubro < count($rubroP1); $rubro++) {
  $tipo = $conexion == 1 ? $rubroP1[$rubro]['tcpCodigo'] : $rubroP1[$rubro]['TCPCODIGO'];
  $comprobanteI = $con->Listar("SELECT tc.codigo as cod 
                FROM gf_tipo_comprobante_pptal tc 
                LEFT JOIN gf_clase_pptal cl ON
                tc.clasepptal = cl.id_unico
                WHERE cl.tipoclase = 7
                AND  codigo ='$tipo'");
  // $comprobanteI = $mysqli->query($comprobanteI);
  if (count($comprobanteI) > 0) {
    switch ($conexion) {
      case 1:
        $con11 = $con->Listar("SELECT tcp.id_unico as tipocom,tcp.codigo as tcpcod 
        FROM gf_detalle_comprobante_pptal dcp
        LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
        LEFT JOIN gf_fuente ff ON rf.fuente = ff.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 cp.parametrizacionanno = $anno  
        AND cp.fecha BETWEEN '$fechaI' AND '$fechaF'");
        break;
      case 2:
        $con11 = $con->Listar("SELECT tcp.id_unico AS tipocom, tcp.codigo AS tcpcod 
        FROM gf_detalle_comprobante_pptal dcp
        LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
        LEFT JOIN gf_fuente ff ON rf.fuente = ff.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 cp.parametrizacionanno = $anno   
        AND cp.fecha BETWEEN TO_DATE('$fechaI', 'YYYY-MM-DD') AND TO_DATE('$fechaF', 'YYYY-MM-DD')");
        break;
      default:
        # code...
        break;
    }

    $numd = 0;
    // $con11 = $mysqli->query($con1);
    // while ($row1 = mysqli_fetch_array($con11)) {
    for ($row1 = 0; $row1 < count($con11); $row1++) {
      $tipo1 = $conexion == 1 ? $con11[$row1]['tipocom'] : $con11[$row1]['TIPOCOM'];
      $comprobanteI1 = $con->Listar("SELECT tc.codigo as cod 
                FROM gf_tipo_comprobante_pptal tc 
                LEFT JOIN gf_clase_pptal cl ON tc.clasepptal = cl.id_unico
                WHERE cl.tipoclase = 7 
                AND tc.id_unico =$tipo1");
      // $comprobanteI1 = $mysqli->query($comprobanteI1);
      if (count($comprobanteI1) > 0) {
        $row11 = $comprobanteI1;

        // if ($row11[0]['cod'] >= $compini && $row11[0]['cod'] <= $compfin) {
        $cod = ($conexion == 1) ? $row11[0]['cod'] : $row11[0]['COD'];
        if ($cod >= $compini && $cod <= $compfin) {
          if (strtoupper($con11[$row1]['tcpcod']) == strtoupper($rubroP1[$rubro]['tcpCodigo'])) {
            $numd = $numd + 1;
          }
        }
      }
    }

    if ($numd > 0) {


      $pdf->SetX(25);
      $pdf->SetFont('Arial', 'B', 8);
      // $pdf->Cell(50, 5, utf8_decode('Tipo: ' . mb_strtoupper($rubroP1[$rubro]['tcpCodigo']) . ' - ' . mb_strtoupper($rubroP1[$rubro]['tcpNombre'])));
      $tcpcodigo = $conexion == 1 ? $rubroP1[$rubro]['tcpCodigo'] : $rubroP1[$rubro]['TCPCODIGO'];
      $tcpnombre = $conexion == 1 ? $rubroP1[$rubro]['tcpNombre'] : $rubroP1[$rubro]['TCPNOMBRE'];

      $pdf->Cell(50, 5, utf8_decode('Tipo: ' . mb_strtoupper($tcpcodigo) . ' - ' . mb_strtoupper($tcpnombre)));


      $pdf->Ln(5);
      $pdf->SetFont('Arial', '', 8);

      switch ($conexion) {
        case 1:
          $con1 = $con->Listar("SELECT
      rp.codi_presupuesto   as rpcodp,
      rp.nombre             as rpnom,
      rf.fuente             as fuente,
      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(' ',
      t.nombreuno,
      t.nombredos,
      t.apellidouno,
      t.apellidodos) 
      IS NULL OR CONCAT_WS(' ',
      t.nombreuno,
      t.nombredos,
      t.apellidouno,
      t.apellidodos) = '',
      (t.razonsocial),
      CONCAT_WS(' ',
      t.nombreuno,
      t.nombredos,
      t.apellidouno,
      t.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, 
      t.numeroidentificacion as numTer, 
      dcp.comprobanteafectado as comprAfec 
      FROM gf_detalle_comprobante_pptal dcp
      LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
      LEFT JOIN gf_fuente ff ON rf.fuente = ff.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 cp.parametrizacionanno = $anno  
      AND  cp.fecha BETWEEN '$fechaI' AND '$fechaF' ORDER BY cp.numero asc");
          break;
        case 2:
          $con1 = $con->Listar("SELECT
          rp.codi_presupuesto AS rpcodp,
          rp.nombre AS rpnom,
          rf.fuente AS fuente,
          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(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos) IS NULL OR TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos) = '')
          THEN (t.razonsocial)
          ELSE (TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.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,
          t.numeroidentificacion AS numTer,
          dcp.comprobanteafectado AS comprAfec
          FROM gf_detalle_comprobante_pptal dcp
          LEFT JOIN gf_rubro_fuente rf ON dcp.rubrofuente = rf.id_unico
          LEFT JOIN gf_fuente ff ON rf.fuente = ff.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 cp.parametrizacionanno = $anno 
          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;
      }

      $total1 = 0;
      $total2 = 0;
      // $con1 = $mysqli->query($con);
      // while ($row = mysqli_fetch_array($con1)) {
      for ($row = 0; $row < count($con1); $row++) {
        $tipo = $conexion == 1 ? $con1[$row]['tipocom'] : $con1[$row]['TIPOCOM'];
        $comprobanteI = $con->Listar("SELECT tc.codigo as cod 
                FROM gf_tipo_comprobante_pptal tc 
                LEFT JOIN gf_clase_pptal cl ON
                tc.clasepptal = cl.id_unico WHERE
                cl.tipoclase = 7 AND  tc.id_unico =$tipo");
        // $comprobanteI = $mysqli->query($comprobanteI);
        if (count($comprobanteI) > 0) {
          $row1 = $comprobanteI;

          // if ($row1[0]['cod'] >= $compini && $row1[0]['cod'] <= $compfin) {
          $cod = ($conexion == 1) ? $row1[0]['cod'] : $row1[0]['COD'];
          if ($cod >= $compini && $cod <= $compfin) {

            if (strtoupper($con1[$row]['tcpcod']) == strtoupper($rubroP1[$rubro]['tcpCodigo'])) {
              $valor = $conexion == 1 ? $con1[$row]['valor'] : $con1[$row]['valor'];
              #AFECTADO
              $comp = $conexion == 1 ? $con1[$row]['idDetalle'] : $con1[$row]['IDDETALLE'];
              $af = $con->Listar("SELECT 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;

              ## TIPO AFECTADO 
              ##AFECTADO ##
              $commA = $conexion == 1 ? $con1[$row]['comprAfec'] : $con1[$row]['COMPRAFEC'];
              $comm = $con->Listar("SELECT DISTINCT
            tcp.codigo as codigoAf,
            tcp.nombre as nombreCompr  
            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
            WHERE  dcp.id_unico = '$commA'");
              // $comm = $mysqli->query($comm);
              if (count($comm) > 0) {
                // $comAfec = mysqli_fetch_array($comm);
                $comAfec = $comm;
                $comprobanteAfectado = $conexion == 1 ? $comAfec[0]['codigoAf'] : $comAfec[0]['CODIGOAF'] . ' - ' . ucwords(mb_strtolower($conexion == 1 ? $comAfec[0]['nombreCompr'] : $comAfec[0]['NOMBRECOMPR']));
              } else {
                $comprobanteAfectado = ' ';
              }


              $pdf->SetX(25);

              $p1   = (float)($valor);
              $p2   = (float)($modificacion);
              $p3   = (float)($total);
              $p4   = (float)($afectado);
              $p5   = (float)($saldo);
              $dat = $conexion == 1  ? $con1[$row]['cpfecha'] : $con1[$row]['CPFECHA'];
              // $dat = $con1[$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;
              $paginactual = $pdf->PageNo();
              $pdf->CellFitScale(20, 4, utf8_decode($conexion == 1 ? $con1[$row]['cpnum'] : $con1[$row]['CPNUM'] . ' '), 0, 0, 'C');
              $pdf->CellFitScale(20, 4, $dat, 0, 0, 'C');
              $pdf->CellFitScale(20, 4, utf8_decode($conexion == 1 ? $con1[$row]['rpcodp'] : $con1[$row]['RPCODP'] . ' '), 0, 0, 'R');
              $pdf->CellFitScale(15, 4, utf8_decode($conexion == 1 ? $con1[$row]['fuente'] : $con1[$row]['FUENTE'] . ' '), 0, 0, 'R');
              $pdf->CellFitScale(42, 4, utf8_decode($comprobanteAfectado . ' '), 0, 0, 'L');

              $y = $pdf->GetY();
              $x = $pdf->GetX();
              $pdf->MultiCell(40, 4, utf8_decode(ucwords(mb_strtolower($conexion == 1 ? $con1[$row]['rpnom'] : $con1[$row]['RPNOM']))), 0, 'L');
              $y2 = $pdf->GetY();
              $h = $y2 - $y;
              $px = $x + 40;
              $pdf->Ln(-$h);

              $paginactual2 = $pdf->PageNo();
              if ($paginactual != $paginactual2) {
                //echo 'entraa';
                $pdf->SetXY($px, $yp);
                $h = $y2 - $yp;
              } else {
                $pdf->SetXY($px, $y);
              }
              $y1 = $pdf->GetY();
              $x1 = $pdf->GetX();
              $pdf->MultiCell(45, 4, utf8_decode(ucwords(mb_strtolower($conexion == 1 ? $con1[$row]['dcpdesc'] : $con1[$row]['DCPDESC']))), 0, 'L');
              $y21 = $pdf->GetY();
              $h1 = $y21 - $y1;
              $px1 = $x1 + 45;
              $pdf->Ln(-$h1);
              $paginactual2 = $pdf->PageNo();
              if ($paginactual != $paginactual2) {
                //echo 'entraa';
                $pdf->SetXY($px1, $yp);
                $h1 = $y21 - $yp;
              } else {
                $pdf->SetXY($px1, $y1);
              }

              $pdf->CellFitScale(25, 4, utf8_decode($conexion == 1 ? $con1[$row]['numTer'] : $con1[$row]['NUMTER']), 0, 0, 'L');

              $y2 = $pdf->GetY();
              $x2 = $pdf->GetX();
              $pdf->MultiCell(40, 4, utf8_decode(ucwords(mb_strtolower($con1[$row]['NOMBRE']))), 0, 'L');
              $y22 = $pdf->GetY();
              $h2 = $y22 - $y2;
              $px2 = $x2 + 40;
              $pdf->Ln(-$h2);
              $pdf->SetX($px2);


              $pdf->CellFitScale(26, 4, number_format($p1, 2, '.', ','), 0, 0, 'R');
              $pdf->CellFitScale(26, 4, number_format(0, 2, '.', ','), 0, 0, 'R');
              $total1 = $total1 + $p1;
              $total2 = $total2 + 0;
              if ($h > $h1) {
                $s = $h;
              } else {
                if ($h1 > $h2) {
                  $s = $h1;
                } else {
                  if ($h > $h2) {
                    $s = $h;
                  } else {
                    $s = $h2;
                  }
                }
              }
              $pdf->Ln($s);
            }
          }
        }
      }

      ## TOTALES ##
      $pdf->SetFont('Arial', 'B', 8.5);
      $pdf->Ln(3);
      $pdf->SetX(36);
      $pdf->Cell(242, 4, 'TOTALES: ', 0, 0, 'R');
      $pdf->Cell(40, 4, number_format($total1, 2, '.', ','), 0, 0, 'R');
      $pdf->Cell(26, 4, number_format($total2, 2, '.', ','), 0, 0, 'R');
      ## FIN TOTALES ##
    }
  }
}


#########  Fin Estructura Funcionamiento   ############

$pdf->Ln(5);
$pdf->SetX(25);
$pdf->Cell(320, 0.5, '', 1, 0, 'R');


################################ ESTRUCTURA FIRMAS ##########################################
######### BUSQUEDA RESPONSABLE #########
$pdf->SetFont('Arial', 'B', 9);
$pdf->Ln(10);
$compania = $_SESSION['compania'];
$res = $con->Listar("SELECT rd.tercero, tr.nombre , tres.nombre FROM gf_responsable_documento rd 
        LEFT JOIN gf_tipo_documento td ON rd.tipodocumento = td.id_unico
        LEFT JOIN gg_tipo_relacion tr ON rd.tipo_relacion = tr.id_unico 
        LEFT JOIN gf_tipo_responsable tres ON rd.tiporesponsable = tres.id_unico 
        WHERE LOWER(td.nombre) ='auxiliar presupuestal' AND td.compania = $compania  ORDER BY rd.orden ASC");
// $res = $mysqli->query($res);
$i = 0;
$x = 130;
#ESTRUCTURA
if (count($res) > 0) {
  $h = 4;
  // while ($row2 = mysqli_fetch_row($res)) {
  for ($row2 = 0; $row2 < count($res); $row2++) {

    switch ($conexion) {
      case 1:
        $ter = $con->Listar("SELECT 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 NOMBREC, 
        tr.numeroidentificacion, c.nombre, tr.tarjeta_profesional 
        FROM gf_tercero tr 
        LEFT JOIN gf_cargo_tercero ct ON tr.id_unico = ct.tercero 
        LEFT JOIN gf_cargo c ON ct.cargo = c.id_unico 
        WHERE tr.id_unico =" . $res[$row2][0]);
        break;
      case 2:
        $ter = $con->Listar("SELECT CASE
          WHEN (TRIM(tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos) 
          IS NULL OR TRIM(tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos) = '')
          THEN tr.razonsocial
          ELSE TRIM(tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos)
          END AS NOMBREC, 
          tr.numeroidentificacion, 
          c.nombre, 
          tr.tarjeta_profesional 
          FROM gf_tercero tr 
          LEFT JOIN gf_cargo_tercero ct ON tr.id_unico = ct.tercero 
          LEFT JOIN gf_cargo c ON ct.cargo = c.id_unico 
          WHERE tr.id_unico = " . $res[$row2][0]);
        break;
      default:
        # code...
        break;
    }
    // $ter = mysqli_fetch_row($ter);
    $ter = $ter;
    if (!empty($ter[0][3])) {
      $responsable = "\n\n___________________________________ \n" . (mb_strtoupper($ter[0][0])) . "\n" . mb_strtoupper($ter[0][2]) . "\n T.P:" . (mb_strtoupper($ter[0][3]));
    } else {
      $responsable = "\n\n___________________________________ \n" . (mb_strtoupper($ter[0][0])) . "\n" . mb_strtoupper($ter[0][2]) . "\n";
    }

    $pdf->MultiCell(110, 4, utf8_decode($responsable), 0, 'L');

    if ($i == 1) {
      $pdf->Ln(15);
      $x = 130;
      $i = 0;
    } else {
      $pdf->Ln(-25);
      $pdf->SetX($x);
      $x = $x + 110;
      $i = $i + 1;
    }
  }
}
################################################################################################################################
while (ob_get_length()) {
  ob_end_clean();
}

######### FIN FIRMAS #########
$pdf->Output(0, 'Informe_Listado_Comprobantes_Pptales(' . date('d/m/Y') . ').pdf', 0);
?>