<?php
require_once __DIR__ . '/../../../code/app.php';
!class_exists("Bono") && require_once __DIR__ . '/../Models/bonoModel.php';

header("Content-Type: application/json; charset=utf-8");

$respuesta = (object)[];

$permisos = App::verificarAcceso();

$idUsuarioActual = App::obtenerIdUsuario();

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $accion = isset($_GET['accion']) ? $_GET['accion'] : null;

    switch ($accion) {
        case 'obtenerPorTipoPlanilla':
            $codtipoplanilla = isset($_GET['codtipoplanilla']) ? intval($_GET['codtipoplanilla']) : 0;
            $respuesta = Bono::obtenerPorTipoPlanilla($codtipoplanilla);
            break;
        case 'obtenerDetalles':
            $id = isset($_GET['id']) ? intval($_GET['id']) : 0;

            $respuesta = Bono::obtenerDetalles($id);
            break;
        default:
            $respuesta->status = 400;
            $respuesta->message = "Acción no válida";
            break;
    }
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $input = json_decode(file_get_contents('php://input'), true);
    !empty($_POST) && $input = $_POST;
    $accion = isset($input['accion']) ? $input['accion'] : null;

    switch ($accion) {
        case 'guardar':
            $bono = new Bono();

            $bono->id = $input['id'];
            $bono->codtipoplanilla = $input['codtipoplanilla'];
            $bono->idTipo = $input['idTipo'];
            $bono->descripcion = $input['descripcion'];
            $bono->idPeriodicidad = isset($input['idPeriodicidad']) ? $input['idPeriodicidad'] : 0;
            $bono->fechaPago = isset($input['fechaPago']) ? $input['fechaPago'] : null;
            $bono->mesPago = isset($input['mesPago']) ? $input['mesPago'] : null;
            $bono->planillaPago = isset($input['planillaPago']) ? $input['planillaPago'] : null;
            $bono->monto = $input['monto'];
            $bono->detalles = $input['detalles'];

            $respuesta = $bono->guardar();
            break;
        case 'eliminar':
            $bono = new Bono();

            $bono->id = $input['id'];

            $respuesta = $bono->eliminar();
            break;
        default:
            $respuesta->status = 400;
            $respuesta->message = 'Acción no válida';
            break;
    }
}

$httpCode = isset($respuesta->status) ? $respuesta->status : 500;
http_response_code($httpCode);
echo json_encode($respuesta);
