<?php
session_start();

/* ====== Validación de parámetro ====== */
if (!isset($_GET['IAG']) || !ctype_digit($_GET['IAG'])) {
  header("Location: Adm_Gestion_Abastecimientos.php");
  exit();
}
$idEdit = (int) $_GET['IAG'];

/* ====== Carga de listas y del registro ====== */
require_once '../../Controlador/Utilidades/Conexion_BD.php';
require_once '../../Controlador/Ctrl_Administrador/MySQL_Mostrar_Grifos.php';
require_once '../../Controlador/Ctrl_Administrador/MySQL_Mostrar_Galoneras.php';

$conn = new Conexion_BD();
$db   = $conn->getConnection();

/* Grifos activos */
$grifos = (new MostrarGrifos($conn))->ObtenerGrifosActivos() ?? [];

/* Galoneras (filtra activas) */
$galoneras_all = (new MostrarGaloneras($conn))->ObtenerTodasLasGaloneras() ?? [];
$galoneras_activas = array_values(array_filter($galoneras_all, function ($g) {
  return isset($g['estado']) && strtolower($g['estado']) === 'activo';
}));

/* Registro a editar (estructura base) */
$edit = [
  'id'                   => $idEdit,
  'galonera_id'          => null,
  'grifo_id'             => null,
  'responsable_id'       => null,
  'dni_responsable'      => '',
  'responsable_nombre'   => '',
  'combustible_abastecido' => '',
  'cantidad_gln'         => '',
  'valor_unitario_gln'   => '',
  'numero_vale'          => '',
  'fecha_abastecimiento' => '',
  'hora_abastecimiento'  => '',
  'observaciones'        => '',
];

/* Traer registro (uniendo chofer para DNI/nombre) */
$sql = "SELECT
          cag.id,
          cag.galonera_id,
          cag.grifo_id,
          cag.responsable_id,
          ch.dni AS dni_responsable,
          TRIM(CONCAT(COALESCE(ch.nombres,''),' ',COALESCE(ch.apellidos,''))) AS responsable_nombre,
          cag.combustible_abastecido,
          cag.cantidad_gln,
          cag.valor_unitario_gln,
          IFNULL(cag.numero_vale,'') AS numero_vale,
          cag.fecha_abastecimiento,
          cag.hora_abastecimiento,
          IFNULL(cag.observaciones,'') AS observaciones
        FROM control_abastecimiento_galonera AS cag
        LEFT JOIN choferes AS ch ON ch.id = cag.responsable_id
        WHERE cag.id = ? LIMIT 1";
$stmt = $db->prepare($sql);
$stmt->bind_param("i", $idEdit);
$stmt->execute();
$rs = $stmt->get_result();
if ($rs && $rs->num_rows === 1) {
  $edit = $rs->fetch_assoc();
} else {
  $stmt->close();
  $conn->closeConnection();
  $_SESSION['error_abastecimiento_galonera'] = "No se encontró el abastecimiento de galonera solicitado.";
  header("Location: Adm_Gestion_Abastecimientos.php");
  exit();
}
$stmt->close();

/* ====== Mapa de nombres de tipo (incluye GLP) ====== */
$TIPO_MAP = [
  1 => 'DIESEL B5 (DB5)',
  2 => 'G-REGULAR',
  3 => 'G-PREMIUM',
  8 => 'GLP',          // <-- Ajusta si tu ID de GLP es otro
];

$conn->closeConnection();

