<?php
include('conexion.php');
include_once('nomina_helpers.php');
include_once('nomina_prestaciones_master_helpers.php');
if (session_status() !== PHP_SESSION_ACTIVE) { session_start(); }
if (!isset($_SESSION['usuario'])) { header('Location: login.php'); exit; }
nomina_pm_ensure_schema($conexion);

$importPreview = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = trim((string)($_POST['action'] ?? 'save_manual'));
    if ($action === 'upload_xlsx') {
        if (!isset($_FILES['bcv_xlsx']) || (int)($_FILES['bcv_xlsx']['error'] ?? UPLOAD_ERR_NO_FILE) !== UPLOAD_ERR_OK) {
            $res = ['ok' => false, 'message' => 'No se recibió el archivo XLSX o hubo un error en la carga.'];
        } else {
            $name = (string)($_FILES['bcv_xlsx']['name'] ?? 'tasas_bcv.xlsx');
            $ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
            if ($ext !== 'xlsx') {
                $res = ['ok' => false, 'message' => 'Carga únicamente el archivo .xlsx descargado desde BCV.'];
            } else {
                $res = nomina_pm_import_interest_rates_xlsx($conexion, $_FILES['bcv_xlsx']['tmp_name'], $name, [
                    'min_year' => $_POST['min_year'] ?? 1997,
                    'update_existing' => !empty($_POST['update_existing']),
                    'aplica_prestaciones' => !empty($_POST['aplica_prestaciones']) ? 1 : 0,
                    'fuente_url' => $_POST['fuente_url_import'] ?? 'https://www.bcv.org.ve/estadisticas/tasas-de-interes',
                ]);
                if (!empty($res['sample'])) { $_SESSION['bcv_import_sample'] = $res['sample']; }
            }
        }
    } else {
        $res = nomina_pm_save_interest_rate($conexion, $_POST);
    }
    nomina_flash_set($res['ok'] ? 'success' : 'error', $res['message']);
    header('Location: nomina_tasas_interes_bcv.php');
    exit;
}
$importPreview = $_SESSION['bcv_import_sample'] ?? [];
unset($_SESSION['bcv_import_sample']);

