<?php
##############################################################################################################
#        INFORME EGRESO 
#        Normales
#        Encabezado                                                                                                   
##############################################################################################################
#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 '../Conexion/ConexionPDO.php';
require_once('../numeros_a_letras.php');
session_start();
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
ob_start();
ini_set('max_execution_time', 0);
$meses = array('no', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');

switch ($conexion) {
  case 1:
    $rowComp = $con->Listar("SELECT
  compCnt.id_unico,
  compCnt.numero,
  compCnt.fecha,
  compCnt.descripcion,
  compCnt.tipocomprobante,
  tipCom.sigla,
  tipCom.nombre,
  compCnt.tercero,
  tiClaseC.nombre,
  compCnt.numerocontrato,
  CONCAT(ELT(
      WEEKDAY(compCnt.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,
  tl.valor Telefono,
  dir.direccion,
  tr.digitoverficacion, tipCom.comprobante_pptal 
FROM
  gf_comprobante_cnt compCnt
LEFT JOIN
  gf_tipo_comprobante tipCom ON compCnt.tipocomprobante = tipCom.id_unico
LEFT JOIN
  gf_clase_contrato tiClaseC ON compCnt.clasecontrato = tiClaseC.id_unico
LEFT JOIN
  gf_tercero tr ON compCnt.tercero = tr.id_unico
LEFT JOIN
  gf_telefono tl ON tr.id_unico = tl.tercero
LEFT JOIN
  gf_direccion dir ON tr.id_unico = dir.tercero
WHERE
  compCnt.id_unico = " . $_SESSION['idCompCnt']);
    break;
  case 2:
    $rowComp = $con->Listar("SELECT
  compCnt.id_unico,
  compCnt.numero,
  compCnt.fecha,
  compCnt.descripcion,
  compCnt.tipocomprobante,
  tipCom.sigla,
  tipCom.nombre,
  compCnt.tercero,
  tiClaseC.nombre AS nombre_clase_contrato,
  compCnt.numerocontrato,
  CASE
    WHEN TO_CHAR(compCnt.fecha, 'D') = '1' THEN 'Domingo'
    WHEN TO_CHAR(compCnt.fecha, 'D') = '2' THEN 'Lunes'
    WHEN TO_CHAR(compCnt.fecha, 'D') = '3' THEN 'Martes'
    WHEN TO_CHAR(compCnt.fecha, 'D') = '4' THEN 'Miércoles'
    WHEN TO_CHAR(compCnt.fecha, 'D') = '5' THEN 'Jueves'
    WHEN TO_CHAR(compCnt.fecha, 'D') = '6' THEN 'Viernes'
    WHEN TO_CHAR(compCnt.fecha, 'D') = '7' THEN 'Sábado'
  END AS DIA_SEMANA,
  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 NOMBRE,
  tr.numeroidentificacion,
  tl.valor AS Telefono,
  dir.direccion,
  tr.digitoverficacion,
  tipCom.comprobante_pptal
FROM
  gf_comprobante_cnt compCnt
LEFT JOIN
  gf_tipo_comprobante tipCom ON compCnt.tipocomprobante = tipCom.id_unico
LEFT JOIN
  gf_clase_contrato tiClaseC ON compCnt.clasecontrato = tiClaseC.id_unico
LEFT JOIN
  gf_tercero tr ON compCnt.tercero = tr.id_unico
LEFT JOIN
  gf_telefono tl ON tr.id_unico = tl.tercero
LEFT JOIN
  gf_direccion dir ON tr.id_unico = dir.tercero
WHERE
  compCnt.id_unico = " . $_SESSION['idCompCnt'] . "");
    break;
  default:
    # code...
    break;
}
// $comp = $mysqli->query($sqlComp);
// $rowComp = mysqli_fetch_array($comp);
$nomcomp = $rowComp[0][1]; //Número de comprobante      
$fechaComp = $rowComp[0][2]; //Fecha       
$descripcion = $rowComp[0][3]; //Descripción  
$tipocomprobante = $rowComp[0][4]; //id tipo comprobante  
$codigo = $rowComp[0][5]; //Código de tipo comprobante  
$nombreCompr = $rowComp[0][6]; //Nombre de tipo comprobante  
$claseContra = $rowComp[0][8];
$numroContra = $rowComp[0][9];
$diaF = $rowComp[0][10];
$idComp = $rowComp[0][0];

$razonSoc = $rowComp[0][11];
if (empty($rowComp[0][15])) {
  $nit = $rowComp[0][12];
} else {
  $nit = $rowComp[0][12] . ' - ' . $rowComp[0][15];
}
$tel = $rowComp[0][13];
$dir = $rowComp[0][14];
$tipocomprobantepptal = $rowComp[0][16];
$fechaComprobante = $rowComp[0][2]; //Fecha       
$fechaC = $rowComp[0][2];

$rowVTD = $con->Listar("SELECT SUM(valor) 
  FROM gf_detalle_comprobante dc 
  WHERE dc.comprobante = " . $_SESSION['idCompCnt'] . "");
// $valortotDet = $mysqli->query($sqlValorTot);
// $rowVTD = mysqli_fetch_array($valortotDet);
$totalValorDet = $rowVTD[0][0];

#Banco
$bc = $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.comprobante = doc.comprobantecnt
  WHERE detComp.comprobante = " . $_SESSION['idCompCnt'] . " AND cuen.clasecuenta = 11");
// $banc = $mysqli->query($sqlMovFina);
// $bc = mysqli_fetch_row($banc);
$banco = $bc[0][2];

$fecha_div = explode("-", $fechaComp);
$diaS = $fecha_div[2];
$mesS = $fecha_div[1];
$anioS = $fecha_div[0];

$fechaComp = $diaS . '/' . $mesS . '/' . $anioS;

$numpaginas = 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];
}

class PDF extends FPDF
{

  #Función de pie de pagina

  function Footer()
  {
    //require('../Conexion/ConexionPDO.php');
    global $con;

    global $usuario;
    // Posición: a 1,5 cm del final
    $this->SetY(-15);
    // Arial italic 8
    $this->SetFont('Arial', 'B', 8);
    // Número de página
    $dia = date('d');
    $mes = date('m');
    $anio = date('Y');
    $fecha = $dia . '/' . $mes . '/' . $anio;

    $this->Cell(40, 10, 'Elaborado por: ' . strtoupper($usuario), 0);
    // $this->Cell(35,10,'"DE LA MANO CON EL CAMPO"',0); //Slogan
    ####SLOGAN####
    $slog = $con->Listar("SELECT valor FROM gs_parametros_basicos WHERE LOWER(nombre)='slogan'");
    // $slog = $mysqli->query($slog);    
    // if (mysqli_num_rows($slog) > 0) {
    if (count($slog) > 0) {
      // $slog = mysqli_fetch_row($slog);
      $slog = $slog;
      $slog = ucwords(mb_strtolower($slog[0][0]));
      $y1 = $this->GetY();
      $x1 = $this->GetX();

      if (!empty($slog) || $slog != '') {
        $this->MultiCell(125, 5, utf8_decode('"' . mb_strtoupper($slog, 'utf-8') . '"'), 0, 'C'); //Slogan
      } else {
        $this->MultiCell(125, 5, utf8_decode(''), 0, 'C'); //Slogan
      }
      $y2 = $this->GetY();
      $alto_de_fila = $y2 - $y1;
      $posicionX = $x1 + 50;
      $this->SetXY($posicionX, $y1);
      $y5 = $this->GetY();
      $x4 = $this->GetX();
      $this->Cell(25);
      $this->Cell(0, 10, 'Pagina ' . $this->PageNo() . '/{nb}', 0, 0, 'R');
    } else {
      $this->Cell(25);
      $this->Cell(0, 10, 'Pagina ' . $this->PageNo() . '/{nb}', 0, 0, 'R');
    }
    ####FIN SLOGAN####
  }

  #Funcón cabeza de la página

  function Header()
  {
    //require('../Conexion/ConexionPDO.php');
   
    global $nomcomp;
   
    global $numpaginas1;
    $numpaginas1 = $this->PageNo();
   global $ruta;
    global $nombre_com;
    global $numICompañia;
    global $nombreCompr;

    // Logo acá

    $this->SetFont('Arial', 'B', 10);

    if ($ruta != '') {
      $this->Image('../' . $ruta, 10, 5, 25);
    }
    $this->SetFont('Arial', 'B', 12);
    $this->SetX(35);
    $this->MultiCell(160, 5, utf8_decode(mb_strtoupper($nombre_com)), 0, 'C');
    $this->Ln(1);
    $this->SetX(35);
    $this->Cell(160, 5, utf8_decode(('NIT:' . $numICompañia)), 0, 0, 'C');
    $this->Ln(5);
    $this->SetX(35);
    $this->Cell(160, 5, utf8_decode(mb_strtoupper($nombreCompr) . ' ' . 'No: ' . $nomcomp), 0, 0, 'C');
    $this->Ln(8);
  }
}

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

$pdf->SetFont('Arial', 'B', 10);
$usuario = $_SESSION['usuario'];
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(35, 6, utf8_decode('Fecha: '), 0, 0, 'L');
$pdf->Cell(155, 6, utf8_decode($fechaComp), 0, 0, 'L');
$pdf->Ln(5);
$pdf->Cell(35, 6, utf8_decode('Nombre: '), 0, 0, 'L');
$pdf->Multicell(155, 5, utf8_decode($razonSoc),  0, 'L');

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

$pdf->Cell(30, 6, utf8_decode('Teléfonos: '), 0, 0, 'L');
############TELEFONOS###########
$tel = $con->Listar("SELECT valor FROM gf_telefono WHERE tercero = $terceroCom");
// $tel = $mysqli->query($tel);
// if (mysqli_num_rows($tel) > 0) {
if (count($tel) > 0) {
  $telef = "";

  // while ($row = mysqli_fetch_row($tel)) {
  for ($row = 0; $row < count($tel); $row++) {
    $telef = $telef . " - " . $tel[$row][0];
  }
  $pdf->CellFitScale(65, 6, utf8_decode($telef), 0, 0, 'L');
} else {
  $pdf->Cell(65, 6, utf8_decode(''), 0, 0, 'L');
}
$pdf->Ln(5);
$pdf->Cell(35, 6, utf8_decode('Dirección: '), 0, 0, 'L');
##########DIRECCION###############

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 = $terceroCom");
    break;
  case 2:
    $dir = $con->Listar("SELECT d.direccion || '  ' || c.nombre AS direccion_ciudad
    FROM gf_direccion d
    LEFT JOIN gf_ciudad c ON c.id_unico = d.ciudad_direccion
    WHERE d.tercero = $terceroCom");
    break;
  default:
    break;
}
// $dir = $mysqli->query($dir);
// if (mysqli_num_rows($dir) > 0) {
if (count($dir) > 0) {
  $direc = "";

  // while ($rowD = mysqli_fetch_row($dir)) {
  for ($rowD = 0; $rowD < count($dir); $rowD++) {
    $direc = $direc . " - " . $dir[$rowD][0];
  }
  $pdf->MultiCell(160, 5, utf8_decode($direc), 0, 'J');
} else {
  $pdf->Cell(160, 6, utf8_decode(''), 0, 0, 'L');
  $pdf->Ln(5);
}

$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 =" . $_SESSION['idCompCnt'] . "");
// $resultO = $mysqli->query($sqlOrdenesP);
// $E = mysqli_num_rows($resultO);
$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][1] . '   N°:' . $resultO[$O][0];
  }
  $detalle = $resultO[$O][2];
  $idComp = $resultO[$O][3];
}


$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, 6, utf8_decode($descripcion), 0, 'L');
$pdf->Cell(35, 6, utf8_decode('Tipo de contrato: '), 0, 0, 'L');
$pdf->Cell(60, 6, utf8_decode($claseContra), 0, 0, 'L');
$pdf->Cell(30, 6, utf8_decode('No de contrato: '), 0, 0, 'L');
$pdf->Cell(65, 6, utf8_decode($numroContra), 0, 0, 'L');
$pdf->Ln(5);
$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 = " . $_SESSION['idCompCnt'] . " 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];
  $pdf->Cell(35, 5, 'Banco: ', 0, 'L');
  $pdf->CellFitScale(60, 5, utf8_decode(ucwords(mb_strtolower($banco))), 0, 'L');
  $pdf->Cell(30, 6, utf8_decode('No Cheque :'), 0, 0, 'L');
  $numCheque = $banc[$bc][3];
  $pdf->Cell(15, 6, utf8_decode($numCheque), 0, 0, 'L');
  $pdf->Ln(5);
}