/* Helper para lectura de capacidad y tipo de la galonera seleccionada */
$capacidadSel = '';
$tipoIdSel    = '';
$tipoTxtSel   = '';
foreach ($galoneras_activas as $g) {
  if ((int)$g['id'] === (int)$edit['galonera_id']) {
    $capacidadSel = isset($g['capacidad_litros']) ? (float)$g['capacidad_litros'] : '';
    $tipoIdSel    = isset($g['tipo_combustible_id']) && $g['tipo_combustible_id'] !== null ? (int)$g['tipo_combustible_id'] : 0;
    $tipoTxtSel   = $g['combustibletipo'] ?? ($TIPO_MAP[$tipoIdSel] ?? '');
    break;
  }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>TSGJ | Editar Abastecimiento (Galonera)</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="icon" href="../../Modelo/Archivos_Media/Color_LogoTipo.png" type="image/png">

  <!-- Bootstrap / Select2 / Icons -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
  <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
  <!-- CSS (mismo que el formulario de registrar) -->
  <link rel="stylesheet" href="../../Modelo/Archivos_CSS/Style_ForAbastecimiento.css" />

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

  <div class="container mt-2">
    <a href="Adm_Gestion_Abastecimientos.php" class="btn btn-outline-primary btn-sm mb-2">
      <i class="bi bi-arrow-left"></i> Volver a gestión
    </a>

    <div class="card shadow-sm">
      <div class="card-header bg-primary text-white text-center rounded">
        <h5 class="mb-0">Editar Control de Abastecimiento (Galonera)</h5>
      </div>

      <div class="card-body">
        <form action="../../Controlador/Ctrl_Administrador/MySQL_Editar_Abastecimiento_Galonera.php"
              method="post" id="Editar_Abastecimiento_Galonera" autocomplete="off">
          <input type="hidden" name="id" value="<?= (int)$edit['id'] ?>">

          <div class="row g-1">

            <!-- FILA 1 | Galonera + detalles -->
            <div class="col-12 col-md-6 col-lg-4 mb-1">
              <label for="galonera_id" class="form-label">Galonera</label>
              <select class="form-select form-select-sm" id="galonera_id" name="galonera_id" required>
                <option value="">Seleccione una galonera</option>
                <?php foreach ($galoneras_activas as $g): ?>
                  <?php
                    $g_id   = (int)$g['id'];
                    $sel    = $g_id === (int)$edit['galonera_id'] ? 'selected' : '';
                    $cap    = isset($g['capacidad_litros']) ? (float)$g['capacidad_litros'] : 0;
                    $tipoId = isset($g['tipo_combustible_id']) && $g['tipo_combustible_id'] !== null ? (int)$g['tipo_combustible_id'] : 0;
                    $tipoNm = $g['combustibletipo'] ?? ($TIPO_MAP[$tipoId] ?? '');
                    $nombre = htmlspecialchars($g['codigo'] ?? ('ID ' . $g_id), ENT_QUOTES, 'UTF-8');
                  ?>
                  <option
                    value="<?= $g_id ?>"
                    data-capacidad="<?= $cap ?>"
                    data-tipo="<?= $tipoId ?>"
                    data-tipo-nombre="<?= htmlspecialchars($tipoNm, ENT_QUOTES, 'UTF-8') ?>"
                    <?= $sel ?>
                  ><?= $nombre ?></option>
                <?php endforeach; ?>
              </select>
              <div class="form-text">Solo se listan galoneras en estado <b>activo</b>.</div>
            </div>

            <div class="col-6 col-md-3 col-lg-2 mb-1">
              <label for="capacidad_litros" class="form-label">Capacidad (GLN)</label>
              <input type="text" id="capacidad_litros" class="form-control form-control-sm"
                     value="<?= $capacidadSel !== '' ? number_format((float)$capacidadSel, 2, '.', '') : '' ?>"
                     disabled>
            </div>

            <div class="col-6 col-md-3 col-lg-2 mb-1">
              <label for="tipo_combustible_txt" class="form-label">Tipo Combustible</label>
              <input type="text" id="tipo_combustible_txt" class="form-control form-control-sm"
                     value="<?= htmlspecialchars($tipoTxtSel, ENT_QUOTES, 'UTF-8') ?>" disabled>
            </div>

            <input type="hidden" name="tipo_combustible_id" id="tipo_combustible_id" value="<?= (int)$tipoIdSel ?>">

            <!-- FILA 2 | Grifo -->
            <div class="col-12 col-md-6 col-lg-4 mb-1">
              <label for="grifo_id" class="form-label">Grifo</label>
              <select class="form-select form-select-sm" id="grifo_id" name="grifo_id" required>
                <option value="">Seleccione un grifo</option>
                <?php foreach ($grifos as $gr): ?>
                  <?php
                    $gr_id = (int)$gr['id'];
                    $selGr = $gr_id === (int)$edit['grifo_id'] ? 'selected' : '';
                    $grNom = htmlspecialchars($gr['nombre'] ?? ('ID ' . $gr_id), ENT_QUOTES, 'UTF-8');
                  ?>
                  <option value="<?= $gr_id ?>" <?= $selGr ?>><?= $grNom ?></option>
                <?php endforeach; ?>
              </select>
            </div>

            <!-- FILA 3 | DNI/Responsable (solo lectura) -->
            <div class="col-6 col-md-3 col-lg-2 mb-1">
              <label for="dni" class="form-label">DNI del Responsable</label>
              <input type="text" id="dni" class="form-control form-control-sm bg-light"
                     value="<?= htmlspecialchars($edit['dni_responsable'] ?? '', ENT_QUOTES, 'UTF-8') ?>"
                     readonly tabindex="-1" aria-readonly="true">
              <div class="form-text">Campo bloqueado en edición.</div>
            </div>

            <div class="col-6 col-md-5 col-lg-4 mb-1">
              <label for="nombre_chofer" class="form-label">Nombre del Responsable</label>
              <input type="text" id="nombre_chofer" class="form-control form-control-sm bg-light"
                     value="<?= htmlspecialchars($edit['responsable_nombre'] ?? '', ENT_QUOTES, 'UTF-8') ?>"
                     placeholder="—" disabled>
              <input type="hidden" name="responsable_id" id="responsable_id"
                     value="<?= (int)($edit['responsable_id'] ?? 0) ?>">
            </div>

            <!-- FILA 4 | Cantidad / Precio / Vale -->
            <div class="col-6 col-md-4 col-lg-3 mb-1">
              <label for="cantidad_gln" class="form-label">Cantidad (GLN)</label>
              <input type="number" name="cantidad_gln" id="cantidad_gln"
                     class="form-control form-control-sm"
                     step="0.00001" min="0" inputmode="decimal"
                     pattern="^\d+(\.\d{1,5})?$"
                     value="<?= htmlspecialchars(number_format((float)$edit['cantidad_gln'], 5, '.', ''), ENT_QUOTES, 'UTF-8') ?>"
                     required>
              <div id="capacidad_alert" class="form-text text-danger d-none">
                La cantidad excede la capacidad de la galonera.
              </div>
            </div>

            <div class="col-6 col-md-4 col-lg-3 mb-1">
              <label for="valor_unitario_gln" class="form-label">Valor Unitario GLN</label>
              <input type="number" name="valor_unitario_gln" id="valor_unitario_gln"
                     class="form-control form-control-sm"
                     step="0.01" min="0" inputmode="decimal"
                     pattern="^\d+(\.\d{1,2})?$"
                     value="<?= htmlspecialchars(number_format((float)$edit['valor_unitario_gln'], 2, '.', ''), ENT_QUOTES, 'UTF-8') ?>"
                     required>
            </div>

            <div class="col-6 col-md-4 col-lg-3 mb-1">
              <label for="numero_vale" class="form-label">N° Vale</label>
              <input type="text" name="numero_vale" id="numero_vale"
                     maxlength="50" class="form-control form-control-sm"
                     value="<?= htmlspecialchars($edit['numero_vale'], ENT_QUOTES, 'UTF-8') ?>"
                     oninput="this.value=this.value.toUpperCase().replace(/[^A-Z0-9\-\/]/g,'')"
                     pattern="[A-Z0-9\-\/]{0,50}">
            </div>

            <!-- FILA 5 | Fecha / Hora -->
            <div class="col-6 col-md-4 col-lg-3 mb-1">
              <label for="fecha_abastecimiento" class="form-label">Fecha</label>
              <input type="date" name="fecha_abastecimiento" id="fecha_abastecimiento"
                     class="form-control form-control-sm"
                     value="<?= htmlspecialchars($edit['fecha_abastecimiento'], ENT_QUOTES, 'UTF-8') ?>" required>
            </div>

            <div class="col-6 col-md-4 col-lg-3 mb-1">
              <label for="hora_abastecimiento" class="form-label">Hora</label>
              <input type="time" name="hora_abastecimiento" id="hora_abastecimiento"
                     class="form-control form-control-sm"
                     value="<?= htmlspecialchars($edit['hora_abastecimiento'], ENT_QUOTES, 'UTF-8') ?>" required>
            </div>

            <!-- FILA 6 | Observaciones -->
            <div class="col-12 mb-1">
              <label for="observaciones" class="form-label">Observaciones (opcional)</label>
              <textarea name="observaciones" id="observaciones" rows="2"
                        class="form-control form-control-sm" maxlength="255"
                        placeholder="Ej.: Ajuste por faena."><?= htmlspecialchars($edit['observaciones'], ENT_QUOTES, 'UTF-8') ?></textarea>
            </div>

            <div class="col-12 text-center mt-2">
              <button type="submit" id="btn-guardar" class="btn btn-success btn-sm px-4">
                Guardar cambios
              </button>
              <a href="Adm_Gestion_Abastecimientos.php" class="btn btn-secondary btn-sm px-4 ms-2">Cancelar</a>
            </div>

          </div>
        </form>
      </div>
    </div>
  </div>

  <!-- Librerías y scripts -->
  <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
  <!-- Ruta corregida al JS de edición -->
  <script src="../../Modelo/Archivos_JS/Formulario_Editar_Abastecimiento_Galonera.js"></script>

  <?php if (isset($_SESSION['error_abastecimiento_galonera'])): ?>
    <script>
      Swal.fire({
        icon: 'error',
        title: 'Error',
        text: <?= json_encode($_SESSION['error_abastecimiento_galonera']); ?>
      });
    </script>
    <?php unset($_SESSION['error_abastecimiento_galonera']); endif; ?>

</body>
</html>
