<?php
##################################################################################################################################################################
#                                                                                                                           Modificaciones
##################################################################################################################################################################
#24/08/2017 |Erica G. | Modificacion logo, firmas
##############MODIFICACIONES######################
#07/03/2017 |ERICA G. |DISEÑO CONSULTA MODIFICIACIONES
##################################################
require '../../fpdf/fpdf.php';
require '../../Conexion/conexion.php';
require '../../Conexion/ConexionPDO.php';
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
session_start();
ini_set('max_execution_time', 0);
ob_start();
$panno = $_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');
$total1 = 0;
$numpaginas = 0;
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 $numpaginas;
    global $ruta;

    $numpaginas = $numpaginas + 1;

    $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('AUXILIAR COMPROBANTE PRESUPUESTAL - INGRESOS'), 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(16, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(45, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(80, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(70, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(33, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(33, 9, utf8_decode(''), 1, 0, 'C');
    $this->Cell(33, 9, utf8_decode(''), 1, 0, 'C');


    $this->SetX(25);
    #Cell Row 1
    $this->Cell(16, 9, utf8_decode('Fecha'), 0, 0, 'C');
    $this->Cell(45, 5, utf8_decode('Comprobante'), 1, 0, 'C');
    $this->Cell(80, 9, utf8_decode('Nombre del Tercero'), 0, 0, 'C');
    $this->Cell(70, 9, utf8_decode('Descripción'), 0, 0, 'C');
    $this->Cell(33, 9, utf8_decode('Valor'), 0, 0, 'C');
    $this->Cell(33, 9, utf8_decode('Modificaciones'), 0, 0, 'C');
    $this->Cell(33, 9, utf8_decode('Total'), 0, 0, 'C');

    $this->Ln(5);

    $this->SetX(25);
    #Cell Row 2
    $this->Cell(16, 4, utf8_decode(''), 0, 0, 'C');
    $this->Cell(15, 4, utf8_decode('Tipo'), 1, 0, 'C');
    $this->Cell(30, 4, utf8_decode('Numero'), 1, 0, 'C');
    $this->Cell(80, 4, utf8_decode(''), 0, 0, 'C');
    $this->Cell(70, 4, utf8_decode(''), 0, 0, 'C');
    $this->Cell(33, 4, utf8_decode(''), 0, 0, 'C');
    $this->Cell(33, 4, utf8_decode(''), 0, 0, 'C');
    $this->Cell(33, 4, utf8_decode(''), 0, 0, 'C');

    $this->Ln(5);
    $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: ' . 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 = $minrub[$filarub1][0];
}
#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 = $maxrub[$filarub2][0];
}
#Fin Consulta Maxima Cuenta
$rub2 = $rubMax;

$nomcomp = "";
$tipodoc = "";
$numdoc = "";

// while ($fila = mysqli_fetch_array($cmp)) {
for ($fila = 0; $fila < count($cmp); $fila++) {
  $nomcomp = ($cmp[$fila][0]);
  $tipodoc = ($cmp[$fila][3]);
  $numdoc  = ($cmp[$fila][4]);
  $ruta    =  $cmp[$fila][5];
}

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

#Creación del objeto
$pdf->AddPage();
$yp = $pdf->GetY();
#Definición Alias para número de Páginas
$pdf->AliasNbPages();

$pdf->SetX(25);
$pdf->Ln(-1);

//$pdf->setY(37);

$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 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++) {
  $con1 = $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 tr ON tr.id_unico = dcp.tercero 
    WHERE rp.codi_presupuesto BETWEEN '$rubini' AND '$rubfin' AND  
        cp.fecha BETWEEN '$fechaI' AND '$fechaF' 
    AND cp.parametrizacionanno = $panno 
    ORDER BY cp.fecha, cp.numero ASC");
  // $con1 = $mysqli->query($con1);
  $numd = 0;
  // while ($row1 = mysqli_fetch_array($con1)) {
  for ($row1 = 0; $row1 < count($con1); $row1++) {
    if ($con1[$row1][0] == $rubroP[$rubro][0]) {
      $tipo1 = $con1[$row1][1];
      $comprobanteI1 = $con->Listar("SELECT codigo as cod FROM gf_tipo_comprobante_pptal WHERE id_unico ='$tipo1'
        AND (clasepptal ='13' OR clasepptal ='18' OR clasepptal ='19')");
      // $comprobanteI1 = $mysqli->query($comprobanteI1);
      if (count($comprobanteI1) > 0) {
        $row11 = $comprobanteI1;
        if ($row11[0][0] >= $compini && $row11[0][0] <= $compfin) {
          $numd = $numd + 1;
        }
      }
    }
  }
  if ($numd > 0) {
    $pdf->SetX(25);
    $pdf->SetFont('Arial', 'B', 8);
    $pdf->Cell(50, 5, utf8_decode('Rubro: ' . $rubroP[$rubro][0] . ' - ' . $rubroP[$rubro][1]));
    $pdf->Ln(5);
    $pdf->SetFont('Arial', '', 8);

    switch ($conexion) {
      case 1:
        $con2 = $con->Listar("SELECT DISTINCT
    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  
    cp.fecha BETWEEN '$fechaI' AND '$fechaF' 
    AND cp.parametrizacionanno = $panno
    ORDER BY cp.fecha, cp.numero ASC");
        break;
      case 2:
        $con2 = $con->Listar("SELECT DISTINCT
        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 (tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos) IS NULL 
        OR (tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos) = ''
        THEN tr.razonsocial
        ELSE (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 cp.fecha BETWEEN TO_DATE('$fechaI', 'YYYY-MM-DD') AND TO_DATE('$fechaF', 'YYYY-MM-DD') 
        AND cp.parametrizacionanno = $panno
        ORDER BY cp.fecha, cp.numero ASC");
        break;
      default:
        # code...
        break;
    }

    // $con = $mysqli->query($con);
    echo '<br/>';



    $total2 = 0;
    // while ($row = mysqli_fetch_array($con)) {
    for ($row = 0; $row < count($con2); $row++) {
      $paginactual = $numpaginas;

      if ($con2[$row][0] == $rubroP[$rubro][0]) {
        $tipo = $con2[$row][13];
        $comprobanteI = $con->Listar("SELECT codigo as cod FROM gf_tipo_comprobante_pptal WHERE id_unico ='$tipo'
        AND (clasepptal ='13' OR clasepptal ='18' OR clasepptal ='19')");
        // $comprobanteI = $mysqli->query($comprobanteI);
        if (count($comprobanteI) > 0) {
          $row1 = $comprobanteI;
          if ($row1[0][0] >= $compini && $row1[0][0] <= $compfin) {


            $valor = $con2[$row][12];
            #AFECTADO
            $comp = $con2[$row][11];
            $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 = $af[$sum1][0] + $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 = $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) ;

            $pdf->SetX(25);

            $p1   = (float)($valor);
            $p2   = (float)($modificacion);
            $p3   = (float)($total);

            #$fechaD = DateTime::createFromFormat('d/m/Y', "$row['cpfecha']");
            #$fechaD = $fechaD->format('Y/m/d');
            $dat = $con2[$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;

            $pdf->CellFitScale(16, 4, $dat, 0, 0, 'C');
            $pdf->CellFitScale(15, 4, utf8_decode($con2[$row][6]), 0, 0, 'C');
            $pdf->CellFitScale(30, 4, utf8_decode($con2[$row][7]), 0, 0, 'C');

            $y = $pdf->GetY();
            $x = $pdf->GetX();
            $pdf->MultiCell(80, 4, utf8_decode(ucwords(mb_strtolower($con2[$row][8]))), 0, 'J');
            $y2 = $pdf->GetY();
            $h = $y2 - $y;
            $px = $x + 80;
            if ($numpaginas > $paginactual) {
              $pdf->SetXY($px, $yp);
              $h = $y2 - $yp;
            } else {
              $pdf->SetXY($px, $y);
            }

            $y1 = $pdf->GetY();
            $x1 = $pdf->GetX();
            $pdf->MultiCell(70, 4, utf8_decode(ucwords(mb_strtolower($con2[$row][9]))), 0, 'L');
            $y21 = $pdf->GetY();
            $h1 = $y21 - $y1;
            $px1 = $x1 + 70;

            if ($numpaginas > $paginactual) {
              $pdf->SetXY($px1, $yp);
              $h1 = $y21 - $yp;
            } else {
              $pdf->SetXY($px1, $y1);
            }



            $pdf->CellFitScale(33, 4, number_format($p1, 2, '.', ','), 0, 0, 'R');
            $pdf->CellFitScale(33, 4, number_format($p2, 2, '.', ','), 0, 0, 'R');
            $pdf->CellFitScale(33, 4, number_format($p3, 2, '.', ','), 0, 0, 'R');
            $alt = max($h, $h1);
            $pdf->Ln($alt);
            $total1 = $p3 + $total1;
            $total2 += $p3;
          }
        }

        //echo 'valor ='.$valor.' MODIFICACION='.$modificacion.' TOTAL'.$total.' AFECTADO='.$afectado.' SALDO='.$saldo.'<BR/>';   
      }
    }
    ## TOTALES ##
    $pdf->SetFont('Arial', 'B', 8.5);
    $pdf->Ln(5);
    $pdf->SetX(25);


    $pdf->Cell(244, 4, utf8_decode('TOTAL RUBRO : ' . $rubroP[$rubro][0] . ' - ' . $rubroP[$rubro][1]), 0, 0, 'R');
    $pdf->Cell(66, 4, number_format($total2, 2, '.', ','), 0, 0, 'R');
    $pdf->Ln(5);
  }
}
## TOTALES ##
$pdf->SetFont('Arial', 'B', 8.5);
$pdf->Ln(5);
$pdf->SetX(25);


$pdf->Cell(244, 4, 'TOTALES: ', 0, 0, 'R');
$pdf->Cell(66, 4, number_format($total1, 2, '.', ','), 0, 0, 'R');
## FIN TOTALES ##
#########  Fin Estructura Funcionamiento   ############

$pdf->Ln(5);
$pdf->SetX(25);
$pdf->Cell(310, 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->query($ter);
    // $ter = mysqli_fetch_row($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();
}
$pdf->Output(0, 'Informe_Auxiliares_Presupuestales_Ingresos (' . date('d/m/Y') . ').pdf', 0);