$pdf->SetFont('Arial', 'B', 10, 'C');
$detalle = $con->Listar("SELECT DISTINCT
  cpop.numero,
  cpr.numero,
  cpd.numero,
  dc.valor,
  rpptal.codi_presupuesto,
  rpptal.nombre, 
  f.id_unico, 
  f.nombre, dcpcx.id_unico 
FROM gf_comprobante_pptal cn
LEFT JOIN gf_detalle_comprobante_pptal dc ON cn.id_unico = dc.comprobantepptal 
LEFT JOIN gf_detalle_comprobante_pptal dcpcx ON dc.comprobanteafectado = dcpcx.id_unico
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 cn.id_unico=" . $_SESSION['id_comp_pptal_GE'] . "");
// $detalle = $mysqli->query($sqlDetallPptal);

$pptal = $_SESSION['id_comp_pptal_GE'];
$date = $conexion == 1 ? "DATE_FORMAT(fecha_elaboracion,'%d/%m%/%Y')" : "TO_CHAR(fecha_elaboracion,'DD/MM/YYYY')";
// $pp = $con->Listar("SELECT fechavencimiento ,  UPPER(usuario), DATE_FORMAT(fecha_elaboracion,'%d/%m%/%Y') FROM gf_comprobante_pptal WHERE id_unico = $pptal");
$pp = $con->Listar("SELECT fechavencimiento , UPPER(usuario), $date FROM gf_comprobante_pptal WHERE id_unico = $pptal");
// $pp = $mysqli->query($pp);
// if (mysqli_num_rows($pp) > 0) {
if (count($pp) > 0) {
  $pp = $pp;
  $ppf = $pp[0][0];
  $div = explode("-", $ppf);
  $anno = $div[0][0];
  $usuario = $pp[0][1];
  $fechaElab = $pp[0][2];
} else {
  $anno = '';
  $usuario = $_SESSION['user'];
  $fechaElab = date('d/m/Y');
}
$pdf->Cell(190, 5, utf8_decode('VIGENCIA PRESUPUESTAL ' . $anno), 1, 0, 'C');

$pdf->Ln(5);
$pdf->SetFont('Arial', 'B', 9, 'C');
$y1 = $pdf->GetY();
$x1 = $pdf->GetX();
$pdf->MultiCell(25, 5, utf8_decode("Disponibilidad  Presupuestal"), 1, 'C');
$y2 = $pdf->GetY();
$h = $y2 - $y1;
$px = $x1 + 25;
$pdf->SetXY($px, $y1);
$y11 = $pdf->GetY();
$x11 = $pdf->GetX();
$pdf->MultiCell(25, 5, utf8_decode("Registro  Presupuestal"), 1, 'C');
$y21 = $pdf->GetY();
$h1 = $y21 - $y11;
$px1 = $x11 + 25;
$pdf->SetXY($px1, $y11);
$alt = max($h, $h1);

$pdf->CellFitScale(45, $alt, utf8_decode('Código'), 1, 0, 'C');
$pdf->Cell(65, $alt, utf8_decode('Rubro Fuente'), 1, 0, 'C');
$pdf->Cell(30, $alt, utf8_decode('Valor'), 1, 0, 'C');
$pdf->Ln($alt);
$pdf->SetFont('Arial', '', 9);
$totalValor = 0;

// while ($rowG = mysqli_fetch_array($detalle)) {
for ($rowG = 0; $rowG < count($detalle); $rowG++) {
  $paginactual = $pdf->PageNo();
  $valor = 0;
  if (empty($detalle[$rowG][2])) {
    $numComPtalDisponibilidad = $detalle[$rowG][1];
    $numComPtalRegistro = $detalle[$rowG][0];
  } else {
    $numComPtalDisponibilidad = $detalle[$rowG][2];
    $numComPtalRegistro = $detalle[$rowG][1];
  }
  $nombreCuenta = mb_strtolower($detalle[$rowG][5] . ' - ' . $detalle[$rowG][6] . ' ' . $detalle[$rowG][7], 'utf-8');
  $nombreCuenta = ucwords($nombreCuenta);


  $y1 = $pdf->GetY();
  $x1 = $pdf->GetX();
  $pdf->Cell(95, 5, ' ', 0, 0, 'L');
  $pdf->MultiCell(65, 5, utf8_decode($nombreCuenta), 1, 'J');
  $y2 = $pdf->GetY();
  $h = $y2 - $y1;
  $px = $x1 + 65;

  $pdf->SetXY($x1, $y1);
  $pdf->Cell(25, $h, $numComPtalDisponibilidad, 1, 0, 'L');
  $pdf->Cell(25, $h, $numComPtalRegistro, 1, 0, 'L');
  $pdf->Cell(45, $h, $rowG[4], 1, 0, 'L');

  $xx = $pdf->GetX();
  $pdf->SetX($xx + 65);
  $valor = $rowG[3];
  $pdf->Cell(30, $h, number_format($valor, 2, '.', ','), 1, 0, 'R');
  $totalValor += $valor;
  $pdf->Ln($h);
  $altY = $pdf->GetY();
  if ($altY > 240) {
    $pdf->AddPage();
    $paginactual = $pdf->PageNo();
    $pdf->Ln(5);
  }
}
$x = $pdf->GetX();
$pdf->SetX($x);
$pdf->Cell(160, 5, 'Total:', 0, 0, 'R'); //Total
$pdf->Cell(30, 5, number_format($totalValor, 2, '.', ','), 0, 0, 'R');


$pdf->Cell(160, 5, 'Total:', 0, 0, 'R'); //Total
$pdf->Cell(30, 5, number_format($totalValor, 2, '.', ','), 0, 0, 'R'); //Valor total Sí.

$pdf->Ln(6);
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(190, 5, 'MOVIMIENTO FINANCIERO Y 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 = " . $_SESSION['idCompCnt'] . "");
    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,
    TRIM(tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos || ' ' || 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 = " . $_SESSION['idCompCnt'] . "");
    break;
  default:
    break;
}
// $movimientoFinanciero = $mysqli->query($sqlMovFina);

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

// while ($rowMF = mysqli_fetch_array($movimientoFinanciero)) {
for ($rowMF = 0; $rowMF < count($movimientoFinanciero); $rowMF++) {

  $debito = 0;
  $credito = 0;
  $nombCuen = mb_strtolower($movimientoFinanciero[$rowMF][2], 'utf-8');
  $nombCuen = ucwords($nombCuen);
  $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];
  }
  if (strlen($nombCuen) > 35 || strlen($centroCost) > 35) {
    $altY = $pdf->GetY();
    if ($altY > 310) {
      $pdf->AddPage();
      $paginactual = $pdf->PageNo();
      $paginactual2 = $pdf->PageNo();
      $pdf->Ln(5);
    }
  }
  $xinicio = $pdf->GetX();
  $yinicio = $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, 5, 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);
  #Salto de línea
  $pdf->Ln($max);
  $pdf->SetXY($xinicio, $yinicio);
  $pdf->Cell(25, $max, utf8_decode(''), 1, 0, 'L');
  $pdf->Cell(60, $max, utf8_decode(''), 1, 0, 'L');
  $pdf->Cell(55, $max, utf8_decode(''), 1, 0, 'L');
  $pdf->Cell(25, $max, utf8_decode(''), 1, 0, 'L');
  $pdf->Cell(25, $max, utf8_decode(''), 1, 0, 'L');
  $pdf->Ln($max);
  $totalDebito += $debito;
  $totalCredito += $credito;
  $altY = $pdf->GetY();
  if ($altY > 235) {
    $pdf->AddPage();
    $paginactual = $pdf->PageNo();
    $pdf->Ln(5);
  }
}

