<?php
require_once __DIR__ . '/../../../code/app.php';
!class_exists("DepartamentoEmpresa") && require_once __DIR__ . '/../Models/departamentoEmpresaModel.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 'obtenerParaDocumentosPago':
            $anio = intval($_GET['anio']);
            $codtipoplanilla = intval($_GET['codtipoplanilla']);
            $correlativo = intval($_GET['correlativo']);

            $respuesta = DepartamentoEmpresa::obtenerParaDocumentosPago($anio, $codtipoplanilla, $correlativo);
            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 'procesarDocumentosPago':
            $coddepartamento = isset($input['coddepartamento']) ? intval($input['coddepartamento']) : 0;
            $codtipoplanilla = isset($input['codtipoplanilla']) ? intval($input['codtipoplanilla']) : 0;
            $correlativo = isset($input['correlativo']) ? intval($input['correlativo']) : 0;
            $esAguinaldo = isset($input['esAguinaldo']) ? boolval($input['esAguinaldo']) : false;
            $idProceso = isset($input['idProceso']) ? intval($input['idProceso']) : 0;
            $tipoAccion = isset($input['tipoAccion']) ? $input['tipoAccion'] : 'Descargar';

            !class_exists('DocumentoPago') && require_once __DIR__ . '/../models/documentoPagoModel.php';
            $documentoPago = new DocumentoPago();
            $documentoPago->idProceso = $idProceso;
            $documentoPago->idUsuario = $idUsuarioActual;
            $documentoPago->correlativoPlanilla = $correlativo;
            $documentoPago->tipoPlanilla = $codtipoplanilla;
            $documentoPago->esAguinaldo = $esAguinaldo;
            $documentoPago->tipoAccion = $tipoAccion;

            $respuesta = $documentoPago->construir($coddepartamento);
            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);
