65 lines
1.9 KiB
PHP
65 lines
1.9 KiB
PHP
<?php
|
|
header("Content-Type: application/json");
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', 1);
|
|
|
|
require_once "conexion-bd.php";
|
|
|
|
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
|
|
echo json_encode(["error" => "No se especificó una compra válida."]);
|
|
exit();
|
|
}
|
|
|
|
$id_compra = intval($_GET['id']);
|
|
|
|
$sql = "SELECT ventas.id, conciertos.artista, conciertos.fecha, lugares.nombre AS lugar,
|
|
ventas.cantidad, ventas.total, conciertos.precio
|
|
FROM ventas
|
|
JOIN conciertos ON ventas.evento_id = conciertos.id
|
|
JOIN lugares ON conciertos.lugar_id = lugares.id
|
|
WHERE ventas.id = ?";
|
|
$stmt = $conn->prepare($sql);
|
|
$stmt->bind_param("i", $id_compra);
|
|
$stmt->execute();
|
|
$result = $stmt->get_result();
|
|
|
|
if ($result->num_rows === 0) {
|
|
echo json_encode(["error" => "La compra no existe."]);
|
|
exit();
|
|
}
|
|
|
|
$compra = $result->fetch_assoc();
|
|
|
|
$check_table = $conn->query("SHOW TABLES LIKE 'ventas_asientos'");
|
|
if ($check_table->num_rows === 0) {
|
|
echo json_encode(["error" => "Error: La tabla de asientos vendidos no está creada."]);
|
|
exit();
|
|
}
|
|
|
|
$sql_asientos = "SELECT numero_asiento FROM asientos
|
|
WHERE id IN (SELECT asiento_id FROM ventas_asientos WHERE venta_id = ?)";
|
|
$stmt_asientos = $conn->prepare($sql_asientos);
|
|
$stmt_asientos->bind_param("i", $id_compra);
|
|
$stmt_asientos->execute();
|
|
$result_asientos = $stmt_asientos->get_result();
|
|
|
|
$asientos = [];
|
|
while ($row = $result_asientos->fetch_assoc()) {
|
|
$asientos[] = $row['numero_asiento'];
|
|
}
|
|
|
|
echo json_encode([
|
|
"artista" => $compra['artista'],
|
|
"fecha" => date("d M Y - H:i", strtotime($compra['fecha'])),
|
|
"lugar" => $compra['lugar'],
|
|
"cantidad" => $compra['cantidad'],
|
|
"precio" => number_format($compra['precio'], 2),
|
|
"total" => number_format($compra['total'], 2),
|
|
"asientos" => $asientos
|
|
], JSON_UNESCAPED_UNICODE);
|
|
|
|
$stmt->close();
|
|
$stmt_asientos->close();
|
|
$conn->close();
|
|
?>
|