$editYm = trim((string)($_GET['edit'] ?? ''));
$edit = null;
if ($editYm !== '') {
    $stmt = mysqli_prepare($conexion, "SELECT * FROM nomina_tasas_interes_bcv WHERE periodo_ym=? LIMIT 1");
    if ($stmt) {
        mysqli_stmt_bind_param($stmt, 's', $editYm);
        mysqli_stmt_execute($stmt);
        $res = mysqli_stmt_get_result($stmt);
        $edit = $res ? mysqli_fetch_assoc($res) : null;
        mysqli_stmt_close($stmt);
    }
}
$rates = nomina_pm_fetch_interest_rates($conexion, 72);
$flash = nomina_flash_get();
$defaultYm = date('Y-m');
?>
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Tasas de interés BCV - Prestaciones</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
body{font-family:Arial,Helvetica,sans-serif;background:#f2f5f9;color:#243b53;margin:0}.wrap{max-width:1180px;margin:0 auto;padding:24px}.card{background:#fff;border:1px solid #d9e2ec;border-radius:18px;padding:20px;margin-bottom:18px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}.top h1{margin:0;font-size:22px}.muted,.mini{color:#6b7c93}.mini{font-size:12px}.btn{display:inline-block;background:#1f4aa8;color:#fff;text-decoration:none;border:none;border-radius:14px;padding:12px 18px;font-weight:700;cursor:pointer}.btn.secondary{background:#fff;color:#1f4aa8;border:1px solid #b7c6e3}.btn.ghost{background:#eef3ff;color:#1f4aa8}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.field label{display:block;font-weight:700;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:12px;padding:11px 12px;font-size:15px}.field textarea{min-height:80px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:separate;border-spacing:0}.table th,.table td{padding:11px 10px;border-bottom:1px solid #e5edf5;text-align:left;vertical-align:top}.table th{background:#f8fafc;font-size:13px}.tot{font-weight:800}.flash{padding:14px 16px;border-radius:14px;margin-bottom:14px}.flash.success{background:#ecfdf3;color:#166534;border:1px solid #86efac}.flash.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.note{padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px dashed #cbd5e1;color:#486581}.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:#eef2ff;color:#1e3a8a;font-weight:700;font-size:12px}@media(max-width:900px){.grid{grid-template-columns:1fr}}
</style>
</head>
<body>
<div class="wrap">
  <div class="card top">
    <div>
      <h1>Tasas de interés BCV para prestaciones</h1>
      <div class="muted">Carga mensual de tasa activa, pasiva y promedio para calcular intereses sobre prestaciones. Fuente oficial sugerida: BCV → Estadísticas → Tasas de interés.</div>
    </div>
    <div>
      <a class="btn secondary" href="nomina_prestaciones.php">Volver a prestaciones</a>
      <a class="btn ghost" href="nomina_reporte_legal_trabajador.php">Reporte legal</a>
    </div>
  </div>

  <?php if ($flash): ?><div class="flash <?php echo h($flash['type']); ?>"><?php echo h($flash['message']); ?></div><?php endif; ?>


  <div class="card">
    <div class="top" style="align-items:center;">
      <div>
        <h2 style="margin:0;">Importar XLS oficial BCV</h2>
        <div class="muted">Descarga el XLS desde BCV → Tasas de interés y súbelo aquí. El sistema leerá mes, Gaceta, fecha, tasa promedio activa/pasiva y tasa activa.</div>
      </div>
      <span class="badge">v7.2 XLS BCV</span>
    </div>
    <form method="post" enctype="multipart/form-data" style="margin-top:14px;">
      <input type="hidden" name="action" value="upload_xlsx">
      <div class="grid">
        <div class="field"><label>Archivo .xlsx BCV</label><input type="file" name="bcv_xlsx" accept=".xlsx" required><div class="mini">Ej: 1_3_18.xlsx descargado desde la página oficial del BCV.</div></div>
        <div class="field"><label>Año mínimo a importar</label><input name="min_year" type="number" min="1975" max="2100" value="1997"><div class="mini">Para trabajadores antiguos puedes dejar 1997; para pruebas puedes colocar 2024 o 2025.</div></div>
        <div class="field"><label>Fuente oficial</label><input name="fuente_url_import" value="https://www.bcv.org.ve/estadisticas/tasas-de-interes"></div>
      </div>
      <div class="grid" style="margin-top:12px;">
        <label class="note"><input type="checkbox" name="update_existing" value="1" checked> Actualizar tasas existentes si el XLS trae una versión más reciente.</label>
        <label class="note"><input type="checkbox" name="aplica_prestaciones" value="1" checked> Marcar como aplicable a prestaciones.</label>
        <div><button class="btn" type="submit">Importar XLS BCV</button></div>
      </div>
      <div class="mini" style="margin-top:10px;">Nota auditora: el XLS trae <b>Promedio activa/pasiva</b> y <b>Activa</b>. El sistema calcula la pasiva como: <b>(2 × promedio) - activa</b> para dejar las tres tasas disponibles.</div>
    </form>
    <?php if (!empty($importPreview)): ?>
      <div class="note" style="margin-top:14px;"><b>Últimas filas detectadas:</b>
        <?php foreach (array_slice($importPreview, 0, 5) as $p): ?>
          <span class="badge"><?php echo h($p['periodo_ym']); ?> · Prom <?php echo h(number_format((float)$p['tasa_promedio_anual'], 2, ',', '.')); ?>%</span>
        <?php endforeach; ?>
      </div>
    <?php endif; ?>
  </div>

  <div class="card">
    <h2 style="margin-top:0;"><?php echo $edit ? 'Editar tasa ' . h($edit['periodo_ym']) : 'Registrar tasa mensual'; ?></h2>
    <form method="post">
      <input type="hidden" name="action" value="save_manual">
      <div class="grid">
        <div class="field"><label>Período AAAA-MM</label><input name="periodo_ym" value="<?php echo h($edit['periodo_ym'] ?? $defaultYm); ?>" placeholder="2026-05" required></div>
        <div class="field"><label>Tasa activa anual %</label><input name="tasa_activa_anual" step="0.0001" type="number" value="<?php echo h($edit['tasa_activa_anual'] ?? '0.0000'); ?>"></div>
        <div class="field"><label>Tasa pasiva anual %</label><input name="tasa_pasiva_anual" step="0.0001" type="number" value="<?php echo h($edit['tasa_pasiva_anual'] ?? '0.0000'); ?>"></div>
        <div class="field"><label>Tasa promedio anual %</label><input name="tasa_promedio_anual" step="0.0001" type="number" value="<?php echo h($edit['tasa_promedio_anual'] ?? '0.0000'); ?>"><div class="mini">Si la dejas en 0, el sistema promedia activa y pasiva.</div></div>
        <div class="field"><label>Fecha de publicación</label><input name="fecha_publicacion" type="date" value="<?php echo h($edit['fecha_publicacion'] ?? date('Y-m-d')); ?>"></div>
        <div class="field"><label>Aplica a prestaciones</label><select name="aplica_prestaciones"><option value="1" <?php echo !isset($edit['aplica_prestaciones']) || (int)$edit['aplica_prestaciones'] === 1 ? 'selected' : ''; ?>>Sí</option><option value="0" <?php echo isset($edit['aplica_prestaciones']) && (int)$edit['aplica_prestaciones'] === 0 ? 'selected' : ''; ?>>No</option></select></div>
      </div>
      <div class="field" style="margin-top:14px;"><label>Fuente URL</label><input name="fuente_url" value="<?php echo h($edit['fuente_url'] ?? 'https://www.bcv.org.ve/estadisticas/tasas-de-interes'); ?>"></div>
      <div class="field" style="margin-top:14px;"><label>Observación / soporte</label><textarea name="observacion" placeholder="Ej: Aviso oficial BCV del mes, cargado por RRHH/Contabilidad."><?php echo h($edit['observacion'] ?? 'Tasa de interés BCV para cálculo de intereses sobre prestaciones sociales'); ?></textarea></div>
      <div style="margin-top:14px;"><button class="btn" type="submit">Guardar tasa</button> <?php if ($edit): ?><a class="btn secondary" href="nomina_tasas_interes_bcv.php">Cancelar edición</a><?php endif; ?></div>
    </form>
  </div>

  <div class="card">
    <h2 style="margin-top:0;">Tasas registradas</h2>
    <div class="note" style="margin-bottom:14px;">Para el método normal del sistema se usa <b>Promedio activa/pasiva</b>. También quedan disponibles <b>Pasiva</b> y <b>Activa</b> para criterio contable, fideicomiso o mora, según soporte legal/contable.</div>
    <div class="table-wrap"><table class="table"><thead><tr><th>Período</th><th>Activa %</th><th>Pasiva %</th><th>Promedio %</th><th>Gaceta</th><th>Publicación</th><th>Aplica</th><th>Observación</th><th></th></tr></thead><tbody>
      <?php foreach ($rates as $r): ?>
      <tr>
        <td><b><?php echo h($r['periodo_ym']); ?></b></td>
        <td><?php echo h(number_format((float)$r['tasa_activa_anual'], 4, ',', '.')); ?></td>
        <td><?php echo h(number_format((float)$r['tasa_pasiva_anual'], 4, ',', '.')); ?></td>
        <td class="tot"><?php echo h(number_format((float)$r['tasa_promedio_anual'], 4, ',', '.')); ?></td>
        <td><?php echo h(($r['gaceta_numero'] ?? '') . (($r['gaceta_fecha'] ?? '') ? ' / ' . $r['gaceta_fecha'] : '')); ?></td>
        <td><?php echo h($r['fecha_publicacion'] ?? ''); ?></td>
        <td><?php echo (int)$r['aplica_prestaciones'] === 1 ? '<span class="badge">Sí</span>' : 'No'; ?></td>
        <td><?php echo h($r['observacion'] ?? ''); ?><div class="mini"><?php echo h($r['fuente_url'] ?? ''); ?><?php echo !empty($r['fuente_archivo']) ? ' · Archivo: ' . h($r['fuente_archivo']) : ''; ?></div></td>
        <td><a class="btn secondary" href="nomina_tasas_interes_bcv.php?edit=<?php echo h(urlencode($r['periodo_ym'])); ?>">Editar</a></td>
      </tr>
      <?php endforeach; ?>
      <?php if (!$rates): ?><tr><td colspan="9"><div class="note">Aún no hay tasas cargadas. Registra al menos el mes de inicio del cálculo antes de generar intereses.</div></td></tr><?php endif; ?>
    </tbody></table></div>
  </div>
</div>
</body>
</html>
