<?php
##################################################################################################################################################################
#                                                                                                                           Modificaciones
##################################################################################################################################################################
#25/08/2017 |Erica G. | Logo, firmas
####################### Modificaciones #########################################
# 21/04/2017 | Erica G.| CAMBIAR TERCERO POR TERCERO DEL DETALLE
# 06/04/2017 |Erica G | VERIFICACION CONSULTAS
# 13/03/2017 |ERICA G | AÑADIR CAMPO NUMERO COMPROBANTE
# 06/03/2017 |ERICA G | ARREGLO CONSULTAS FECHA COMPROBNTE 
# 03/03/2017 |Erica G //Arreglo de consultas
# 12:00 | 11/02/2017 | Erica G //Arreglo de consultas
# 03:50 | 10/02/2017 | Erica G
# 10:40 | 10/02/2017 | Jhon Numpaque
# Se incluyo salto de pagina para tercero y descripción    
require '../fpdf/fpdf.php';
require '../Conexion/conexion.php';
require_once '../Conexion/ConexionPDO.php';
session_start();
ob_start();
ini_set('max_execution_time', 0);
$parmanno = $_SESSION['anno'];
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
?>

<?php


$compini        = $_REQUEST["sltTci"];
$compfin        = $_REQUEST["sltTcf"];
$fechaini       = $_REQUEST["fechaini"];
$fechafin       = $_REQUEST["fechafin"];
$cuentaini      = $_REQUEST["sltctai"];
$cuentafin      = $_REQUEST["sltctaf"];


#Conversión Fecha para Cabecera
$fecha1 = $fechaini;
$fecha1 = trim($fecha1, '"');
$fecha_div = explode("/", $fecha1);
$dia1 = $fecha_div[0];
$mes1 = $fecha_div[1];
$anio1 = $fecha_div[2];
$fecha1 = $dia1 . '/' . $mes1 . '/' . $anio1;

$fecha2 = $fechafin;
$fecha2 = trim($fecha2, '"');
$fecha_div = explode("/", $fecha2);
$dia2 = $fecha_div[0];
$mes2 = $fecha_div[1];
$anio2 = $fecha_div[2];
$fecha2 = $dia2 . '/' . $mes2 . '/' . $anio2;



#Fecha Previa - Comienzo
$fechaP     = $fechaini;
$fechaP     = trim($fechaP, '"');
$fecha_div  = explode("/", $fechaP);
$dia      = $fecha_div[0];
$mes        = $fecha_div[1];
$anio        = $fecha_div[2];
$diaA       = intval($dia);
$diaAnt     = $diaA - 1;
#Rutina para obtener la fecha del día anterior
if ($diaAnt < 1) {
    switch ($mes) {
        case 1:
            $mes = 1;
            $diaAnt = 01;
            break;
        case 2:
            $mes = $mes - 1;
            $diaAnt = 31;
            break;
        case 3:
            $mes = $mes - 1;
            $diaAnt = 29;
            break;
        case 4:
            $mes = $mes - 1;
            $diaAnt = 31;
            break;
        case 5:
            $mes = $mes - 1;
            $diaAnt = 30;
            break;
        case 6:
            $mes = $mes - 1;
            $diaAnt = 31;
            break;
        case 7:
            $mes = $mes - 1;
            $diaAnt = 30;
            break;
        case 8:
            $mes = $mes - 1;
            $diaAnt = 31;
            break;
        case 9:
            $mes = $mes - 1;
            $diaAnt = 31;
            break;
        case 10:
            $mes = $mes - 1;
            $diaAnt = 30;
            break;
        case 11:
            $mes = $mes - 1;
            $diaAnt = 31;
            break;
        case 12:
            $mes = $mes - 1;
            $diaAnt = 30;
            break;
    }
    $fechaP = $anio . '-' . $mes . '-' . $diaAnt;
}
#Fin Rutina para obtener la fecha previa*/
if ($diaAnt < 10) {
    $diaAnt = '0' . $diaAnt;
}
$fechaP = $anio . '-' . $mes . '-' . $diaAnt;


//Fin Conversión Fecha / Hora
$hoy = date('d-m-Y');
$hoy = trim($hoy, '"');
$fecha_div = explode("-", $hoy);
$anioh = $fecha_div[2];
$mesh = $fecha_div[1];
$diah = $fecha_div[0];
$hoy = $diah . '/' . $mesh . '/' . $anioh;

