Class Reserva

java.lang.Object
model.clientes.Reserva

public class Reserva extends Object
Clase que representa una reserva de asientos para una funcion de cine. Gestiona toda la informacion relacionada con la reserva: codigo de confirmacion, fechas, asientos reservados, calculo de totales, descuentos, estado de la reserva, metodo de pago y generacion de QR.
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • Reserva

      public Reserva(String idReserva, String idFuncion)
      Constructor para crear una nueva reserva. Inicializa la reserva con fecha actual, fecha limite de pago en 15 minutos, estado PENDIENTE y genera un codigo de confirmacion unico.
      Parameters:
      idReserva - Identificador unico de la reserva
      idFuncion - Identificador de la funcion reservada
  • Method Details

    • CalcularTotal

      public void CalcularTotal()
      Calcula el total de la reserva. Suma el precio final de cada asiento, aplica ajuste por funcion de estreno (+20%) y resta el descuento aplicado.
    • GenerarQR

      public void GenerarQR()
      Genera un codigo QR simulado para la reserva. Formato: "QR-" + idReserva + "-" + codigoConfirmacion
    • EnviarConfirmacion

      public void EnviarConfirmacion()
      Simula el envio de confirmacion de reserva por correo electronico. Muestra en consola la informacion de confirmacion.
    • CancelarReserva

      public void CancelarReserva()
      Cancela la reserva. Cambia el estado a CANCELADA y libera todos los asientos reservados.
    • confirmarPago

      public void confirmarPago(String metodo)
      Confirma el pago de la reserva. Registra el metodo de pago, fecha de pago, cambia estado a CONFIRMADA, genera el QR y envia la confirmacion.
      Parameters:
      metodo - Metodo de pago utilizado (Tarjeta, Efectivo, etc.)
    • getIdReserva

      public String getIdReserva()
      Returns:
      Identificador unico de la reserva
    • setIdReserva

      public void setIdReserva(String idReserva)
      Parameters:
      idReserva - Nuevo identificador de reserva
    • getCodigoConfirmacion

      public String getCodigoConfirmacion()
      Returns:
      Codigo de confirmacion
    • setCodigoConfirmacion

      public void setCodigoConfirmacion(String codigoConfirmacion)
      Parameters:
      codigoConfirmacion - Nuevo codigo de confirmacion
    • getFechaReserva

      public LocalDateTime getFechaReserva()
      Returns:
      Fecha de la reserva
    • setFechaReserva

      public void setFechaReserva(LocalDateTime fechaReserva)
      Parameters:
      fechaReserva - Nueva fecha de reserva
    • getFechaLimitePago

      public LocalDateTime getFechaLimitePago()
      Returns:
      Fecha limite de pago
    • setFechaLimitePago

      public void setFechaLimitePago(LocalDateTime fechaLimitePago)
      Parameters:
      fechaLimitePago - Nueva fecha limite de pago
    • getIdFuncion

      public String getIdFuncion()
      Returns:
      Identificador de la funcion
    • setIdFuncion

      public void setIdFuncion(String idFuncion)
      Parameters:
      idFuncion - Nuevo identificador de funcion
    • getListaAsientosReservados

      public List<String> getListaAsientosReservados()
      Returns:
      Lista de identificadores de asientos reservados
    • setListaAsientosReservados

      public void setListaAsientosReservados(List<String> listaAsientosReservados)
      Establece la lista de asientos reservados. Actualiza automaticamente la cantidad de asientos.
      Parameters:
      listaAsientosReservados - Nueva lista de asientos
    • getCantidadAsientos

      public int getCantidadAsientos()
      Returns:
      Cantidad de asientos reservados
    • setCantidadAsientos

      public void setCantidadAsientos(int cantidadAsientos)
      Parameters:
      cantidadAsientos - Nueva cantidad de asientos
    • getTipoCliente

      public String getTipoCliente()
      Returns:
      Tipo de cliente
    • setTipoCliente

      public void setTipoCliente(String tipoCliente)
      Parameters:
      tipoCliente - Nuevo tipo de cliente
    • getSubtotalReserva

      public BigDecimal getSubtotalReserva()
      Returns:
      Subtotal de la reserva
    • setSubtotalReserva

      public void setSubtotalReserva(BigDecimal subtotalReserva)
      Parameters:
      subtotalReserva - Nuevo subtotal
    • getDescuentoAplicado

      public BigDecimal getDescuentoAplicado()
      Returns:
      Descuento aplicado
    • setDescuentoAplicado

      public void setDescuentoAplicado(BigDecimal descuentoAplicado)
      Parameters:
      descuentoAplicado - Nuevo descuento
    • getTotalReserva

      public BigDecimal getTotalReserva()
      Returns:
      Total de la reserva
    • setTotalReserva

      public void setTotalReserva(BigDecimal totalReserva)
      Parameters:
      totalReserva - Nuevo total
    • getEstadoReserva

      public String getEstadoReserva()
      Returns:
      Estado de la reserva (PENDIENTE, CONFIRMADA, CANCELADA)
    • setEstadoReserva

      public void setEstadoReserva(String estadoReserva)
      Parameters:
      estadoReserva - Nuevo estado
    • getMetodoPago

      public String getMetodoPago()
      Returns:
      Metodo de pago
    • setMetodoPago

      public void setMetodoPago(String metodoPago)
      Parameters:
      metodoPago - Nuevo metodo de pago
    • getFechaPago

      public LocalDateTime getFechaPago()
      Returns:
      Fecha de pago
    • setFechaPago

      public void setFechaPago(LocalDateTime fechaPago)
      Parameters:
      fechaPago - Nueva fecha de pago
    • getEmailConfirmacion

      public String getEmailConfirmacion()
      Returns:
      Correo de confirmacion
    • setEmailConfirmacion

      public void setEmailConfirmacion(String emailConfirmacion)
      Parameters:
      emailConfirmacion - Nuevo correo de confirmacion
    • getTelefonoContacto

      public String getTelefonoContacto()
      Returns:
      Telefono de contacto
    • setTelefonoContacto

      public void setTelefonoContacto(String telefonoContacto)
      Parameters:
      telefonoContacto - Nuevo telefono de contacto
    • getQrReserva

      public String getQrReserva()
      Returns:
      Codigo QR de la reserva
    • setQrReserva

      public void setQrReserva(String qrReserva)
      Parameters:
      qrReserva - Nuevo codigo QR
    • getUsuarioRegistro

      public String getUsuarioRegistro()
      Returns:
      Usuario que registro la reserva
    • setUsuarioRegistro

      public void setUsuarioRegistro(String usuarioRegistro)
      Parameters:
      usuarioRegistro - Nuevo usuario de registro
    • getFuncion

      public Funcion getFuncion()
      Returns:
      Referencia a la funcion
    • setFuncion

      public void setFuncion(Funcion funcion)
      Establece la funcion de la reserva. Actualiza automaticamente el idFuncion.
      Parameters:
      funcion - Funcion a asignar
    • getCliente

      public Cliente getCliente()
      Returns:
      Referencia al cliente
    • setCliente

      public void setCliente(Cliente cliente)
      Parameters:
      cliente - Cliente a asignar
    • getAsientos

      public List<Asiento> getAsientos()
      Returns:
      Lista de asientos reservados
    • setAsientos

      public void setAsientos(List<Asiento> asientos)
      Establece la lista de asientos reservados. Recalcula automaticamente el total de la reserva.
      Parameters:
      asientos - Nueva lista de asientos
    • toString

      public String toString()
      Devuelve una representacion textual de la reserva. Formato: "Reserva codigo - estado - $total"
      Overrides:
      toString in class Object
      Returns:
      Cadena con la informacion principal de la reserva