<?php
#############################################################################################
#       ***************************     Modificaciones      ***************************     #
#############################################################################################
#19/04/2018 | Erica G.  | Parametrizacion
#21/02/2018 | Erica G. | Modificar Case 48 Consulta Relaciones 
####/################################################################################
/*
 * Modificado por: Erica González
 * Fecha Modificacion: 14/07/2017
 * Descripción:Se modificó el caso 59, Registrar pago en recaudo, verificar si tiene retenciones, para registrarlas
 * en el comprobante cnt y hacer los respectivos descuentos.
 *************************************************************************************************************************************************
 * Modificado por: Alexander Numpaque
 * Fecha de modificación: 10-07-2017
 * Descripción: Se agrego caso 64 para generar causación
 *************************************************************************************************************************************************
 * Modificado por: Alexander Numpaque
 * Fecha de modificación: 07-07-2017
 * Descripción: En el caso 47 se valido registro a presupuestal, cuando el tipo de comprobante de causación contable se relaciona con al tipo de
 * comprobante presupuestal realiza el registro, y se incluyo multiples validaciones preguntando si existe el tipo y su detalle relacionado a la
 * cuenta para insertar y mantener la relación contable y presupuestal por detalles y cabezas de comprobantes
 *************************************************************************************************************************************************
 * Modificado por: Alexander Numpaque
 * Fecha de modificación: 06-07-2017
 * Descripción: En el caso 57, se cambio la consulta para obtener los conceptos relacionados a la factura y se valida a la vez que si el detalle de
 * la factura ya fue recaudado y el valor es igual al del concepto no mostrara el concepto.
 * En el caso 58 se adiciono consulta para validar si el detalle de la factura, relacionada al concepto del cual se va obtener el valor si tiene a-
 * lgún recaudo, se resta y se imprime el valor del concepto.
 * Y en el caso 59 se agrego validación, la cual pregunta si el valor del detalle de pago es igual al total al valor total de la factura, se reali-
 * za el comprobante contable y presupuestal de recaudo con todos los conceptos de la factura. En case 47 se valido el registro a presupuestal por
 * medio de if que pregunta si el tipo de comprobante existe
 */
######################Modificaciones#################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 01/06/2017
# Descripción     : Se agrego a la consulta TRIM del case 53 para validación de espacios que afecten la generación del autoincremento
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 22/05/2017
# Descripción     : Cambio de Validación registro en el case 59
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 17/05/2017
# Descripción     : Cambio de Validación de eliminiado de factura y los detalles
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 15/05/2017
# Descripción     : Cambio de metodo de validadación para busqueda de comprobantes y facturas
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 03/05/2017
# Descripción     : Cambio metodo de validaciòn para guardado del detalle banco
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 24/04/2017
# Descripción     : Se agrego case 56 para redireccionamiento en el formulario de recaudo presupuestal
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 21/04/2017
# Descripción     : Se agrego validación para comparar que la cuenta de credito y cuenta debito sean diferentes
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 20/04/2017
# Descripción     : Se cambio consulta para obtener los valores de forma dinamica y se valido si la consulta
#                  existio la variable o palabra order by, la cual se usa como divisor de la consulta
#####################################################################################################################
# Modificado por  : Alexander Numpaque
# Fecha           : 20/04/2017
# Descripción     : Se cambio metodo de actualización ubicando un campo oculto para llenar automaticamente cuando se
#                  registra, el cual se usa como indicador para actualizar
#####################################################################################################################
# Modificado por :  Jhon Numpaque
# Fecha          :  09/03/2017
# Hora Ter. Mod. :  10:04
# Descripción    :  Se modifico caso 5, para redireccionamiento en comprobante ingreso y se grego caso 40 para
#                   para redirecionamiento de comprobante cnt
#####################################################################################################################
# Modificado por :  Jhon Numpaque
# Fecha          :  23/02/2017
# Hora Ter. Mod. :  11:45
# Descripción    :  Se agrego caso 38 para redireccionamiento y consulta de la partida, caso 39 para modificar los d-
#                   etalles de las conciliaciones con conciliado verdadero
#####################################################################################################################
# Modificado    :   Jhon Numpaque
# Fecha         :   23/02/2017
# Hora          :   3:30 p.m
# Descripción   :   Se agrego case 36 para consulta de factura contable y presupuestal
#####################################################################################################################
# Modificado    :   Jhon Numpaque
# Fecha         :   23/02/2017
# Descripción   :   Se agrego case 35 para guardado de cuentas por pagar y se modifico guardado de valor para que sea
#                   negativo
#####################################################################################################################
# 17/02/2017 | Jhon Numpaque
# Descripción : Se agrego en la consulta del caso 32, el valor de afectaciones
#
#####################################################################################################################
# 15/02/2017 | Jhon Numpaque
# Descripción : Se agrego caso 32, para consultar ruta de comprobante egreso existente
#
#####################################################################################################################
# Jhon Numpaque | 9:00 | 03-02-2017
# Se modifico consulta en el caso 4 para corregir cargue de idPptal
#
#####################################################################################################################
# Jhon Numpaque | 09-02-2017 | 03:02 p.m
# Se incluyo caso 31 consultar tipo de comprobante para cheque
#
######################################################################################################################
# Leonardo Acuña | 15-08-2023 | 03:35 p.m
# Se termino de migrar a la conexion PDO
######################################################################################################################
require_once '../Conexion/ConexionPDO.php';
require_once('../json/gs_auditoria_sistema.php');
require_once('../jsonPptal/gs_auditoria_acciones_contabilidad.php');
$con = new ConexionPDO();
session_start();
ini_set('max_execution_time', 0);
$conexion = $_SESSION['conexion'];
$session = $_REQUEST['existente'];
$con = new conexionPDO();
$anno = $_SESSION['anno'];
#@Autor:Alexander
#Este archivo consulta los numeros existentes de aquellos formularios para generar datos se inicia en dos porque ya existe el de comprobante

