Files
Complejo_Cap1tan/php/Obtener_Cupon.php
T
MarcosFlorSalcedo 8ec55e40fc 1ra Versión
2026-07-14 18:24:27 -03:00

137 lines
4.3 KiB
PHP

<?php
require_once 'conexion.php';
header('Content-Type: application/json');
$dni = isset($_GET['dni']) ? trim($_GET['dni']) : '';
$tipo = isset($_GET['tipo']) ? trim($_GET['tipo']) : '';
if (empty($dni) || empty($tipo)) {
echo json_encode(['success' => false, 'message' => 'DNI y tipo de cancha son requeridos']);
exit;
}
$tipoDb = '';
if ($tipo === 'futbol' || $tipo === 'F') {
$tipoDb = 'F';
} elseif ($tipo === 'padel' || $tipo === 'P') {
$tipoDb = 'P';
}
if (empty($tipoDb)) {
echo json_encode(['success' => false, 'message' => 'Tipo de cancha inválido']);
exit;
}
$dni = mysqli_real_escape_string($conexion, $dni);
$sqlCliente = "SELECT ID_Cliente FROM clientes WHERE DNI = '$dni' LIMIT 1";
$resCliente = mysqli_query($conexion, $sqlCliente);
if (!$resCliente) {
echo json_encode(['success' => false, 'message' => 'Error al buscar cliente: ' . mysqli_error($conexion)]);
exit;
}
$cliente = mysqli_fetch_assoc($resCliente);
if (!$cliente) {
echo json_encode([
'success' => true,
'clienteEncontrado' => false,
'cantidadReservas' => 0,
'cantidadFaltas' => 0,
'umbral' => 0,
'descuentoCanchas' => 0,
'duracionCupon' => 0,
'ultimaFecha' => null,
'aplicarDescuento' => false,
'reservasRestantes' => null
]);
exit;
}
$idCliente = intval($cliente['ID_Cliente']);
$sqlCancha = "SELECT Cant_Reservas_Cupon, Descuento_Cupon, Cant_Faltas, Duracion_Cupon FROM canchas WHERE Tipo = '$tipoDb' LIMIT 1";
$resCancha = mysqli_query($conexion, $sqlCancha);
if (!$resCancha) {
echo json_encode(['success' => false, 'message' => 'Error al obtener datos de la cancha: ' . mysqli_error($conexion)]);
exit;
}
$cancha = mysqli_fetch_assoc($resCancha);
if (!$cancha) {
echo json_encode(['success' => false, 'message' => 'No se encontró el tipo de cancha']);
exit;
}
$umbral = intval($cancha['Cant_Reservas_Cupon']);
$descuentoCanchas = floatval($cancha['Descuento_Cupon']);
$duracionCupon = intval($cancha['Duracion_Cupon']);
$maxFaltas = intval($cancha['Cant_Faltas']);
$sqlCupon = "SELECT ID_Cupon, Cantidad_Reservas, Cantidad_Faltas, Ultima_Fecha FROM cupones WHERE ID_Cliente = $idCliente AND Tipo = '$tipoDb' LIMIT 1";
$resCupon = mysqli_query($conexion, $sqlCupon);
if (!$resCupon) {
echo json_encode(['success' => false, 'message' => 'Error al buscar cupón: ' . mysqli_error($conexion)]);
exit;
}
$cupon = mysqli_fetch_assoc($resCupon);
$cantidadReservas = 0;
$cantidadFaltas = 0;
$ultimaFecha = null;
$vencido = false;
if ($cupon) {
$cantidadReservas = intval($cupon['Cantidad_Reservas']);
$cantidadFaltas = intval($cupon['Cantidad_Faltas']);
$ultimaFecha = $cupon['Ultima_Fecha'];
if ($duracionCupon > 0 && !empty($ultimaFecha)) {
$fechaUltima = new DateTime($ultimaFecha);
$fechaUltima->modify("+{$duracionCupon} days");
$fechaActual = new DateTime();
if ($fechaActual > $fechaUltima) {
$cantidadReservas = 0;
$cantidadFaltas = 0;
$ultimaFecha = null;
$vencido = true;
$sqlResetCupon = "UPDATE cupones SET Cantidad_Reservas = 0, Cantidad_Faltas = 0, Ultima_Fecha = NULL, Descuento = 0 WHERE ID_Cupon = {$cupon['ID_Cupon']}";
mysqli_query($conexion, $sqlResetCupon);
}
}
if ($maxFaltas > 0 && $cantidadFaltas > $maxFaltas) {
$cantidadReservas = 0;
$cantidadFaltas = 0;
$ultimaFecha = null;
$sqlResetCupon = "UPDATE cupones SET Cantidad_Reservas = 0, Cantidad_Faltas = 0, Ultima_Fecha = NULL, Descuento = 0 WHERE ID_Cupon = {$cupon['ID_Cupon']}";
mysqli_query($conexion, $sqlResetCupon);
}
}
$aplicarDescuento = false;
$reservasRestantes = null;
if ($umbral > 0) {
if (($cantidadReservas + 1) >= $umbral) {
$aplicarDescuento = true;
$reservasRestantes = 0;
} else {
$reservasRestantes = $umbral - $cantidadReservas - 1;
}
}
echo json_encode([
'success' => true,
'clienteEncontrado' => true,
'cantidadReservas' => $cantidadReservas,
'cantidadFaltas' => $cantidadFaltas,
'umbral' => $umbral,
'descuentoCanchas' => $descuentoCanchas,
'duracionCupon' => $duracionCupon,
'ultimaFecha' => $ultimaFecha,
'aplicarDescuento' => $aplicarDescuento,
'reservasRestantes' => $reservasRestantes,
'vencido' => $vencido
]);