<?php
#######################################################################################################
#                           Modificaciones
#######################################################################################################
#22/09/2017 |Erica G. | Arreglarlo para empresa privada
#11/05/2017 |ERICA G. |MODIFICACION SOLICITUD DIS
#08/05/2017 | ERICA G. | TILDES
#######################################################################################################
session_start();
require_once('Conexion/ConexionPDO.php');
$con = new ConexionPDO();
#require_once('estructura_apropiacion.php');
#require_once('estructura_apropiacion_modf.php');
require_once('./jsonPptal/funcionesPptal.php');
require_once('json/gs_auditoria_sistema.php');
require_once('jsonPptal/gs_auditoria_acciones_presupuesto.php');
$conexion = $_SESSION['conexion'];
$anno = $_SESSION['anno'];
$proc = $_REQUEST['proc'];
$conexion = $_SESSION['conexion'];
#****************Consulta Tipo de Compañia*********####
$com = $_SESSION['compania'];
$tcom = $con->Listar("SELECT tipo_compania FROM gf_tercero WHERE id_unico = $com");
if (count($tcom) > 0) {
    $tipocomp = $tcom[0][0];
} else {
    $tipocomp = 0;
}
switch ($proc) {
    case 1:
        $numero = 0;

        $row = $con->Listar("SELECT MAX(compPtal.numero) 
            	FROM gf_comprobante_pptal compPtal
                left join gf_tipo_comprobante_pptal tipComPtal on tipComPtal.id_unico = compPtal.tipocomprobante 
                left join gf_clase_pptal claPtal on claPtal.id_unico = tipComPtal.clasepptal
                where claPtal.id_unico = 11 AND compPtal.parametrizacionanno = $anno"); //Clase pptal 11 Solicitud de Disponibilidad.

        if ($row[0][0] == 0) {
            if (!empty($_SESSION['anno'])) {
                $parametroAnno = $_SESSION['anno'];
                $rowPA = $con->Listar("SELECT anno FROM gf_parametrizacion_anno WHERE id_unico = " . $parametroAnno . " ");
                $numero = $rowPA[0][0];
                $numero .= "000001";
            }
        } else {
            $numero = $row[0][0] + 1;
        }

        echo $numero;
        break;

    case 2:
        $id_con = $_REQUEST['id_con']; //Toma el ID del concepto.

        switch ($conexion) {
            case 1:
                $rubro = $con->Listar("SELECT rubFue.id_unico, CONCAT(rub.codi_presupuesto, ' ', rub.nombre, ' ', fue.nombre) rubro, rub.id_unico, conRub.id_unico     
				FROM gf_rubro_fuente rubFue
				LEFT JOIN gf_rubro_pptal rub ON rub.id_unico = rubFue.rubro
				LEFT JOIN gf_concepto_rubro conRub ON rub.id_unico = conRub.rubro 
                LEFT JOIN gf_fuente fue ON fue.id_unico = rubFue.fuente
				WHERE conRub.concepto = $id_con");
                break;
            case 2:
                $rubro = $con->Listar("SELECT rubFue.id_unico, rub.codi_presupuesto || ' ' || rub.nombre || ' ' || fue.nombre AS rubro, rub.id_unico, conRub.id_unico
                FROM gf_rubro_fuente rubFue
                LEFT JOIN gf_rubro_pptal rub ON rub.id_unico = rubFue.rubro
                LEFT JOIN gf_concepto_rubro conRub ON rub.id_unico = conRub.rubro
                LEFT JOIN gf_fuente fue ON fue.id_unico = rubFue.fuente
				WHERE conRub.concepto = $id_con");
                break;
            default:
                break;
        }

        // $rubro = $mysqli->query($queryRub);
        if (count($rubro) > 0) {
            for ($row = 0; $row < count($rubro); $row++) {
                // while ($row = mysqli_fetch_row($rubro)) {
                if (empty($_REQUEST['fecha'])) {
                    $saldoDisponible = apropiacion($rubro[$row][0]) - disponibilidades($rubro[$row][0]);
                } else {

                    $fecha = fechaC($_REQUEST['fecha']);
                    $saldoDisponible = apropiacionfecha($rubro[$row][0], $fecha) - disponibilidadesfecha($rubro[$row][0], $fecha);
                }
                if ($tipocomp == 2) {
                    echo '<option value="' . $rubro[$row][0] . '/' . $rubro[$row][3] . '">' . ucwords(mb_strtolower($rubro[$row][1])) . ' $' . number_format($saldoDisponible, 2, '.', ',') . '</option>';
                } else {
                    if ($saldoDisponible > 0) {
                        echo '<option value="' . $rubro[$row][0] . '/' . $rubro[$row][3] . '">' . ucwords(mb_strtolower($rubro[$row][1])) . ' $' . number_format($saldoDisponible, 2, '.', ',') . '</option>';
                    }
                }
            }
        } else {
            echo 0;
        }
        break;

    case 3:
        $IDRubroFuente = $_REQUEST['id_rubFue'];

        $saldoDisponible = apropiacion($IDRubroFuente) - disponibilidades($IDRubroFuente);
        echo $saldoDisponible;
        break;

    case 4:
        $IDRubroFuente = $_REQUEST['id_rubFue']; //ID de la tabla gf_rubro_fuente.
        $IDCompPtal = $_REQUEST['id_comp']; //ID tabla gf_comprobante_pptal.
        $clase = $_REQUEST['clase']; //Clase del campo clasepptal de la tabla gf_detalle_comprobante_pptal.

        if ($clase == 14) { //Saldo para Expedir registro Pptal
            echo 'ACA1';
            $saldoDisponible = valorRegistro($IDCompPtal, $IDRubroFuente) + modificacionRegistro($IDCompPtal, $IDRubroFuente, $clase) - afectacionRegistro2($IDCompPtal, $IDRubroFuente, $clase);
        } else { //Saldo para Expedir obligación Pptal y registrar Pago Pptal.
            echo 'ACA';
            $saldoDisponible = valorRegistro($IDCompPtal, $IDRubroFuente) + modificacionRegistro($IDCompPtal, $IDRubroFuente, $clase) - afectacionRegistro($IDCompPtal, $IDRubroFuente, $clase);
        }

        echo $saldoDisponible;
        break;

    case 5:
        $idRubroFuente = $_REQUEST['id_rubFue'];
        $idDetalleComp = $_REQUEST['id_det_comp'];

        $saldoDisponible = apropiacion_mod($idRubroFuente) - disponibilidades_mod($idRubroFuente, $idDetalleComp);
        echo $saldoDisponible;
        break;
        ###MODIFICACAR SOLICITUD DIS
    case 6:
        $id = $_REQUEST['id'];
        $fecha = $_REQUEST['fecha'];
        $des = $_REQUEST['desc'];

        if (empty($id) || empty($fecha)) {
            $resultado = 2;
        } else {
            $fecha_div = explode("/", $fecha);
            $dia = $fecha_div[0];
            $mes = $fecha_div[1];
            $anio = $fecha_div[2];

            $fc = $anio . '-' . $mes . '-' . $dia;

            if ($des == "" || empty($des)) {
                $descrp = NULL;
            } else {
                $descrp = $des;
            }
            $query = $con->Listar("SELECT fecha, fechavencimiento, descripcion FROM gf_comprobante_pptal WHERE id_unico=$id");
            $fechaA = $query[0][0];
            $fechaVenA = $query[0][1];
            $descripcionA = $query[0][2];
            $sql_cons = "UPDATE gf_comprobante_pptal 
            SET fecha=:fecha,descripcion=:descrp
            WHERE id_unico=:id_unico";
            $sql_dato = array(
                array(":fecha", $fc),
                array(":descrp", $descrp),
                array(":id_unico", $id),
            );
            $obj_resp = $con->InAcEl($sql_cons, $sql_dato);
            if (empty($obj_resp)) {
                $agregarAuditoria = modificarReduccionAprobacion($id,$fechaA, $fechaVenA,$descripcionA);
                $resultado = 1;
            } else {
                $resultado = 2;
            }
        }
        echo $resultado;
        break;
    case 7:
        $val = 0;
        //Captura de datos e instrucción SQL para su inserción en la tabla gf_comprobante.
        $codigo  = $_REQUEST['codigo'];
        $fecha  = $_REQUEST['fecha'];
        $estado  = $_REQUEST['estado'];
        $descripcion = $_REQUEST['descripcion'];


        $fecha = trim($fecha, '"');
        $fecha_div = explode("/", $fecha);
        $dia = $fecha_div[0];
        $mes = $fecha_div[1];
        $anio = $fecha_div[2];
        ##BUSCAR SI EXISTE CIERRE PARA ESTA FECHA
        $ci = $con->Listar("SELECT
        cp.id_unico
        FROM 
        gs_cierre_periodo cp
        LEFT JOIN
        gf_parametrizacion_anno pa ON pa.id_unico = cp.anno
        LEFT JOIN
        gf_mes m ON cp.mes = m.id_unico
        WHERE
        pa.anno = '$anio' AND m.numero = '$mes' AND cp.estado =2");

        if (count($ci) > 0) {
            $resultado = false;
            $val = 1;
        } else {
            $fecha = $anio . "-" . $mes . "-" . $dia;
            $fecha_ = new DateTime($fecha);

            if ($conexion == 2) {
                $nombre = utf8_decode("Días Vencimiento Solicitud");
            } else {
                $nombre = "Días Vencimiento Solicitud";
            }

            $rowS = $con->Listar("SELECT VALOR
            FROM GS_PARAMETROS_BASICOS WHERE NOMBRE='$nombre'");

            $sumarDias = $rowS[0][0];
            $fecha_->modify('+' . $sumarDias . ' day');

            $fechaVen = (string)$fecha_->format('Y-m-d');

            ///---->> vvv PROVISIONAL vvv <<---------
            //Consulta del ID de la tabla gf_tercero .
            $compania = $_SESSION['compania'];
            $row = $con->Listar("SELECT id_unico FROM gf_tercero WHERE numeroidentificacion = '9999999999' AND compania =$compania");
            $tercero = $row[0][0];
            $responsable = $row[0][0];

            //Captura de parametrización año o consulta del ID de la tabla parametrización año en caso de ser vacío.
            $parametroAnno = $_SESSION['anno'];


            $tc = $con->Listar("SELECT * FROM gf_tipo_comprobante_pptal WHERE compania= $compania AND clasepptal = 11 and tipooperacion = 1");

            $tc = $tc[0][0];
            $tipocomprobante = $tc; // Tipo de comprobante 6, SOLICITUD DE DISPONIBILIDAD.

            if ($descripcion == "") {
                $sql_cons  = "INSERT INTO gf_comprobante_pptal (numero, fecha, fechavencimiento, parametrizacionanno, tipocomprobante, tercero, estado, responsable) 
            VALUES (:codigo,:fecha,:fechaVen,:parametroAnno,:tipocomprobante,:tercero,:estado,:responsable)";
                $sql_dato = array(
                    array(":codigo", $codigo),
                    array(":fecha", $fecha),
                    array(":fechaVen", $fechaVen),
                    array(":parametroAnno", $parametroAnno),
                    array(":tipocomprobante", $tipocomprobante),
                    array(":tercero", $tercero),
                    array(":estado", $estado),
                    array(":responsable", $responsable),
                );
            } else {
                $sql_cons  = "INSERT INTO gf_comprobante_pptal(numero, fecha, fechavencimiento, descripcion, parametrizacionanno, tipocomprobante, tercero, estado, responsable) 
            VALUES (:codigo,:fecha,:fechaVen,:descripcion,:parametroAnno,:tipocomprobante,:tercero,:estado,:responsable)";
                $sql_dato = array(
                    array(":codigo", $codigo),
                    array(":fecha", $fecha),
                    array(":fechaVen", $fechaVen),
                    array(":descripcion", $descripcion),
                    array(":parametroAnno", $parametroAnno),
                    array(":tipocomprobante", $tipocomprobante),
                    array(":tercero", $tercero),
                    array(":estado", $estado),
                    array(":responsable", $responsable),
                );
            }

            $obj_resp = $con->InAcEl($sql_cons, $sql_dato);
            if (empty($obj_resp)) {
                $consulta = $con->Listar("SELECT MAX(ID_UNICO) FROM gf_comprobante_pptal WHERE numero=$codigo AND tipocomprobante=$tipocomprobante AND parametrizacionanno=$parametroAnno");
                $id_Comprobante = $consulta[0][0];
                $_SESSION['id_comprobante_pptal'] = $id_Comprobante;
                $agregarAuditoria = agregarAuditoriaSistema($id_Comprobante,1,'GF_COMPROBANTE_PPTAL');
                echo 1;
            } else {
                echo 2;
            }
        }
        break;
}
