<?php
session_start();
header('Content-Type: text/html; charset=UTF-8');
@ini_set('default_charset', 'UTF-8');
if (function_exists('mb_internal_encoding')) { @mb_internal_encoding('UTF-8'); }

require_once '../../Controlador/Utilidades/Conexion_BD.php';

if (!isset($_GET['IA']) || !ctype_digit($_GET['IA'])) {
  header("Location: Adm_Gestion_Abastecimientos.php");
  exit;
}

$id_abastecimiento = (int)$_GET['IA'];
$conn = new Conexion_BD();

/* ================== CARGA DEL REGISTRO A EDITAR ================== */
$sql = "SELECT * FROM control_combustible WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $id_abastecimiento);
$stmt->execute();
$abastecimiento = $stmt->get_result()->fetch_assoc();
$stmt->close();

if (!$abastecimiento) {
  $conn->closeConnection();
  header("Location: Adm_Gestion_Abastecimientos.php");
  exit;
}

/* ====== ¿HAY REGISTROS POSTERIORES PARA EL MISMO VEHÍCULO? ====== */
$sqlPosterior = "
  SELECT id
  FROM control_combustible
  WHERE vehiculo_id = ?
    AND (
      fecha_abastecimiento > ?
      OR (fecha_abastecimiento = ? AND hora_abastecimiento > ?)
    )
  LIMIT 1";
$stmtPosterior = $conn->prepare($sqlPosterior);
$stmtPosterior->bind_param(
  "isss",
  $abastecimiento['vehiculo_id'],
  $abastecimiento['fecha_abastecimiento'],
  $abastecimiento['fecha_abastecimiento'],
  $abastecimiento['hora_abastecimiento']
);
$stmtPosterior->execute();
$resPosterior   = $stmtPosterior->get_result();
$hayPosteriores = $resPosterior->num_rows > 0;
$stmtPosterior->close();

/* Puedes decidir qué campos bloquear. Aquí bloqueamos fecha/hora/km si hay posteriores */
$bloquearEdicionTotal = $hayPosteriores;

/* ================== DATOS DE VEHÍCULO / CHOFER / GRIFO ================== */
$vehiculo = $conn->executeQuery(
  "SELECT * FROM vehiculos WHERE id = {$abastecimiento['vehiculo_id']}"
)->fetch_assoc();

$rowTipoVehiculo = $conn->executeQuery(
  "SELECT vehiculotipo FROM tipovehiculo WHERE id = {$vehiculo['tipo_vehiculo_id']}"
)->fetch_assoc();
$vehiculo_tipo_nombre = $rowTipoVehiculo ? $rowTipoVehiculo['vehiculotipo'] : '';

$rowCombustible = $conn->executeQuery(
  "SELECT combustibletipo FROM tipocombustible WHERE id = {$vehiculo['tipo_combustible_id']}"
)->fetch_assoc();
$combustible_nombre = $rowCombustible ? $rowCombustible['combustibletipo'] : '';

$chofer = $conn->executeQuery(
  "SELECT * FROM choferes WHERE id = {$abastecimiento['chofer_id']}"
)->fetch_assoc();

$dataGrifos = $conn->executeQuery("SELECT id, nombre FROM grifos ORDER BY nombre");

$grifoActual = $conn->executeQuery(
  "SELECT nombre FROM grifos WHERE id = {$abastecimiento['grifo_id']}"
)->fetch_assoc();
$nombreGrifoActual = $grifoActual ? $grifoActual['nombre'] : '';

/* ====== ÚLTIMO KM ANTERIOR A ESTE REGISTRO (para mostrar como referencia) ====== */
$sqlAnterior = "
  SELECT kilometraje
  FROM control_combustible
  WHERE vehiculo_id = {$abastecimiento['vehiculo_id']}
    AND (
      fecha_abastecimiento < '{$abastecimiento['fecha_abastecimiento']}'
      OR (fecha_abastecimiento = '{$abastecimiento['fecha_abastecimiento']}'
          AND hora_abastecimiento < '{$abastecimiento['hora_abastecimiento']}')
    )
  ORDER BY fecha_abastecimiento DESC, hora_abastecimiento DESC
  LIMIT 1";
$anterior = $conn->executeQuery($sqlAnterior)->fetch_assoc();
$kilometraje_actual = $anterior
  ? $anterior['kilometraje']
  : ($vehiculo['kilometraje_inicial'] ?? '');

$conn->closeConnection();

