<?php
require_once __DIR__ . '/../../config/auth.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    exit;
}

$periodo = limpiar($_POST['periodo'] ?? '');
if (!preg_match('/^\d{4}-(0[1-9]|1[0-2])$/', $periodo)) {
    http_response_code(400);
    exit('Periodo inválido.');
}

$stmt = $conn->prepare(
    "UPDATE nominas
     SET estado='Cerrado', cerrado_en=NOW()
     WHERE periodo=? AND estado<>'Cerrado'"
);
$stmt->bind_param('s', $periodo);
$stmt->execute();
$afectadas = $stmt->affected_rows;
$stmt->close();

if ($afectadas > 0) {
    registrar_auditoria($conn, 'CERRAR', 'nominas', null, 'Cierre definitivo de Planilla de Salarios ' . $periodo);
    $_SESSION['flash_mensaje'] = 'La Planilla de Salarios fue cerrada y quedó bloqueada como histórico.';
    $_SESSION['flash_tipo'] = 'success';
} else {
    $_SESSION['flash_mensaje'] = 'La Planilla de Salarios ya estaba cerrada.';
    $_SESSION['flash_tipo'] = 'warning';
}

header('Location: /HM/modules/nomina/periodo.php?periodo=' . urlencode($periodo));
exit;
