<?php
require_once __DIR__ . '/../../../code/app.php';
!class_exists("MovimientoEmpleado") && require_once __DIR__ . '/../Models/movimientoEmpleadoModel.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 'obtenerTodos':
            $respuesta = MovimientoEmpleado::obtenerTodos();
            break;
        case "obtenerPorTipoPlanilla":
            $codtipoplanilla = isset($_GET['codtipoplanilla']) ? intval($_GET['codtipoplanilla']) : 0;

            $respuesta = MovimientoEmpleado::obtenerPorTipoPlanilla($codtipoplanilla);
            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':
            $movimiento = new MovimientoEmpleado();

            $movimiento->id = isset($input['id']) ? $input['id'] : 0;
            $movimiento->codtipoplanilla = isset($input['codtipoplanilla']) ? $input['codtipoplanilla'] : 0;
            $movimiento->codempleado = isset($input['codempleado']) ? $input['codempleado'] : 0;
            $movimiento->nombreCompleto = isset($input['nombreCompleto']) ? $input['nombreCompleto'] : '';
            $movimiento->codsucursal = isset($input['codsucursal']) ? $input['codsucursal'] : 0;
            $movimiento->codproyecto = isset($input['codproyecto']) ? $input['codproyecto'] : 0;
            $movimiento->coddepartamento = isset($input['coddepartamento']) ? $input['coddepartamento'] : 0;
            $movimiento->codpuesto = isset($input['codpuesto']) ? $input['codpuesto'] : 0;
            $movimiento->codsucursalMovimiento = isset($input['codsucursalMovimiento']) ? $input['codsucursalMovimiento'] : 0;
            $movimiento->codproyectoMovimiento = isset($input['codproyectoMovimiento']) ? $input['codproyectoMovimiento'] : 0;
            $movimiento->idOficina = isset($input['idOficina']) ? $input['idOficina'] : 0;
            $movimiento->idTipoMovimiento = isset($input['idTipoMovimiento']) ? $input['idTipoMovimiento'] : 0;
            $movimiento->fechaEfectiva = isset($input['fechaEfectiva']) ? $input['fechaEfectiva'] : null;
            $movimiento->fechaRetorno = isset($input['fechaRetorno']) ? $input['fechaRetorno'] : null;
            $movimiento->comentarios = isset($input['comentarios']) ? $input['comentarios'] : null;
            $movimiento->seguimiento = isset($input['seguimiento']) ? $input['seguimiento'] : null;

            $respuesta = $movimiento->guardar();
            break;
        case 'finalizar':
            $id = isset($input['id']) ? $input['id'] : 0;

            $movimiento = new MovimientoEmpleado();
            $movimiento->id = $id;

            $respuesta = $movimiento->finalizar();
            break;
        case 'eliminar':
            $id =   isset($input['id']) ? $input['id'] : 0;

            $movimiento = new MovimientoEmpleado();
            $movimiento->id = $id;

            $respuesta = $movimiento->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);