/* ====== LÓGICA MIXTOS (mostrar siempre ambas gasolinas) ====== */
$tipo_combustible_id = (int)($vehiculo['tipo_combustible_id'] ?? 0);
$combustible_actual  = $abastecimiento['combustible_abastecido'] ?? '';

$esMixto = in_array($tipo_combustible_id, [4,5,6,7], true);

if ($esMixto) {
  // Si es GLP+Gasolina (4 ó 5) -> GLP, G-REGULAR, G-PREMIUM
  // Si es GNV+Gasolina (6 ó 7) -> GNV, G-REGULAR, G-PREMIUM
  $principal = in_array($tipo_combustible_id, [4,5], true) ? 'GLP' : 'GNV';
  $opcionesCombustible = [$principal, 'G-REGULAR', 'G-PREMIUM'];
} else {
  $noMixtoDefault = null;
  if     ($tipo_combustible_id === 1) $noMixtoDefault = 'DIESEL';
  elseif ($tipo_combustible_id === 2) $noMixtoDefault = 'G-REGULAR';
  elseif ($tipo_combustible_id === 3) $noMixtoDefault = 'G-PREMIUM';
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>TSGJ | Editar Abastecimiento</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 unificado del módulo de abastecimiento -->
  <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</h5>
    </div>

    <div class="card-body">
      <form action="../../Controlador/Ctrl_Administrador/MySQL_Editar_Abastecimiento.php" method="post" id="Editar_Abastecimiento" autocomplete="off" novalidate>
        <!-- Ocultos base -->
        <input type="hidden" name="id" value="<?= (int)$abastecimiento['id'] ?>">
        <input type="hidden" name="vehiculo_id" value="<?= (int)$abastecimiento['vehiculo_id'] ?>">
        <input type="hidden" name="chofer_id" value="<?= (int)$abastecimiento['chofer_id'] ?>">
        <input type="hidden" name="capacidad_combustible" id="capacidad_combustible_hidden" value="<?= htmlspecialchars($vehiculo['capacidad_combustible'] ?? '') ?>">
        <input type="hidden" name="kilometraje_actual" id="kilometraje_actual_hidden" value="<?= htmlspecialchars($kilometraje_actual) ?>">
        <input type="hidden" name="tipo_combustible_id" id="tipo_combustible_id" value="<?= (int)$tipo_combustible_id ?>">

        <div class="row g-1">

          <!-- FILA 1 -->
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Placa del Vehículo</label>
            <input type="text" class="form-control form-control-sm" value="<?= htmlspecialchars($vehiculo['placa']) ?>" readonly>
          </div>
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Marca</label>
            <input type="text" class="form-control form-control-sm" value="<?= htmlspecialchars($vehiculo['marca']) ?>" readonly>
          </div>
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Modelo</label>
            <input type="text" class="form-control form-control-sm" value="<?= htmlspecialchars($vehiculo['modelo']) ?>" readonly>
          </div>

          <!-- FILA 2 -->
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Tipo Vehículo</label>
            <input type="text" class="form-control form-control-sm" value="<?= htmlspecialchars($vehiculo_tipo_nombre) ?>" readonly>
          </div>
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Tipo Combustible (del vehículo)</label>
            <input type="text" class="form-control form-control-sm" value="<?= htmlspecialchars($combustible_nombre) ?>" readonly>
          </div>
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Capacidad Combustible (GLN)</label>
            <input type="text" id="capacidad_combustible" class="form-control form-control-sm" value="<?= htmlspecialchars($vehiculo['capacidad_combustible'] ?? '') ?>" readonly>
          </div>

          <!-- BLOQUE MIXTOS -->
          <?php if ($esMixto): ?>
            <div class="col-12 mb-1" id="grupo-combustible-abastecido">
              <label class="form-label d-block">Combustible abastecido</label>
              <div class="d-flex flex-wrap gap-3" id="opciones-combustible">
                <?php foreach ($opcionesCombustible as $opc): ?>
                  <?php $checked = (strcasecmp($combustible_actual, $opc) === 0) ? 'checked' : ''; ?>
                  <?php $idRadio = 'opc_'.preg_replace('/\W+/', '', $opc); ?>
                  <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio" name="combustible_abastecido" id="<?= $idRadio ?>" value="<?= htmlspecialchars($opc) ?>" <?= $checked ?>>
                    <label class="form-check-label" for="<?= $idRadio ?>"><?= htmlspecialchars($opc) ?></label>
                  </div>
                <?php endforeach; ?>
              </div>
              <div class="small-help text-muted">
                Requerido para GLP/G-REGULAR, GLP/G-PREMIUM, GNV/G-REGULAR o GNV/G-PREMIUM.
              </div>
            </div>
          <?php else: ?>
            <input type="hidden" name="combustible_abastecido" value="<?= htmlspecialchars($combustible_actual ?: $noMixtoDefault) ?>">
          <?php endif; ?>

          <!-- FILA 3 -->
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">DNI del Conductor</label>
            <input type="text" class="form-control form-control-sm" value="<?= htmlspecialchars($chofer['dni']) ?>" readonly>
          </div>
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Nombre del Conductor</label>
            <input type="text" class="form-control form-control-sm" value="<?= htmlspecialchars($chofer['nombres'] . ' ' . $chofer['apellidos']) ?>" readonly>
          </div>
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label for="grifo_id" class="form-label">Grifo</label>
            <select class="form-select form-select-sm" id="grifo_id" name="grifo_id" <?= $bloquearEdicionTotal ? 'disabled' : 'required' ?>>
              <option value="<?= (int)$abastecimiento['grifo_id'] ?>" selected hidden><?= htmlspecialchars($nombreGrifoActual) ?></option>
              <?php while ($row = mysqli_fetch_assoc($dataGrifos)): ?>
                <option value="<?= (int)$row['id'] ?>"><?= htmlspecialchars($row['nombre']) ?></option>
              <?php endwhile; ?>
            </select>
            <?php if ($bloquearEdicionTotal): ?>
              <input type="hidden" name="grifo_id" value="<?= (int)$abastecimiento['grifo_id'] ?>">
            <?php endif; ?>
          </div>

          <!-- FILA 4 -->
          <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.001"
              min="0"
              inputmode="decimal"
              pattern="^\d+([.]\d{1,3})?$"
              value="<?= htmlspecialchars(number_format((float)$abastecimiento['cantidad_gln'], 3, '.', '')) ?>"
              required
            >
          </div>
           <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label class="form-label">Valor Unitario GLN</label>
            <input type="text" name="valor_unitario_gln" id="valor_unitario_gln" class="form-control form-control-sm" value="<?= htmlspecialchars($abastecimiento['valor_unitario_gln']) ?>" required>
          </div>
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label for="kilometraje_actual" class="form-label">Último Kilometraje Registrado</label>
            <input type="number" id="kilometraje_actual" class="form-control form-control-sm" value="<?= htmlspecialchars($kilometraje_actual) ?>" readonly>
          </div>

          <!-- FILA 5 -->
          <div class="col-6 col-md-4 col-lg-3 mb-1">
            <label for="kilometraje" class="form-label">Kilometraje del Abastecimiento</label>
            <input
              type="number"
              name="kilometraje"
              id="kilometraje"
              class="form-control form-control-sm"
              value="<?= htmlspecialchars($abastecimiento['kilometraje']) ?>"
              <?= $bloquearEdicionTotal ? 'readonly' : '' ?>
              required
            >
            <?php if ($bloquearEdicionTotal): ?>
              <input type="hidden" name="kilometraje" value="<?= htmlspecialchars($abastecimiento['kilometraje']) ?>">
            <?php endif; ?>
          </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="20"
  class="form-control form-control-sm"
  oninput="this.value = this.value.toUpperCase().replace(/[^A-Z0-9\-\/]/g,'')"
  pattern="[A-Z0-9\-\/]{1,20}"
  value="<?= htmlspecialchars($abastecimiento['numero_vale']) ?>"
  required
>


          </div>
          <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($abastecimiento['fecha_abastecimiento']) ?>"
              <?= $bloquearEdicionTotal ? 'readonly' : '' ?>
              required
            >
            <?php if ($bloquearEdicionTotal): ?>
              <input type="hidden" name="fecha_abastecimiento" value="<?= htmlspecialchars($abastecimiento['fecha_abastecimiento']) ?>">
            <?php endif; ?>
          </div>

          <!-- FILA 6 -->
          <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($abastecimiento['hora_abastecimiento']) ?>"
              <?= $bloquearEdicionTotal ? 'readonly' : '' ?>
              required
            >
            <?php if ($bloquearEdicionTotal): ?>
              <input type="hidden" name="hora_abastecimiento" value="<?= htmlspecialchars($abastecimiento['hora_abastecimiento']) ?>">
            <?php endif; ?>
          </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-borrar 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>
<script src="../../Modelo/Archivos_JS/Validacion_Editar_Abastecimiento.js"></script>
<script>
  // (Opcional) Inicializar Select2 si lo usas
  $(function(){ if ($.fn.select2) $('#grifo_id').select2({ width:'100%' }); });
</script>

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

</body>
</html>
