<?php
session_start();
header('Content-Type: application/json');

if (!isset($_SESSION['rol']) || !in_array($_SESSION['rol'], ['contabilidad', 'adminTi'])) {
    echo json_encode(['success' => false, 'message' => 'Acceso denegado']);
    exit;
}

require_once(__DIR__ . '/../db/conexion.php');

if (!isset($_POST['curps'])) {
    echo json_encode(['success' => false, 'message' => 'Datos no recibidos']);
    exit;
}

$curps = json_decode($_POST['curps'], true);
if (!is_array($curps) || empty($curps)) {
    echo json_encode(['success' => false, 'message' => 'CURPs inválidas']);
    exit;
}

$folio = isset($_POST['folio']) ? trim($_POST['folio']) : '';
$fecha = isset($_POST['fecha']) ? trim($_POST['fecha']) : '';

if (!$folio || !$fecha) {
    echo json_encode(['success' => false, 'message' => 'Folio y fecha requeridos']);
    exit;
}

$placeholders = implode(',', array_fill(0, count($curps), '?'));
// Actualizar Plantilla
$sql = "UPDATE Plantilla SET estatusContaBaja = 'Baja', NSSActivo = 0, RFCActivo = 0 WHERE CURP IN ($placeholders) AND estatusContaBaja = 'Pendiente'";
$stmt = $conn->prepare($sql);
if (!$stmt) {
    echo json_encode(['success' => false, 'message' => 'Error en la preparación de la consulta: ' . $conn->error]);
    exit;
}
$stmt->bind_param(str_repeat('s', count($curps)), ...$curps);
$ok1 = $stmt->execute();
$stmt->close();

// Guardar datos financieros (UPDATE o INSERT por CURP)
$ok2 = true;
foreach ($curps as $curp) {
    // Verificar si existe el CURP
    $check = $conn->prepare("SELECT CURP FROM Plantilla_datos_financieros WHERE CURP = ? LIMIT 1");
    $check->bind_param('s', $curp);
    $check->execute();
    $check->store_result();
    if ($check->num_rows > 0) {
        // UPDATE
        $upd = $conn->prepare("UPDATE Plantilla_datos_financieros SET Folio_idse_baja = ?, Fecha_baja_idse = ? WHERE CURP = ?");
        $upd->bind_param('sss', $folio, $fecha, $curp);
        if (!$upd->execute()) $ok2 = false;
        $upd->close();
    } else {
        // INSERT
        $ins = $conn->prepare("INSERT INTO Plantilla_datos_financieros (CURP, Folio_idse_baja, Fecha_baja_idse) VALUES (?, ?, ?)");
        $ins->bind_param('sss', $curp, $folio, $fecha);
        if (!$ins->execute()) $ok2 = false;
        $ins->close();
    }
    $check->close();
}
$conn->close();

if ($ok1 && $ok2) {
    echo json_encode(['success' => true]);
} else {
    echo json_encode(['success' => false, 'message' => 'Error al actualizar datos financieros.']);
}
