Class Pedido

java.lang.Object
model.Pedido

public class Pedido extends Object
Clase que representa un pedido realizado en el restaurante/cafeteria. Gestiona los productos agregados, calcula subtotal, impuestos y total, y maneja el estado del pedido (PENDIENTE, EN PREPARACION, ENTREGADO, etc.).
Version:
1.0
Author:
ISC Israel de Jesus Mar Parada
See Also:
  • Constructor Details

    • Pedido

      public Pedido(int idPedido, int numeroMesa)
      Constructor para crear un nuevo pedido. Inicializa fecha actual, mapa vacio, estado PENDIENTE, impuesto del 19%, descuento en cero, subtotal y total en cero.
      Parameters:
      idPedido - Identificador unico del pedido
      numeroMesa - Numero de mesa
  • Method Details

    • AgregarProducto

      public void AgregarProducto(int idProducto, int cantidad, String personalizaciones)
      Agrega un producto al pedido. Si el producto ya existe, incrementa la cantidad. Si no existe, crea un nuevo detalle. Recalcula subtotal y total automaticamente.
      Parameters:
      idProducto - Identificador del producto
      cantidad - Cantidad a agregar
      personalizaciones - Personalizaciones del producto
    • EliminarProducto

      public boolean EliminarProducto(int idProducto)
      Elimina un producto del pedido por su ID. Recalcula subtotal y total si se elimina exitosamente.
      Parameters:
      idProducto - Identificador del producto a eliminar
      Returns:
      true si el producto fue eliminado, false si no existia
    • CalcularSubtotal

      public BigDecimal CalcularSubtotal()
      Calcula el subtotal del pedido. Suma los subtotales de todos los detalles.
      Returns:
      Subtotal calculado
    • CalcularImpuesto

      public BigDecimal CalcularImpuesto()
      Calcula el valor del impuesto del pedido. Formula: subtotal x impuestoPorcentaje
      Returns:
      Valor del impuesto
    • CalcularTotal

      public BigDecimal CalcularTotal()
      Calcula el total del pedido. Formula: subtotal + impuesto - descuento
      Returns:
      Total calculado
    • ActualizarEstado

      public void ActualizarEstado(String nuevoEstado)
      Actualiza el estado del pedido. Si el nuevo estado es "ENTREGADO", registra la fecha y hora de entrega.
      Parameters:
      nuevoEstado - Nuevo estado del pedido
    • getIdPedido

      public int getIdPedido()
      Returns:
      Identificador del pedido
    • setIdPedido

      public void setIdPedido(int idPedido)
      Parameters:
      idPedido - Nuevo identificador
    • getNumeroMesa

      public int getNumeroMesa()
      Returns:
      Numero de mesa
    • setNumeroMesa

      public void setNumeroMesa(int numeroMesa)
      Parameters:
      numeroMesa - Nuevo numero de mesa
    • getFechaHoraPedido

      public LocalDateTime getFechaHoraPedido()
      Returns:
      Fecha y hora del pedido
    • setFechaHoraPedido

      public void setFechaHoraPedido(LocalDateTime fechaHoraPedido)
      Parameters:
      fechaHoraPedido - Nueva fecha
    • getFechaHoraEntrega

      public LocalDateTime getFechaHoraEntrega()
      Returns:
      Fecha y hora de entrega
    • setFechaHoraEntrega

      public void setFechaHoraEntrega(LocalDateTime fechaHoraEntrega)
      Parameters:
      fechaHoraEntrega - Nueva fecha de entrega
    • getListaProductosPedido

      public Map<Integer, DetallePedido> getListaProductosPedido()
      Returns:
      Mapa de productos del pedido
    • setListaProductosPedido

      public void setListaProductosPedido(Map<Integer, DetallePedido> listaProductosPedido)
      Parameters:
      listaProductosPedido - Nuevo mapa de productos
    • getSubtotal

      public BigDecimal getSubtotal()
      Returns:
      Subtotal
    • setSubtotal

      public void setSubtotal(BigDecimal subtotal)
      Parameters:
      subtotal - Nuevo subtotal
    • getImpuestoPorcentaje

      public BigDecimal getImpuestoPorcentaje()
      Returns:
      Porcentaje de impuesto
    • setImpuestoPorcentaje

      public void setImpuestoPorcentaje(BigDecimal impuestoPorcentaje)
      Parameters:
      impuestoPorcentaje - Nuevo porcentaje
    • getValorImpuesto

      public BigDecimal getValorImpuesto()
      Returns:
      Valor del impuesto
    • setValorImpuesto

      public void setValorImpuesto(BigDecimal valorImpuesto)
      Parameters:
      valorImpuesto - Nuevo valor de impuesto
    • getDescuentoAplicado

      public BigDecimal getDescuentoAplicado()
      Returns:
      Descuento aplicado
    • setDescuentoAplicado

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

      public BigDecimal getTotal()
      Returns:
      Total del pedido
    • setTotal

      public void setTotal(BigDecimal total)
      Parameters:
      total - Nuevo total
    • getEstadoPedido

      public String getEstadoPedido()
      Returns:
      Estado del pedido
    • setEstadoPedido

      public void setEstadoPedido(String estadoPedido)
      Parameters:
      estadoPedido - Nuevo estado
    • getMetodoPago

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

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

      public String getClienteMembresia()
      Returns:
      Tipo de membresia del cliente
    • setClienteMembresia

      public void setClienteMembresia(String clienteMembresia)
      Parameters:
      clienteMembresia - Nueva membresia
    • getNotasCocina

      public String getNotasCocina()
      Returns:
      Notas para la cocina
    • setNotasCocina

      public void setNotasCocina(String notasCocina)
      Parameters:
      notasCocina - Nuevas notas
    • getTiempoEstimadoTotal

      public int getTiempoEstimadoTotal()
      Returns:
      Tiempo estimado total en minutos
    • setTiempoEstimadoTotal

      public void setTiempoEstimadoTotal(int tiempoEstimadoTotal)
      Parameters:
      tiempoEstimadoTotal - Nuevo tiempo estimado