<?php
// backend/reingresos/insert_reingreso.php
require_once '../db/conexion.php';
header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    echo json_encode(['error' => 'Método no permitido']);
    exit;
}

$input = json_decode(file_get_contents('php://input'), true);
$curp = isset($input['CURP']) ? strtoupper(trim($input['CURP'])) : null;

if (!$curp) {
    http_response_code(400);
    echo json_encode(['error' => 'CURP es requerido']);
    exit;
}

// Verificar que el CURP existe en Plantilla

// Obtener datos de Plantilla
$stmt = $conn->prepare('SELECT CURP, `FECHA DE INGRESO`, `Fecha Baja`, `ComentarioBaja` FROM Plantilla WHERE CURP = ?');
$stmt->bind_param('s', $curp);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
    http_response_code(404);
    echo json_encode(['error' => 'CURP no encontrado en Plantilla']);
    exit;
}
$row = $result->fetch_assoc();
$stmt->close();

// Insertar en reingresos con los datos obtenidos

// Obtener datos financieros de Plantilla_datos_financieros
$stmt_fin = $conn->prepare('SELECT Folio_pre_alta_idse, Fecha_pre_alta, Folio_idse, Fecha_alta_idse, Folio_pre_baja_idse, Fecha_pre_baja, Folio_idse_baja, Fecha_baja_idse FROM Plantilla_datos_financieros WHERE CURP = ?');
$stmt_fin->bind_param('s', $curp);
$stmt_fin->execute();
$result_fin = $stmt_fin->get_result();
$fin = $result_fin->fetch_assoc();
$stmt_fin->close();

// Insertar en reingresos con los datos obtenidos de Plantilla y Plantilla_datos_financieros
$stmt = $conn->prepare('INSERT INTO reingresos (CURP, alta1, baja1, comentarioBaja1, Folio_pre_alta_idse, Fecha_pre_alta, Folio_idse, Fecha_alta_idse, Folio_pre_baja_idse, Fecha_pre_baja, Folio_idse_baja, Fecha_baja_idse) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
$stmt->bind_param(
    'ssssssssssss',
    $curp,
    $row['FECHA DE INGRESO'],
    $row['Fecha Baja'],
    $row['ComentarioBaja'],
    $fin['Folio_pre_alta_idse'],
    $fin['Fecha_pre_alta'],
    $fin['Folio_idse'],
    $fin['Fecha_alta_idse'],
    $fin['Folio_pre_baja_idse'],
    $fin['Fecha_pre_baja'],
    $fin['Folio_idse_baja'],
    $fin['Fecha_baja_idse']
);
if ($stmt->execute()) {

    // Actualizar los campos en Plantilla a NULL y setear estatusContaAlta y estatusContaBaja a 'Pendiente'
    $update = $conn->prepare('UPDATE Plantilla SET `FECHA DE INGRESO` = NULL, `Fecha Baja` = NULL, `ComentarioBaja` = NULL, estatusContaAlta = "Pendiente", estatusContaBaja = "Pendiente" WHERE CURP = ?');
    $update->bind_param('s', $curp);
    $update->execute();
    $update->close();

    // Limpiar los datos financieros en Plantilla_datos_financieros
    $update_fin = $conn->prepare('UPDATE Plantilla_datos_financieros SET Folio_pre_alta_idse = NULL, Fecha_pre_alta = NULL, Folio_idse = NULL, Fecha_alta_idse = NULL, Folio_pre_baja_idse = NULL, Fecha_pre_baja = NULL, Folio_idse_baja = NULL, Fecha_baja_idse = NULL WHERE CURP = ?');
    $update_fin->bind_param('s', $curp);
    $update_fin->execute();
    $update_fin->close();

    echo json_encode(['success' => true]);
} else {
    http_response_code(500);
    echo json_encode(['error' => 'No se pudo insertar el reingreso']);
}
$stmt->close();
$conn->close();