class PDF extends FPDF
{
    // Cabecera de página  
    function Header()
    {
        // Logo
        //$this->Image('logo_pb.png',10,8,33);
        //Arial bold 15
        global $nomcomp;
        global $tipodoc;
        global $numdoc;
        global $comp1;
        global $comp2;
        global $compMin;
        global $compMax;
        global $fecha1;
        global $fecha2;
        global $cuenta1;
        global $cuenta2;
        global $cuentaMin;
        global $cuentaMax;
        global $numpaginas;
        global $ruta;
        $numpaginas = $numpaginas + 1;

        $this->SetFont('Arial', 'B', 10);
        //$this->Ln(1);
        // Título
        $this->SetY(10);
        if ($ruta != '') {
            $this->Image('../' . $ruta, 60, 6, 20);
        }
        $this->SetX(25);
        $this->Cell(315, 5, utf8_decode($nomcomp), 0, 0, 'C');
        // Salto de línea
        $this->setX(25);
        $this->SetFont('Arial', 'B', 8);
        $this->Cell(315, 10, utf8_decode('CÓDIGO SGC'), 0, 0, 'R');

        $this->Ln(5);

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

        $this->Ln(5);

        $this->SetFont('Arial', '', 8);
        $this->SetX(25);
        $this->Cell(315, 5, utf8_decode('AUXILIAR CONTABLE'), 0, 0, 'C');
        $this->SetFont('Arial', 'B', 8);
        $this->SetX(25);
        $this->Cell(315, 10, utf8_decode('FECHA SGC'), 0, 0, 'R');

        $this->Ln(3);

        $this->SetFont('Arial', '', 7);
        $this->SetX(25);
        $this->Cell(315, 5, utf8_decode('Comprobantes ' . $comp1 . ' y ' . $comp2), 0, 0, 'C');

        $this->Ln(3);

        $this->SetFont('Arial', '', 7);
        $this->SetX(25);
        $this->Cell(315, 5, utf8_decode('entre Fechas ' . $fecha1 . ' y ' . $fecha2), 0, 0, 'C');

        $this->Ln(3);

        $this->SetFont('Arial', '', 7);
        $this->SetX(25);
        $this->Cell(315, 5, utf8_decode('y Cuentas ' . $cuentaMin . ' a ' . $cuentaMax), 0, 0, 'C');

        $this->Ln(5);

        $this->SetX(20);

        $this->Cell(15, 9, utf8_decode(''), 1, 0, 'C');
        $this->Cell(17, 9, utf8_decode(''), 1, 0, 'C');
        $this->Cell(30, 9, utf8_decode(''), 1, 0, 'C');
        $this->Cell(30, 9, utf8_decode(''), 1, 0, 'C');
        $this->Cell(65, 9, utf8_decode('Nombre del Tercero'), 1, 0, 'C');
        $this->Cell(70, 9, utf8_decode('Descripción'), 1, 0, 'C');
        $this->Cell(32, 9, utf8_decode(''), 1, 0, 'C');
        $this->Cell(32, 9, utf8_decode(''), 1, 0, 'C');
        $this->Cell(32, 9, utf8_decode(''), 1, 0, 'C');

        $this->SetX(20);

        $this->Cell(15, 9, utf8_decode('Fecha'), 0, 0, 'C');
        $this->Cell(17, 6, utf8_decode('Tipo'), 0, 0, 'C');
        $this->Cell(30, 6, utf8_decode('Número'), 0, 0, 'C');
        $this->Cell(30, 6, utf8_decode('Centro'), 0, 0, 'C');
        $this->Cell(60, 6, utf8_decode(''), 0, 0, 'C');
        $this->Cell(70, 9, utf8_decode(''), 0, 0, 'C');
        $this->Cell(32, 9, utf8_decode('Valor Débito'), 0, 0, 'C');
        $this->Cell(32, 9, utf8_decode('Valor Crédito'), 0, 0, 'C');
        $this->Cell(32, 9, utf8_decode('Saldo'), 0, 0, 'C');

        $this->Ln(4);

        $this->SetX(20);

        $this->Cell(15, 4, utf8_decode(''), 0, 0, 'C');
        $this->Cell(17, 4, utf8_decode('Comprobante'), 0, 0, 'C');
        $this->Cell(30, 4, utf8_decode('Comprobante'), 0, 0, 'C');
        $this->Cell(30, 4, utf8_decode('de Costo'), 0, 0, 'C');
        $this->Cell(60, 4, utf8_decode(''), 0, 0, 'C');
        $this->Cell(70, 4, utf8_decode(''), 0, 0, 'C');
        $this->Cell(32, 4, utf8_decode(''), 0, 0, 'C');
        $this->Cell(32, 4, utf8_decode(''), 0, 0, 'C');
        $this->Cell(32, 4, utf8_decode(''), 0, 0, 'C');

        $this->Ln(6);
    }

