<?php
error_reporting(E_ALL ^ E_NOTICE);

// Permite la conexion desde cualquier origen
header("Access-Control-Allow-Origin: *");
// Permite la ejecucion de los metodos
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");

// Se incluye el archivo que contiene la clase generica
include_once '../conexion.php';

$bodyRequest = file_get_contents("php://input");
// Decodifica el cuerpo de la solicitud y lo guarda en un array de PHP
$datos = json_decode($bodyRequest, true);

// Preparar la consulta SQL con marcadores de posición
$sql = "SELECT * FROM cajas
        WHERE empresa_id = ? 
          AND id <> ? 
          AND activo = 1 
        ORDER BY id";

// Inicializar el array para almacenar los resultados
$rows = array();

// Preparar la sentencia
if ($stmt = mysqli_prepare($conn, $sql)) {
    // Vincular los parámetros
    mysqli_stmt_bind_param($stmt, 'ii', $datos[0], $datos[1]);

    // Ejecutar la consulta
    mysqli_stmt_execute($stmt);

    // Obtener el resultado
    $result = mysqli_stmt_get_result($stmt);

    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $rows[] = $row;
        }
    } else {
        // No se encontraron registros
        print_json([]);
    }

    // Liberar el resultado
    mysqli_free_result($result);

    // Cerrar la sentencia
    mysqli_stmt_close($stmt);
} else {
    echo "ERROR: No se pudo ejecutar la consulta."; // . mysqli_error($conn);
}

// Cerrar la conexión a la base de datos
mysqli_close($conn);

// Imprimir los resultados en formato JSON
print_json($rows);

function print_json($data) {
    header("Content-type: application/json; charset=utf-8");
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    
    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            // No hay errores
            break;
        case JSON_ERROR_DEPTH:
            echo ' - Excedido tamaño máximo de la pila';
            break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Desbordamiento o desajuste de modos';
            break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Carácter de control inesperado encontrado';
            break;
        case JSON_ERROR_SYNTAX:
            echo ' - Error de sintaxis, JSON mal formado';
            break;
        case JSON_ERROR_UTF8:
            echo ' - Caracteres UTF-8 malformados, posiblemente codificados incorrectamente';
            break;
        default:
            echo ' - Error desconocido';
            break;
    }
}
?>
