73 lines
3.0 KiB
PHP
73 lines
3.0 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
require_once 'conexion.php';
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'error' => 'Método no permitido.']);
|
|
exit;
|
|
}
|
|
|
|
$idReserva = isset($_POST['id_reserva']) ? intval($_POST['id_reserva']) : 0;
|
|
|
|
if ($idReserva === 0 || !isset($_FILES['comprobante'])) {
|
|
echo json_encode(['success' => false, 'error' => 'Faltan datos obligatorios.']);
|
|
exit;
|
|
}
|
|
|
|
$file = $_FILES['comprobante'];
|
|
$ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
|
|
$allowed = ['jpg', 'jpeg', 'png'];
|
|
|
|
// Validar extensión
|
|
if (!in_array($ext, $allowed)) {
|
|
echo json_encode(['success' => false, 'error' => 'Formato no permitido. Solo JPG, JPEG o PNG.']);
|
|
exit;
|
|
}
|
|
|
|
// Definir rutas
|
|
$nombreArchivo = "reserva_" . $idReserva . "_" . time() . "." . $ext;
|
|
$carpetaDestino = "C:\\xampp\\htdocs\\TP-Taller\\ProyectoTaller\\uploads\\comprobantes\\";
|
|
$rutaCompleta = $carpetaDestino . $nombreArchivo;
|
|
|
|
// Mover el archivo al servidor
|
|
if (move_uploaded_file($file['tmp_name'], $rutaCompleta)) {
|
|
|
|
// Actualizar la base de datos con el nombre del archivo
|
|
$stmt = $conexion->prepare("UPDATE reservas SET Comprobante = ? WHERE ID_Reserva = ?");
|
|
$stmt->bind_param('si', $nombreArchivo, $idReserva);
|
|
$stmt->execute();
|
|
|
|
if ($stmt->affected_rows > 0) {
|
|
|
|
// --- NOTIFICACIÓN AL ADMINISTRADOR DE CANCHAS ---
|
|
// 1. Buscamos el teléfono del usuario con rol 'cancha'
|
|
$resUser = $conexion->query("SELECT Telefono FROM usuarios WHERE Rol = 'cancha' LIMIT 1");
|
|
if ($resUser && $resUser->num_rows > 0) {
|
|
$admin = $resUser->fetch_assoc();
|
|
$telefonoAdmin = $admin['Telefono']; // Ej: "549343..."
|
|
|
|
// 2. Limpiamos el formato del teléfono del administrador
|
|
$telefonoLimpio = preg_replace('/[^0-9]/', '', $telefonoAdmin);
|
|
|
|
// 3. Armamos el mensaje con un link directo para que el admin vea la foto desde su celular
|
|
// Nota: Cuando pases el sistema a producción, reemplaza 'localhost' por tu IP pública o dominio
|
|
$urlFoto = "http://localhost/TP-Taller/ProyectoTaller/uploads/comprobantes/" . $nombreArchivo;
|
|
$mensaje = "Alerta: Se ha subido un comprobante para la Reserva #$idReserva. Ver foto aquí: $urlFoto";
|
|
|
|
// 4. Llamamos al bot de Python de forma asíncrona para no trabar la pantalla del cliente
|
|
$scriptPython = "C:\\xampp\\htdocs\\TP-Taller\\ProyectoTaller\\python\\Enviar_WSP.py";
|
|
$comando = "start /B python \"$scriptPython\" $telefonoLimpio \"$mensaje\"";
|
|
pclose(popen($comando, "r"));
|
|
}
|
|
|
|
echo json_encode(['success' => true, 'message' => 'Comprobante subido y administrador notificado.']);
|
|
} else {
|
|
echo json_encode(['success' => false, 'error' => 'No se encontró la reserva para actualizar.']);
|
|
}
|
|
$stmt->close();
|
|
} else {
|
|
echo json_encode(['success' => false, 'error' => 'No se pudo guardar el archivo en el servidor.']);
|
|
}
|
|
|
|
$conexion->close();
|
|
?>
|