switch ($session) {
    case 2:
        $numero = $_REQUEST['numero'];
        $tipo = $_REQUEST['tipo'];
        if (!(empty($numero))) {
            $row = $con->Listar("SELECT  numero_factura,
                            id_unico
                    FROM    gp_factura
                    WHERE   numero_factura  =   '$numero'
                    AND     tipofactura     =   '$tipo'");
            $fila = count($row);
            if (empty($fila)) {
                $_SESSION['factura'] = "";
                $_SESSION['idFactura'] = "";
            } else {
                $_SESSION['factura'] = $row[0][0];
                $_SESSION['idFactura'] = $row[0][1];
            }
        } else {
            $_SESSION['factura'] = "";
            $_SESSION['idFactura'] = "";
        }
        break;
    case 3:
        $numero = $_REQUEST['numero'];
        $tipo = $_REQUEST['tipo'];
        if (!empty($numero)) {
            $row1 = $con->Listar("SELECT     id_unico,
                                numero_pago
                    FROM        gp_pago
                    WHERE       tipo_pago   =   '$tipo'
                    AND         numero_pago =   '$numero'");
            $fila1 = count($row1);
            if (($fila1 == 0)) {
                $_SESSION['idpago'] = "";
                $_SESSION['pago'] = "";
            } else {
                $_SESSION['idpago'] = $row1[0][0];
                $_SESSION['pago'] = $row1[0][1];
            }
        } else {
            $_SESSION['idpago'] = "";
            $_SESSION['pago'] = "";
        }
        break;
    case 4:
        ###########################################################################################################################
        # Captura de variable
        #
        ###########################################################################################################################
        $comprobante = $_REQUEST['comprobante'];
        #######################################################################################################################
        # Validación de variable no vacia
        #
        #######################################################################################################################
        if (!empty($comprobante)) {
            ###################################################################################################################
            # Consulta para obtener el comprobante cnt
            #
            ###################################################################################################################
            $row = $con->Listar("SELECT      dtp.comprobantepptal
                    FROM        gf_detalle_comprobante dtc
                    LEFT JOIN   gf_detalle_comprobante_pptal dtp    ON  dtc.detallecomprobantepptal = dtp.id_unico
                    WHERE       dtc.comprobante = $comprobante");
            $fila = count($row);
            ###################################################################################################################
            # Validación de consulta
            #
            ###################################################################################################################
            if ($fila > 0) {
                ###############################################################################################################
                # Cargue de variables
                #
                ###############################################################################################################
                $_SESSION['idComprobanteI'] = $comprobante;
                $_SESSION['idPptal'] = $row[0][0];
            } else {
                ###############################################################################################################
                # Cargue de variables
                #
                ###############################################################################################################
                $_SESSION['idComprobanteI'] = $comprobante;
                $_SESSION['idPptal'] = "";
            }
        } else {
            ###################################################################################################################
            # Variables vacias
            #
            ###################################################################################################################
            $_SESSION['idComprobanteI'] = "";
            $_SESSION['idPptal'] = "";
        }
        break;
    case 5:
        $depencia = $_REQUEST['dependencia'];
        switch ($conexion) {
            case 1:
                $fila = $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 NOMBRE,
                tr.id_unico,
                CONCAT(ti.nombre,' - ',tr.numeroidentificacion) AS TipoD
                FROM        gf_dependencia_responsable dpr
                LEFT JOIN   gf_tercero tr               ON  dpr.responsable     = tr.id_unico
                LEFT JOIN   gf_tipo_identificacion ti   ON  ti.id_unico         = tr.tipoidentificacion
                WHERE       dpr.dependencia     =   $depencia AND dpr.movimiento = 1 ");
                break;

            case 2:
                $fila = $con->Listar("SELECT CASE WHEN TRIM(tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos) IS NULL THEN tr.razonsocial 
                    ELSE tr.nombreuno || ' ' || tr.nombredos || ' ' || tr.apellidouno || ' ' || tr.apellidodos END AS NOMBRE,
                tr.id_unico,
                ti.nombre || ' - ' || tr.numeroidentificacion AS TipoD
                FROM gf_dependencia_responsable dpr
                LEFT JOIN gf_tercero tr ON dpr.responsable = tr.id_unico
                LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = tr.tipoidentificacion
                WHERE       dpr.dependencia     =   $depencia AND dpr.movimiento = 1 ");
                break;
        }

        $fila1 = count($fila);
        if (!empty($fila1)) {
            for ($i = 0; $i < $fila1; $i++) {
                echo '<option value="' . $fila[$i][1] . '">' . ucwords(mb_strtolower($fila[$i][0])) . '</option>';
            }
        } else {
            echo '<option value="">Responsable</option>';
        }
        break;
    case 6:
        $numero = $_REQUEST['numero'];
        $id = $con->Listar("SELECT  id_unico
                FROM    gf_movimiento
                WHERE   numero          =   $numero
                AND     tipomovimiento  =   '4'");
        $fila = count($id);
        if ($fila == 0) {
            echo 'RF_REQUISICION_ALMACEN.php';
        } else {
            echo 'RF_REQUISICION_ALMACEN.php?movimiento=' . base64_encode($id[0][0]);
        }
        break;
    case 7:
        $numero = $_REQUEST['numero'];
        $id = $con->Listar("SELECT  id_unico
                FROM    gf_movimiento
                WHERE   numero          =   $numero
                AND     tipomovimiento  =   '1'");
        $fila = count($id);
        if ($fila == 0) {
            echo 'RF_ORDEN_DE_COMPRA.php';
        } else {
            echo 'RF_ORDEN_DE_COMPRA.php?orden=' . base64_encode($id[0][0]);
        }
        break;
        //Consultar tercero con perfil 2, diferente al tercero que trae
    case 8:
        $id = $_REQUEST['tercero'];
        switch ($conexion) {
            case 1:
                $fila = $con->Listar("SELECT      IF( CONCAT(t.nombreuno,' ', t.nombredos,' ',t.apellidouno,' ',t.apellidodos)='',
                            (t.razonsocial),
                            (CONCAT(t.nombreuno,' ',t.nombredos,' ',t.apellidouno,' ',t.apellidodos))) AS NOMBRE ,
                            t.id_unico,
                            t.numeroidentificacion
                FROM        gf_tercero t
                LEFT JOIN   gf_perfil_tercero pt ON t.id_unico = pt.tercero
                WHERE       pt.perfil   =   '2'
                AND         t.id_unico  !=  '$id'
                ORDER BY NOMBRE ASC");
                break;

            case 2:
                $fila = $con->Listar("SELECT
               CASE
                   WHEN (TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos) IS NULL OR
                         TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos) = '')
                   THEN t.razonsocial
                   ELSE TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos)
               END AS NOMBRE,
               t.id_unico,
               t.numeroidentificacion
           FROM gf_tercero t
           LEFT JOIN gf_perfil_tercero pt ON t.id_unico = pt.tercero
                WHERE       pt.perfil   =   '2'
                AND         t.id_unico  !=  '$id'
                ORDER BY NOMBRE ASC");
                break;
        }

        if (!empty($fila)) {
            echo '<option value="">Responsable 2</option>';
            for ($i = 0; $i < count($fila); $i++) {
                echo '<option value="' . $fila[$i][1] . '">' . ucwords(mb_strtolower($fila[$i][0] . '(' . $fila[$i][2])) . ')' . '</option>';
            }
        } else {
            echo '<option value="">Responsable 2</option>';
        }
        break;
    case 9:
        $numero = $_REQUEST['numero'];
        $tipo = $_REQUEST['tipo'];
        $id = $con->Listar("SELECT      id_unico
                FROM        gf_movimiento
                WHERE       numero          =   $numero
                AND         tipomovimiento  =   $tipo");
        $fila = count($id);
        if (empty($fila)) {
            echo 'RF_MOVIMIENTO_ALMACEN.php';
        } else {
            echo 'RF_MOVIMIENTO_ALMACEN.php?movimiento=' . base64_encode($id[0][0]);
        }
        break;
    case 10:
        $tipoA = $_REQUEST['tipo'];
        $row = $con->Listar("SELECT DISTINCT mv.id_unico,
                                        mv.numero,
                                        mv.fecha,
                                        tmv.nombre
                        FROM        gf_movimiento mv
                        LEFT JOIN   gf_detalle_movimiento dtm       ON  dtm.movimiento      = mv.id_unico
                        LEFT JOIN   gf_tipo_movimiento tmv          ON  mv.tipomovimiento   = tmv.id_unico
                        WHERE       mv.tipomovimiento=$tipoA
                        AND         (dtm.valor)>0
                        ORDER BY    mv.id_unico");
        $fila = count($row);
        if ($fila != 0) {
            echo '<option value="0">Nro Asociado</option>';
            for ($i = 0; $i < count($row); $i++) {
                $valAM = $con->Listar("SELECT DISTINCT   (dtm.valor) as valor
                        FROM                gf_movimiento mv
                        LEFT JOIN           gf_detalle_movimiento dtm ON  dtm.movimiento = mv.id_unico
                        WHERE               mv.id_unico= " . $row[$i][0]);
                $valAMM = $valAM[0][0];
                $valAF = $con->Listar("SELECT DISTINCT   IF(IFNULL((dtm.valor) - $valAMM,$valAMM)=0,$valAMM,IFNULL((dtm.valor) - $valAMM,$valAMM)) as total
                        FROM                gf_movimiento mv
                        LEFT JOIN           gf_detalle_movimiento dtm   ON  dtm.movimiento = mv.id_unico
                        WHERE               mv.id_unico     = " .  $row[$i][0]);
                echo '<option value="' . $row[$i][0] . '">' . ucwords(mb_strtolower('Nro:' . $row[$i][1])) . ' -Saldo:' . number_format($valAF[0][0], 0, ',', '.') . ' -Fecha:' . $row[$i][2] . '</option>';
            }
        } else {
            echo '<option value="0">Nro Asociado</option>';
        }
        break;
        //Llena una sesión con un tipo proceso para formulario flujo procesal
    case 11:
        $tipop = $_REQUEST['proceso'];
        $_SESSION['tipoProceso'] = $tipop;
        break;
        //Llena combo modal flujo procesal si
    case 12:
        $flujo = $_REQUEST['id'];
        $tipo = $_REQUEST['tipo'];
        $fila = $con->Listar("SELECT  fp.id_unico ,fp.tipo_proceso, tp.identificador, tp.nombre, fp.fase, f.nombre, 
        ef.id_unico, ef.nombre FROM gg_flujo_procesal fp 
        LEFT JOIN gg_tipo_proceso tp ON fp.tipo_proceso = tp.id_unico 
        LEFT JOIN gg_fase f ON fp.fase = f.id_unico 
        LEFT JOIN gg_elemento_flujo ef ON ef.id_unico = f.elemento_flujo 
        WHERE fp.tipo_proceso ='$tipo' AND fp.fase !='0' AND fp.id_unico !='$flujo'");
        $fila1 = count($fila);
        if (!empty($fila1)) {
            echo '<option value="">Flujo Procesal</option>';
            for ($i = 0; $i < count($fila); $i++) {
                echo '<option value="' . $fila[$i][0] . '">' . ucwords(mb_strtolower($fila[$i][5] . ' - ' . $fila[$i][7])) . '</option>';
            }
        } else {
            echo '<option value="">Flujo Procesal</option>';
        }
        break;
    case 13:

        $medidor = $_REQUEST['medidor'];
        $fila = $con->Listar("SELECT m.id_unico, m.referencia FROM gp_medidor m 
        WHERE NOT EXISTS(SELECT * FROM gp_unidad_vivienda_medidor_servicio 
        WHERE medidor = m.id_unico AND m.id_unico !='$medidor') 
        ORDER BY m.referencia ASC");
        $fila1 = count($fila);
        if (!empty($fila1)) {
            echo '<option value="">Medidor</option>';
            for ($i = 0; $i < count($fila); $i++) {
                echo '<option value="' . $fila[$i][0] . '">' . mb_strtoupper($fila[$i][1]) . '</option>';
            }
        } else {
            echo '<option value="">Medidor</option>';
        }
        break;
    case 14:

        $tipo_proceso = $_REQUEST['tipo_proceso'];
        $fila = $con->Listar("SELECT
                        fp.id_unico,
                        f.nombre,
                        ef.nombre
                      FROM
                        gg_flujo_procesal fp
                      LEFT JOIN
                        gg_fase f ON fp.fase = f.id_unico
                      LEFT JOIN
                        gg_elemento_flujo ef ON f.elemento_flujo = ef.id_unico
                      WHERE
                      fp.tipo_proceso = '$tipo_proceso' AND LOWER(ef.nombre) = 'etapa especial'");
        $fila1 = count($fila);
        if (!empty($fila1)) {
            echo '<option value="">Etapa Especial</option>';
            for ($i = 0; $i < count($fila); $i++) {
                echo '<option value="' . $fila[$i][0] . '">' . ucwords(mb_strtolower($fila[$i][1])) . '</option>';
            }
        } else {
            echo '<option value="">Etapa Especial</option>';
        }

        break;
    case 15:
        $tipo_proceso = $_REQUEST['tipo_proceso'];
        $fila = $con->Listar("SELECT
                        fp.id_unico,
                        f.nombre,
                        ef.nombre
                      FROM
                        gg_flujo_procesal fp
                      LEFT JOIN
                        gg_fase f
                        ON fp.fase = f.id_unico
                      LEFT JOIN
                        gg_elemento_flujo ef
                        ON f.elemento_flujo = ef.id_unico
                      WHERE
                          fp.tipo_proceso = '$tipo_proceso' ");
        $fila1 = count($fila);
        if (!empty($fila1)) {
            echo '<option value="">Elemento Relacional</option>';
            for ($i = 0; $i < count($fila); $i++) {
                echo '<option value="' . $fila[$i][0] . '">' . ucwords(mb_strtolower($fila[$i][1] . ' - ' . $fila[$i][2])) . '</option>';
            }
        } else {
            echo '<option value="">Elemento Relacional</option>';
        }
        break;
    case 16:

        $id = $_REQUEST['id'];
        $tipo_proceso = $_REQUEST['tipo'];
        $fila = $con->Listar("SELECT
                        fp.id_unico,
                        f.nombre,
                        ef.nombre
                      FROM
                        gg_flujo_procesal fp
                      LEFT JOIN
                        gg_fase f ON fp.fase = f.id_unico
                      LEFT JOIN
                        gg_elemento_flujo ef ON f.elemento_flujo = ef.id_unico
                      WHERE
                      fp.tipo_proceso = '$tipo_proceso' AND fp.id_unico != '$id'");
        $fila1 = count($fila);
        if (!empty($fila1)) {
            echo '<option value="">Elemento Relacional</option>';
            for ($i = 0; $i < count($fila); $i++) {
                echo '<option value="' . $fila[$i][0] . '">' . ucwords(mb_strtolower($fila[$i][1])) . '</option>';
            }
        } else {
            echo '<option value="">Elemento Relacional</option>';
        }
        break;
    case 17:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $centro = $con->Listar("SELECT cn.id_unico,cn.nombre from gf_movimiento mov left join gf_centro_costo cn on cn.id_unico =mov.centrocosto where mov.id_unico=$mov");
            echo '<option value="' . $centro[0][0] . '">' . trim(ucwords(mb_strtolower($centro[0][1]))) . '</option>';
            $centros = $con->Listar("SELECT id_unico,nombre from gf_centro_costo where id_unico!= " . $centro[0][0]);
            for ($i = 0; $i < count($centros); $i++) {
                echo '<option value="' . $centros[$i][0] . '">' . $centros[$i][1] . '</option>';
            }
        }
        break;
    case 18:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $pro = $con->Listar("SELECT pr.id_unico,pr.nombre from gf_movimiento mov left join gf_proyecto pr on pr.id_unico =mov.proyecto where mov.id_unico=$mov");
            echo '<option value="' . $pro[0][0] . '">' . trim(ucwords(mb_strtolower($pro[0][1]))) . '</option>';
            $proys = $con->Listar("SELECT id_unico,nombre from gf_proyecto where id_unico!=$pro[0]");
            for ($i = 0; $i < count($proys); $i++) {
                echo '<option value="' . $proys[$i][0] . '">' . $proys[$i][1] . '</option>';
            }
        }
        break;
    case 19:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $dept = $con->Listar("SELECT dtp.id_unico,dtp.nombre from gf_movimiento mov left join gf_dependencia dtp on dtp.id_unico =mov.dependencia where mov.id_unico=$mov");
            echo '<option value="' . $dept[0][0] . '">' . trim(ucwords(mb_strtolower($dept[0][1]))) . '</option>';
            $dpts = $con->Listar("SELECT id_unico,nombre from gf_dependencia where id_unico!=$dept[0]");
            for ($i = 0; $i < count($dpts); $i++) {
                echo '<option value="' . $dpts[$i][0] . '">' . $dpts[$i][1] . '</option>';
            }
        }
        break;
    case 20:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {

            switch ($conexion) {
                case 1:
                    $consultabase = "SELECT DISTINCT IF(CONCAT(ter.nombreuno,' ', ter.nombredos, ' ', ter.apellidouno, ' ', ter.apellidodos) IS NULL OR CONCAT(ter.nombreuno,' ', ter.nombredos, ' ', ter.apellidouno, ' ', ter.apellidodos)='' ,
                    (ter.razonsocial),CONCAT(ter.nombreuno,' ',ter.nombredos,' ',ter.apellidouno,' ',ter.apellidodos)) AS NOMBRE,
                    ter.id_unico, CONCAT(ti.nombre,' - ',ter.numeroidentificacion) AS TipoD,mov.dependencia
                    FROM gf_dependencia_responsable dpr
                    LEFT JOIN gf_tercero ter ON dpr.responsable = ter.id_unico
                    LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = ter.tipoidentificacion
                    LEFT join gf_movimiento mov ON mov.tercero=ter.id_unico";


                    break;

                case 2:
                    $consultabase = "SELECT DISTINCT
                    CASE
                        WHEN (ter.nombreuno || ' ' || ter.nombredos || ' ' || ter.apellidouno || ' ' || ter.apellidodos) IS NULL OR 
                             (ter.nombreuno || ' ' || ter.nombredos || ' ' || ter.apellidouno || ' ' || ter.apellidodos) = ''
                        THEN ter.razonsocial
                        ELSE ter.nombreuno || ' ' || ter.nombredos || ' ' || ter.apellidouno || ' ' || ter.apellidodos
                          END AS NOMBRE,
                          ter.id_unico,
                          ti.nombre || ' - ' || ter.numeroidentificacion AS TipoD,
                          mov.dependencia
                          FROM gf_dependencia_responsable dpr
                          LEFT JOIN gf_tercero ter ON dpr.responsable = ter.id_unico
                          LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = ter.tipoidentificacion
                          LEFT JOIN gf_movimiento mov ON mov.tercero = ter.id_unico";
                    break;
            }
            $ter = $con->Listar("$consultabase WHERE  mov.id_unico=$mov");
            echo '<option value="' . $ter[0][1] . '">' . trim(ucwords(mb_strtolower($ter[0][0]))) . '</option>';
            $ters = $con->Listar("$consultabase WHERE  ter.id_unico !=" . $ter[0][1] . " AND dpr.dependencia = " . $ter[0][3]);
            for ($i = 0; $i < count($ters); $i++) {
                echo '<option value="' . $ters[$i][1] . '">' . $ters[$i][0] . '</option>';
            }
        }
        break;
    case 21:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            switch ($conexion) {
                case 1:
                    $concat = "CONCAT(rpptal.codi_presupuesto,' - ',rpptal.nombre)";
                    $concats = "CONCAT(codi_presupuesto,' - ',nombre)";
                    break;

                case 2:
                    $concat = "rpptal.codi_presupuesto || ' - ' || rpptal.nombre";
                    $concats = "codi_presupuesto || ' - ' || nombre";
                    break;
            }
            $rpptal = $con->Listar("SELECT rpptal.id_unico,$concat from gf_movimiento mov left join gf_rubro_pptal rpptal on rpptal.id_unico =mov.rubropptal where mov.id_unico=$mov");
            echo '<option selected="selected" value="' . $rpptal[0][0] . '">' . trim(ucwords(mb_strtolower($rpptal[0][1]))) . '</option>';
            $rpptals = $con->Listar("SELECT id_unico,$concats  from gf_rubro_pptal where id_unico != " . $rpptal[0][0]);
            for ($i = 0; $i < count($rpptals); $i++) {
                echo '<option value="' . $rpptals[$i][0] . '">' . $rpptals[$i][1] . '</option>';
            }
        }
        break;
    case 22:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $plz = $con->Listar("SELECT mov.plazoentrega from gf_movimiento mov where mov.id_unico=$mov");
            echo json_encode(trim($plz[0][0]));
        }
        break;
    case 23:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $plazoE = $con->Listar("SELECT uplz.id_unico,uplz.nombre from gf_movimiento mov left join gf_unidad_plazo_entrega uplz on uplz.id_unico =mov.unidadentrega where mov.id_unico=$mov");
            echo '<option value="' . $plazoE[0][0] . '">' . trim(ucwords(mb_strtolower($plazoE[0][1]))) . '</option>';
            $plzs = $con->Listar("SELECT id_unico,nombre from gf_unidad_plazo_entrega where id_unico!= " . $plazoE[0][0]);
            for ($i = 0; $i < count($plzs); $i++) {
                echo '<option value="' . $plzs[$i][0] . '">' . $plzs[$i][1] . '</option>';
            }
        }
        break;
    case 24:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $lugarE = $con->Listar("SELECT DISTINCT ci.id_unico,ci.nombre,dt.nombre FROM gf_ciudad ci LEFT JOIN gf_departamento dt ON ci.departamento = dt.id_unico LEFT JOIN gf_movimiento mov ON mov.lugarentrega = ci.id_unico WHERE mov.id_unico=$mov");
            echo '<option value="' . $lugarE[0][0] . '">' . trim(ucwords(mb_strtolower($lugarE[0][1] . PHP_EOL . '-' . PHP_EOL . $lugarE[0][2]))) . '</option>';
            $lgS = $con->Listar("SELECT DISTINCT ci.id_unico,ci.nombre,dt.nombre FROM gf_ciudad ci 
            LEFT JOIN gf_departamento dt ON ci.departamento = dt.id_unico LEFT JOIN gf_movimiento mov ON mov.lugarentrega = ci.id_unico 
            WHERE ci.id_unico!=" . $lugarE[0][0]);
            for ($i = 0; $i < count($lgS); $i++) {
                echo '<option value="' . $lgS[$i][0] . '">' . $lgS[$i][1] . PHP_EOL . '-' . PHP_EOL . $lgS[$i][2] . '</option>';
            }
        }
        break;
    case 25:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $porcIva = $con->Listar("SELECT mov.porcivaglobal from gf_movimiento mov where mov.id_unico=$mov");
            echo trim((($porcIva[0][0])));
        }
        break;
    case 26:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $estado = $con->Listar("SELECT stm.nombre from gf_movimiento mov left join gf_estado_movimiento stm on mov.estado=stm.id_unico where mov.id_unico=$mov");
            echo trim((($estado[0][0])));
        }
        break;
    case 27:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $porcIva = $con->Listar("SELECT DATE_FORMAT(mov.fecha,'%d/%m/%Y') from gf_movimiento mov where mov.id_unico=$mov");
            echo trim((($porcIva[0][0])));
        }
        break;
    case 28:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            switch ($conexion) {
                case 1:
                    $consultabase = "SELECT DISTINCT IF(CONCAT(ter.nombreuno,' ', ter.nombredos, ' ', ter.apellidouno, ' ', ter.apellidodos) IS NULL OR CONCAT(ter.nombreuno,' ', ter.nombredos, ' ', ter.apellidouno, ' ', ter.apellidodos)='' ,
                   (ter.razonsocial),CONCAT(ter.nombreuno,' ',ter.nombredos,' ',ter.apellidouno,' ',ter.apellidodos)) AS 'NOMBRE',
                   ter.id_unico, CONCAT(ti.nombre,' - ',ter.numeroidentificacion) AS 'TipoD' FROM gf_tercero ter
                   LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = ter.tipoidentificacion
                   LEFT JOIN gf_perfil_tercero prt ON ter.id_unico = prt.tercero
                   LEFT JOIN gf_movimiento mov ON mov.tercero2 = ter.id_unico";
                    break;

                case 2:
                    $consultabase = "SELECT DISTINCT IF(CONCAT(ter.nombreuno,' ', ter.nombredos, ' ', ter.apellidouno, ' ', ter.apellidodos) IS NULL OR CONCAT(ter.nombreuno,' ', ter.nombredos, ' ', ter.apellidouno, ' ', ter.apellidodos)='' ,
                   (ter.razonsocial),CONCAT(ter.nombreuno,' ',ter.nombredos,' ',ter.apellidouno,' ',ter.apellidodos)) AS 'NOMBRE',
                   ter.id_unico, CONCAT(ti.nombre,' - ',ter.numeroidentificacion) AS 'TipoD' FROM gf_tercero ter
                   LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = ter.tipoidentificacion
                   LEFT JOIN gf_perfil_tercero prt ON ter.id_unico = prt.tercero
                   LEFT JOIN gf_movimiento mov ON mov.tercero2 = ter.id_unico";
                    break;
            }
            $ter = $con->Listar("$consultabase WHERE prt.perfil BETWEEN 5 AND 6 AND mov.id_unico=$mov");
            echo '<option value="' . $ter[0][1] . '">' . trim(ucwords(mb_strtolower($ter[0][0] . PHP_EOL . $ter[0][2]))) . '</option>';
            $terss = $con->Listar("$consultabase WHERE prt.perfil BETWEEN 5 AND 6 AND ter.id_unico!=" . $ter[0][1]);
            for ($i = 0; $i < count($terss); $i++) {
                echo '<option value="' . $terss[$i][1] . '">' . $terss[$i][0] . PHP_EOL . $terss[$i][2] . '</option>';
            }
        }
        break;
    case 29:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $descripcion = $con->Listar("SELECT mov.descripcion from gf_movimiento mov where mov.id_unico=$mov");
            echo trim((($descripcion[0][0])));
        }
        break;
    case 30:
        $mov = $_REQUEST['mov'];
        if (!empty($mov)) {
            $observacio = $con->Listar("SELECT mov.observaciones from gf_movimiento mov where mov.id_unico=$mov");
            echo trim((($observacio[0][0])));
        }
        break;
    case 31:
        $tipoD = $_REQUEST['tipoDocumento'];
        if (!empty($tipoD)) {
            $esCheque = $con->Listar("SELECT fto.esCheque
            FROM gf_tipo_documento tdoc
            LEFT JOIN gf_formato fto ON tdoc.formato = fto.id_unico
            WHERE tdoc.id_unico = $tipoD");
            echo $esCheque[0][0];
        } else {
            echo 2;
        }
        break;
    case 32:
        $comprobante = $_REQUEST['comprobante'];
        if (!empty($comprobante)) {
            echo 'registrar_GF_EGRESO_TESORERIA.php?egreso=' . base64_encode($comprobante);
        } else {
            echo 'registrar_GF_EGRESO_TESORERIA.php';
        }
        break;
    case 33:
        $tercero = $_REQUEST['tercero'];
        if (!empty($tercero)) {
            echo "<option value=' '>Cuentas por pagar</option>";
            #Consulta parametrizada con ajax para consultar ordenes de pago por tercero
            $row = $con->Listar("SELECT    DISTINCT  cnt.id_unico,
                                cnt.numero,
                                cnt.tipocomprobante,
                                tpc.sigla
                    FROM        gf_detalle_comprobante dtc
                    LEFT JOIN   gf_comprobante_cnt cnt
                    ON          cnt.id_unico = dtc.comprobante
                    LEFT JOIN   gf_detalle_comprobante dtcA
                    ON          dtc.id_unico = dtcA.detalleAfectado
                    LEFT JOIN   gf_tipo_comprobante tpc
                    ON          tpc.id_unico     = cnt.tipocomprobante
                    LEFT JOIN   gf_cuenta cta
                    ON          dtc.cuenta       = cta.id_unico
                    WHERE       cnt.tipocomprobante     =   4
                    AND         cnt.tercero             =   $tercero
                    AND         cta.clasecuenta         IN  (4,8,9)
                    AND         dtcA.detalleAfectado    IS NULL");
            $c = count($row);
            if ($c > 0) {
                for ($i = 0; $i < count($row); $i++) {
                    echo "<option value=" . $row[$i][0] . ">" . $row[$i][1] . ' ' . $row[$i][3] . "</option>";
                }
            }
        }
        break;
    case 34:
        #La primera consulta es para homologar el concepto enviado y obtener el id la segunda consulta cargamos los datos de rubro fuente
        $concepto = $_REQUEST['concepto'];
        if (!empty($concepto)) {
            $financiero = $con->Listar("SELECT gf_con.id_unico,gf_con.nombre from gp_concepto gp_con 
            left join gf_concepto gf_con on gf_con.id_unico=gp_con.concepto_financiero where gp_con.id_unico=$concepto");
            switch ($conexion) {
                case 1:
                    $concat = "concat(gf_rbroP.codi_presupuesto,' ',gf_rbroP.nombre,'-',gf_fte.nombre),";
                    break;

                case 2:
                    $concat = "gf_rbroP.codi_presupuesto || ' ' || gf_rbroP.nombre || '-' || gf_fte.nombre ,";
                    break;
            }
            $rubros = $con->Listar("SELECT distinct gf_rbroF.id_unico,
            $concat
            gf_conrubro.id_unico  
            from gf_concepto_rubro gf_conrubro
                    left join gf_rubro_fuente gf_rbroF on gf_conrubro.rubro=gf_rbroF.rubro
                    left join gf_rubro_pptal gf_rbroP on gf_conrubro.rubro=gf_rbroP.id_unico
                    left join gf_fuente gf_fte on  gf_rbroF.fuente=gf_fte.id_unico
                    where gf_conrubro.concepto = " . $financiero[0][0] . " AND gf_rbroF.id_unico IS NOT NULL");
            //echo '<option value=" ">'.$sqlConceptoRubro.'</option>';
            for ($i = 0; $i < count($rubros); $i++) {
                echo '<option value="' . $rubros[$i][0] . '">' . ucwords(mb_strtolower($rubros[$i][1])) . '</option>;' . $rubros[$i][2];
            }
        }
        break;
    case 35:
        ###########################################################################################################################################################
        # Validación de cuentas por pagar
        #
        ###########################################################################################################################################################
        #
        if (!empty($_REQUEST['sltCuentasPagar'])) {
            #######################################################################################################################################################
            # Captura de valores
            #
            #######################################################################################################################################################
            #
            $cuentasP = $_REQUEST['sltCuentasPagar'];
            $descC = $_REQUEST['descr'];
            // $fecha = explode("/", $_REQUEST['fecha']);
            // $fecha = "'" . "$fecha[2]-$fecha[1]-$fecha[0]" . "'";         
            $fechaT = $_REQUEST['fecha'];
            $valorF = explode("/", $fechaT);
            $fecha =  $valorF[2] . '-' . $valorF[1] . '-' . $valorF[0];
            $id  = $_REQUEST['id'];
            #######################################################################################################################################################
            # Consulta de obtención de valores
            #
            #######################################################################################################################################################
            #
            $rowCP = $con->Listar("SELECT  dtc.valor,
                              dtc.cuenta,
                              dtc.naturaleza,
                              dtc.tercero,
                              dtc.centrocosto,
                              dtc.proyecto,
                              dtc.id_unico
                    FROM      gf_comprobante_cnt cnt
                    LEFT JOIN gf_tipo_comprobante tpc     ON tpc.id_unico     = cnt.tipocomprobante
                    LEFT JOIN gf_detalle_comprobante dtc  ON dtc.comprobante  = cnt.id_unico
                    LEFT JOIN gf_cuenta cta               ON dtc.cuenta       = cta.id_unico
                    WHERE     cnt.id_unico      =  $cuentasP
                    AND       cta.clasecuenta   IN (4,8,9)");
            for ($i = 0; $i < count($rowCP); $i++) {
                #######################################################################################################################################################
                # Consulta de insertado
                #
                #######################################################################################################################################################
                #
                $html = "INSERT INTO  gf_detalle_comprobante(fecha, descripcion, valor, comprobante, cuenta, naturaleza, tercero, proyecto,centrocosto, detalleafectado) 
                VALUES(:fecha, :descripcion, :valor, :comprobante, :cuenta, :naturaleza, :tercero, :proyecto, :centrocosto, :detalleafectado);";
                $sql_dato1 = array(
                    array(":fecha", $fecha),
                    array(":descripcion", $descC),
                    array(":valor", $rowCP[0][0]),
                    array(":comprobante", $id),
                    array(":cuenta", $rowCP[0][1]),
                    array(":naturaleza", $rowCP[0][2]),
                    array(":tercero", $rowCP[0][3]),
                    array(":proyecto", $rowCP[0][5]),
                    array(":centrocosto", $rowCP[0][4]),
                    array(":detalleafectado", $rowCP[0][6]),
                );
                $resultDC = $con->InAcEl($html, $sql_dato1);
            }
            echo json_encode($resultDC);
        }
        break;
    case 36:
        ###########################################################################################################################################################
        #Captura de variable enviada
        ##########################################################################################################################################################
        $factura = $_REQUEST['factura'];
        ##########################################################################################################################################################
        #Consultamos si la factura tiene detalles y buscamos los comporbantes cnt y pptal
        ##########################################################################################################################################################
        $rowD = $con->Listar("SELECT      cnt.id_unico as cnt,ptal.id_unico as ptal
                    FROM        gp_factura pg, gp_tipo_factura tpg, gf_tipo_comprobante tpc,gf_comprobante_cnt cnt, gf_tipo_comprobante_pptal tcp,gf_comprobante_pptal ptal
                    WHERE       pg.tipofactura = tpg.id_unico
                    AND         tpc.id_unico = tpg.tipo_comprobante
                    AND         cnt.tipocomprobante = tpc.id_unico
                    AND         tpc.comprobante_pptal = tcp.id_unico
                    AND         ptal.tipocomprobante = tcp.id_unico
                    AND         pg.numero_factura = ptal.numero
                    AND         pg.numero_factura = cnt.numero
                    AND         pg.id_unico =  $factura");
        $filas = count($rowD);
        ######################################################################################################################################################
        #Validamos que la consulta retorne valores
        ######################################################################################################################################################
        if ($filas > 0) {
            echo "registrar_GF_FACTURA.php?factura=" . base64_encode($factura) . "&cnt=" . base64_encode($rowD[0][0]) . "&pptal=" . base64_encode($rowD[0][1]);
        } else {
            $row = $con->Listar("SELECT dtc.comprobante,dtp.comprobantepptal FROM gp_detalle_factura dtf
            LEFT JOIN gf_detalle_comprobante dtc ON dtc.id_unico = dtf.detallecomprobante
            LEFT JOIN gf_detalle_comprobante_pptal dtp ON dtc.detallecomprobantepptal = dtp.id_unico WHERE dtf.factura = $factura");
            $filas2 = count($row);
            if ($filas2 > 0) {
                echo "registrar_GF_FACTURA.php?factura=" . base64_encode($factura) . "&cnt=" . base64_encode($row[0][0]) . "&pptal=" . base64_encode($row[0][1]);
            } else {
                echo "registrar_GF_FACTURA.php?factura=" . base64_encode($factura);
            }
        }
        break;
    case 37:
        $banco = $_REQUEST['banco'];
        $fechaT = $_REQUEST['fecha'];
        // $valorF = explode("/", $fechaT);
        // $fecha =  '"' . $valorF[2] . '-' . $valorF[1] . '-' . $valorF[0] . '"';
        $fechaT = $_REQUEST['fecha'];
        $valorF = explode("/", $fechaT);
        $fecha =  $valorF[2] . '-' . $valorF[1] . '-' . $valorF[0];
        $descripcion = $_REQUEST['descripcion'];
        $valor = $_REQUEST['valor'];
        $valorEjecucion = $_REQUEST['valorEjecucion'];
        $comprobante = $_REQUEST['comprobante'];
        #Consulta de cuenta bancaria para tomar la cuenta, la naturaleza
        $row = $con->Listar("SELECT ctb.cuenta,ct.naturaleza FROM gf_cuenta_bancaria ctb
        LEFT JOIN gf_cuenta ct ON ct.id_unico = ctb.cuenta
        WHERE ctb.id_unico = $banco");
        if (empty($_REQUEST['tercero'])) {
            $tercero = "2";
        } else {
            $tercero = $_REQUEST['tercero'];
        }
        if (empty($_REQUEST['proyecto'])) {
            $proyecto = "2147483647";
        } else {
            $proyecto = $_REQUEST['proyecto'];
        }
        if (empty($_REQUEST['centro'])) {
            $centro = "12";
        } else {
            $centro = $_REQUEST['centro'];
        }
        if ($row[0][1] == 1) {
            $valor = $valor * -1;
        }
        $sql = "INSERT INTO gf_detalle_comprobante(fecha,descripcion,valor,valorejecucion,comprobante,cuenta,naturaleza,tercero,proyecto,centrocosto,detalleafectado) VALUES 
        (:fecha,:descripcion,:valor,:valorEjecucion,:comprobante,:row0,:row1,:tercero,:proyecto,:centro,:detalleafectado)";
        $sql_dato1 = array(
            array(":fecha", $fecha),
            array(":descripcion", $descripcion),
            array(":valor", $valor),
            array(":valorEjecucion", $valorEjecucion),
            array(":comprobante", $comprobante),
            array(":row0", $row[0][0]),
            array(":row1", $row[0][1]),
            array(":tercero", $tercero),
            array(":proyecto", $proyecto),
            array(":centro", $centro),
            array(":detalleafectado", NULL),
        );
        $obj_resp = $con->InAcEl($sql, $sql_dato1);
        if (empty($obj_resp)) {
            $rowUC = $con->Listar("SELECT MAX(id_unico) FROM gf_detalle_comprobante where comprobante = $comprobante AND tercero = $tercero");
            $idDetalleComprobante = $rowUC[0][0];
            $result = 1;
            agregarAuditoriaSistema($idDetalleComprobante, 1, 'GF_DETALLE_COMPROBANTE');
        } else {
            $result = 2;
        }

        echo json_encode($result);
        break;
    case 38:
        ############################################################################################################################################
        # Validación de variables
        #
        ############################################################################################################################################
        if (!empty($_REQUEST['mes']) && !empty($_REQUEST['cuenta'])) {
            ####################################################################################################################################
            # Captura de variables
            #
            #####################################################################################################################################
            $mes = $_REQUEST['mes'];
            $cuenta = $_REQUEST['cuenta'];
            ####################################################################################################################################
            # Consulta de conciliacion bancaria
            #
            #####################################################################################################################################
            $idP = $con->Listar("SELECT  ptc.id_unico
                    FROM    gf_partida_conciliatoria ptc
                    WHERE   ptc.id_cuenta = $cuenta AND ptc.mes = $mes");

            $cantidad = count($idP);
            if ($cantidad == 1) {
                echo 'registrar_GF_PARTIDA_CONCILIATORIA.php?idPartida=' . base64_encode($idP[0][0]);
            } else {
                echo '';
                // if ($cantidad == NULL) {
                //     echo 'registrar_GF_PARTIDA_CONCILIATORIA.php';
                // }
                           
            }
        }
        break;
    case 39:
        ############################################################################################################################################
        # Captura de variables
        #
        ############################################################################################################################################
        $id = $_REQUEST['id'];
        #$form = $_REQUEST['form'];
        $mes = $_REQUEST['mes'];
        #$cuenta = $_REQUEST['cuenta'];
        ############################################################################################################################################
        # Consultamos si la el detalle ya tiene el indicador
        #
        ############################################################################################################################################
        $conciliado = $con->Listar("SELECT conciliado FROM gf_detalle_comprobante WHERE id_unico = $id");
        ############################################################################################################################################
        # Validación de valor obtenido en la consulta
        #
        ############################################################################################################################################
        if (empty($conciliado[0][0])) {
            ########################################################################################################################################
            # Actualizamos cuando el valor es vacio, entonces se coloca conciliado y mes
            #
            ########################################################################################################################################
            $sqlC = "UPDATE gf_detalle_comprobante SET conciliado = 1, periodo_conciliado = :mes WHERE id_unico = :id";
            $sql_dato1 = array(
                array(":mes", $mes),
                array(":id", $id),
            );
            $obj_resp = $con->InAcEl($sqlC, $sql_dato1);
        } else {
            ########################################################################################################################################
            # Actualizamos cuando el valor no es vacio y se cambia por null
            #
            ########################################################################################################################################
            $sqlC = "UPDATE gf_detalle_comprobante SET conciliado = :conciliado, periodo_conciliado = :periodo_conciliado WHERE id_unico = :id";

            $sql_dato1 = array(
                array(":conciliado", NULL),
                array(":periodo_conciliado", NULL),
                array(":id", $id),
            );
            $resultC = $con->InAcEl($sqlC, $sql_dato1);
        }
        break;
    case 40:
        ############################################################################################################################################
        # Captura de variables
        #
        ############################################################################################################################################
        $comprobante = $_REQUEST['comprobante'];
        ############################################################################################################################################
        # Validación de variable no vacia
        #
        ############################################################################################################################################
        if (!empty($comprobante)) {
            ########################################################################################################################################
            # Cargamos la variable de session
            #
            ########################################################################################################################################
            $_SESSION['idNumeroC'] = $comprobante;
        } else {
            ########################################################################################################################################
            # Vaciamos la variable de session
            #
            ########################################################################################################################################
            $_SESSION['idNumeroC'] = "";
        }
        break;
    case 41:
        ############################################################################################################################################
        # Captura de variables
        #
        ############################################################################################################################################
        $tipo = $_REQUEST['tipo'];
        ############################################################################################################################################
        # Impresión de opcion vacia
        #
        ############################################################################################################################################
        echo "<option value=''>Informe</option>";
        ############################################################################################################################################
        # Consulta de informes por tipo
        #
        ############################################################################################################################################
        $row = $con->Listar("SELECT id,nombre FROM gn_informe WHERE tipo_informe = $tipo");
        for ($i = 0; $i < count($row); $i++) {
            ########################################################################################################################################
            # Impresión de valores
            #
            ########################################################################################################################################
            echo "<option value=" . $row[0][0] . ">" . ucwords(mb_strtolower($row[0][1])) . "</option>";
        }
        break;
    case 42:
        ############################################################################################################################################
        # Captura de variables
        #
        ############################################################################################################################################
        $informe = $_REQUEST['informe'];
        ############################################################################################################################################
        # Validación de no vacio
        #
        ############################################################################################################################################
        if (!empty($informe)) {
            echo 'GN_HOMOLOGACIONES.php?report=' . base64_encode($informe);
        }
        break;
    case 43:
        /* Contenido ajax */
        if (!empty($_REQUEST['report'])) {      //Validamos que si la variable report no viene vacia
            $idReport = $_REQUEST['report'];  //id del report
            $limit    = $_REQUEST['limit'];   //Limite de consulta
            $offset   = $_REQUEST['offset'];  //Final de consulta
            //Inicializamos las variables en 0 o vacio
            $x        = 0;
            $html     = "";
            $colO = "";                       //Nombre de columna origen
            $colD = 0;                        //Contador de columnas destino
            $columnasDestino = "";            //Nombres de columnas Destino
            $tablaOrigen     = "";            //Nombres de tabla Origen
            $tablasDestino   = "";            //Nombres de tablas Destino
            $consultasTablaD = "";            //Consultas de tabla destino
            $idTH            = "";            //Id de las tablas homologables
            $consultaTablaO  = "";            //Consulta de la tabla de origen
            //Impresión de cabeza de la tabla
            $html .= "<thead>";
            $html .= "<tr>";
            //Consulta para obtener columna de origen por informe
            $rowColO = $con->Listar("SELECT tbH.columna_origen,tbH.tabla_origen,tbH.select_table_origen
                        FROM   gn_tabla_homologable tbH
                        WHERE  tbH.informe = $idReport");
            //Asiganción de valores devueltos por consulta
            $colO           = $rowColO[0][0];    //Captura de columna origen
            $tablaOrigen    = $rowColO[0][1];    //Captura del nombre de la tabla
            $consultaTablaO = $rowColO[0][2];    //Captura de select de la tabla origen
            //Impresión de valores devueltos por la consulta
            $html .= "<th class=\"cabeza cursor\" title=\"Tabla de Origen : " . ucwords($tablaOrigen) . "\">" . ucfirst(ucwords($colO)) . "</th>";
            //Consulta para obtener columnas de destino por informe
            $rowTH = $con->Listar("SELECT  tbH.columna_destino,tbH.tabla_destino,tbH.select_table_destino,tbH.id
                          FROM    gn_tabla_homologable tbH
                          WHERE   tbH.informe = $idReport");
            for ($i = 0; $i < count($rowTH); $i++) { //Impresión de valores devueltos por la consulta
                $colD++;  //Contador de columnas de destino
                #Impresión de Nombres de columna destino
                $html .= "<th class=\"cabeza cursor danger\" style='width: 100px'>" . ucfirst(ucwords($rowTH[$i][0] . PHP_EOL . '(Tabla: ' . $rowTH[$i][1] . ')')) . "</th>";
                $columnasDestino .= $rowTH[$i][0] . ",";   //Captura de columnas destino
                $tablasDestino  .=   $rowTH[$i][1] . ","; //Captura de tablas destino
                $consultasTablaD .= $rowTH[$i][2] . ";";   //Captura de consultas de tabla destino
                $idTH .= $rowTH[$i][3] . ",";               //Captura de ids de tabla homologable
            }
            $html .= "<tr>";
            $html .= "</thead>";
            #Impresión de cuerpo de tabla
            $html .= "<tbody>";
            $columnasDestino = substr($columnasDestino, 0, strlen($columnasDestino) - 1);   //Quitamos la ultima coma
            $tablasDestino   = substr($tablasDestino, 0, strlen($tablasDestino) - 1);       //Quitamos la ultima coma
            $idTH            = substr($idTH, 0, strlen($idTH) - 1);                         //Quitamos la ultima coma
            $columnD         = explode(",", $columnasDestino);                           //Array de columnas destino
            $tbD             = explode(",", $tablasDestino);                            //Array de tablas destino
            $selectDestino   = explode(";", $consultasTablaD);                           //Array de selects destino
            $idTablaH        = explode(",", $idTH);                                     //Array de las id de tabla homologable
            //Consulta de tabla origen
            if (!empty($consultaTablaO)) {
                $rowT = $con->Listar("$consultaTablaO LIMIT $limit OFFSET $offset");
                $cantidad = count($rowT);
                $y = 0; //Contador de filas
                for ($i = 0; $i < count($rowT); $i++) {   //Impresión de valores devueltos por la consulta
                    ++$y; //Contamos las filas
                    #Impresión de filas de la tabla
                    $html .= "<tr>";
                    $rowT0 = $rowT[0][0];
                    $rowT1 = $rowT[0][1];
                    $html .= "<td class='info' style=\"width:250px\"><span name=\"Origen$rowT0\" id=\"Origen$rowT0\">" . (ucwords(mb_strtolower($rowT1))) . "</span></td>";       //Impresión de campo conocido, de lta tabla origen
                    for ($a = 0; $a <= $colD - 1; ++$a) {                   //Ciclo de impresión para select
                        $html .= "<td style='width:150px'>";
                        $x++;
                        $html .= "<input type=\"hidden\" id=\"txt$columnD[$a]$x\" value=\"\">";
                        $html .= "<select class=\"select2 form-control col-sm-1\" onchange=\"guardarHomologacion($rowT0,this.value," . $idTablaH[$a] . "," . $idTablaH[$a] . "," . "$('#txt" . $columnD[$a] . $x . "').val()" . ",'txt" . $columnD[$a] . $x . "');\" name=\"$columnD[$a]$y\" id=\"$columnD[$a]$y\" style=\"width:150px;align:center\">";     //Campo select generado de manera dinamica
                        $html .= "<option value=''>" . ucfirst(ucwords($columnD[$a])) . "</option>"; //opción con el nombre del campo
                        $sqlTD       = $selectDestino[$a];             //Consulta de la tabla destino
                        $resultTD    = $mysqli->query($sqlTD);
                        while ($rowTD = mysqli_fetch_row($resultTD)) {        //Impresión de valores
                            #Consulta para saber cuales registros o valores estan en gn_homologaciones
                            if (!empty($rowTD[0])) {
                                $c = $con->Listar("SELECT    hom.id FROM gn_homologaciones hom
                                           LEFT JOIN gn_tabla_homologable th1 on hom.origen = th1.id
                                           LEFT JOIN gn_informe i on th1.informe = i.id
                                           WHERE hom.id_origen  = '" . $rowT[0][0] . "'
                                           AND   hom.id_destino = '" . $rowTD[0][0] . "'
                                           AND   hom.origen     = $idTablaH[$a]
                                           AND   hom.destino    = $idTablaH[$a]
                                           AND   th1.informe    = $idReport");              //Se carga el valor de la consulta
                                if (!empty($c[0][0])) {                             //Se valida que es diferente de vacio
                                    $pos = strpos($selectDestino[$a], "order"); //Buscamos la palabra order by en la Consulta
                                    if (!empty($pos)) { //Validamos que no venga vacia
                                        $str1 = substr($selectDestino[$a], 0, $pos);  //Tomamos la Consulta desde la posición 0 hasta la posicion en la que se encontro la palabra
                                        $str2 = substr($selectDestino[$a], $pos);    //Tomamos la consulta desde la posición en que se hayo la palbra
                                        $rowTD1 = $con->Listar($str1 . " WHERE id_unico = '" . $rowTD[0][0] . "' $str2"); //Armamos nuestra query para obtener el valor especifico
                                    } else {
                                        $rowTD1 =  $con->Listar($selectDestino[$a] . " WHERE id_unico = '" . $rowTD[0][0]);    //Consulta de la tabla destino cuando existe valor en la tabla gn_homologaciones
                                    }
                                    $html .= "<option value=" . $rowTD1[0][0] . " selected>" . ucwords(mb_strtolower($rowTD1[0][1])) . "</option>"; //Option con el valor optenido cuando exsite en la base de datos
                                    $html .= "<script>\n";
                                    $html .= "$(document).ready(function(){\n";
                                    $html .= "var fila$x = " . $c[0][0] . ";\n";
                                    $html .= "$(\"#txt$columnD[$a]$x\").val(fila$x);\n";
                                    $html .= "});\n";
                                    $html .= "</script>";
                                }
                            }
                            $html .= "<option value=" . $rowTD[0][0] . ">" . ucwords(mb_strtolower($rowTD[0][1])) . "</option>"; //Opción impresa
                        }
                        $html .= "</select>\n";   //Fin del select
                        $html .= "</td>\n";       //Fin de la celda
                    }
                    $html .= "</tr>\n";           //Fin de la fila
                }
            } else {
                $html .= "<h1>No ha configuración</h1>";
            }
            $html .= "</tbody>\n";            //Fin del cuerpo de la tabla
            $html .= "<script>\n";            //Script para carga la libreria select2 en los combos o campos de seleccion
            $html .= "$('.select2').select2({";
            $html .= "allowClear:true";
            $html .= "});";
            $html .= "</script>\n";
            echo $html;
        }
        break;
    case 44:
        if (!empty($_REQUEST['report'])) { //Validamos que si la variable report no viene vacia
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //colO para capturar en un string el nombre de la columna de origen y tablaOrigen para capturar el nombre de tabla de origen
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $idReport = $_REQUEST['report'];
            $colO = "";                 //Nombre de columna origen
            $tablaOrigen = "";          //Nombres de tabla Origen
            $jsondata = array();
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Consulta para obtener columna de origen por informe
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $rowColO = $con->Listar("SELECT  select_table_origen
                        FROM    gn_tabla_homologable tbH
                        WHERE   tbH.informe = $idReport");
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Captura de valores devueltos en la consulta
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $colO = $rowColO[0][0];        //Captura de columna origen
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Consulta de tabla origen
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $sqlT    = $con->Listar($colO);
            $fila    = count($sqlT);
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Impresión de valores retornados
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            echo ($fila);
        }
        break;
    case 45:
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Capturamos los valores para registrar
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $idDestino = $_REQUEST['idDestino'];
        $idOrigen  = $_REQUEST['idOrigen'];
        $origen    = $_REQUEST['origen'];
        $destino   = $_REQUEST['destino'];
        $id_hom    = $_REQUEST['id_hom'];
        if (!empty($id_hom)) {
            if (empty($idDestino)) {
                $sql = "DELETE FROM gn_homologaciones WHERE id = :id_hom";
                $sql_dato1 = array(
                    array(":id_hom", $id_hom),
                );
                $result = $con->InAcEl($sql, $sql_dato1);
                echo json_encode($result . ";" . '');
            } else {
                $sql = "UPDATE gn_homologaciones SET id_destino = :idDestino WHERE id = :id_hom";
                $sql_dato1 = array(
                    array(":idDestino", $idDestino),
                    array(":id_hom", $id_hom),
                );
                $result = $con->InAcEl($sql, $sql_dato1);
                echo json_encode($result . ";" . $id_hom);
            }
        } else {
            $insert = "INSERT INTO gn_homologaciones(id_origen,id_destino,origen,destino) 
                    VALUES(':idOrigen',':idDestino',':origen',':destino')";
            $sql_dato1 = array(
                array(":idOrigen", $idOrigen),
                array(":idDestino", $idDestino),
                array(":origen", $origen),
                array(":destino", $destino),
            );
            $result = $con->InAcEl($insert, $sql_dato1);

            $rowE = $con->Listar("SELECT MAX(id) FROM gn_homologaciones
                       WHERE id_origen  = '$idOrigen'
                       AND   id_destino = '$idDestino'
                       AND   origen     = '$origen'
                       AND   destino    = '$destino' ");
            echo json_encode($result . ";" . $rowE[0][0]);
        }
        break;
    case 46:
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Capturamos los valores para modificar el detalle de banco en ingreso contable
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $id = $_REQUEST['id'];
        $debito = $_REQUEST['debito'];
        $credito = $_REQUEST['credito'];
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Consultamos la naturaleza que se relaciona al detalle
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $nat = $con->Listar("SELECT dtc.naturaleza FROM gf_detalle_comprobante dtc WHERE dtc.id_unico = $id");
        $naturaleza = $nat[0][0];
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Validamos el ingreso de valores
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (empty($_REQUEST['debito']) || $_REQUEST['debito'] == '0') {
            if (!empty($_REQUEST['credito'])) {
                if ($naturaleza == 1) {
                    $valor = $_REQUEST['credito'] * -1;
                } else {
                    $valor = $_REQUEST['credito'];
                }
            }
        }

        if (empty($_REQUEST['credito']) || $_REQUEST['credito'] == '0') {
            if (!empty($_REQUEST['debito'])) {
                if ($naturaleza == 2) {
                    $valor = $_REQUEST['debito'] * -1;
                } else {
                    $valor = $_REQUEST['debito'];
                }
            }
        }
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Actualizamos
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $sql = "UPDATE gf_detalle_comprobante SET valor = :valor WHERE id_unico = :id";
        $sql_dato1 = array(
            array(":valor", $valor),
            array(":id", $id),
        );
        $result = $con->InAcEl($sql, $sql_dato1);
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Imprimos el valor retornado por la consulta
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        echo json_encode($result);
        break;
    case 47:
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Declaramos un contador, para obtener la cantidad de cuentas en cuenta credito, y un array x para obtener los detalles que son cuentas debito
        // y que tienen cuenta credito en concepto rubro cuenta
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $h = 0;                     //Contador
        $x = array();               //Array de captura de los de detalles
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Función para generar causación, Validamos que el valor recibido no este vacio
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['comprobante'])) {
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Capturamos el id del comprobante
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $comC = $_REQUEST['comprobante'];
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Consultamos que tenga un tipo de comprobante el cual este homologado
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $tipo_hom = $con->Listar("SELECT      tp.tipo_comp_hom
                    FROM        gf_comprobante_cnt cnt
                    LEFT JOIN   gf_tipo_comprobante tp
                    ON          cnt.tipocomprobante = tp.id_unico
                    WHERE       cnt.id_unico        = $comC");
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Validamos que el tipo de comprobante homologado retornado no este vacio
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            if (!empty($tipo_hom[0][0])) {
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Consultamos si existe algun comprobante relacionado al detalle
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $id_crn = $con->Listar(" SELECT DISTINCT cnt1.id_unico as 'crn',
                                        dtpp.comprobantepptal
                            FROM        gf_detalle_comprobante dtc
                            LEFT JOIN   gf_comprobante_cnt cnt              ON dtc.comprobante      = cnt.id_unico
                            LEFT JOIN   gf_detalle_comprobante dtc1         ON dtc1.detalleafectado = dtc.id_unico
                            LEFT JOIN   gf_comprobante_cnt cnt1             ON dtc1.comprobante     = cnt1.id_unico
                            LEFT JOIN   gf_detalle_comprobante_pptal dtpp   ON dtpp.id_unico        = dtc1.detallecomprobantepptal
                            WHERE       cnt.id_unico = $comC
                            AND         cnt1.tipocomprobante = " . $tipo_hom[0][0]);
                $cantidad = count($id_crn);
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Si existe realizara registro en detalle
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                if ($cantidad > 0) {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //Consultamos los detalles y obtenemos la cuentas y validamos si están registradas en concepto_rubro_cuenta como debito
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    $rowD = $con->Listar("SELECT MAX(id_unico) FROM gf_detalle_comprobante WHERE comprobante = $comC AND detallecomprobantepptal IS NOT NULL");
                    for ($i = 0; $i < count($rowD); $i++) {
                        $rowV = $con->Listar("SELECT valor FROM gf_detalle_comprobante WHERE id_unico = " . $rowD[0][0]);
                        $valorDtc = abs($rowV[0][0]);
                        $sqlDDD = $con->Listar("SELECT dtc.id_unico, dtc.valor FROM gf_detalle_comprobante dtc
                                    LEFT JOIN gf_comprobante_cnt cnt ON dtc.comprobante = cnt.id_unico
                                    WHERE dtc.detalleafectado = " . $rowD[0][0] . " AND cnt.tipocomprobante = " . $tipo_hom[0][0]);
                        if (count($sqlDDD)  == 0) {
                            $rowDTC = $con->Listar("SELECT cuenta FROM gf_detalle_comprobante WHERE id_unico = " . $rowD[0][0]);
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Consultamos las cuentas en los detalles, esten en concepto_rubro_cuenta como cuenta debito
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            $rowCR = $con->Listar("SELECT  cuenta_credito
                                        FROM    gf_concepto_rubro_cuenta
                                        WHERE   cuenta_debito = " . $rowDTC[0][0]);
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Validamos que los id de cuenta_debito y cuenta_credito sean diferentes
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            if ($rowDTC[0][0] !== $rowCR[0][0]) {
                                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                //Validamos que la consulta retorne valores mayores que 0
                                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                if (count($rowCR) > 0) {
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Consultamos los valores del detalle
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $rowDePtall = $con->Listar("SELECT      dtp.descripcion,
                                                                dtp.rubroFuente,
                                                                dtp.conceptoRubro,
                                                                dtp.tercero,
                                                                dtp.proyecto,
                                                                dtp.valor,
                                                                dtp.id_unico
                                                    FROM        gf_detalle_comprobante_pptal dtp
                                                    LEFT JOIN   gf_detalle_comprobante dtc ON dtc.detallecomprobantepptal = dtp.id_unico
                                                    WHERE       dtc.id_unico = " . $rowD[0][0]);

                                    $id_d = $rowD[0][0];
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Validamos que el valor del detalle sea negativo y se convierta a positivo
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    if ($rowDePtall[0][5] < 0) {
                                        $valorDP = $rowDePtall[0][5] * -1;
                                    } else {
                                        $valorDP = $rowDePtall[0][5];
                                    }
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Insertamos los valores en el detalle comprobante pptal
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $resultIND = gf_detalle_comprobante_pptal($rowDePtall[0][0], $valorDP, $rowDePtall[0][1], $rowDePtall[0][2], $rowDePtall[0][3], $rowDePtall[0][4], $rowDePtall[0][6]);

                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Consultamos el ultimo id detalle insertado
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $idDPT = NULL;
                                    if (!empty($id_crn[0][1])) {
                                        $idDetallePp = $con->Listar("SELECT MAX(id_unico)
                                                    FROM    gf_detalle_comprobante_pptal
                                                    WHERE   comprobantepptal = " . $id_crn[0][1]);
                                        $idDPT = $idDetallePp[0][0];
                                    }
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Consultamos los valores del detalle cnt
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $rowDt = $con->Listar("SELECT    dtc.fecha,
                                                        dtc.descripcion,
                                                        dtc.valor,
                                                        dtc.cuenta,
                                                        dtc.tercero,
                                                        dtc.proyecto,
                                                        dtc.centrocosto
                                            FROM        gf_detalle_comprobante dtc
                                            WHERE       dtc.id_unico = $id_d");
                                    $valor = abs($rowDt[0][2]);                    #Obtenemos el valor absoluto del valor en el detalle
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Realizamos insertado de datos con cuenta debitto
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $sqlDD = "INSERT INTO gf_detalle_comprobante (fecha, descripcion, valor, cuenta, naturaleza, tercero, proyecto, 
                                    centrocosto, comprobante, detalleafectado, detallecomprobantepptal)  
                                    VALUES (':rowDt0', ':rowDt1', :valorDtc, :rowDt3, :naturaleza, :rowDt4, :rowDt5, :rowDt6, :id_crn, :id_d, :idDPT);";
                                    $sql_dato1 = array(
                                        array(":rowDt0", $rowDt[0][0]),
                                        array(":rowDt1", $rowDt[0][1]),
                                        array(":valorDtc", $valorDtc),
                                        array(":rowDt3", $rowDt[0][3]),
                                        array(":naturaleza", 1),
                                        array(":rowDt4", $rowDt[0][4]),
                                        array(":rowDt5", $rowDt[0][5]),
                                        array(":rowDt6", $rowDt[0][6]),
                                        array(":id_crn", $id_crn[0][0]),
                                        array(":id_d", $id_d),
                                        array(":idDPT", $idDPT),
                                    );
                                    $resultDD = $con->InAcEl($sqlDD, $sql_dato1);
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Consultamos el id de la cuenta credito
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $rowCR = $con->Listar("SELECT  cuenta_credito
                                                FROM    gf_concepto_rubro_cuenta
                                                WHERE   cuenta_debito = " . $rowDt[0][3]);
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Realizamos insertado de datos a cuenta credito
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $sqlDC = "INSERT INTO gf_detalle_comprobante (fecha, descripcion, valor, cuenta, naturaleza, tercero, proyecto, centrocosto, comprobante, 
                                    detalleafectado, detallecomprobantepptal)  
                                    VALUES (':rowDt0', ':rowDt1', :valorDtc, :rowCR0, :naturaleza, :rowDt4, :rowDt5, :rowDt6, :id_crn, :id_d, :idDPT)";
                                    $sql_dato1 = array(
                                        array(":rowDt0", $rowDt[0][0]),
                                        array(":rowDt1", $rowDt[0][1]),
                                        array(":valorDtc", $valorDtc),
                                        array(":rowCR0", $rowCR[0][0]),
                                        array(":naturaleza", 2),
                                        array(":rowDt4", $rowDt[0][4]),
                                        array(":rowDt5", $rowDt[0][5]),
                                        array(":rowDt6", $rowDt[0][6]),
                                        array(":id_crn", $id_crn[0][0]),
                                        array(":id_d", $id_d),
                                        array(":idDPT", $idDPT),
                                    );
                                    $resultDC = $con->InAcEl($sqlDC, $sql_dato1);
                                }
                            }
                        }
                    }
                } else {
                    $param = $_SESSION['anno'];
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //Consultamos los detalles y obtenemos la cuentas y validamos si están registradas en concepto_rubro_cuenta como debito
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    $rowD = $con->Listar("SELECT dtc.id_unico,
                                    dtc.cuenta
                            FROM    gf_detalle_comprobante dtc
                            WHERE   dtc.comprobante = $comC");
                    for ($a = 0; $a < count($rowD); $a++) {
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Consultamos las cuentas en los detalles, esten en concepto_rubro_cuenta como cuenta debito relaciondas a los detalles
                        //del comprobante
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        $rowCR = $con->Listar("SELECT DISTINCT cuenta_credito FROM gf_concepto_rubro_cuenta WHERE cuenta_debito = " . $rowD[$a][1]);

                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Validamos que la cuenta_debito y credito no sean iguales
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        if ($rowD[$a][1] !== $rowCR[0][0]) {
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Validamos que la consulta retorne valores mayores que 0
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            if (count($rowCR) !== 0) {
                                ++$h;                           //Preincrementamos el contador
                                $x[] = $rowD[$a][0];                  //Capturamos el id del detalle
                            }
                        }
                    }
                    // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    // //Validamos que h sea mayor que 0
                    // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    if ($h > 0) {
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Consultamos los datos del comprobante
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        $com = $con->Listar("SELECT cnt.fecha,
                                        cnt.tipocomprobante,
                                        cnt.numero,
                                        cnt.tercero,
                                        cnt.descripcion,
                                        cnt.estado,
                                        cnt.clasecontrato,
                                        cnt.numerocontrato,
                                        cnt.compania,
                                        cnt.parametrizacionanno
                                FROM    gf_comprobante_cnt cnt
                                WHERE   cnt.id_unico = $comC");
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Consultamos si el tipo de comprobante homologado tiene un comprobante pptal
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        $tipo_pptal = $con->Listar("SELECT comprobante_pptal FROM gf_tipo_comprobante WHERE id_unico = " . $tipo_hom[0][0]);
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Validamos que el tipo de comprobante presupuestal del comprobante homologado retorne algun valor
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Se comento el registro presupuestal ya que la causaciòn no se esta realizando a presupuesto
                        if (!empty($tipo_pptal[0][0])) {
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Realizamos insert a comprobante pptal con el tipo de comprobante de reconocimiento
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            if ($com[0][6] == NULL) {
                                $com6 = 0;
                            } else {
                                $com6 = $com[0][6];
                            }
                            if ($com[0][7] == NULL) {
                                $com7 = 0;
                            } else {
                                $com7 = $com[0][7];
                            }
                            $sqlPptal = "INSERT INTO gf_comprobante_pptal   (numero,fecha,fechavencimiento,descripcion,numerocontrato,parametrizacionanno,claseContrato,
                            tipocomprobante,tercero,estado,responsable) 
                            VALUES (':numero',':fecha',':fechavencimiento',':descripcion',':numerocontrato',:parametrizacionanno,:claseContrato,:tipocomprobante,:com03,:estado,:responsable)";
                            $sql_dato1 = array(
                                array(":numero", $com[0][2]),
                                array(":fecha", $com[0][0]),
                                array(":fechavencimiento", $com[0][0]),
                                array(":descripcion", $com[0][4]),
                                array(":numerocontrato", $com[0][7]),
                                array(":parametrizacionanno", $param),
                                array(":claseContrato", $com6),
                                array(":tipocomprobante", $tipo_pptal[0][0]),
                                array(":com03", $com[0][3]),
                                array(":estado", 1),
                                array(":responsable", $com[0][3]),
                            );
                            $resultPptal = $con->InAcEl($sqlPptal, $sql_dato1);
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Consultamos el ultimo comprobante pptal insertado
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            $id_pptal = $con->Listar("SELECT MAX(id_unico) FROM gf_comprobante_pptal WHERE tipocomprobante = " . $tipo_pptal[0][0]);
                        }
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Verificamos que si existe algun comprobante que tenga el tipo
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        $cant = $con->Listar("SELECT count(id_unico) FROM gf_comprobante_cnt WHERE tipocomprobante = " . $tipo_hom[0][0]);
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Validamos que el valor retornado sea 0, si es sero el contador de numero del tipo se inicializara en 0,de lo contrario se
                        //incrementara
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        if ($cant[0][0] == 0) {
                            $num = date('Y') . '000001';
                        } else {
                            $num = $cant[0][0] + 1;
                        }
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Realizamos insert a comprobante cnt con el tipo de comprobante de reconocimiento
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                        $sqlCnt = "INSERT INTO gf_comprobante_cnt  (fecha ,tipocomprobante ,numero ,tercero ,descripcion ,estado ,
                        clasecontrato ,numerocontrato ,compania ,parametrizacionanno)
                        VALUES (':fecha',':tipocomprobante' ,':numero' ,':tercero' ,':descripcion' ,':estado' ,:clasecontrato ,:numerocontrato,':compania' ,':parametrizacionanno')";
                        $sql_dato1 = array(
                            array(":fecha", $com[0][0]),
                            array(":tipocomprobante", $tipo_hom[0][0]),
                            array(":numero", $com[0][2]),
                            array(":tercero", $com[0][3]),
                            array(":descripcion", $com[0][4]),
                            array(":estado", $com[0][5]),
                            array(":clasecontrato", $com6),
                            array(":numerocontrato", $com7),
                            array(":compania", $com[0][8]),
                            array(":parametrizacionanno", $com[0][9]),
                        );
                        $resultCnt = $con->InAcEl($sqlCnt, $sql_dato1);
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Consultamos el ultimo comprobante registrado por el tipo
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        $id_com = $con->Listar("SELECT MAX(id_unico) FROM gf_comprobante_cnt WHERE tipocomprobante = " . $tipo_hom[0][0] . " AND numero = " . $com[0][2]);

                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Desplegamos el array, y consultamos el detalle, y nuevamente obtenemos el id de la cuenta, la cual consultamos nuevamente a
                        //conceto rubro cuenta y relizamos el ingreso de datos al detalle
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        for ($a = 0; $a < count($x); $a++) {
                            $id_d = $x[$a];
                            $rowDt = "SELECT    dtc.fecha,
                                                dtc.descripcion,
                                                dtc.valor,
                                                dtc.cuenta,
                                                dtc.tercero,
                                                dtc.proyecto,
                                                dtc.centrocosto,
                                                dtc.detallecomprobantepptal
                                    FROM        gf_detalle_comprobante dtc
                                    WHERE       dtc.id_unico = $id_d";
                            $valor = abs($rowDt[0][2]);                    #Obtenemos el valor absoluto del valor en el detalle
                            $idDpp = NULL;
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Validamos que haya un comprobante pptal
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            if (!empty($id_pptal[0][0])) {
                                ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                //validamos y consultamos los valores del detalle del comprobante pptal
                                ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                if (!empty($rowDt[0][7])) {
                                    $rowDePtall = $con->Listar("SELECT  descripcion,
                                                            rubroFuente,
                                                            conceptoRubro,
                                                            tercero,
                                                            proyecto
                                                    FROM    gf_detalle_comprobante_pptal
                                                    WHERE   id_unico = " . $rowDt[0][7]);
                                    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Insertamos los valores
                                    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                                    $resultIND = gf_detalle_comprobante_pptal($rowDePtall[0][0], $valor, $rowDePtall[0][1], $rowDePtall[0][2], $rowDePtall[0][3], $rowDePtall[0][4], $id_pptal[0][0]);

                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    //Consultamos el ultimo id detalle insertado
                                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                    $idDetallePp1 = $con->Listar("SELECT MAX(id_unico)
                                                FROM    gf_detalle_comprobante_pptal
                                                WHERE   comprobantepptal = " . $id_pptal[0][0]);
                                    $idDpp = $idDetallePp1[0][0];
                                }
                            }
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Realizamos insertado de datos con cuenta debitto
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            $sqlDD = gf_detalle_comprobante($rowDt[0][0], $rowDt[0][1], $valor, $rowDt[0][3], 1, $rowDt[0][4], $rowDt[0][5], $rowDt[0][6], $id_com[0][0], $id_d, $idDpp);
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Consultamos el id de la cuenta credito
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            $rowCR = $con->Listar("SELECT  cuenta_credito
                                        FROM    gf_concepto_rubro_cuenta
                                        WHERE   cuenta_debito = " . $rowDt[0][3]);
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Realizamos insertado de datos a cuenta credito
                            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                            $sqlDC = gf_detalle_comprobante($rowDt[0][0], $rowDt[0][1], $valor, $rowCR[0][0], 2, $rowDt[0][4], $rowDt[0][5], $rowDt[0][6], $id_com[0][0], $id_d, $idDpp);
                        }
                    }
                }
            }
        }
        echo "OK";
        break;
    case 48:
        $pago = $_REQUEST['pago'];
        //Consultamos su relación con cnt y pptal
        $row = $con->Listar("SELECT cn.id_unico as cnt, cp.id_unico as ptal 
                FROM gp_pago p 
                LEFT JOIN gp_detalle_pago dp ON p.id_unico = dp.pago 
                LEFT JOIN gf_detalle_comprobante dc ON dc.id_unico = dp.detallecomprobante 
                LEFT JOIN gf_comprobante_cnt cn ON dc.comprobante = cn.id_unico 
                LEFT JOIN gf_detalle_comprobante_pptal dpt ON dc.detallecomprobantepptal = dpt.id_unico 
                LEFT JOIN gf_comprobante_pptal cp ON dpt.comprobantepptal = cp.id_unico 
                WHERE p.id_unico = $pago");
        if (!empty($row[0][0])) {
            //Imprimimos la url para que se redireccione la pagina
            echo "registrar_GF_RECAUDO_FACTURACION_2.php?recaudo=" . base64_encode($pago) . "&cnt=" . base64_encode($row[0][0]) . "&pptal=" . base64_encode($row[0][1]);
        } else {
            #Buscar Por Número Y Tipo 
            $row2 = $con->Listar("SELECT cn.id_unico as cnt, cp.id_unico as ptal 
                FROM gp_pago p 
                LEFT JOIN gp_detalle_pago dp ON p.id_unico = dp.pago 
                LEFT JOIN gp_tipo_pago tp ON p.tipo_pago = tp.id_unico 
                LEFT JOIN gf_tipo_comprobante tc ON tp.tipo_comprobante = tc.id_unico 
                LEFT JOIN gf_comprobante_cnt cn ON cn.tipocomprobante = tc.id_unico AND cn.numero = p.numero_pago 
                LEFT JOIN gf_comprobante_pptal cp ON cp.tipocomprobante = tc.comprobante_pptal AND cp.numero = p.numero_pago 
                WHERE p.id_unico =$pago");
            if (!empty($row2[0][0])) {
                //Imprimimos la url para que se redireccione la pagina
                echo "registrar_GF_RECAUDO_FACTURACION_2.php?recaudo=" . base64_encode($pago) . "&cnt=" . base64_encode($row2[0]) . "&pptal=" . base64_encode($row2[1]);
            } else {
                echo "registrar_GF_RECAUDO_FACTURACION_2.php?recaudo=" . base64_encode($pago);
            }
        }
        break;
    case 49:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Valiamos que la variable conceptos no se encuentre vacia
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['conceptos'])) {
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Capturamos en una variable el array de condeptos envia
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $conceptos = $_REQUEST['conceptos'];
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Hacemos un ciclo for para desplegar el array consultando el nombre, id del los conceptos que se seleccionaros
            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            for ($a = 0; $a < count($conceptos); $a++) {
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Consulta para obtener el nombre y el id del concepto recibido
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $rowC = $con->Listar("SELECT id_unico,nombre FROM gp_concepto WHERE id_unico = $conceptos[$a]");
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Imprimimos codigo html con el label que del concepto y el campo para especificarf que columnas toma el valor el concepto y su posible formula
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                echo "<div class=\"form-group\">";
                echo "<label class=\"col-sm-4 control-label\">" . ucwords(mb_strtolower($rowC[0][1])) . " :</label>";
                echo "<input type=\"text\" name=\"columna" . $rowC[0][0] . "\" id=\"columna" . $rowC[0][0] . "\" placeholder=\"Columna\" title=\"Columnas o formula de columnas para obtener el valor del concepto\" class=\"form-control col-sm-1\" style=\"width:250px\" required>";
                echo "</div>";
            }
        }
        break;
    case 50:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Valiamos que la variable factura, cnt y pptal no se encuentre vacia
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['factura']) && !empty($_REQUEST['cnt']) && !empty($_REQUEST['pptal'])) {
            $factura = $_REQUEST['factura'];                   //id de factura
            $cnt = $_REQUEST['cnt'];                           //cnt
            $pptal = $_REQUEST['pptal'];                       //pptal
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Eliminamos los detalles de la factura
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $delf       =   "DELETE FROM gp_detalle_factura WHERE factura = :factura";
            $sql_dato1 = array(
                array(":factura", $factura),
            );
            $resultf = $con->InAcEl($delf, $sql_dato1);
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Actualizamos los detalles del comprobante con detalleafectado = NULL
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $sqlDD = "UPDATE gf_detalle_comprobante SET detalleafectado = NULL WHERE comprobante = :cnt";
            $sql_dato1 = array(
                array(":cnt", $cnt),
            );
            $resultDD = $con->InAcEl($sqlDD, $sql_dato1);
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Eliminamos los detalles del comprobante cnt
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $sqlC       =   "DELETE FROM gf_detalle_comprobante WHERE comprobante = :cnt";
            $sql_dato1 = array(
                array(":cnt", $cnt),
            );
            $resultc = $con->InAcEl($sqlC, $sql_dato1);
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Eliminamos los detalles del comprobante pptal
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $delp       =   "DELETE FROM gf_detalle_comprobante_pptal WHERE comprobantepptal  = :pptal";
            $sql_dato1 = array(
                array(":pptal", $pptal),
            );
            $resultd = $con->InAcEl($delp, $sql_dato1);
            echo json_encode($resultd);
        }
        break;
    case 51:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Validamos que la variable fecha no este vacia
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['tipo'])) {
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Capturamos las variables enviadas
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $tipo = $_REQUEST['tipo'];                                      //Tipo de comprobante
            $fecha1 = explode("/", $_REQUEST['fecha']);                      //fecha
            $fecha1 = strtotime("$fecha1[2]-$fecha1[1]-$fecha1[0]");
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Consultamos las la fecha maxima del comprobante
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $fecha = $con->Listar("SELECT MAX(fecha_factura) FROM gp_factura WHERE tipofactura = $tipo");
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Validamos que la consulta retorne algun valor
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            if (!empty($fecha[0][0])) {
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Capturamos la fecha consultada
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $fecha2 = strtotime($fecha[0][0]);
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Validamos que la fecha 1 no sea mayor a fecha 2
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // if($fecha1 == $fecha2){
                //     echo json_encode(true);
                // }else{
                //     echo json_encode(false);
                // }
                echo json_encode(false);
            }
        }
        break;
    case 52:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Validaamos que las variables id_cnt y id_pptal no esten vacias
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['id_cnt']) && !empty($_REQUEST['id_pptal'])) {
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Capturamos las variables enviadas
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $id_cnt = $_REQUEST['id_cnt'];
            $id_pptal = $_REQUEST['id_pptal'];
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Consultamos el tipo de comprobante homologado del comprobante cnt
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $tipo_hom = $con->Listar("SELECT    tp.tipo_comp_hom
                    FROM        gf_comprobante_cnt cnt
                    LEFT JOIN   gf_tipo_comprobante tp
                    ON          cnt.tipocomprobante = tp.id_unico
                    WHERE       cnt.id_unico        = $id_cnt");
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Validamos que la consulta retorne algún valor
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            if (count($tipo_hom) > 0) {
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Validamos que la variable $tipo_hom no este vacia
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                if (!empty($tipo_hom[0][0])) {
                    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //Consultamos si existe algun comprobante relacionado al detalle
                    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    $comp = $con->Listar("SELECT      cnt1.id_unico as 'crn',
                                            dtp.comprobantepptal as 'pptal'
                                FROM        gf_detalle_comprobante dtc
                                LEFT JOIN   gf_detalle_comprobante dtc1       ON dtc1.detalleafectado         = dtc.id_unico
                                LEFT JOIN   gf_comprobante_cnt cnt1           ON dtc1.comprobante             = cnt1.id_unico
                                LEFT JOIN   gf_detalle_comprobante_pptal dtp  ON dtc1.detallecomprobantepptal = dtp.id_unico
                                WHERE       dtc.comprobante = $id_cnt
                                AND         cnt1.tipocomprobante = " . $tipo_hom[0][0]);
                    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //Validamos que exista un comprobante cnt y pptal relacionado
                    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    if (count($comp) > 0) {
                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Validamos que realmente la consulta retorne un valor en la posicion 0, el cual es el id del comprobante cnt
                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        if (!empty($comp[0][0])) {
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Eliminamos el detalle y el comprobante cnt
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            $sqlDELCC = "DELETE FROM gf_detalle_comprobante WHERE comprobante = :comp";
                            $sql_dato1 = array(
                                array(":comp", $comp[0][0]),
                            );
                            $a  = $con->InAcEl($sqlDELCC, $sql_dato1);
                            $sqlDELCCN = "DELETE FROM gf_comprobante_cnt WHERE id_unico = $:comp";
                            $sql_dato1 = array(
                                array(":comp", $comp[0][0]),
                            );
                            $b  = $con->InAcEl($sqlDELCCN, $sql_dato1);
                            echo json_encode($b);
                        }
                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //Validamos que realmente la consulta retorne un valor en la posicion 1, el cual es el id del comprobante pptal
                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        if (!empty($comp[1])) {
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            //Eliminamos el detalle y el comprobante pptal
                            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                            $sqlDELDPC = "DELETE FROM gf_detalle_comprobante_pptal WHERE comprobantepptal = :comp";
                            $sql_dato1 = array(
                                array(":comp", $comp[0][1]),
                            );
                            $c  = $con->InAcEl($sqlDELDPC, $sql_dato1);
                            $sqlDELCPC = "DELETE FROM gf_comprobante_pptal WHERE id_unico = :comp";
                            $sql_dato1 = array(
                                array(":comp", $comp[0][1]),
                            );
                            $result  = $con->InAcEl($sqlDELCPC, $sql_dato1);
                            echo json_encode($result);
                        }
                    }
                }
            }
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Eliminamos los detalles de los comprobantes de ingreso
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        }
        break;
    case 53:
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Inicializamos la variable num
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $num = 0;
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //validamos que el tipo no esta vacio
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['tipo'])) {
            $tipo = $_REQUEST['tipo'];     //Capturamos el valor de tipo
            $row = $con->Listar("SELECT MAX(TRIM(numero)) FROM gf_comprobante_pptal WHERE tipocomprobante = $tipo"); //Consulta para obtener el ultimo numero respecto al tipo
            if (empty($row[0][0])) {
                $num = date('Y') . '0000001';
            } else {
                $num = $row[0][0] + 1;
            }
            echo trim($num);
        }
        break;
    case 54:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Validamos que el concepto no esta vacio
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['concepto'])) {
            $concepto = $_REQUEST['concepto'];
            echo "<option value=\"\">Rubro</option>";
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Consultamos los rubros relacionados al rubro
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $result = $con->Listar("SELECT    rb.id_unico, rb.codi_presupuesto, rb.nombre
                FROM      gf_concepto_rubro crb
                LEFT JOIN gf_rubro_pptal rb ON rb.id_unico = crb.rubro
                WHERE     crb.concepto = $concepto");
            for ($row = 0; $row < count($result); $row++) {
                echo "<option value='" . $result[$row][0] . "'>" . $result[$row][1] . " - " . $result[$row][2] . "</option>"; //Valores obtenidos
            }
        }
        break;
    case 55:
        $fuentes = "";
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Validamos que el concepto no esta vacio
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['rubro'])) {
            $rubro = $_REQUEST['rubro'];
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            //Consultamos los rubros relacionados al rubro
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $result = $con->Listar("SELECT  fte.id_unico, fte.nombre
                FROM gf_rubro_fuente rb
                LEFT JOIN gf_fuente fte ON rb.fuente = fte.id_unico
                WHERE rb.rubro = $rubro");
            $conteo_r = count($result);
            if ($conteo_r > 0) {
                for ($row = 0; $row < count($result); $row++) {
                    echo "<option value='" . $result[$row][0] . "'>" . $result[$row][1] . "</option>"; //Valores obtenidos
                    $fuentes .= $result[$row][0] . ",";
                }
                $fuentes = substr($fuentes, 0, strlen($fuentes) - 1);
                $resultF = $con->Listar("SELECT id_unico,LOWER(nombre) FROM gf_fuente WHERE id_unico NOT IN ($fuentes) AND parametrizacionanno = $anno ");
                for ($rowF = 0; $rowF < count($resultF); $rowF++) {
                    echo "<option value='" . $resultF[$rowF][0] . "'>" . ucwords($resultF[$rowF][1]) . "</option>";
                }
            } else {
                echo "<option value=\"\">Fuente</option>";
                $resultF = $con->Listar("SELECT id_unico,LOWER(nombre) FROM gf_fuente WHERE parametrizacionanno = $anno ");
                for ($rowF = 0; $rowF < count($resultF); $rowF++) {
                    echo "<option value=\"" . $resultF[$rowF][0] . "\">" . ucwords($resultF[$rowF][1]) . "</option>";
                }
            }
        }
        break;
    case 56:
        if (!empty($_REQUEST['id_p'])) {
            $id = $_REQUEST['id_p'];
            echo 'registrar_GF_RECAUDO_PPTAL.php?recaudo=' . base64_encode($id);
        }
        break;
    case 57:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Validamos que la factura no este vacia
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['factura'])) {
            $html = "";
            $factura = $_REQUEST['factura'];
            $html .= "<option value=\"\">Concepto</option>";        //Imprimimos el campo vacio de concepto
            switch ($conexion) {
                case 1:
                    $row = $con->Listar("SELECT    DISTINCT  
                    GROUP_CONCAT(DISTINCT (dtf.id_unico)), 
                    GROUP_CONCAT(DISTINCT(dtf.detallecomprobante)), 
                    dtp.conceptoRubro, cpt.nombre, cpt.id_unico 
                    FROM      gp_detalle_factura dtf
                    LEFT JOIN gf_detalle_comprobante dtc       ON dtf.detallecomprobante      = dtc.id_unico
                    LEFT JOIN gf_detalle_comprobante_pptal dtp ON dtc.detallecomprobantepptal = dtp.id_unico
                    LEFT JOIN gp_concepto                  cpt ON dtf.concepto_tarifa         = cpt.id_unico
                    WHERE     dtf.factura = $factura GROUP BY cpt.id_unico");
                    break;

                case 2:
                    $row = $con->Listar("SELECT
                    LISTAGG(DISTINCT dtf.id_unico, ',') WITHIN GROUP (ORDER BY dtf.id_unico) AS id_unico_list,
                    LISTAGG(DISTINCT dtf.detallecomprobante, ',') WITHIN GROUP (ORDER BY dtf.detallecomprobante) AS detallecomprobante_list,
                    dtp.conceptoRubro,
                    cpt.nombre,
                    cpt.id_unico
                FROM
                    gp_detalle_factura dtf
                LEFT JOIN
                    gf_detalle_comprobante dtc ON dtf.detallecomprobante = dtc.id_unico
                LEFT JOIN
                    gf_detalle_comprobante_pptal dtp ON dtc.detallecomprobantepptal = dtp.id_unico
                LEFT JOIN
                    gp_concepto cpt ON dtf.concepto_tarifa = cpt.id_unico
                GROUP BY
                    dtp.conceptoRubro, cpt.nombre, cpt.id_unico
                    WHERE     dtf.factura = $factura GROUP BY cpt.id_unico");
                    break;
            }
            for ($i = 0; $i < count($row); $i++) {
                $row0 = $row[$i][0];
                $rowP = $con->Listar("SELECT    (dtf.valor + dtf.iva + dtf.impoconsumo) - (dtp.valor + dtp.iva + dtp.impoconsumo), dtf.iva, dtp.iva
                         FROM      gp_detalle_pago dtp
                         LEFT JOIN gp_detalle_factura dtf ON dtp.detalle_factura = dtf.id_unico
                         WHERE     dtf.id_unico IN($row0)");
                if (count($rsP) > 0) {
                    if ($rowP[0][0] > 0) {
                        $html .= "<option value='" . $row[0][4] . "'>" . ucwords(mb_strtolower($row[0][3])) . "</option>";
                    }
                } else {
                    $html .= "<option value='" . $row[0][4] . "'>" . ucwords(mb_strtolower($row[0][3])) . "</option>";
                }
            }
            echo $html;
        }
        break;
    case 58:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Validamos que la factura no este vacia
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['factura'])) {
            $factura = $_REQUEST['factura'];
            $concepto = $_REQUEST['concepto'];
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Validamos que el concepto no este vacio
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            if (!empty($_REQUEST['concepto'])) {
                $row = $con->Listar("SELECT    dtf.valor + dtf.iva + dtf.impoconsumo, dtf.id_unico
                        FROM      gp_factura fat
                        LEFT JOIN gp_detalle_factura dtf           ON dtf.factura = fat.id_unico
                        LEFT JOIN gf_detalle_comprobante dtc       ON dtf.detallecomprobante = dtc.id_unico
                        LEFT JOIN gf_detalle_comprobante_pptal dtp ON dtc.detallecomprobantepptal = dtp.id_unico
                        WHERE     fat.id_unico         = $factura
                        AND       dtf.concepto_tarifa = $concepto");
                if ($count($row) > 0) {
                    $rowDP = $con->Listar("SELECT valor + iva + impoconsumo FROM gp_detalle_pago WHERE detalle_factura = " . $row[0][1]);
                    if (count($rowDP) > 0) {
                        echo $row[0][0] - $rowDP[0][0];
                    } else {
                        echo round($row[0][0]);
                    }
                }
            } else {
                $sumDF = 0;
                $sumDP = 0;
                $rowDF = $con->Listar("SELECT dtf.id_unico, dtf.valor_total_ajustado
                          FROM   gp_detalle_factura dtf
                          WHERE  dtf.factura = $factura");
                for ($i = 0; $i < count($rowDF); $i++) {
                    $rowDP = $con->Listar("SELECT valor+iva FROM gp_detalle_pago WHERE detalle_factura = " . $rowDF[$i][0]);
                    if (count($rowDP) > 0) {
                        $sumDP += $rowDP[0][0];
                    } else {
                        $sumDP += 0;
                    }
                    $sumDF += $rowDF[$i][1];
                }
                $valorD = $sumDF - $sumDP;
                echo round($valorD);
            }
        }
        break;
    case 59:
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Validamos que las variables de id_pago este vacia
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        if (!empty($_REQUEST['id_pago'])) {
            $id_pago    = $_REQUEST['id_pago'];           //Capturamos la varible del pago
            $id_tercero = $_REQUEST['id_tercero'];     //Capturamos el valor del tercero
            $id_cnt     = $_REQUEST['id_cnt'];             //Variable para capturar el id cnt
            $id_pptal   = $_REQUEST['id_pptal'];         //id del comprobante presupuestal
            $sumD       = 0;                              //Variable para acumular el valor de los datos registrados
            $fecha     = $con->Listar("SELECT fecha FROM gf_comprobante_cnt WHERE id_unico = $id_cnt");
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Consultamos la cuenta que esta relacionada el banco del pago
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $rowCuenta = $con->Listar("SELECT    cb.cuenta
                        FROM        gp_pago pg
                        LEFT JOIN   gf_cuenta_bancaria cb   ON cb.id_unico = pg.banco
                        WHERE       pg.id_unico = $id_pago");
            $banco        = $rowCuenta[0][0];             //Variable con la cuenta banco
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Consultamos el valor del detalle en el pago
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $rowVal = $con->Listar("SELECT DISTINCT
                              dtp.detalle_factura,
                              dtp.valor,
                              dtf.valor_total_ajustado,
                              dtl.conceptorubro,
                              dtc.fecha,
                              dtl.rubrofuente,
                              dtp.id_unico,
                              dtf.factura,
                              dtp.iva,
                              dtp.impoconsumo,
                              dtf.ajuste_peso,
                              dtf.cantidad,
                              dtf.valor,
                              dtc.id_unico
                    FROM      gp_detalle_pago dtp
                    LEFT JOIN gp_detalle_factura dtf           ON dtf.id_unico = dtp.detalle_factura
                    LEFT JOIN gf_detalle_comprobante dtc       ON dtc.id_unico = dtf.detallecomprobante
                    LEFT JOIN gf_detalle_comprobante_pptal dtl ON dtl.id_unico = dtc.detallecomprobantepptal
                    WHERE pago = $id_pago");
            for ($i = 0; $i < count($rowVal); $i++) {
                $valP = 0;
                $valor = abs($rowVal[$i][1]);
                $conceptorubro = $rowVal[$i][3];
                $rubrofuente = $rowVal[$i][5];
                $id_depago = $rowVal[$i][6];
                $sql_dec = $con->Listar("SELECT cuenta FROM gf_detalle_comprobante WHERE id_unico = " . $rowVal[$i][13]);
                $res_dec = $mysqli->query($sql_dec);
                $row_dec = $res_dec->fetch_row();
                if ($rowVal[$i][8] != 0 || $rowVal[$i][8] != "" || $rowVal[$i][8] != "0") {
                    if ($rowVal[$i][9] < 0) {
                        $ajp = $rowVal[$i][9] * -1;
                    } else {
                        $ajp = $rowVal[$i][9];
                    }
                }

                if ($rowVal[$i][8] > 0) {
                    $valor = $valor + $rowVal[$i][8];
                }

                if ($valor[9] > 0) {
                    $valor = $valor + $rowVal[$i][9];
                }

                if ($valor[10] > 0) {
                    $valor = $valor + $rowVal[$i][10];
                }

                $valP = ($valor - $rowVal[$i][8]) + $rowVal[$i][10];

                $valor = round($valor);
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // Insertamos el detalle presupuestal
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $insertP = "INSERT INTO gf_detalle_comprobante_pptal (valor, comprobantepptal, conceptorubro, tercero, proyecto, rubrofuente) 
                VALUES(:valP, :id_pptal, :conceptorubro, :id_tercero, :proyecto, :rubrofuente)";
                $sql_dato1 = array(
                    array(":valP", $valP),
                    array(":id_pptal", $id_pptal),
                    array(":conceptorubro", $conceptorubro),
                    array(":id_tercero", $id_tercero),
                    array(":proyecto", 2147483647),
                    array(":rubrofuente", $rubrofuente),
                );
                $resultP = $con->InAcEl($insertP, $sql_dato1);
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // Consultamos el ultimo detalle registrado en el comprobante pptal
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $detp = $con->Listar("SELECT MAX(id_unico) FROM gf_detalle_comprobante_pptal WHERE comprobantepptal = $id_pptal");
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // consultamos la cuenta debtio relacionada al concepto rubro
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $rowC = $con->Listar("SELECT DISTINCT crbc.cuenta_debito FROM gf_concepto_rubro_cuenta crbc WHERE crbc.concepto_rubro = $conceptorubro");
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // Insertamos el detalle contable
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $insertD = "INSERT INTO gf_detalle_comprobante (fecha, valor, comprobante, naturaleza, cuenta, tercero, proyecto, centrocosto, detallecomprobantepptal) 
                VALUES(':fecha', :valor, :comprobante, :naturaleza, :cuenta, :tercero, :proyecto, :centrocosto,:detallecomprobantepptal)";
                $sql_dato1 = array(
                    array(":fecha", $fecha[0][0]),
                    array(":valor", $valor * -1),
                    array(":comprobante", $id_cnt),
                    array(":naturaleza", 1),
                    array(":cuenta", $row_dec[0][0]),
                    array(":tercero", $id_tercero),
                    array(":proyecto", 2147483647),
                    array(":centrocosto", 12),
                    array(":detallecomprobantepptal", $detp[0][0]),
                );
                $resultC = $con->InAcEl($insertD, $sql_dato1);
                $sumD += $valor;                            //Acumulamos los valores

                //
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // Consultamos el ultimo detalle registrado en el comprobante contable
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                $det = $con->Listar("SELECT MAX(id_unico) FROM gf_detalle_comprobante WHERE comprobante = $id_cnt");
                //Actualizamos el campo de detalle comprobante en detalle pago
                $update_p = "UPDATE gp_detalle_pago SET detallecomprobante = :det WHERE id_unico = :id_depago";
                $sql_dato1 = array(
                    array(":det", $det[0][0]),
                    array(":id_depago", $id_depago),
                );
                $r = $con->InAcEl($update_p, $sql_dato1);
            }
            #################################################################################################################
            #SE VERIFICA SI EL COMPROBANTE CNT TIENE RETENCIONES
            $row2 = $con->Listar("SELECT r.id_unico, r.valorretencion, tr.cuenta , c.naturaleza FROM gf_retencion r
                    LEFT JOIN gf_tipo_retencion tr ON r.tiporetencion = tr.id_unico
                    LEFT JOIN gf_cuenta c ON tr.cuenta = c.id_unico
                    WHERE r.comprobante  = $id_cnt");
            if (count($row2) > 0) {

                for ($i = 0; $i < count($row2); $i++) {
                    if ($row2[$i][3] == 1) {
                        $valorret = $row2[$i][1];
                    } else {
                        $valorret = $row2[$i][1] * -1;
                    }
                    $insertDR = "INSERT INTO gf_detalle_comprobante (fecha, valor, comprobante, naturaleza, cuenta, tercero, proyecto, centrocosto ) 
                    VALUES(':fecha', :valor, :comprobante, :naturaleza, :cuenta, :tercero, :proyecto, :centrocosto)";
                    $sql_dato1 = array(
                        array(":fecha", $fecha[0][0]),
                        array(":valor", $valorret),
                        array(":comprobante", $id_cnt),
                        array(":naturaleza", $row2[$i][3]),
                        array(":cuenta", $row2[$i][2]),
                        array(":tercero", $id_tercero),
                        array(":proyecto", 2147483647),
                        array(":centrocosto", 12),
                    );
                    $resultCR = $con->InAcEl($insertDR, $sql_dato1);
                    $sumD -= $row2[$i][1];
                }
            }
            #Actualizar Encabezado Del Comprobante Pptal
            $insertP = "UPDATE gf_comprobante_pptal SET tercero = :id_tercero  WHERE id_unico = :id_pptal";
            $sql_dato1 = array(
                array(":id_tercero", $id_tercero),
                array(":id_pptal", $id_pptal),
            );
            $resultP = $con->InAcEl($insertP, $sql_dato1);
            #Actualizar Encabezado Del Comprobante  CNT
            $insertP = "UPDATE gf_comprobante_cnt SET tercero = :id_tercero  WHERE id_unico = :id_cnt";
            $sql_dato1 = array(
                array(":id_tercero", $id_tercero),
                array(":id_cnt", $id_cnt),
            );
            $resultP = $con->InAcEl($insertP, $sql_dato1);
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Insertamos la cuenta de recaudo con la sumatoria de los valores
            //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            $insertR = "INSERT INTO gf_detalle_comprobante (fecha, valor, comprobante, naturaleza, cuenta, tercero, proyecto, centrocosto) 
            V VALUES(':fecha', :valor, :comprobante, :naturaleza, :cuenta, :tercero, :proyecto, :centrocosto)";
            $sql_dato1 = array(
                array(":fecha", $fecha[0][0]),
                array(":valor", $sumD),
                array(":comprobante", $id_cnt),
                array(":naturaleza", 1),
                array(":cuenta", $banco),
                array(":tercero", $id_tercero),
                array(":proyecto", 2147483647),
                array(":centrocosto", 12),
            );
            $resultR = $con->InAcEl($insertR, $sql_dato1);
            echo json_encode($resultR);
        }
        break;
    case 60:
        if (!empty($_REQUEST['id_cnt'])) {
            $id_cnt = $_REQUEST['id_cnt'];
            $conteo = $con->Listar("SELECT conciliado FROM gf_detalle_comprobante WHERE comprobante = $id_cnt AND conciliado IS NOT NULL");
            if (!empty($conteo[0][0])) {
                echo 1;
            } else {
                echo 2;
            }
        }
        break;
    case 61:
        if (!empty($_REQUEST['id_cnt'])) {
            $id_cnt = $_REQUEST['id_cnt'];
            $row = $con->Listar("SELECT valor,naturaleza FROM gf_detalle_comprobante WHERE comprobante = $id_cnt");
            if (count($row) > 0) {
                $deb = 0;
                $cre = 0;
                for ($i = 0; $i < count($row); $i++) {
                    $naturaleza = $row[$i][1];
                    $valor = $row[$i][0];
                    if ($naturaleza == 1) {
                        if ($valor > 0) {
                            $deb += $valor;
                        } else {
                            $cre += $valor * -1;
                        }
                    } else if ($naturaleza == 2) {
                        if ($valor > 0) {
                            $cre += $valor;
                        } else {
                            $deb += $valor * -1;
                        }
                    }
                }
                if ($deb < 0) {
                    $deb = $deb * -1;
                }
                if ($cre < 0) {
                    $cre = $cre * -1;
                }
                if ($deb == $cre) {
                    echo 1;
                }
            }
        }
        break;
    case 62:
        if (!empty($_REQUEST['id_pago'])) {
            $id_pago = $_REQUEST['id_pago'];
            $sql = "DELETE FROM gp_detalle_pago WHERE pago = :id_pago";
            $sql_dato1 = array(
                array(":id_pago", $id_pago),
            );
            $result = $con->InAcEl($sql, $sql_dato1);
        }

        if (!empty($_REQUEST['id_cnt'])) {
            $id_cnt = $_REQUEST['id_cnt'];
            $sql = "DELETE FROM gf_detalle_comprobante WHERE comprobante = :id_cnt";
            $sql_dato1 = array(
                array(":id_cnt", $id_cnt),
            );
            $result = $con->InAcEl($sql, $sql_dato1);
            ######ELIMINAR RETENCIONES######
            $sql = "DELETE FROM gf_retencion WHERE comprobante = $id_cnt";
            $sql_dato1 = array(
                array(":id_cnt", $id_cnt),
            );
            $result = $con->InAcEl($sql, $sql_dato1);
        }

        if (!empty($_REQUEST['id_pptal'])) {
            $id_pptal = $_REQUEST['id_pptal'];
            $sql = "DELETE FROM gf_detalle_comprobante_pptal WHERE comprobantepptal = :id_pptal";
            $sql_dato1 = array(
                array(":id_pptal", $id_pptal),
            );
            $result = $con->InAcEl($sql, $sql_dato1);
            echo json_encode($result);
        }
        break;
    case 63:
        if (!empty($_REQUEST['id_cnt'])) {
            $x = false;
            $id_cnt = $_REQUEST['id_cnt'];
            $row = $con->Listar("SELECT conciliado FROM gf_detalle_comprobante WHERE comprobante = $id_cnt AND conciliado NOT NULL");
            if (count($row) > 0) {
                $x = true;
            }
            echo ($x);
        }
        break;
    case 64:
        if (!empty($_REQUEST['id_cnt']) && !empty($_REQUEST['id_pptal'])) {               #Validamos que la variable no venga vacio
            # Capturamos los valores enviados por post
            $idcnt    = $_REQUEST['id_cnt'];
            $idpptal = $_REQUEST['id_pptal'];
            # Inicializamos un contador en 0 y un array en vacio para obtener los id de los detalles
            $h = 0;
            $x = array();
            # Capturamos las variables de session
            $compania = $_SESSION['compania'];
            $param = $_SESSION['anno'];
            # Consultamos que tenga un tipo de comprobante el cual este homologado
            $tipo_hom1 = $con->Listar("SELECT    tp.tipo_comp_hom, cnt.numero
                      FROM      gf_comprobante_cnt cnt
                      LEFT JOIN gf_tipo_comprobante tp ON cnt.tipocomprobante = tp.id_unico
                      WHERE     cnt.id_unico = $idcnt");
            # Consultamos si existe un tipo de comprobante con el tipo homologado y el tipo
            $rowE = $con->Listar("SELECT  id_unico FROM gf_comprobante_cnt
                          WHERE   tipocomprobante =" . $tipo_hom1[0][0] . " AND     numero = " . $tipo_hom1[0][1]);
            if (empty($rowE[0][0])) { # Si no existe comprobante con tipo homologado similar se realiza el proceso de causación
                # Consultamos los detalles y obtenemos la cuentas y validamos si están registradas en concepto_rubro_cuenta como debito
                $rowD = $con->Listar("SELECT DISTINCT dtc.id_unico, dtc.cuenta
                         FROM            gf_detalle_comprobante dtc
                         WHERE           dtc.comprobante = $idcnt");
                for ($i = 0; $i < count($rowD); $i++) {
                    # Consultamos las cuentas en los detalles, esten en concepto_rubro_cuenta como cuenta debito
                    $rowCR = $con->Listar("SELECT DISTINCT crb.cuenta_credito
                              FROM            gf_concepto_rubro_cuenta crb
                              LEFT JOIN       gf_concepto_rubro cr ON crb.concepto_rubro = cr.id_unico
                              LEFT JOIN       gf_concepto cn       ON cn.id_unico        = cr.concepto
                              WHERE           crb.cuenta_debito = " . $rowD[$i][1] . " AND cn.clase_concepto = 1");
                    # Validamos que los ids de cuenta credito y debito no sean iguales
                    for ($a = 0; $a < count($rowCR); $a++) {
                        if ($rowD[$i][1] !== $rowCR[$a][0]) {
                            # Validamos que la consulta retorne valores mayores que 0
                            if (count($rowCR) !== 0) {
                                ++$h;                                   # Preincrementamos el contador
                                $x[] = $rowD[$i][0];                        # Capturamos el id del detalle
                            }
                        }
                    }
                }
                if ($h > 0) { # Validamos que h sea mayor que 0
                    # Consultamos los valores del comprobante padre
                    $rwCnt = $con->Listar("SELECT    cnt.numero, cnt.fecha, cnt.tercero, cnt.descripcion, cnt.estado, cnt.clasecontrato, cnt.numerocontrato,
                                         tpc.tipo_comp_hom
                               FROM      gf_comprobante_cnt cnt
                               LEFT JOIN gf_tipo_comprobante tpc ON cnt.tipocomprobante = tpc.id_unico
                               WHERE     cnt.id_unico = $idcnt");
                    if (count($rwCnt) > 0) {               # Validamos que la consulta retorna algún valor
                        $tipoHom = $rwCnt[0][7];
                        if (!empty($tipoHom)) {                      # Validamos que el valor devuelto por la base de datos no este vació
                            # Capturamos los valores devultos por la consulta
                            $numero = $rwCnt[0][0];
                            $fecha = $rwCnt[0][1];
                            $tercero = $rwCnt[0][2];
                            $estado = $rwCnt[0][4];
                            # Validamos los posibles campos que tendran valores vacios
                            if (empty($rwCnt[0][3])) {
                                $descripcion = "NULL";
                            } else {
                                $descripcion = $rwCnt[0][3];
                            }
                            if (empty($rwCnt[0][5])) {
                                $clasecontrato = "NULL";
                            } else {
                                $clasecontrato = $rwCnt[0][5];
                            }
                            if (empty($rwCnt[0][6])) {
                                $numerocontrato = "NULL";
                            } else {
                                $numerocontrato = $rwCnt[0][6];
                            }
                            $tipopptal = $con->Listar("SELECT comprobante_pptal FROM gf_tipo_comprobante WHERE id_unico = $tipoHom");
                            if (count($tipopptal) > 0) {         # Validamos que la consulta retorne valores
                                if (!empty($tipopptal[0][0])) {          # Validamos que el tipo de comprobante pptal no este vacio
                                    $fecha_v = strtotime('+1 month', strtotime($fecha)); # Sumamos un mes a la fecha para obtener la fecha de vencimiento
                                    # Consulta de insertado de comprobante pptal
                                    $sqlInPptal = "INSERT INTO gf_comprobante_pptal(tipocomprobante, numero, fecha, fechavencimiento, descripcion, parametrizacionanno,clasecontrato, numerocontrato, tercero, responsable, estado)
                                                   VALUES      (:tipocomprobante, :numero, ':fecha', ':fechavencimiento', ':descripcion', :parametrizacionanno,:clasecontrato, :numerocontrato, :tercero, :responsable, :estado)";
                                    $sql_dato1 = array(
                                        array(":tipocomprobante", $tipopptal[0][0]),
                                        array(":numero", $numero),
                                        array(":fecha", $fecha),
                                        array(":fechavencimiento", $fecha_v),
                                        array(":descripcion", $descripcion),
                                        array(":parametrizacionanno", $param),
                                        array(":clasecontrato", $clasecontrato),
                                        array(":numerocontrato", $numerocontrato),
                                        array(":tercero", $tercero),
                                        array(":proyecto", $responsable),
                                        array(":estado", 1),
                                    );
                                    $rsInPptal = $con->InAcEl($sqlInPptal, $sql_dato1);
                                    if (empty($rsInPptal)) {                     # Validamos que si se realiza el registro
                                        # Consultamos el ultimo comprobante presupuestal registrado en la base de datos
                                        $rwMaxIdPtal = $con->Listar("SELECT MAX(id_unico) FROM gf_comprobante_pptal WHERE tipocomprobante = " . $tipopptal[0][0]);
                                        if (count($rwMaxIdPtal) > 0) { # Validamos que la consulta retorne valores
                                            $id_pptal = $rwMaxIdPtal[0][0];         # Asignamos el valor obtenido a la variable
                                        }
                                    }
                                }
                            }
                            # Insertamos a cnt
                            $sqlInCnt = "INSERT INTO gf_comprobante_cnt(tipocomprobante, numero, fecha, tercero, descripcion, estado, clasecontrato, numerocontrato, compania,parametrizacionanno)
                                         VALUES      (:tipocomprobante, :numero, ':fecha', :tercero, ':descripcion', :estado, :clasecontrato, :numerocontrato, :compania, :parametrizacionanno)";
                            $sql_dato1 = array(
                                array(":tipocomprobante", $tipoHom),
                                array(":numero", $numero),
                                array(":fecha", $fecha),
                                array(":tercero", $tercero),
                                array(":descripcion", $descripcion),
                                array(":estado", $estado),
                                array(":clasecontrato", $clasecontrato),
                                array(":numerocontrato", $numerocontrato),
                                array(":compania", $compania),
                                array(":parametrizacionanno", $param),
                            );
                            $rsInCnt = $con->InAcEl($sqlInCnt, $sql_dato1);
                            if (empty($rsInCnt)) {                          # Validamos que se realizo el registro a comprobante cnt
                                # Consulta para obtener el último registro en la base de datos
                                $rwMaxIdCnt = $con->Listar("SELECT MAX(id_unico) FROM  gf_comprobante_cnt WHERE tipocomprobante = $tipoHom");
                                if (count($rwMaxIdCnt) > 0) {      # Validamos que la consulta retorne valores en la base de datos
                                    $id_cnt = $rwMaxIdCnt[0][0];               # Asignamos el valor encontrado en la variable id_cnt
                                }
                                if (!empty($id_cnt)) {                       # Validamos que la variable $id_cnt no este vacia
                                    # Desplegamos el array, y consultamos el detalle, y nuevamente obtenemos el id de la cuenta, la cual consultamos
                                    # nuevamente a conceto rubro cuenta y relizamos el ingreso de datos al detalle
                                    for ($a = 0; $a < count($x); $a++) {
                                        $id_detalle = $x[$a];
                                        $id_dpptal = NULL;
                                        $rowDt = $con->Listar("SELECT dtc.fecha, dtc.descripcion, dtc.valor, dtc.cuenta, dtc.tercero, dtc.proyecto, dtc.centrocosto, dtc.detallecomprobantepptal
                                                  FROM   gf_detalle_comprobante dtc
                                                  WHERE  dtc.id_unico = $id_detalle");
                                        $valor = abs($rowDt[0][2]);            # Obtenemos el valor absoluto del valor en el detalle
                                        $rowDl = $con->Listar("SELECT  conceptoRubro
                                                  FROM    gf_detalle_comprobante_pptal
                                                  WHERE   id_unico = " . $rowDt[0][7]);
                                        if (!empty($id_pptal)) {             # Validamos que el id pptal no este vacio
                                            if (!empty($rowDt[0][7]) && $id_pptal !== NULL) {
                                                # Consultamos los valores del detalle pptal relacionado
                                                $rowDePtall = $con->Listar("SELECT  descripcion, rubroFuente, conceptoRubro, tercero, proyecto
                                                               FROM    gf_detalle_comprobante_pptal
                                                               WHERE   id_unico = " . $rowDt[0][7]);
                                                # Insertamos los valores
                                                $sqlIND = "INSERT INTO  gf_detalle_comprobante_pptal(descripcion, valor, rubroFuente, conceptoRubro, tercero, proyecto,comprobantepptal)
                                                           VALUES       (':descripcion', :valor, :rubroFuente, :conceptoRubro, :tercero, :proyecto, :comprobantepptal)";
                                                $sql_dato1 = array(
                                                    array(":descripcion", $rowDePtall[0][0]),
                                                    array(":valor", $valor),
                                                    array(":rubroFuente", $rowDePtall[0][1]),
                                                    array(":conceptoRubro", $rowDePtall[0][2]),
                                                    array(":tercero", $rowDePtall[0][3]),
                                                    array(":proyecto", $rowDePtall[0][4]),
                                                    array(":comprobantepptal", $id_pptal),
                                                );
                                                $resultIND = $con->InAcEl($sqlIND, $sql_dato1);
                                                if (empty($resultIND)) {
                                                    # Consultamos el ultimo id detalle insertado
                                                    $rowDetallePp1  = $con->Listar("SELECT MAX(id_unico) FROM  gf_detalle_comprobante_pptal WHERE comprobantepptal = $id_pptal");
                                                    $id_dpptal     = $rowDetallePp1[0][0];
                                                }
                                            }
                                            # Consultamos el id de la cuenta credito
                                            $rowCR    = $con->Listar("SELECT  cuenta_credito FROM gf_concepto_rubro_cuenta WHERE cuenta_debito = " . $rowDt[0][3] . " AND concepto_rubro = " . $rowDl[0][0]);
                                            if (!empty($rowCR[0][0])) {
                                                # Realizamos insertado de datos con cuenta debito
                                                $sqlDD = "INSERT INTO gf_detalle_comprobante (fecha, descripcion, valor, cuenta, naturaleza, tercero, proyecto, centrocosto, comprobante,detalleafectado, detallecomprobantepptal)
                                                          VALUES      (':fecha', ':descripcion', :valor, :cuenta, :naturaleza, :tercero, :proyecto, :centrocosto, :comprobante, :detalleafectado, :detallecomprobantepptal)";
                                                $sql_dato1 = array(
                                                    array(":fecha", $rowDt[0][0]),
                                                    array(":descripcion", $rowDt[0][1]),
                                                    array(":valor", $valor),
                                                    array(":cuenta", $rowDt[0][3]),
                                                    array(":naturaleza", 1),
                                                    array(":tercero", $rowDt[0][4]),
                                                    array(":proyecto", $rowDt[0][5]),
                                                    array(":centrocosto", $rowDt[0][6]),
                                                    array(":comprobante", $id_cnt),
                                                    array(":detalleafectado", $id_detalle),
                                                    array(":detallecomprobantepptal", $id_dpptal),
                                                );
                                                $resultDD = $con->InAcEl($sqlDD, $sql_dato1);
                                                # Realizamos insertado de datos a cuenta credito
                                                $sqlDC = "INSERT INTO gf_detalle_comprobante  (fecha, descripcion, valor, cuenta, naturaleza, tercero, proyecto, centrocosto, comprobante,detalleafectado, detallecomprobantepptal)
                                                          VALUES      (':fecha', ':descripcion', :valor, :cuenta, :naturaleza, :tercero, :proyecto, :centrocosto, :comprobante, :detalleafectado, :detallecomprobantepptal)";
                                                $sql_dato1 = array(
                                                    array(":fecha", $rowDt[0][0]),
                                                    array(":descripcion", $rowDt[0][1]),
                                                    array(":valor", $valor),
                                                    array(":cuenta", $rowCR[0][0]),
                                                    array(":naturaleza", 2),
                                                    array(":tercero", $rowDt[0][4]),
                                                    array(":proyecto", $rowDt[0][5]),
                                                    array(":centrocosto", $rowDt[0][6]),
                                                    array(":comprobante", $id_cnt),
                                                    array(":detalleafectado", $id_detalle),
                                                    array(":detallecomprobantepptal", $id_dpptal),
                                                );
                                                $resultDC = $con->InAcEl($sqlDC, $sql_dato1);
                                            }
                                        }
                                    }
                                    echo json_encode(true);
                                }
                            }
                        }
                    }
                } else {
                    echo json_encode(false);
                }
            } else {
                $id_hom = $rowE[0][0];
                # Consultamos los detalles y obtenemos la cuentas y validamos si están registradas en concepto_rubro_cuenta como debito
                $rowD = $con->Listar("SELECT DISTINCT dtc.id_unico, dtc.cuenta
                         FROM            gf_detalle_comprobante dtc
                         WHERE           dtc.comprobante = $idcnt");
                for ($i = 0; $i < count($rowD); $i++) {
                    # Consultamos las cuentas en los detalles, esten en concepto_rubro_cuenta como cuenta debito
                    $rowCR = $con->Listar("SELECT DISTINCT crb.cuenta_credito
                              FROM            gf_concepto_rubro_cuenta crb
                              LEFT JOIN       gf_concepto_rubro cr ON crb.concepto_rubro = cr.id_unico
                              LEFT JOIN       gf_concepto cn       ON cn.id_unico        = cr.concepto
                              WHERE           crb.cuenta_debito = " . $rowD[0][1] . " AND cn.clase_concepto = 1");
                    for ($a = 0; $a < count($rowCR); $a++) {
                        if ($rowD[$i][1] !== $rowCR[$a][0]) {
                            # Validamos que la consulta retorne valores mayores que 0
                            if (count($rowCR) !== 0) {
                                ++$h;                                   # Preincrementamos el contador
                                $x[] = $rowD[$i][0];                        # Capturamos el id del detalle
                            }
                        }
                    }
                }
                if ($h > 0) { # Validamos que h sea mayor que 0
                    for ($a = 0; $a < count($x); $a++) {
                        $id_detalle = $x[$a];
                        $id_dpptal = NULL;
                        $rowDt = $con->Listar("SELECT dtc.fecha, dtc.descripcion, dtc.valor, dtc.cuenta, dtc.tercero, dtc.proyecto, dtc.centrocosto, dtc.detallecomprobantepptal
                                  FROM   gf_detalle_comprobante dtc
                                  WHERE  dtc.id_unico = $id_detalle");
                        $valor = abs($rowDt[0][2]);            # Obtenemos el valor absoluto del valor en el detalle
                        $rowDl = $con->Listar("SELECT  conceptoRubro
                                  FROM    gf_detalle_comprobante_pptal
                                  WHERE   id_unico = " . $rowDt[0][7]);
                        if (!empty($id_pptal)) {             # Validamos que el id pptal no este vacio
                            if (!empty($rowDt[0][7]) && $id_pptal !== 'NULL') {
                                # Consultamos los valores del detalle pptal relacionado
                                $rowDePtall = $con->Listar("SELECT  descripcion, rubroFuente, conceptoRubro, tercero, proyecto
                                               FROM    gf_detalle_comprobante_pptal
                                               WHERE   id_unico = " . $rowDt[0][7]);
                                # Insertamos los valores
                                $sqlIND = "INSERT INTO  gf_detalle_comprobante_pptal(descripcion, valor, rubroFuente, conceptoRubro, tercero, proyecto,comprobantepptal)
                                           VALUES       (':descripcion', :valor, :rubroFuente, :conceptoRubro, :tercero, :proyecto, :comprobantepptal)";
                                $sql_dato1 = array(
                                    array(":descripcion", $rowDePtall[0][0]),
                                    array(":valor", $valor),
                                    array(":rubroFuente", $rowDePtall[0][1]),
                                    array(":conceptoRubro", $rowDePtall[0][2]),
                                    array(":tercero", $rowDePtall[0][3]),
                                    array(":proyecto", $rowDePtall[0][4]),
                                    array(":comprobantepptal", $id_pptal),
                                );
                                $resultIND = $con->InAcEl($sqlIND, $sql_dato1);
                                if (empty($resultIND)) {
                                    # Consultamos el ultimo id detalle insertado
                                    $rowDetallePp1  = $con->Listar("SELECT MAX(id_unico) FROM  gf_detalle_comprobante_pptal WHERE comprobantepptal = $id_pptal");
                                    $id_dpptal     = $rowDetallePp1[0][0];
                                }
                            }
                        }

                        # Consultamos el id de la cuenta credito
                        $rowCR    = $con->Listar("SELECT  cuenta_credito FROM gf_concepto_rubro_cuenta WHERE cuenta_debito = " . $rowDt[0][3] . " AND concepto_rubro = " . $rowDl[0][0]);
                        if (!empty($rowCR[0][0])) {
                            # Realizamos insertado de datos con cuenta debito
                            $sqlDD = "INSERT INTO gf_detalle_comprobante (fecha, descripcion, valor, cuenta, naturaleza, tercero, proyecto, centrocosto, comprobante,detalleafectado)
                                      VALUES      (':fecha', ':descripcion', :valor, :cuenta, :naturaleza, :tercero, :proyecto, :centrocosto, :comprobante, :detalleafectado)";
                            $sql_dato1 = array(
                                array(":fecha", $rowDt[0][0]),
                                array(":descripcion", $rowDt[0][1]),
                                array(":valor", $valor),
                                array(":cuenta", $rowDt[0][3]),
                                array(":naturaleza", 1),
                                array(":tercero", $rowDt[0][4]),
                                array(":proyecto", $rowDt[0][5]),
                                array(":centrocosto", $rowDt[0][6]),
                                array(":comprobante", $id_hom),
                                array(":detalleafectado", $id_detalle),
                            );
                            $resultDD = $con->InAcEl($sqlDD, $sql_dato1);
                            # Realizamos insertado de datos a cuenta credito
                            $sqlDC = "INSERT INTO gf_detalle_comprobante  (fecha, descripcion, valor, cuenta, naturaleza, tercero, proyecto, centrocosto, comprobante, detalleafectado)
                                      VALUES      (':fecha', ':descripcion', :valor, :cuenta, :naturaleza, :tercero, :proyecto, :centrocosto, :comprobante, :detalleafectado)";
                            $sql_dato1 = array(
                                array(":fecha", $rowDt[0][0]),
                                array(":descripcion", $rowDt[0][1]),
                                array(":valor", $valor),
                                array(":cuenta", $rowCR[0][0]),
                                array(":naturaleza", 2),
                                array(":tercero", $rowDt[0][4]),
                                array(":proyecto", $rowDt[0][5]),
                                array(":centrocosto", $rowDt[0][6]),
                                array(":comprobante", $id_hom),
                                array(":detalleafectado", $id_detalle),
                            );
                            $resultDC = $con->InAcEl($sqlDC, $sql_dato1);
                        }
                    }
                    echo json_encode(true);
                }
            }
        } else {
            echo json_encode(false);
        }
        break;
}
function gf_detalle_comprobante($fecha, $descripcion, $valor, $cuenta, $naturaleza, $tercero, $proyecto, $centrocosto, $comprobante, $detalleafectado, $detallecomprobantepptal)
{
    global $con;
    $sqlDD = "INSERT INTO gf_detalle_comprobante    (fecha,descripcion,valor,cuenta,naturaleza,tercero,proyecto,centrocosto,comprobante,detalleafectado,detallecomprobantepptal)
                                VALUES      (':fecha',':descripcion',:valor,:cuenta,:naturaleza,:tercero,:proyecto,:centrocosto,:comprobante,:detalleafectado,:detallecomprobantepptal)";
    $sql_dato1 = array(
        array(":fecha", $fecha),
        array(":descripcion", $descripcion),
        array(":valor", $valor),
        array(":cuenta", $cuenta),
        array(":naturaleza", $naturaleza),
        array(":tercero", $tercero),
        array(":proyecto", $proyecto),
        array(":centrocosto", $centrocosto),
        array(":comprobante", $comprobante),
        array(":detalleafectado", $detalleafectado),
        array(":detallecomprobantepptal", $detallecomprobantepptal),
    );
    $resp = $con->InAcEl($sqlDD, $sql_dato1);
    return $resp;
}
function gf_detalle_comprobante_pptal($descripcion, $valor, $rubroFuente, $conceptoRubro, $tercero, $proyecto, $comprobantepptal)
{
    global $con;
    $sqlIND = "INSERT INTO  gf_detalle_comprobante_pptal(descripcion,valor,rubroFuente,conceptoRubro,tercero,proyecto,comprobantepptal)
    VALUES  (':descripcion',:valor,:rubroFuente,:conceptoRubro,:tercero,:proyecto,:comprobantepptal)";
    $sql_dato1 = array(
        array(":descripcion", $descripcion),
        array(":valor", $valor),
        array(":rubroFuente", $rubroFuente),
        array(":conceptoRubro", $conceptoRubro),
        array(":tercero", $tercero),
        array(":proyecto", $proyecto),
        array(":comprobantepptal", $$comprobantepptal),
    );
    $resultIND = $con->InAcEl($sqlIND, $sql_dato1);
    return $resultIND;
}
