<?php

session_start();
include_once 'egresos_funciones.php';
//DATOS DEL MODULO
liberar_bd();
$selectDatosModulo = 'CALL sp_sistema_select_datos_modulo(' . $_SESSION["mod"] . ');';
$datosModulo = consulta($selectDatosModulo);
$datMod = siguiente_registro($datosModulo);
$_SESSION["moduloPadreActual"] = utf8_encode($datMod["nombre"]);
switch ($_POST['accion']) {
    case 'Nuevo':
        $_SESSION["moduloHijoActual"] = utf8_encode($_POST['accion']);
        $modulo .= egresos_formularioNuevo();
        break;
    case 'Guardar':
        $_SESSION["moduloHijoActual"] = utf8_encode($_POST['accion']);
        $modulo .= egresos_guardar();
        break;
    case 'GuardarEdit':
        $_SESSION["moduloHijoActual"] = utf8_encode($_POST['accion']);
        $modulo .= egresos_editar();
        break;
    case 'Editar':
        $_SESSION["moduloHijoActual"] = utf8_encode($_POST['accion']);
        $modulo .= egresos_formularioEditar($_POST["idEgreso"]);
        break;
    case 'Eliminar':
        $_SESSION["moduloHijoActual"] = utf8_encode($_POST['accion']);
        $modulo .= egresos_eliminar();
        break;
function egresos_guardarEliminar()
{
    //DATOS DEL EGRESOS
    liberar_bd();
    $selectDatosEgresos = 'CALL sp_sistema_select_datos_egreso(' . $_POST["idEgreso"] . ');';
    $datosEgreso = consulta($selectDatosEgresos);
    $egresos = siguiente_registro($datosEgreso);
    //DATOS DE LA CUENTA
    liberar_bd();
    $selectDatosCuenta = 'CALL sp_sistema_select_datos_cuentas(' . $egresos["idCta"] . ');';
    $datosCuenta = consulta($selectDatosCuenta);
    $cuenta = siguiente_registro($datosCuenta);
    $nvoSaldo = $cuenta["monto"] + $egresos["cantidad"];
    //CANCELAMOS EL EGRESO
    liberar_bd();
    $cancelarEgreso = 'CALL sp_sistema_cancelar_egreso(' . $_POST["idEgreso"] . ', ' . $_SESSION[$varIdUser] . ');';
    $cancel = consulta($cancelarEgreso);
    if ($cancel) {
        //GUARDAMOS NUEVO SALDO
        liberar_bd();
        $updateCuenta = 'CALL sp_sistema_update_saldo_cuenta(' . $egresos["idCta"] . ', "' . $nvoSaldo . '", ' . $_SESSION[$varIdUser] . ');';
        $update = consulta($updateCuenta);
        //GUARDAMOS MOTIVO DE CANCELACION
        liberar_bd();
        $insertMotivoCancela = 'CALL sp_insert_motivo_cancela_egreso(' . $_POST["idEgreso"] . ', "' . $_POST["motivoEgr"] . '", ' . $_SESSION[$varIdUser] . ');';
        $insertMot = consulta($insertMotivoCancela);
    } else {
        $error = 'No se ha podido eliminar el egreso.';
        $msj = sistema_mensaje("error", $error);
    }
    return egresos_menuInicio() . $msj;
}
function cuentas_eliminarCuenta()
{
    //CHECAMOS SI LA CUENTA TIENE SUBCUENTAS
    liberar_bd();
    $selectSubcuentasCuentas = 'CALL sp_sistema_select_subcuentas_cuentas_contables(' . $_POST["idCuenta"] . ');';
    $subCueCuen = consulta($selectSubcuentasCuentas);
    $ctaSubCueCue = cuenta_registros($subCueCuen);
    if ($ctaSubCueCue == 0) {
        liberar_bd();
        $deleteCtaContable = "CALL sp_sistema_delete_cuenta_contable(" . $_POST["idCuenta"] . ", " . $_SESSION[$varIdUser] . ");";
        $delete = consulta($deleteCtaContable);
        if ($delete) {
            //DATOS DE LA CUENTA
            liberar_bd();
            $selectDatosCuenta = 'CALL sp_sistema_select_datos_cuenta_contableId(' . $_POST["idCuenta"] . ');';
            $datosCuenta = consulta($selectDatosCuenta);
            $cuen = siguiente_registro($datosCuenta);
            //NUMERO DE HIJOS DE LA CUENTA PADRE
            liberar_bd();
            $selectNumeroHijos = 'CALL sp_sistema_select_datos_cuenta_contableId(' . $cuen["padre"] . ');';
            $numeroHijos = consulta($selectNumeroHijos);
            $hijos = siguiente_registro($numeroHijos);
            $ctaNumeroHijos = $hijos["numHijos"] - 1;
            //ACTUALIZAMOS NUMERO DE HIJOS DE LA CUENTA PADRE
            liberar_bd();
            $updateNumeroHijos = 'CALL sp_sistema_update_numeroHijos_cuenta_contableId(' . $cuen["padre"] . ', ' . $ctaNumeroHijos . ');';
            $upNumHijos = consulta($updateNumeroHijos);
            $res = $msj . cuentas_menuInicio();
        } else {
            $error = 'No se ha podido eliminar la categoría.';
            $msj = sistema_mensaje("error", $error);
            $res = $msj . cuentas_menuInicio();
        }
    } else {
        $error = 'Esta categoría tiene subcategorias activas.';
        $msj = sistema_mensaje("error", $error);
        $res = $msj . cuentas_menuInicio();
    }
    return $res . $updateNumeroHijos;
}