diff --git a/ventaboletos/src/components/vistas/Informacion.jsx b/ventaboletos/src/components/vistas/Informacion.jsx index d7cc4f1..97f3112 100644 --- a/ventaboletos/src/components/vistas/Informacion.jsx +++ b/ventaboletos/src/components/vistas/Informacion.jsx @@ -22,17 +22,15 @@ function Informacion() { const [tipoAsiento, setTipoAsiento] = useState([]); const [numeroAsiento, setNumeroAsiento] = useState([]); const [selectedCategoria, setSelectedCategoria] = useState(""); + const [asientoSeleccionado, setAsientoSeleccionado] = useState(""); useEffect(() => { fetchConciertos(); - fetchTipoAsiento(); - fetchNumeroAsiento(); + fetchAsientos(); }, []); const fetchConciertos = async () => { - let { data: conciertos, error } = await supabaseClient - .from("conciertos") - .select("*"); + let { data, error } = await supabaseClient.from("conciertos").select("*"); if (error) { console.error(error); } else { @@ -40,8 +38,8 @@ function Informacion() { } }; - const fetchNumeroAsiento = async () => { - let { data: asientos, error } = await supabaseClient + const fetchAsientos = async () => { + let { data, error } = await supabaseClient .from("asientos") .select("numero_asiento, categoria"); if (error) { @@ -84,19 +82,13 @@ function Informacion() { return; } - // Obtener carrito actual desde localStorage const carritoActual = JSON.parse(localStorage.getItem("carrito")) || []; - - // Agregar el concierto con el tipo de asiento seleccionado const nuevoCarrito = [ ...carritoActual, { ...selectedConcierto, asiento: asientoSeleccionado }, ]; - // Guardar en localStorage localStorage.setItem("carrito", JSON.stringify(nuevoCarrito)); - - // Cerrar el modal setOpen(false); }; @@ -132,7 +124,7 @@ function Informacion() { <SelectValue placeholder="Selecciona un tipo de asiento" /> </SelectTrigger> <SelectContent> - {tipoAsiento?.map((tipo) => ( + {tipoAsiento.map((tipo) => ( <SelectItem key={tipo} value={tipo}> {tipo} </SelectItem> @@ -141,12 +133,12 @@ function Informacion() { </Select> </div> <div className="space-y-4"> - <Select onValueChange={(value) => console.log(value)}> + <Select onValueChange={setAsientoSeleccionado}> <SelectTrigger> <SelectValue placeholder="Selecciona un asiento" /> </SelectTrigger> <SelectContent> - {filteredAsientos?.map((asiento) => ( + {filteredAsientos.map((asiento) => ( <SelectItem key={asiento.numero_asiento} value={asiento.numero_asiento} diff --git a/ventaboletos/src/pages/carrito.jsx b/ventaboletos/src/pages/carrito.jsx index ce8582a..9ffd56e 100644 --- a/ventaboletos/src/pages/carrito.jsx +++ b/ventaboletos/src/pages/carrito.jsx @@ -3,6 +3,12 @@ import { useRouter } from "next/router"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; +const PRECIOS_BOLETO = { + VIP: 100, + Intermedio: 75, + General: 25, +}; + export default function Carrito() { const [carrito, setCarrito] = useState([]); const [showDialog, setShowDialog] = useState(false); @@ -11,7 +17,12 @@ export default function Carrito() { useEffect(() => { const carritoGuardado = JSON.parse(localStorage.getItem("carrito")) || []; - setCarrito(carritoGuardado); + // Asigna el precio basado en el tipo de boleto si no tiene un precio definido + const carritoConPrecios = carritoGuardado.map(item => ({ + ...item, + precio: PRECIOS_BOLETO[item.tipoBoleto] || 0, + })); + setCarrito(carritoConPrecios); }, []); const eliminarConcierto = () => { @@ -58,7 +69,7 @@ export default function Carrito() { <div className="flex justify-between mt-4"> <Button className="bg-gray-500 hover:bg-gray-600" - onClick={() => router.push("/")} + onClick={() => router.push("/")} > Cancelar </Button>