TicketCompany/controladores/comprobante.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();
?>