<?php
##############################################################################################################
#                             INFORME EGRESO DE TESORERIA
##############################################################################################################
#06/04/2018 | Erica G. | Firmas más pequeñas
#05/12/2017 | Erica G. | Cheque
#07/09/2017 | Erica G. | Firmas y reestructuracion del codigo
##############################################################################################################

header("Content-Type: text/html;charset=utf-8");
require_once('../estructura_apropiacion.php');
require_once('../estructura_saldo_obligacion.php');
require_once('../numeros_a_letras.php');
require '../fpdf/fpdf.php';
require_once('../Conexion/conexion.php');
require_once '../Conexion/ConexionPDO.php';
require_once('../numeros_a_letras.php');
session_start();
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
ob_start();
########################ARRAY DE MESES###########################################################
$meses = array('no', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
#################################################################################################
#############################DATOS COMPAÑIA#######################################################
$comp = $_SESSION['compania'];
$dc = $con->Listar("SELECT id_unico, razonsocial, numeroidentificacion, digitoverficacion, ruta_logo 
                    FROM gf_tercero WHERE id_unico =$comp");
// $dc =$mysqli->query($dc);
// $dc = mysqli_fetch_row($dc);
$razonsocial = $dc[0][1];
if (empty($dc[0][3])) {
  $numeroI = $dc[0][2];
} else {
  $numeroI = $dc[0][2] . ' - ' . $dc[0][3];
}
$ruta = $dc[0][4];
$usuario = $_SESSION['usuario'];
##########SLOGAN####################
$slog = $con->Listar("SELECT valor FROM gs_parametros_basicos WHERE LOWER(nombre)='slogan'");
// $slog = $mysqli->query($slog);
if (count($slog) > 0) {
  $slog = $slog;
  $slog = ucwords(mb_strtolower($slog[0][0]));
} else {
  $slog = "";
}
###################################################################################################
##############################DATOS COMPROBANTE####################################################
$comprobante = base64_decode($_GET['idcom']);
switch ($conexion) {
  case 1:
    $dbc = $con->Listar("SELECT cn.id_unico, cn.numero, tc.nombre, DATE_FORMAT(cn.fecha,'%d/%m/%Y'),
    CONCAT(ELT(WEEKDAY( cn.fecha) + 1, 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo')) AS DIA_SEMANA,
    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, tr.numeroidentificacion, tr.digitoverficacion, 
            d.direccion, tel.valor, cn.descripcion, cn.numerocontrato, tipc.nombre , 
            cn.tipocomprobante, tc.comprobante_pptal, cn.fecha , LOWER(tc.nombre) 
            FROM gf_comprobante_cnt cn 
            LEFT JOIN gf_tipo_comprobante tc ON cn.tipocomprobante = tc.id_unico 
            LEFT JOIN gf_tipo_comprobante_pptal tcp ON tc.comprobante_pptal = tcp.id_unico 
            LEFT JOIN gf_tercero tr ON cn.tercero =tr.id_unico 
            LEFT JOIN gf_direccion d ON d.tercero = tr.id_unico 
            LEFT JOIN gf_telefono tel ON tel.tercero =tr.id_unico 
            LEFT JOIN gf_clase_contrato tipc ON tipc.id_unico = cn.clasecontrato 
            WHERE cn.id_unico =$comprobante");
    break;
  case 2:
    $dbc = $con->Listar("SELECT cn.id_unico,
    cn.numero,
    tc.nombre,
    TO_CHAR(cn.fecha, 'DD/MM/YYYY'),
    CASE TO_CHAR(cn.fecha, 'D')
        WHEN '1' THEN 'Domingo'
        WHEN '2' THEN 'Lunes'
        WHEN '3' THEN 'Martes'
        WHEN '4' THEN 'Miércoles'
        WHEN '5' THEN 'Jueves'
        WHEN '6' THEN 'Viernes'
        WHEN '7' THEN 'Sábado'
    END AS DIA_SEMANA,
  (TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos) || ' ' || TRIM(tr.razonsocial))
    AS NOMBRE,
    tr.numeroidentificacion,
    tr.digitoverficacion,
    d.direccion,
    tel.valor,
    cn.descripcion,
    cn.numerocontrato,
    tipc.nombre,
    cn.tipocomprobante,
    tc.comprobante_pptal,
    cn.fecha,
    LOWER(tc.nombre)
    FROM gf_comprobante_cnt cn
    LEFT JOIN gf_tipo_comprobante tc ON cn.tipocomprobante = tc.id_unico
    LEFT JOIN gf_tipo_comprobante_pptal tcp ON tc.comprobante_pptal = tcp.id_unico
    LEFT JOIN gf_tercero tr ON cn.tercero = tr.id_unico
    LEFT JOIN gf_direccion d ON d.tercero = tr.id_unico
    LEFT JOIN gf_telefono tel ON tel.tercero = tr.id_unico
    LEFT JOIN gf_clase_contrato tipc ON tipc.id_unico = cn.clasecontrato
  WHERE cn.id_unico = $comprobante");
    break;
  default:
    # code...
    break;
}
// $dbc = $mysqli->query($dbc);
// $dbc = mysqli_fetch_row($dbc);
$idCnt = $dbc[0][0];
$numero = $dbc[0][1];
$tipoNombre = ucwords(mb_strtoupper($dbc[0][2]));
$fechaC = $dbc[0][3];
$diaF = $dbc[0][4];
$terceroComprobante = $dbc[0][5];
if (empty($dbc[0][7]) || $dbc == "") {
  $numeroidentificacion = $dbc[0][6];
} else {
  $numeroidentificacion = $dbc[0][6] . ' - ' . $dbc[0][7];
}
$direccion = $dbc[0][8];
$telefono = $dbc[0][9];
$descripcion = $dbc[0][10];
$numerocon = $dbc[0][11];
$clasec = $dbc[0][12];
$tipocomprobante = $dbc[0][13];
$tipocomprobantepptal = $dbc[0][14];
$fechaComprobante = $dbc[0][15];
$tipocomprobantenombre = $dbc[0][16];
###################################################################################################
#####################CREACION PDF, HEAD AND FOOTER####################
class PDF extends FPDF
{
  function Header()
  {

    global $numpaginas1;
    $numpaginas1 = $this->PageNo();
    global $ruta;
    global $numero;
    global $tipocomprobantenombre;
    global $fechaC;


    if ($ruta != '') {
      $this->Image('../' . $ruta, 10, 10, 18);
    }

    $this->SetFont('Arial', 'B', 12);
    $this->SetX(38);
    $this->Cell(162, 5, utf8_decode(ucwords($tipocomprobantenombre)), 0, 0, 'R');
    $this->Ln(7);
    $this->Cell(190, 5, utf8_decode('No: ' . $numero), 0, 0, 'R');
    $this->Ln(7);
    $this->Cell(190, 5, utf8_decode('Fecha: ' . $fechaC), 0, 0, 'R');
    $this->Ln(10);
  }

  function Footer()
  {

    global $usuario;
    global $slog;
    if (empty($slog)) {
      $this->SetY(-15);
      $this->SetFont('Arial', 'B', 8);
      $this->Cell(63, 10, 'Elaborado por: ' . strtoupper($usuario), 0, 0, 'L');
      $this->Cell(63, 10, 'Fecha: ' . date('d/m/Y'), 0, 0, 'C');
      $this->Cell(64, 10, 'Pagina ' . $this->PageNo() . '/{nb}', 0, 0, 'R');
    } else {
      $this->SetY(-15);
      $this->SetFont('Arial', 'B', 8);
      $this->SetX(10);
      $y1 = $this->GetY();
      $x1 = $this->GetX();
      $this->Cell(60, 10, utf8_decode(''), 0, 0, 'L');
      if (!empty($slog) || $slog != '') {
        $this->MultiCell(70, 5, utf8_decode('"' . mb_strtoupper($slog, 'utf-8') . '"'), 0, 'C'); //Slogan
      } else {
        $this->MultiCell(70, 5, utf8_decode(''), 0, 'C'); //Slogan
      }
      $y2 = $this->GetY();
      $alto = $y2 - $y1;
      $this->SetXY($x1, $y1);
      $this->Cell(60, $alto, utf8_decode('Elaborado por: ' . strtoupper($usuario)), 0, 0, 'C');
      $this->Cell(70, 10, utf8_decode(''), 0, 0, 'L');
      $this->Cell(30, $alto, utf8_decode('Fecha: ' . date('d/m/Y')), 0, 0, 'L');
      $this->Cell(30, $alto, utf8_decode('Página ' . $this->PageNo() . '/{nb}'), 0, 0, 'R');
    }
  }
}

$pdf = new PDF('P', 'mm', 'Letter');
$pdf->AliasNbPages();
$pdf->AddPage();
$yp = $pdf->GetY();


#####################################################################################
#* Datos Comprobante
#####################################################################################
$pdf->SetFont('Arial', 'B', 10);
$pdf->Ln(5);
$pdf->Cell(35, 6, utf8_decode('Nombre'), 0, 0, 'L');
$pdf->Cell(155, 6, utf8_decode($terceroComprobante), 0, 0, 'L');

$pdf->Ln(5);
$pdf->Cell(35, 6, utf8_decode('CC o Nit: '), 0, 0, 'L');
$pdf->Cell(60, 6, utf8_decode($numeroidentificacion), 0, 0, 'L');

$pdf->Cell(30, 6, utf8_decode('Teléfonos: '), 0, 0, 'L');
$pdf->Cell(65, 6, utf8_decode($telefono), 0, 0, 'L');
$pdf->Ln(5);
$pdf->Cell(35, 6, utf8_decode('Dirección: '), 0, 0, 'L');
$pdf->Cell(60, 6, utf8_decode($direccion), 0, 0, 'L');


$Ordenes = "";
#Ordenes de pago
$resultO = $con->Listar("SELECT
  comPtal.numero,
  tcp.codigo,
  comPtal.descripcion, 
  comPtal.id_unico 
FROM gf_comprobante_pptal comPtal
LEFT JOIN gf_detalle_comprobante_pptal detComPtal ON detComPtal.comprobantepptal = comPtal.id_unico
LEFT JOIN gf_detalle_comprobante detComp ON detComp.detallecomprobantepptal = detComPtal.id_unico
LEFT JOIN gf_tipo_comprobante_pptal tcp ON comPtal.tipocomprobante = tcp.id_unico
WHERE detComp.comprobante=" . $idCnt);

// $resultO = $mysqli->query($sqlOrdenesP);
$E = count($resultO);
// while ($O = mysqli_fetch_array($resultO)) {
for ($O = 0; $O < count($resultO); $O++) {
  if ($E < 1) {
    $Ordenes .= $resultO[$O][0];
    $Ordenes .= ',' . $resultO[$O][0];
  } else {
    $Ordenes = $resultO[$O][0];
  }
  $idComp = $resultO[$O][3];
}
$pdf->Ln(5);

$pdf->Cell(35, 6, 'Orden Pago: ', 0, 'L');
$pdf->Cell(155, 6, utf8_decode($Ordenes), 0, 0, 'L');
$pdf->Ln(5);
$pdf->Cell(35, 6, 'Concepto: ', 0, 'L');
$pdf->Multicell(155, 5, utf8_decode($descripcion), 0, 'L');

$pdf->Cell(35, 6, utf8_decode('Tipo de contrato: '), 0, 0, 'L');
$pdf->Cell(60, 6, utf8_decode($clasec), 0, 0, 'L');
$pdf->Cell(30, 6, utf8_decode('No de contrato: '), 0, 0, 'L');
$pdf->Cell(65, 6, utf8_decode($numerocon), 0, 0, 'L');
$pdf->Ln(5);
#Banco
// echo $sqlMovFina = "SELECT detComp.id_unico idDetalleComp, detComp.valor valorDetalle, 
$banc = $con->Listar("SELECT detComp.id_unico idDetalleComp, detComp.valor valorDetalle, 
te.razonsocial banco, doc.numero, cuen.naturaleza naturalezaCuenta, cc.nombre, 
cuen.clasecuenta  
FROM gf_detalle_comprobante detComp 
LEFT JOIN gf_cuenta cuen ON cuen.id_unico = detComp.cuenta 
LEFT JOIN gf_centro_costo cc ON detComp.centrocosto = cc.id_unico
LEFT JOIN gf_cuenta_bancaria ctaB ON ctaB.cuenta = cuen.id_unico
LEFT JOIN gf_tercero te ON ctaB.banco = te.id_unico
LEFT JOIN gf_detalle_comprobante_mov doc ON detComp.id_unico = doc.comprobantecnt
WHERE detComp.comprobante = '" . $comprobante . "' AND cuen.clasecuenta = 11");
// $banc = $mysqli->query($sqlMovFina);

// while ($bc = mysqli_fetch_row($banc)) {
for ($bc = 0; $bc < count($banc); $bc++) {
  $banco = $banc[$bc][2];
  $numCheque =  $banc[$bc][3];
  $pdf->Cell(35, 6, utf8_decode('No Cheque :'), 0, 0, 'L');
  $pdf->Cell(60, 6, utf8_decode($numCheque), 0, 0, 'L');
  $pdf->Cell(30, 5, 'Banco: ', 0, 'L');
  $pdf->Cell(60, 5, $banco, 0, 'L');
  $pdf->Ln(5);
}


###################################FIN DATOS COMPROBANTE##################################################
#####################################MOVIMIENTO CONTABLE ####################################################

$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(190, 5, 'MOVIMIENTO CONTABLE', 1, 0, 'C');

$pdf->Ln(5);
$pdf->Cell(25, 5, utf8_decode('Cuenta'), 1, 0, 'C');
$pdf->Cell(60, 5, utf8_decode('Nombre de la Cuenta'), 1, 0, 'C');
$pdf->Cell(55, 5, utf8_decode('Tercero'), 1, 0, 'C');
$pdf->Cell(25, 5, utf8_decode('Débito'), 1, 0, 'C');
$pdf->Cell(25, 5, utf8_decode('Crédito'), 1, 0, 'C');
$pdf->Ln(5);
$pdf->SetFont('Arial', '', 9);

switch ($conexion) {
  case 1:
    $movimientoFinanciero = $con->Listar("SELECT 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, cuen.clasecuenta  
  FROM gf_detalle_comprobante detComp 
  LEFT JOIN gf_cuenta cuen ON cuen.id_unico = detComp.cuenta 
  LEFT JOIN gf_tercero tr ON detComp.tercero = tr.id_unico
  WHERE detComp.comprobante = $idCnt");
    break;
  case 2:
    $movimientoFinanciero = $con->Listar("SELECT detComp.id_unico AS idDetalleComp, 
       detComp.valor AS valorDetalle, 
       cuen.nombre AS nombreCuenta, 
       cuen.codi_cuenta AS codigoCuenta, 
       cuen.naturaleza AS naturalezaCuenta, 
       LTRIM(TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos) || ' ' || TRIM(tr.razonsocial))
       AS NOMBRE, 
       cuen.clasecuenta  
      FROM gf_detalle_comprobante detComp 
      LEFT JOIN gf_cuenta cuen ON cuen.id_unico = detComp.cuenta 
      LEFT JOIN gf_tercero tr ON detComp.tercero = tr.id_unico
      WHERE detComp.comprobante = $idCnt");
    break;
  default:
    # code...
    break;
}

// $movimientoFinanciero = $mysqli->query($sqlMovFina);

$totalDebito = 0;
$totalCredito = 0;
$totalCheque = 0;

// while ($rowMF = mysqli_fetch_array($movimientoFinanciero)) {
for ($rowMF = 0; $rowMF < count($movimientoFinanciero); $rowMF++) {
  $nombCuen = mb_strtolower($movimientoFinanciero[$rowMF][2], 'utf-8');
  $nombCuen = ucwords($nombCuen);
  $altY = $pdf->GetY();
  if (strlen($nombCuen) > 35) {
    $altY = $pdf->GetY();
    if ($altY > 240) {
      $pdf->AddPage();
    }
  }
  $debito = 0;
  $credito = 0;

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

  if ($movimientoFinanciero[$rowMF][4] == 1) {
    if ($movimientoFinanciero[$rowMF][1] < 0) {
      $credito = substr($movimientoFinanciero[$rowMF][1], 1);
    } else {
      $debito = $movimientoFinanciero[$rowMF][1];
    }
  } elseif ($movimientoFinanciero[$rowMF][4] == 2) {
    if ($movimientoFinanciero[$rowMF][1] < 0) {
      $debito = substr($movimientoFinanciero[$rowMF][1], 1);
    } else {
      $credito = $movimientoFinanciero[$rowMF][1];
    }
  }
  if ($movimientoFinanciero[$rowMF][6] == 11) {
    $totalCheque += $movimientoFinanciero[$rowMF][1];
  }
  $xinicial = $pdf->GetX();
  $yinicial = $pdf->GetY();
  $pdf->Cell(25, 5, utf8_decode($cod), 0, 0, 'L');
  $y1 = $pdf->GetY();
  $x1 = $pdf->GetX();
  $pdf->Multicell(60, 5, utf8_decode($nombCuen), 0, 'L');
  $y2 = $pdf->GetY();
  $alto_de_fila = $y2 - $y1;
  $posicionX = $x1 + 60;
  $pdf->SetXY($posicionX, $y1);
  $y3 = $pdf->GetY();
  $x3 = $pdf->GetX();
  $pdf->Multicell(55, $alto_de_fila, utf8_decode($centroCost), 0, 'L');
  $y4 = $pdf->GetY();
  $alto_de_fila1 = $y4 - $y3;
  $posicionX = $x3 + 55;
  $pdf->SetXY($posicionX, $y1);
  $pdf->Cell(25, 5, number_format($debito, 2, '.', ','), 0, 0, 'R');
  $pdf->Cell(25, 5, number_format($credito, 2, '.', ','), 0, 0, 'R');
  #Determinar Valor máximo de altura
  $max = max($alto_de_fila, $alto_de_fila1);
  $pdf->SetXY($xinicial, $yinicial);
  $pdf->Cell(25, $max, (''), 1, 0, 'L');
  $pdf->Cell(60, $max, (''), 1, 0, 'L');
  $pdf->Cell(55, $max, (''), 1, 0, 'L');
  $pdf->Cell(25, $max, (''), 1, 0, 'L');
  $pdf->Cell(25, $max, (''), 1, 0, 'L');
  #Salto de línea
  $pdf->Ln($max);
  $totalDebito += $debito;
  $totalCredito += $credito;
  $altY = $pdf->GetY();
  if ($altY > 250) {
    $pdf->AddPage();
  }
}

$pdf->Ln(5);

$pdf->Cell(110, 15, '', 1, 0, 'R');
$pdf->Cell(40, 15, '', 1, 0, 'R');
$pdf->Cell(40, 15, '', 1, 0, 'R');
$pdf->SetX(-200);
$pdf->Ln(3);
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(110, 5, utf8_decode('Débitos'), 0, 0, 'R');
$pdf->Cell(40, 5, utf8_decode('Créditos'), 0, 0, 'R');
$pdf->Cell(40, 5, utf8_decode('Valor Cheque'), 0, 0, 'R');
$pdf->Ln(5);
$pdf->SetFont('Arial', '', 10);

if ($totalDebito < 0) {
  $totalDebito = substr($totalDebito, 1);
}
if ($totalCredito < 0) {
  $totalCredito = substr($totalCredito, 1);
}
if ($totalCheque < 0) {
  $totalCheque = substr($totalCheque, 1);
}
$totalChequeLetras = numtoletras($totalCheque);

$pdf->cellfitscale(110, 5, number_format($totalDebito, 2, '.', ','), 0, 0, 'R'); //Total débito
$pdf->cellfitscale(40, 5, number_format($totalCredito, 2, '.', ','), 0, 0, 'R'); //Total crédito
$pdf->cellfitscale(40, 5, number_format($totalCheque, 2, '.', ','), 0, 0, 'R'); //Total valor cheque
$pdf->Ln(10);

#####################################FIN MOVIMIENTO CONTABLE ####################################################

$pdf->SetFont('Arial', 'B', 10);
$pdf->cellfitscale(190, 5, utf8_decode('Valor a girar'), 0, 0, 'L');
$pdf->Ln(5);
$pdf->SetFont('Arial', '', 10);
$pdf->MultiCell(190, 5, utf8_decode($totalChequeLetras), 0, 'L');


$pdf->SetFont('Arial', 'B', 7);
$pdf->Ln(10);
$compania = $_SESSION['compania'];
switch ($conexion) {
  case 1:
    $tipComp = $con->Listar("SELECT IF(CONCAT_WS(' ',
    t.nombreuno,
    t.nombredos,
    t.apellidouno,
    t.apellidodos) 
    IS NULL OR CONCAT_WS(' ',
    t.nombreuno,
    t.nombredos,
    t.apellidouno,
    t.apellidodos) = '',
    UPPER(t.razonsocial),
    CONCAT_WS(' ',
    UPPER(t.nombreuno),
    UPPER(t.nombredos),
    UPPER(t.apellidouno),
    UPPER(t.apellidodos))) AS NOMBRE, ti.nombre, t.numeroidentificacion, UPPER(car.nombre) , 
    rd.fecha_inicio, rd.fecha_fin , t.tarjeta_profesional 
    FROM gf_tipo_comprobante tcp
    LEFT JOIN gf_tipo_documento td ON tcp.tipodocumento = td.id_unico 
    LEFT JOIN gf_responsable_documento rd ON td.id_unico = rd.tipodocumento 
    LEFT JOIN gf_tercero t ON rd.tercero = t.id_unico
    LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = t.tipoidentificacion
    LEFT JOIN gf_cargo_tercero carTer ON carTer.tercero = t.id_unico
    LEFT JOIN gf_cargo car ON car.id_unico = carTer.cargo
    LEFT JOIN gg_tipo_relacion tipRel ON tipRel.id_unico = rd.tipo_relacion
    WHERE tcp.id_unico = $tipocomprobante 
    AND tipRel.nombre = 'Firma' ORDER BY rd.ORDEN ASC");
    break;
  case 2:
    $tipComp = $con->Listar("SELECT LTRIM (UPPER(t.nombreuno) || ' ' || UPPER(t.nombredos) || ' ' || 
    UPPER(t.apellidouno) || ' ' || UPPER(t.apellidodos) || ' ' || UPPER(t.razonsocial))
    AS NOMBRE,
    ti.nombre,
    t.numeroidentificacion,
    UPPER(car.nombre) AS nombreCargo,
    rd.fecha_inicio,
    rd.fecha_fin,
    t.tarjeta_profesional
    FROM gf_tipo_comprobante tcp
    LEFT JOIN gf_tipo_documento td ON tcp.tipodocumento = td.id_unico 
    LEFT JOIN gf_responsable_documento rd ON td.id_unico = rd.tipodocumento 
    LEFT JOIN gf_tercero t ON rd.tercero = t.id_unico
    LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = t.tipoidentificacion
    LEFT JOIN gf_cargo_tercero carTer ON carTer.tercero = t.id_unico
    LEFT JOIN gf_cargo car ON car.id_unico = carTer.cargo
    LEFT JOIN gg_tipo_relacion tipRel ON tipRel.id_unico = rd.tipo_relacion
    WHERE tcp.id_unico = $tipocomprobante 
    AND tipRel.nombre = 'Firma'
    ORDER BY rd.ORDEN ASC");

    break;
  default:

    break;
}
// $tipComp = $mysqli->query($sqlTipoComp);
$i = 0;
// while ($rowTipComp = mysqli_fetch_array($tipComp)) {
for ($rowTipComp=0; $rowTipComp <count($tipComp) ; $rowTipComp++) { 
  if (!empty($tipComp[$rowTipComp][5])) {
    if ($fechaComprobante <= $tipComp[$rowTipComp][5]) {
      $firmaNom[$i] = $tipComp[$rowTipComp][0];
      $firmaCarg[$i] = $tipComp[$rowTipComp][3];
      $firmaTP[$i] = $tipComp[$rowTipComp][6];
      $i++;
    }
  } elseif (!empty($tipComp[$rowTipComp][4])) {
    if ($fechaComprobante >= $tipComp[$rowTipComp][4]) {
      $firmaNom[$i] = $tipComp[$rowTipComp][0];
      $firmaCarg[$i] = $tipComp[$rowTipComp][3];
      $firmaTP[$i] = $tipComp[$rowTipComp][6];
      $i++;
    }
  } else {
    $firmaNom[$i] = $tipComp[$rowTipComp][0];
    $firmaCarg[$i] = $tipComp[$rowTipComp][3];
    $firmaTP[$i] = $tipComp[$rowTipComp][6];
    $i++;
  }
}

$firmaNom[$i] = 'FIRMA BENEFICIARIO'; //$rowTipComp[0];
$firmaNum[$i] = 'C.C. ó NIT'; //$rowTipComp[1];
$firmaCarg[$i] = 'C.C. ó NIT'; //$rowTipComp[2];

$numFirmas = $i;

if ($numFirmas > 3)
  $numFirmas = 3;

for ($i = 0; $i <= $numFirmas; $i++) {
  $pdf->Cell(50, 40, '', 1, 0, 'C');
}

$pdf->Ln(24);
for ($i = 0; $i <= $numFirmas; $i++) {
  $pdf->Cell(1, 0, '', 0, 0, 'L');
  $pdf->Cell(45, 0, '', 1, 0, 'L');
  $pdf->Cell(4, 0, '', 0, 0, 'L');
}


$pdf->Ln(2);
for ($i = 0; $i <= $numFirmas; $i++) {
  if ($firmaNom[$i] == '' || $firmaNom[$i] == "") {
    $pdf->Cell(50, 5, utf8_decode($firmaNom[$i]), 0, 0, 'L');
  } else {
    $pdf->CellFitScale(50, 5, utf8_decode($firmaNom[$i]), 0, 0, 'L');
  }
}


$pdf->Ln(4);
for ($i = 0; $i <= $numFirmas; $i++) {
  if ($firmaCarg[$i] == '' || $firmaCarg[$i] == "") {
    $pdf->Cell(50, 5, utf8_decode($firmaCarg[$i]), 0, 0, 'L');
  } else {
    $pdf->CellFitScale(50, 5, utf8_decode($firmaCarg[$i]), 0, 0, 'L');
  }
}
$pdf->Ln(4);
for ($i = 0; $i <= $numFirmas; $i++) {
  if ($firmaTP[$i] == '' || $firmaTP[$i] == "") {
    $pdf->Cell(50, 5, utf8_decode(''), 0, 0, 'L');
  } else {
    $pdf->CellFitScale(50, 5, utf8_decode('T.P. :' . $firmaTP[$i]), 0, 0, 'L');
  }
}


##################################################################################


while (ob_get_length()) {
  ob_end_clean();
}


$pdf->Output(0, 'Informe_Certificado_Egreso_T.pdf', 0);
