<?php
require_once __DIR__ . '/../../../code/app.php';
!class_exists("PlanillaUnica") && require_once __DIR__ . '/../Models/planillaUnicaModel.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 'buscar':
            $codtipoplanilla = intval($_GET['tipoPlanilla']);
            $periodo = urldecode($_GET['periodo']);
            $datosNuevos = isset($_GET['datosNuevos']) ? ($_GET['datosNuevos'] == 0 ? false : true) : false;

            $respuesta = PlanillaUnica::buscar($codtipoplanilla, $periodo, $datosNuevos);
            break;
        case "buscarEmpleado":
            $codempleado = $_GET['codempleado'];

            $respuesta = PlanillaUnica::buscarEmpleado($codempleado);
            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 "generar":
            $planillaUnica = new PlanillaUnica();
            $planillaUnica->id = isset($input['id']) && !empty($input['id']) ? $input['id'] : 0;
            $planillaUnica->tipoPlanilla = $input['tipoPlanilla'];
            $planillaUnica->periodo = $input['periodo'];
            $planillaUnica->empleados = $input['empleados'];

            $tipoArchivo = isset($input['tipoArchivo']) ? $input['tipoArchivo'] : 'excel';

            $respuesta = $planillaUnica->guardar($idUsuarioActual, $tipoArchivo);
            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);