$pdf->Ln(3);

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

#########################################RETENCIONES#############################################################
#VALIDAR SI LA RETENCION SE APLICA EN EL EGRESO O EN LA CUENTA POR PAGAR
$ret = $con->Listar("SELECT retencion FROM gf_tipo_comprobante WHERE id_unico =$tipocomprobante");
// $ret = $mysqli->query($ret);
// $ret = mysqli_fetch_row($ret);
$retencion = $ret[0][0];

if ($retencion == 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=" . $_SESSION['idCompCnt'] . "");
} else {
  $ID = $con->Listar("SELECT DISTINCT dc.comprobante FROM  gf_detalle_comprobante dc 
    LEFT JOIN gf_detalle_comprobante_pptal dcp ON dcp.id_unico = dc.detallecomprobantepptal 
    where dcp.comprobantepptal = $idComp and dc.detalleafectado IS NULL");
  // $ID = $mysqli->query($ID);
  // if (mysqli_num_rows($ID) > 0) {
  if (count($ID) > 0) {
    // $idc = mysqli_fetch_row($ID);
    $idc = $ID;
    $idc = $idc[0][0];
  } else {
    $ID = $con->Listar("SELECT DISTINCT dca.comprobante FROM gf_detalle_comprobante_pptal dcp 
                        LEFT JOIN gf_detalle_comprobante_pptal dcpcnt ON dcpcnt.id_unico = dcp.comprobanteafectado 
                        LEFT JOIN gf_detalle_comprobante dca ON dcpcnt.id_unico = dca.detallecomprobantepptal
                        WHERE dcp.comprobantepptal=" . $_SESSION['id_comp_pptal_GE'] . "");
    // $ID = $mysqli->query($ID);
    // if (mysqli_num_rows($ID) > 0) {
    if (count($ID) > 0) {
      // $idc = mysqli_fetch_row($ID);
      $idc = $ID;
      $idc = $idc[0][0];
    } else {
      $idc = 0;
    }
  }
  $resultR = "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=$idc";
}
// $resultR = $mysqli->query($sqlR);
$valorR = 0;
// if (mysqli_num_rows($resultR)) {
if (count($resultR)) {
  $altY = $pdf->GetY();
  if ($altY > 300) {
    $pdf->AddPage();
    $paginactual = $pdf->PageNo();
    $paginactual2 = $pdf->PageNo();
    $pdf->Ln(5);
  }
  $pdf->SetFont('Arial', 'B', 10);
  $pdf->Cell(190, 5, utf8_decode(' RETENCIÓN Y DESCUENTOS'), 1, 0, 'C');
  $pdf->Ln(5);
  $pdf->Cell(100, 5, utf8_decode('Tipo Retención'), 1, 0, 'C');
  $pdf->Cell(30, 5, utf8_decode('Porcentaje'), 1, 0, 'C');
  $pdf->Cell(30, 5, utf8_decode('Valor Retención'), 1, 0, 'C');
  $pdf->Cell(30, 5, utf8_decode('Retención Base'), 1, 0, 'C');
  $pdf->Ln(5);
  $pdf->SetFont('Arial', 'B', 10);
  // while ($f = mysqli_fetch_row($resultR)) {
  for ($f = 0; $f < count($resultR); $f++) {
    $tipo = utf8_decode($resultR[$f][0]);
    if (strlen($tipo) > 45) {
      $altY = $pdf->GetY();
      if ($altY > 300) {
        $pdf->AddPage();
        $paginactual = $pdf->PageNo();
        $paginactual2 = $pdf->PageNo();
        $pdf->Ln(5);
      }
    }
    $pdf->SetFont('Arial', '', 10);
    $y1 = $pdf->GetY();
    $x1 = $pdf->GetX();
    $pdf->Multicell(100, 5, ($tipo), 0, 'L');
    $y2 = $pdf->GetY();
    $alto_de_fila = $y2 - $y1;
    $posicionX = $x1 + 100;
    $pdf->SetXY($posicionX, $y1);
    $pdf->Cell(30, 5, utf8_decode($resultR[$f][1]), 0, 0, 'R');
    $pdf->Cell(30, 5, number_format($resultR[$f][2], 2, '.', ','), 0, 0, 'R');
    $pdf->Cell(30, 5, number_format($resultR[$f][3], 2, '.', ','), 0, 0, 'R');
    $pdf->Ln($alto_de_fila);
    $valorR = $f[2];
    $altY = $pdf->GetY();
    if ($altY > 250) {
      $pdf->AddPage();
      $paginactual = $pdf->PageNo();
      $paginactual2 = $pdf->PageNo();
      $pdf->Ln(5);
    }
  }
  $pdf->Ln(5);
}

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

$fecha_div = explode("/", $fechaComp);
$diaS = $fecha_div[0];
$mesS = $fecha_div[1];
$mesS = (int) $mesS;
$anioS = $fecha_div[2];
$pdf->SetFont('Arial', 'B', 10);

#*******************Firmas*******************#
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_pptal 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 = $tipocomprobantepptal
    AND tipRel.nombre = 'Firma' ORDER BY rd.ORDEN ASC");
    break;
  case 2:
    $tipComp = $con->Listar("SELECT 
    TRIM(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_pptal 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 = $tipocomprobantepptal
    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] && $fechaComprobante >= $tipComp[$rowTipComp][4]) {
      $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(60, 40, '', 1, 0, 'C');
}

$pdf->Ln(24);
for ($i = 0; $i <= $numFirmas; $i++) {
  $pdf->Cell(1, 0, '', 0, 0, 'L');
  $pdf->Cell(55, 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(60, 5, utf8_decode($firmaNom[$i]), 0, 0, 'L');
  } else {
    $pdf->CellFitScale(60, 5, utf8_decode($firmaNom[$i]), 0, 0, 'L');
  }
}


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

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

ob_end_clean();
$pdf->Output(0, 'Informe_Certificado_Egreso (' . $nomcomp . ').pdf', 0);