    // Pie de página
    function Footer()
    {
        // Posición: a 1,5 cm del final
        global $hoy;
        global $usuario;
        $this->SetY(-15);
        // Arial italic 8
        $this->SetFont('Arial', 'B', 8);
        $this->SetX(10);
        $this->Cell(90, 10, utf8_decode('Fecha: ' . $hoy), 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');


$compuno = $compini;
$compdos = $compfin;
$fechauno = $fechaini;
$fechados = $fechafin;
$cuentauno = $cuentaini;
$cuentados = $cuentafin;


$compania = $_SESSION['compania'];
$usuario = $_SESSION['usuario'];

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

#Consulta Minimo Comprobante
#$compMin = 0;
$mincomp = $con->Listar("SELECT  tc.id_unico,
            tc.nombre
            FROM gf_tipo_comprobante tc 
            WHERE tc.sigla = '$compini'");
// $mincomp = $mysqli->query($comp1);
// while ($filamin = mysqli_fetch_array($mincomp)) {
for ($filamin = 0; $filamin < count($mincomp); $filamin++) {
    $compMin = $mincomp[$filamin][1];
}
#Fin Consulta Minimo Comprobante
$comp1 = $compMin;
#Consulta Maximo Comprobante
#$compmax = 0;
$maxcomp = $con->Listar("SELECT tc.id_unico, tc.nombre
FROM  gf_tipo_comprobante tc 
WHERE tc.sigla = '$compfin'");
// $maxcomp = $mysqli->query($comp2);
// while ($filamax = mysqli_fetch_array($maxcomp)) {
for ($filamax = 0; $filamax < count($maxcomp); $filamax++) {
    $compMax = $maxcomp[$filamax][1];
}
#Fin Consulta Maximo Comprobante
$comp2 = $compMax;

$mincta = "";
$maxcta = "";
#Consulta Mínima Cuenta
$mincta = $con->Listar("SELECT codi_cuenta from gf_cuenta WHERE id_unico = $cuentaini");
// $mincta = $mysqli->query($cta1);

// while ($filac1 = mysqli_fetch_array($mincta)) {
for ($filac1 = 0; $filac1 < count($mincta); $filac1++) {
    $cuentaMin = $mincta[$filac1][0];
}
#Fin Consulta Mínima Cuenta
$cuenta1 = $cuentaMin;
#Inicio consulta Máxima Cuenta
$maxcta = $con->Listar("SELECT codi_cuenta from gf_cuenta WHERE id_unico = $cuentafin");
// $maxcta = $mysqli->query($cta2);
// while ($filac2 = mysqli_fetch_array($maxcta)) {
for ($filac2 = 0; $filac2 < count($maxcta); $filac2++) {
    $cuentaMax = $maxcta[$filac2][0];
}
#Fin Consulta Maxima Cuenta
$cuenta2 = $cuentaMax;

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

$nb = $pdf->AliasNbPages();

#Consulta Cuentas
switch ($conexion) {
    case 1:
        $ccuentas = $con->Listar("SELECT DISTINCT COUNT(id_unico) as tctas, codi_cuenta 
    from gf_cuenta WHERE codi_cuenta 
    BETWEEN '$cuentaMin' AND '$cuentaMax' ORDER BY codi_cuenta ASC");
        break;
    case 2:
        $ccuentas = $con->Listar("SELECT COUNT(id_unico) AS tctas, codi_cuenta
        FROM gf_cuenta
        WHERE codi_cuenta BETWEEN '$cuentaMin' AND '$cuentaMax'
        GROUP BY codi_cuenta
        ORDER BY codi_cuenta ASC");
        break;
    default:
        # code...
        break;
}

// $ccuentas = $mysqli->query($sql3);

// while ($filactas = mysqli_fetch_array($ccuentas)) {
for ($filactas = 0; $filactas < count($ccuentas); $filactas++) {
    // $numctas = $filactas['tctas'];
    $numctas = $ccuentas[$filactas][0];
}


$pdf->AddPage();
$pdf->AliasNbPages();
$pdf->SetFont('Arial', 'B', 10);

$pdf->SetFont('Arial', '', 8);
$pdf->SetX(25);

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

#Variables de valor de naturaleza
$debito = "";
$credito = "";
$totaldeb = 0.00;
$totalcred = 0.00;

$saldoT = 0;
$saldoTT = 0;
$cnt = 0;
$cuenta = $con->Listar("SELECT DISTINCT cuenta FROM gf_detalle_comprobante dc 
    LEFT JOIN gf_cuenta c ON dc.cuenta= c.id_unico 
    LEFT JOIN gf_comprobante_cnt cn ON dc.comprobante = cn.id_unico 
    WHERE cn.parametrizacionanno = $parmanno AND dc.valor IS NOT NULL AND c.codi_cuenta 
    BETWEEN '$cuentaMin' AND '$cuentaMax' 
    ORDER BY c.codi_cuenta ASC");
// $cuenta = $mysqli->query($cuentas);
$yp = $pdf->GetY();

$totaldebT = 0;
$totalcredT = 0;
// while ($filacuenta = mysqli_fetch_array($cuenta)) {
for ($filacuenta = 0; $filacuenta < count($cuenta); $filacuenta++) {
    $cuent = $cuenta[$filacuenta][0];
    $cnt = $cuent;
    #####################################################Consulta Principal
    #############Código cuenta actual#####################################    
    $codcuen = $con->Listar("SELECT codi_cuenta, nombre FROM gf_cuenta WHERE id_unico = '$cnt'");
    // $codcuen = $mysqli->query($idcuen);
    // while ($filacuen = mysqli_fetch_array($codcuen)) {
    for ($filacuen = 0; $filacuen < count($codcuen); $filacuen++) {
        $codicuenta = $codcuen[$filacuen][0] . ' - ' . ucwords(mb_strtolower($codcuen[$filacuen][1]));
    }
    ##########################Fin Código Cuenta Actual###################

    ########################Consulta Principal################################################# 

    $fecha11 = trim($fechaini, '"');
    $fecha_div1 = explode("/", $fecha11);
    $dia11 = $fecha_div1[0];
    $mes11 = $fecha_div1[1];
    $anio11 = $fecha_div1[2];
    $fechaini1 = $anio11 . '/' . $mes11 . '/' . $dia11;
    $fecha12 = trim($fechafin, '"');
    $fecha_div2 = explode("/", $fecha12);
    $dia12 = $fecha_div2[0];
    $mes12 = $fecha_div2[1];
    $anio12 = $fecha_div2[2];
    $fechafin1 = $anio12 . '/' . $mes12 . '/' . $dia12;
    switch ($conexion) {
        case 1:
            $cp = $con->Listar("SELECT DISTINCT
        cn.id_unico             as cnid,
        cta.naturaleza          as natcta,
        dc.valor                as dcvalor,
        cn.tipocomprobante      as cntcom,
        cn.numero               as cnnum,
        cn.tercero              as cnter, 
        tr.id_unico             as trid,
        tr.nombreuno            as trnom1,
        tr.nombredos            as trnom2,
        tr.apellidouno          as trape1,
        tr.apellidodos          as trape2,
        tr.razonsocial          as trsoc,
        ti.nombre               as tinom,
        tr.numeroidentificacion as trnum,
        ct.id_unico             as ctid,
        ct.sigla               as ctnom,
        cc.id_unico             as ccid,
        cc.nombre               as ccnom,
        cn.numerocontrato       as cnnumcont,
        ec.nombre               as ecnom,
        cn.descripcion          as cndesc,
        dc.comprobante          as dccomp,
        dc.centrocosto          as dccos,
        cn.fecha                as dcfec,
        cen.id_unico            as cencid,
        cen.nombre              as cennom,
        cta.codi_cuenta         as nomcta,        
        dc.cuenta               as dcuenta,
        cn.fecha                as cnfec, 
        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 , 
        dc.id_unico 
        FROM gf_comprobante_cnt cn
        LEFT JOIN gf_tipo_comprobante ct        ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_tipo_comprobante nom       ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_clase_contrato cc          ON cn.clasecontrato = cc.id_unico
        LEFT JOIN gf_estado_comprobante_cnt ec  ON cn.estado = ec.id_unico 
        LEFT JOIN gf_detalle_comprobante dc     ON cn.id_unico = dc.comprobante
        LEFT JOIN gf_tercero tr                 ON dc.tercero = tr.id_unico
        LEFT JOIN gf_tipo_identificacion ti     ON tr.tipoidentificacion = ti.id_unico
        LEFT JOIN gf_centro_costo cen           ON dc.centrocosto = cen.id_unico
        LEFT JOIN gf_cuenta cta                 ON cta.id_unico = dc.cuenta
        WHERE dc.valor IS NOT NULL AND dc.cuenta = '$cnt'
        AND cn.fecha BETWEEN '$fechaini1' AND '$fechafin1'
        AND ct.sigla BETWEEN '$compini' AND '$compfin' AND ct.clasecontable != 5 
        AND cn.parametrizacionanno = $parmanno AND cta.parametrizacionanno = $parmanno 
        ORDER BY cn.fecha ASC");

            break;
        case 2:
            $cp = $con->Listar("SELECT DISTINCT
            cn.id_unico AS cnid,
            cta.naturaleza AS natcta,
            dc.valor AS dcvalor,
            cn.tipocomprobante AS cntcom,
            cn.numero AS cnnum,
            cn.tercero AS cnter,
            tr.id_unico AS trid,
            tr.nombreuno AS trnom1,
            tr.nombredos AS trnom2,
            tr.apellidouno AS trape1,
            tr.apellidodos AS trape2,
            tr.razonsocial AS trsoc,
            ti.nombre AS tinom,
            tr.numeroidentificacion AS trnum,
            ct.id_unico AS ctid,
            ct.sigla AS ctnom,
            cc.id_unico AS ccid,
            cc.nombre AS ccnom,
            cn.numerocontrato AS cnnumcont,
            ec.nombre AS ecnom,
            cn.descripcion AS cndesc,
            dc.comprobante AS dccomp,
            dc.centrocosto AS dccos,
            cn.fecha AS dcfec,
            cen.id_unico AS cencid,
            cen.nombre AS cennom,
            cta.codi_cuenta AS nomcta,           
            dc.cuenta AS dcuenta,
            cn.fecha AS cnfec,
            CASE WHEN (tr.nombreuno IS NULL OR tr.nombredos IS NULL OR tr.apellidouno IS NULL OR tr.apellidodos IS NULL
            OR (tr.nombreuno = '' AND tr.nombredos = '' AND tr.apellidouno = '' AND tr.apellidodos = ''))
            THEN (tr.razonsocial)
            ELSE (tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos)
            END AS NOMBRE,
            dc.id_unico
            FROM gf_comprobante_cnt cn
            LEFT JOIN gf_tipo_comprobante ct ON cn.tipocomprobante = ct.id_unico
            LEFT JOIN gf_tipo_comprobante nom ON cn.tipocomprobante = nom.id_unico
            LEFT JOIN gf_clase_contrato cc ON cn.clasecontrato = cc.id_unico
            LEFT JOIN gf_estado_comprobante_cnt ec ON cn.estado = ec.id_unico
            LEFT JOIN gf_detalle_comprobante dc ON cn.id_unico = dc.comprobante
            LEFT JOIN gf_tercero tr ON dc.tercero = tr.id_unico
            LEFT JOIN gf_tipo_identificacion ti ON tr.tipoidentificacion = ti.id_unico
            LEFT JOIN gf_centro_costo cen ON dc.centrocosto = cen.id_unico
            LEFT JOIN gf_cuenta cta ON cta.id_unico = dc.cuenta
            WHERE dc.valor IS NOT NULL AND dc.cuenta = '$cnt'
            AND cn.fecha BETWEEN '$fechaini1' AND '$fechafin1'
            AND ct.sigla BETWEEN '$compini' AND '$compfin' AND ct.clasecontable != 5
            AND cn.parametrizacionanno = $parmanno AND cta.parametrizacionanno = $parmanno
            ORDER BY cn.fecha ASC");
            break;
        default:

            break;
    }

    // $cp      = $mysqli->query($sql);
    ###########################################Fin Consulta Principal################################# 
    #Consulta Secundaria
    $a = $_SESSION['anno'];
    $anno = $con->Listar("SELECT anno FROM gf_parametrizacion_anno WHERE id_unico = $a");
    // $anno = $mysqli->query($anno);
    if (count($anno) > 0) {
        $anno = $anno;
        $anno = $anno[0][0];
    } else {
        $anno = date('Y');
    }

    if ($fechaini1 != $anno . '/01/01') {
        switch ($conexion) {
            case 1:
                $csaldo = $con->Listar("SELECT DISTINCT
        cn.id_unico             as cnid, 
        cta.naturaleza          as natcta,
        dc.valor                as dcvalor,                                               
        cn.tipocomprobante      as cntcom,
        cn.numero               as cnnum,
        cn.tercero              as cnter, 
        tr.id_unico             as trid,
        tr.nombreuno            as trnom1,
        tr.nombredos            as trnom2,
        tr.apellidouno          as trape1,
        tr.apellidodos          as trape2,
        tr.razonsocial          as trsoc,
        ti.nombre               as tinom,
        tr.numeroidentificacion as trnum,
        ct.id_unico             as ctid,
        ct.sigla                as ctnom,
        cc.id_unico             as ccid,
        cc.nombre               as ccnom,
        cn.numerocontrato       as cnnumcont,
        ec.nombre               as ecnom,
        cn.descripcion          as cndesc,
        dc.comprobante          as dccomp,
        dc.centrocosto          as dccos,
        dc.fecha                as dcfec,
        cen.id_unico            as cencid,
        cen.nombre              as cennom,
        cta.codi_cuenta         as nomcta,       
        dc.cuenta               as dcuenta,
        dc.fecha                as cnfec, 
        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, dc.id_unico  
        FROM gf_comprobante_cnt cn
        LEFT JOIN gf_tipo_comprobante ct        ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_tipo_comprobante nom       ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_clase_contrato cc          ON cn.clasecontrato = cc.id_unico
        LEFT JOIN gf_estado_comprobante_cnt ec  ON cn.estado = ec.id_unico 
        LEFT JOIN gf_detalle_comprobante dc     ON cn.id_unico = dc.comprobante
        LEFT JOIN gf_tercero tr                 ON dc.tercero = tr.id_unico
        LEFT JOIN gf_tipo_identificacion ti     ON tr.tipoidentificacion = ti.id_unico
        LEFT JOIN gf_centro_costo cen           ON dc.centrocosto = cen.id_unico
        LEFT JOIN gf_cuenta cta                 ON cta.id_unico = dc.cuenta
        WHERE dc.cuenta = '$cnt'
        AND cn.fecha BETWEEN '$anno-01-01' AND '$fechaP'
        AND ct.sigla BETWEEN '$compini' AND '$compfin' 
        AND cn.parametrizacionanno = $parmanno 
        ORDER BY dc.fecha ASC");
                break;
            case 2:
                $csaldo = $con->Listar("SELECT DISTINCT
        cn.id_unico AS cnid,
        cta.naturaleza AS natcta,
        dc.valor AS dcvalor,
        cn.tipocomprobante AS cntcom,
        cn.numero AS cnnum,
        cn.tercero AS cnter,
        tr.id_unico AS trid,
        tr.nombreuno AS trnom1,
        tr.nombredos AS trnom2,
        tr.apellidouno AS trape1,
        tr.apellidodos AS trape2,
        tr.razonsocial AS trsoc,
        ti.nombre AS tinom,
        tr.numeroidentificacion AS trnum,
        ct.id_unico AS ctid,
        ct.sigla AS ctnom,
        cc.id_unico AS ccid,
        cc.nombre AS ccnom,
        cn.numerocontrato AS cnnumcont,
        ec.nombre AS ecnom,
        cn.descripcion AS cndesc,
        dc.comprobante AS dccomp,
        dc.centrocosto AS dccos,
        dc.fecha AS dcfec,
        cen.id_unico AS cencid,
        cen.nombre AS cennom,
        cta.codi_cuenta AS nomcta,        
        dc.cuenta AS dcuenta,
        dc.fecha AS cnfec,
        CASE WHEN (tr.nombreuno IS NULL OR tr.nombredos IS NULL OR tr.apellidouno IS NULL OR tr.apellidodos IS NULL
        OR (tr.nombreuno = '' AND tr.nombredos = '' AND tr.apellidouno = '' AND tr.apellidodos = ''))
        THEN (tr.razonsocial)
        ELSE (tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos)
        END AS NOMBRE,
        dc.id_unico
        FROM gf_comprobante_cnt cn
        LEFT JOIN gf_tipo_comprobante ct ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_tipo_comprobante nom ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_clase_contrato cc ON cn.clasecontrato = cc.id_unico
        LEFT JOIN gf_estado_comprobante_cnt ec ON cn.estado = ec.id_unico
        LEFT JOIN gf_detalle_comprobante dc ON cn.id_unico = dc.comprobante
        LEFT JOIN gf_tercero tr ON dc.tercero = tr.id_unico
        LEFT JOIN gf_tipo_identificacion ti ON tr.tipoidentificacion = ti.id_unico
        LEFT JOIN gf_centro_costo cen ON dc.centrocosto = cen.id_unico
        LEFT JOIN gf_cuenta cta ON cta.id_unico = dc.cuenta
        WHERE dc.cuenta = '$cnt'
        AND cn.fecha BETWEEN TO_DATE('$anno || '-01-01', 'YYYY-MM-DD') AND TO_DATE('$fechaP', 'YYYY-MM-DD')
        AND ct.sigla BETWEEN '$compini' AND '$compfin'
        AND cn.parametrizacionanno = $parmanno 
        ORDER BY dc.fecha ASC");
                break;
            default:
                # code...
                break;
        }
    } #WHERE dc.cuenta BETWEEN '$cuentaini' AND '$cuentafin'
    elseif ($fechaini1 == $anno . '/01/01') { //            
        $csaldo  = $con->Listar("SELECT DISTINCT
                cn.id_unico             as cnid,                                                
                cta.naturaleza          as natcta,
                dc.valor                as dcvalor,
                dc.cuenta               as dcuenta,
                dc.fecha                as cnfec, 
                dc.id_unico  
        FROM gf_comprobante_cnt cn
        LEFT JOIN gf_tipo_comprobante ct        ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_tipo_comprobante nom       ON cn.tipocomprobante = ct.id_unico
        LEFT JOIN gf_clase_contrato cc          ON cn.clasecontrato = cc.id_unico
        LEFT JOIN gf_estado_comprobante_cnt ec  ON cn.estado = ec.id_unico 
        LEFT JOIN gf_detalle_comprobante dc     ON cn.id_unico = dc.comprobante
        LEFT JOIN gf_tercero tr                 ON dc.tercero = tr.id_unico
        LEFT JOIN gf_tipo_identificacion ti     ON tr.tipoidentificacion = ti.id_unico
        LEFT JOIN gf_centro_costo cen           ON dc.centrocosto = cen.id_unico
        LEFT JOIN gf_cuenta cta                 ON cta.id_unico = dc.cuenta
        WHERE dc.cuenta = '$cnt'
        AND cn.fecha = '$anno-01-01' 
        AND ct.clasecontable = 5 
        AND cn.parametrizacionanno = $parmanno 
        ORDER BY dc.fecha ASC"); //Empty Query
    }

    // $csaldo = $mysqli->query($sql2);

    $saldoTA = 0.00;

    #########################################################################################
    ###################Consulta para obtener sumatoria de Saldos#############################
    #########################################################################################  
    if (count($csaldo) > 0) {

        // while ($filasal =   mysqli_fetch_array($csaldo)) {
        for ($filasal = 0; $filasal < count($csaldo); $filasal++) {
            $csaldo[$filasal][1];
            #Naturaleza Débito
            if ($csaldo[$filasal][1] == 1) {
                if ($csaldo[$filasal][2] >= 0) {
                    $debA = $csaldo[$filasal][2];
                    $saldoTA = $saldoTA + $debA;
                    $debitoA = number_format($csaldo[$filasal][2], 2, '.', ',');
                } else {
                    $debitoA = "0.00";
                }
            } elseif ($csaldo[$filasal][1] == 2) {
                if ($csaldo[$filasal][2] <= 0) {
                    $debA = $csaldo[$filasal][2];
                    $saldoTA = $saldoTA + $debA;
                    $xA = (float) substr($csaldo[$filasal][2], '1');
                    $debitoA = number_format($xA, 2, '.', ',');
                } else {
                    $debitoA = "0.00";
                }
            }
            #Fin Naturaleza Débito
            # 
            #Naturaleza Crédito
            if ($csaldo[$filasal][1] == 2) {
                if ($csaldo[$filasal][2] >= 0) {
                    $crA = $csaldo[$filasal][2];
                    $saldoTA = $saldoTA + $crA;
                    $creditoA = number_format($csaldo[$filasal][2], 2, '.', ',');
                } else {
                    $creditoA = "0.00";
                }
                //$saldoT = $saldoT - $cr;
            } elseif ($csaldo[$filasal][1] == 1) {
                if ($csaldo[$filasal][2] <= 0) {
                    $crA = $csaldo[$filasal][2];
                    $saldoTA = $saldoTA + $crA;
                    $yA = (float) substr($csaldo[$filasal][2], '1');
                    $creditoA = number_format($yA, 2, '.', ',');
                } else {
                    $creditoA = "0.00";
                }
            }

            #    }
        }
    }


    ################################### 
    # Fin Consulta para llenar Saldos #
    ###################################

    if (count($cp) > 0) {
        $pdf->SetFont('Arial', 'B', 7);
        $pdf->SetX(20);
        $pdf->Cell(165, 4, utf8_decode('Código Cuenta: ' . $codicuenta), 0);
        $pdf->Cell(20, 4, utf8_decode('Saldo Inicial: '), 0);
        $pdf->Cell(20, 4, utf8_decode('$' . number_format($saldoTA, 2, '.', ',')), 0);
        $pdf->Cell(205, 4, '', 0);
        $pdf->Ln(4);
        $pdf->SetFont('Arial', '', 7);



        $tmp = 0;

        $cuenta1 = $cuentaini;
        $cuenta2 = 0;

        $saldoT = $saldoTA;
        #######################################################
        ############CONSULTA PARA LLENAR LA TABLA##############
        #######################################################

        $totaldeb = 0;
        $totalcred = 0;
        // while ($fila = mysqli_fetch_array($cp)) {
        for ($fila = 0; $fila < count($cp); $fila++) {
            $paginactual = $numpaginas;

            $deb = 0;
            if ($cp[$fila][1] == 1) {
                if ($cp[$fila][2] >= 0) {
                    $deb = $cp[$fila][2];
                    $tmp = $deb;
                    $saldoT = $saldoT + $deb;
                    $debito = number_format($cp[$fila][2], 2, '.', ',');
                    $totaldeb = $totaldeb + $cp[$fila][2];
                } else {
                    $debito = "0.00";
                }
            } elseif ($cp[$fila][1] == 2) {
                if ($cp[$fila][2] <= 0) {
                    $deb = $cp[$fila][2];
                    $tmp = $deb;
                    $saldoT = $saldoT + $deb;
                    $x = (float) substr($cp[$fila][2], '1');
                    $debito = number_format($x, 2, '.', ',');
                    $totaldeb = $totaldeb + $x;
                } else {
                    $debito = "0.00";
                }
            }
            #Fin Naturaleza Débito
            $cr = 0;
            #Naturaleza Crédito
            if ($cp[$fila][1] == 2) {
                if ($cp[$fila][2] >= 0) {
                    $cr = $cp[$fila][2];
                    $saldoT = $saldoT + $cr;
                    $credito = number_format($cp[$fila][2], 2, '.', ',');
                    $totalcred = $totalcred + $cp[$fila][2];
                } else {
                    $credito = "0.00";
                }
                //$saldoT = $saldoT - $cr;
            } elseif ($cp[$fila][1] == 1) {
                if ($cp[$fila][2] <= 0) {
                    $cr = $cp[$fila][2];
                    $saldoT = $saldoT + $cr;
                    $y = (float) substr($cp[$fila][2], '1');
                    $credito = number_format($y, 2, '.', ',');
                    $totalcred = $totalcred + $y;
                } else {
                    $credito = "0.00";
                }
                //$saldoT = $saldoT - $cr;
            }
            #Fin Naturaleza Crédito
            $codd = $codd + 1;


            // $fechaCC = $cp[$fila]['cnfec'];
            $fechaCC = $cp[$fila][28];

            $fechaCC = trim($cp[$fila][28], '"');
            $fecha_div = explode("-", $fechaCC);
            $anio = $fecha_div[0];
            $mes = $fecha_div[1];
            $dia = $fecha_div[2];
            $fechaCC = $dia . '/' . $mes . '/' . $anio;
            #Fecha - Fin

            $pdf->SetX(20);

            $pdf->Cell(15, 4, utf8_decode($fechaCC), 0, 0, 'C');
            $pdf->Cell(17, 4, utf8_decode($cp[$fila][15]), 0, 0, 'C');
            $pdf->Cell(30, 4, utf8_decode($cp[$fila][4]), 0, 0, 'R');
            $pdf->Cell(30, 4, utf8_decode($cp[$fila][25]), 0, 0, 'L');

            $y1 = $pdf->GetY();
            $x1 = $pdf->GetX();
            $pdf->MultiCell(65, 4, utf8_decode(ucwords(mb_strtolower($cp[$fila]['NOMBRE'])) . ' - ' . $cp[$fila][13]), 0, 'L');
            $y2 = $pdf->GetY();
            $h = $y2 - $y1;
            $px = $x1 + 65;
            if ($numpaginas > $paginactual) {
                $pdf->SetXY($px, $yp);
                $h = $y2 - $yp;
            } else {
                $pdf->SetXY($px, $y1);
            }

            $y2 = $pdf->GetY();
            $x2 = $pdf->GetX();
            $pdf->MultiCell(70, 4, utf8_decode($cp[$fila][20]), 0, 'J');
            $y22 = $pdf->GetY();
            $h1 = $y22 - $y2;
            $px2 = $x2 + 70;
            if ($numpaginas > $paginactual) {
                $pdf->SetXY($px2, $yp);
                $h1 = $y22 - $yp;
            } else {
                $pdf->SetXY($px2, $y2);
            }


            $pdf->Cell(32, 4, utf8_decode($debito), 0, 0, 'R');

            $pdf->Cell(32, 4, utf8_decode($credito), 0, 0, 'R');
            $pdf->Cell(32, 4, utf8_decode(number_format($saldoT, 2, '.', ',')), 0, 0, 'R');
            $alto = max($h, $h1);
            $pdf->Ln($alto);
            $paginactual = $numpaginas;
        }
        $pdf->Ln(3);
        $pdf->SetX(20);
        $pdf->SetFont('Arial', 'B', 7);
        $pdf->Cell(227, 4, 'TOTALES', 0, 0, 'R');
        $pdf->Cell(32, 4, utf8_decode(number_format($totaldeb, 2, '.', ',')), 0, 0, 'R');
        $pdf->Cell(32, 4, utf8_decode(number_format($totalcred, 2, '.', ',')), 0, 0, 'R');
        $pdf->Ln(3);
        $totaldebT = $totaldebT + $totaldeb;
        $totalcredT = $totalcredT + $totalcred;
    }
}
$pdf->Ln(3);
$pdf->SetX(220);
$pdf->Cell(123, 0.5, '', 1);
$pdf->SetFont('Arial', 'B', 7);
$pdf->Ln(3);
$pdf->SetX(20);
$pdf->Cell(227, 4, 'TOTALES', 0, 0, 'R');
$pdf->Cell(32, 4, utf8_decode(number_format($totaldebT, 2, '.', ',')), 0, 0, 'R');
$pdf->Cell(32, 4, utf8_decode(number_format($totalcredT, 2, '.', ',')), 0, 0, 'R');
$pdf->Ln(5);
$pdf->SetX(20);
$pdf->Cell(323, 0.5, '', 1);

################################ 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 contable' 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) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos) IS NULL OR
            TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos) = '') THEN tr.razonsocial
            ELSE (TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(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 = $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_Contables (' . date('d/m/Y') . ').pdf', 0);
?>