tpdv
Class Venda

java.lang.Object
  |
  +--tpdv.Venda

class Venda
extends java.lang.Object
implements IVenda

Classe que representa uma venda de produtos feita através de um TPDV. Uma venda é composta de várias linhas de detalhe. Enquanto a venda não terminou, tais linhas de detalhe podem ser criadas. Um pagamento pode ser feita para pagar a venda. Pode-se calcular o troco a ser entregue ao cliente.

Version:
1.0
Author:
Craig Larman, Jacques Philippe Sauvé, jacques@dsc.ufpb.br

Field Summary
private  java.util.Date data
          A data da venda.
private  boolean isTerminada
          Indica se a venda terminou.
private  java.util.List linhasDetalhe
          As linhas de detalhe da venda.
private  IPagamento pagamento
          O pagamento efetuado para a venda.
 
Constructor Summary
(package private) Venda()
           
 
Method Summary
(package private)  void criaLinhaDetalhe(IEspecProduto espec, int quantidade)
          Cria uma linha de detalhe para a venda.
(package private)  void façaPagamento(float valorEntregue)
          Faz um pagamento para a venda.
 float getTroco()
          Calcule o troco para a venda, após um pagamento.
(package private)  boolean isTerminada()
          Obtém o status da venda.
protected  ILinhaDetalhe makeLinhaDetalhe(IEspecProduto espec, int quantidade)
           
protected  IPagamento makePagamento(float valorEntregue)
           
(package private)  void terminou()
          Chamado para indicar que a venda terminou.
 float total()
          Calcula o valor total da venda.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

linhasDetalhe

private java.util.List linhasDetalhe
As linhas de detalhe da venda.

data

private java.util.Date data
A data da venda.

isTerminada

private boolean isTerminada
Indica se a venda terminou.

pagamento

private IPagamento pagamento
O pagamento efetuado para a venda.
Constructor Detail

Venda

Venda()
Method Detail

total

public float total()
Calcula o valor total da venda.
Specified by:
total in interface IVenda
Returns:
O valor total da venda.

getTroco

public float getTroco()
Calcule o troco para a venda, após um pagamento.
Specified by:
getTroco in interface IVenda
Returns:
O troco para a venda.

terminou

void terminou()
Chamado para indicar que a venda terminou.

isTerminada

boolean isTerminada()
Obtém o status da venda.
Returns:
true se a venda terminou; false caso contrário.

criaLinhaDetalhe

void criaLinhaDetalhe(IEspecProduto espec,
                      int quantidade)
Cria uma linha de detalhe para a venda.
Parameters:
espec - A especificação do produto sendo comprado.
quantidade - A quantidade de itens (do mesmo produto) sendo comprados.

façaPagamento

void façaPagamento(float valorEntregue)
             throws PagamentoInsuficienteException
Faz um pagamento para a venda.
Parameters:
valorEntregue - O valor entregue pelo cliente para pagar a venda.

makeLinhaDetalhe

protected ILinhaDetalhe makeLinhaDetalhe(IEspecProduto espec,
                                         int quantidade)

makePagamento

protected IPagamento makePagamento(float valorEntregue)