package br.com.ec.domain.dto;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import br.com.ec.domain.model.Modelo;
import br.com.ec.domain.model.Pedido;
import br.com.ec.domain.model.PedidoProduto;
import br.edu.cesmac.core.util.StringUtil;
import br.edu.cesmac.core.util.VerificadorUtil;
public class PedidoDTO
{
private Long sequencial
;
private String descricaoLoja
;
private Date dataPedido
;
private String nomePessoaDoPedido
;
private String nomeCliente
;
private String contatoCliente
;
private String informacoesBasicasCliente
;
private String valorTotalProdutos
;
private String observacao
;
private Date dataUltimaAlteracaoSituacao
;
private Modelo modelo
;
private String descricaoGenero
;
private String descricaoTipoProduto
;
private String descricaoEstiloProduto
;
private String descricaoCorProduto
;
private List<PedidoProdutoDTO
> produtos
;
public Long getSequencial
() {
return sequencial
;
}
public void setSequencial
(Long sequencial
) {
this.
sequencial = sequencial
;
}
public String getDescricaoLoja
() {
return descricaoLoja
;
}
public void setDescricaoLoja
(String descricaoLoja
) {
this.
descricaoLoja = descricaoLoja
;
}
public Date getDataPedido
() {
return dataPedido
;
}
public void setDataPedido
(Date dataPedido
) {
this.
dataPedido = dataPedido
;
}
public String getNomePessoaDoPedido
() {
return nomePessoaDoPedido
;
}
public void setNomePessoaDoPedido
(String nomePessoaDoPedido
) {
this.
nomePessoaDoPedido = nomePessoaDoPedido
;
}
public String getNomeCliente
() {
return nomeCliente
;
}
public void setNomeCliente
(String nomeCliente
) {
this.
nomeCliente = nomeCliente
;
}
public String getContatoCliente
() {
return contatoCliente
;
}
public void setContatoCliente
(String contatoCliente
) {
this.
contatoCliente = contatoCliente
;
}
public String getInformacoesBasicasCliente
() {
return informacoesBasicasCliente
;
}
public void setInformacoesBasicasCliente
(String informacoesBasicasCliente
) {
this.
informacoesBasicasCliente = informacoesBasicasCliente
;
}
public String getValorTotalProdutos
() {
return valorTotalProdutos
;
}
public void setValorTotalProdutos
(String valorTotalProdutos
) {
this.
valorTotalProdutos = valorTotalProdutos
;
}
public String getObservacao
() {
return observacao
;
}
public void setObservacao
(String observacao
) {
this.
observacao = observacao
;
}
public Date getDataUltimaAlteracaoSituacao
() {
return dataUltimaAlteracaoSituacao
;
}
public void setDataUltimaAlteracaoSituacao
(Date dataUltimaAlteracaoSituacao
) {
this.
dataUltimaAlteracaoSituacao = dataUltimaAlteracaoSituacao
;
}
public List<PedidoProdutoDTO
> getProdutos
() {
return produtos
;
}
public void setProdutos
(List<PedidoProdutoDTO
> produtos
) {
this.
produtos = produtos
;
}
public Modelo getModelo
() {
return modelo
;
}
public void setModelo
(Modelo modelo
) {
this.
modelo = modelo
;
}
public String getDescricaoGenero
() {
return descricaoGenero
;
}
public void setDescricaoGenero
(String descricaoGenero
) {
this.
descricaoGenero = descricaoGenero
;
}
public String getDescricaoTipoProduto
() {
return descricaoTipoProduto
;
}
public void setDescricaoTipoProduto
(String descricaoTipoProduto
) {
this.
descricaoTipoProduto = descricaoTipoProduto
;
}
public String getDescricaoEstiloProduto
() {
return descricaoEstiloProduto
;
}
public void setDescricaoEstiloProduto
(String descricaoEstiloProduto
) {
this.
descricaoEstiloProduto = descricaoEstiloProduto
;
}
public String getDescricaoCorProduto
() {
return descricaoCorProduto
;
}
public void setDescricaoCorProduto
(String descricaoCorProduto
) {
this.
descricaoCorProduto = descricaoCorProduto
;
}
public void preencher
(Pedido pedido
) {
this.
sequencial = pedido.
getSequencial();
this.
descricaoLoja = pedido.
getDescricaoDaLoja();
this.
dataPedido = pedido.
getDataPedido();
this.
nomePessoaDoPedido = pedido.
getUsuarioPedido().
getNome();
if (VerificadorUtil.
naoEstaNulo(pedido.
getCliente())) {
this.
informacoesBasicasCliente = pedido.
getCliente().
getNome();
this.
contatoCliente =
"";
if (VerificadorUtil.
naoEstaNuloOuVazio(pedido.
getCliente().
getContato())) {
this.
informacoesBasicasCliente =
this.
informacoesBasicasCliente +
" - " + pedido.
getCliente().
getContato();
this.
contatoCliente = pedido.
getCliente().
getContato();
}
if (VerificadorUtil.
naoEstaNuloOuVazio(pedido.
getCliente().
getTelefone())) {
this.
informacoesBasicasCliente =
this.
informacoesBasicasCliente +
" - " + pedido.
getCliente().
getTelefone();
this.
contatoCliente =
this.
contatoCliente +
" - " + pedido.
getCliente().
getTelefone();
}
this.
nomeCliente = pedido.
getCliente().
getNome();
} else {
this.
informacoesBasicasCliente = pedido.
getContatoCliente();
this.
contatoCliente = pedido.
getContatoCliente();
}
this.
observacao = pedido.
getObservacao();
this.
dataUltimaAlteracaoSituacao = pedido.
getDataUltimaAlteracaoSituacao();
List<PedidoProdutoDTO
> produtos =
new ArrayList<PedidoProdutoDTO
>();
Double total =
0.0;
if (VerificadorUtil.
naoEstaNuloOuVazio(pedido.
getProdutos())) {
for (PedidoProduto produto : pedido.
getProdutos()) {
if (VerificadorUtil.
naoEstaNulo(produto.
getValor())) {
total = total + produto.
getValor() * produto.
getQuantidade();
}
PedidoProdutoDTO pedidoProdutoDTO =
new PedidoProdutoDTO
();
pedidoProdutoDTO.
setCodigoProduto(produto.
getProduto().
getCodigoProdutoPadrao());
pedidoProdutoDTO.
setDescricaoProduto(produto.
getProduto().
getDescricaoComModeloCompleta());
pedidoProdutoDTO.
setQuantidadeProduto(produto.
getQuantidade());
String descricao =
"";
if (produto.
getQuantidade() > 1) {
descricao = produto.
getQuantidade() +
" ITENS";
} else {
descricao = produto.
getQuantidade() +
" ITEM";
}
descricao = descricao +
" : (" + pedidoProdutoDTO.
getCodigoProduto() +
") " + pedidoProdutoDTO.
getDescricaoProduto() +
" POR R$" + StringUtil.
formatarValor(produto.
getValor());
pedidoProdutoDTO.
setDescricaoCompleta(descricao
);
produtos.
add(pedidoProdutoDTO
);
}
}
this.
valorTotalProdutos = StringUtil.
formatarValor(total
);
this.
produtos = produtos
;
this.
modelo = pedido.
getModelo();
this.
descricaoGenero = pedido.
getDescricaoDoGeneroProduto();
this.
descricaoTipoProduto = pedido.
getDescricaoDoTipoProduto();
this.
descricaoEstiloProduto = pedido.
getDescricaoDoEstiloProduto();
this.
descricaoCorProduto = pedido.
getDescricaoDaCorProduto();
}
}