137 lines
4.3 KiB
PHP
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
|
|
]);
|