Rev 468 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.domain.dto;
import java.io.Serializable;
import java.util.Date;
import br.com.ec.domain.model.NotaFiscal;
import br.com.ec.web.util.DataUtil;
public class NotaFiscalDTO
implements Serializable {
private static final long serialVersionUID = 1L
;
private Long sequencialNotaFiscal
;
private String chave
;
private Long numero
;
private Date dataHoraEmissao
;
/*
private Venda venda;
private Pessoa pessoaJuridica;
private Endereco enderecoEmitente;
private List<NfceItemDTO> itens = new ArrayList<NfceItemDTO>();
private List<NfcePagamentoDTO> pagamentos = new ArrayList<NfcePagamentoDTO>();
private String numero = "";
private String serie = "";
private String dataHoraEmissao = "";
private String protocoloAutorizacao = "";
private String cpfCnpjConsumidor = "";
private String caminhoQrCode = "";
*/
public NotaFiscalDTO
() {
setChave
("");
}
public NotaFiscalDTO
(NotaFiscal notaFiscal
) {
/*
this.setVenda(notaFiscal.getVenda());
this.setNumero("" + notaFiscal.getNumeroNotaFiscal());
this.setSerie(notaFiscal.getSerie());
this.setChave(notaFiscal.getChave());
this.setCaminhoQrCode(notaFiscal.getCaminhoQrcode());
// this.setCpfCnpjConsumidor("NÃO INFORMADO");
if (VerificadorUtil.naoEstaNulo(notaFiscal.getVenda())) {
if (VerificadorUtil.naoEstaNulo(notaFiscal.getVenda().getCliente())) {
this.setCpfCnpjConsumidor(notaFiscal.getVenda().getCliente().getCpfCnpj());
}
}
this.setDataHoraEmissao(DataUtil.retornarDataFormatadaEmFormatoTexto("yyyy-MM-dd HH:mm:ss", notaFiscal.getDataHoraEmissao()));
this.setProtocoloAutorizacao(notaFiscal.getProtocoloAutorizacao());
*/
}
public static String CONSULTA_DTO_SIMPLES =
"e.sequencial, e.chave, e.numero, e.dataHoraEmissao";
public NotaFiscalDTO
(Long sequencial,
String chave,
Long numero,
Date dataHoraEmissao
) {
this.
sequencialNotaFiscal = sequencial
;
this.
chave = chave
;
this.
numero = numero
;
this.
dataHoraEmissao = dataHoraEmissao
;
}
public NotaFiscalDTO
(Long sequencial,
String chave,
Date dataHoraEmissao
) {
this.
sequencialNotaFiscal = sequencial
;
this.
chave = chave
;
this.
dataHoraEmissao = dataHoraEmissao
;
}
public Long getSequencialNotaFiscal
() {
return sequencialNotaFiscal
;
}
public void setSequencialNotaFiscal
(Long sequencialNotaFiscal
) {
this.
sequencialNotaFiscal = sequencialNotaFiscal
;
}
public String getChave
() {
return chave
;
}
public void setChave
(String chave
) {
this.
chave = chave
;
}
public Long getNumero
() {
return numero
;
}
public void setNumero
(Long numero
) {
this.
numero = numero
;
}
public Date getDataHoraEmissao
() {
return dataHoraEmissao
;
}
public void setDataHoraEmissao
(Date dataHoraEmissao
) {
this.
dataHoraEmissao = dataHoraEmissao
;
}
public String getDataEmissaoFormatada
() {
return DataUtil.
retornarDataFormatadaEmFormatoTexto("dd/MM/yyyy", dataHoraEmissao
);
}
/*
public NotaFiscalDTO(Venda venda) {
this.venda = venda;
if (VerificadorUtil.naoEstaNulo(venda.getCliente())) {
this.setCpfCnpjConsumidor(venda.getCliente().getCpfCnpj());
} else {
this.setCpfCnpjConsumidor("NÃO INFORMADO");
}
}
public NotaFiscalDTO(TNfeProc nfeProc, Venda vendaCompleta) {
Pessoa pessoaJuridica = new Pessoa();
pessoaJuridica.setCpfCnpj(nfeProc.getNFe().getInfNFe().getEmit().getCNPJ());
this.setPessoaJuridica(pessoaJuridica);
Endereco enderecoEmitente = new Endereco();
enderecoEmitente.setLogradouro(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXLgr());
enderecoEmitente.setNumero(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getNro());
enderecoEmitente.setComplemento(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXCpl());
enderecoEmitente.setBairro(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXBairro());
enderecoEmitente.setMunicipio(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getXMun());
enderecoEmitente.setUnidadeFederativa(nfeProc.getNFe().getInfNFe().getEmit().getEnderEmit().getUF().name());
this.setEnderecoEmitente(enderecoEmitente);
List<NfceItemDTO> itens = new ArrayList<NfceItemDTO>();
for (nfce.java.TNFe.InfNFe.Det detalhe : nfeProc.getNFe().getInfNFe().getDet()) {
NfceItemDTO item = new NfceItemDTO();
item.setSequencial(new Integer(detalhe.getNItem()));
StringBuilder descricaoCompleta = new StringBuilder();
descricaoCompleta.append(detalhe.getProd().getCProd());
descricaoCompleta.append(" - ");
descricaoCompleta.append(detalhe.getProd().getXProd());
descricaoCompleta.append(" 1 UN X R$");
descricaoCompleta.append(formatarValor(new Double(detalhe.getProd().getVUnCom())));
descricaoCompleta.append(" R$");
descricaoCompleta.append(formatarValor(new Double(detalhe.getProd().getVProd())));
item.setDescricao(descricaoCompleta.toString());
item.setQuantidade(new Integer(detalhe.getProd().getQCom().substring(0, detalhe.getProd().getQCom().indexOf("."))));
item.setValorUnitario(new Double(detalhe.getProd().getVUnCom()));
itens.add(item);
}
this.setItens(itens);
// TODO: AINDA PREENCHENDO COM PAGAMENTOS DA VENDA
this.preencherPagamentos(vendaCompleta.getVendaFormaPagamentos());
this.setNumero(nfeProc.getNFe().getInfNFe().getIde().getNNF());
this.setSerie(nfeProc.getNFe().getInfNFe().getIde().getSerie());
this.setChave(nfeProc.getProtNFe().getInfProt().getChNFe());
this.setCaminhoQrCode(nfeProc.getNFe().getInfNFeSupl().getQrCode());
this.setCpfCnpjConsumidor("NÃO INFORMADO");
if (VerificadorUtil.naoEstaNulo(nfeProc.getNFe().getInfNFe().getDest())) {
String cpfCnpjFormatado = "";
if (VerificadorUtil.naoEstaNuloOuVazio(nfeProc.getNFe().getInfNFe().getDest().getCPF())) {
cpfCnpjFormatado = StringUtil.formatarCpf(nfeProc.getNFe().getInfNFe().getDest().getCPF());
} else if (VerificadorUtil.naoEstaNuloOuVazio(nfeProc.getNFe().getInfNFe().getDest().getCNPJ())) {
cpfCnpjFormatado = StringUtil.formatarCnpj(nfeProc.getNFe().getInfNFe().getDest().getCNPJ());
}
this.setCpfCnpjConsumidor(cpfCnpjFormatado);
}
Date data;
try {
data = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'-03:00'").parse(nfeProc.getNFe().getInfNFe().getIde().getDhEmi());
this.setDataHoraEmissao(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(data));
} catch (ParseException e) {
e.printStackTrace();
}
this.setProtocoloAutorizacao(nfeProc.getProtNFe().getInfProt().getNProt());
}
public Long getSequencialNotaFiscal() {
return sequencialNotaFiscal;
}
public void setSequencialNotaFiscal(Long sequencialNotaFiscal) {
this.sequencialNotaFiscal = sequencialNotaFiscal;
}
public Venda getVenda() {
return venda;
}
public void setVenda(Venda venda) {
this.venda = venda;
}
public Long getSequencialDaVenda() {
return VerificadorUtil.naoEstaNulo(getVenda())? getVenda().getSequencial() : null;
}
public Pessoa getPessoaJuridica() {
return pessoaJuridica;
}
public void setPessoaJuridica(Pessoa pessoaJuridica) {
this.pessoaJuridica = pessoaJuridica;
}
public Endereco getEnderecoEmitente() {
return enderecoEmitente;
}
public void setEnderecoEmitente(Endereco enderecoEmitente) {
this.enderecoEmitente = enderecoEmitente;
}
public List<NfceItemDTO> getItens() {
return itens;
}
public void setItens(List<NfceItemDTO> itens) {
this.itens = itens;
}
public List<NfcePagamentoDTO> getPagamentos() {
return pagamentos;
}
public void setPagamentos(List<NfcePagamentoDTO> pagamentos) {
this.pagamentos = pagamentos;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getSerie() {
return serie;
}
public void setSerie(String serie) {
this.serie = serie;
}
public String getDataHoraEmissao() {
return dataHoraEmissao;
}
public void setDataHoraEmissao(String dataHoraEmissao) {
this.dataHoraEmissao = dataHoraEmissao;
}
public String getChave() {
return chave;
}
public void setChave(String chave) {
this.chave = formatarChave(chave);
}
public String getProtocoloAutorizacao() {
return protocoloAutorizacao;
}
public void setProtocoloAutorizacao(String protocoloAutorizacao) {
this.protocoloAutorizacao = protocoloAutorizacao;
}
public String getCpfCnpjConsumidor() {
if (VerificadorUtil.estaNulo(cpfCnpjConsumidor)) {
return "NÃO INFORMADO";
}
return cpfCnpjConsumidor;
}
public void setCpfCnpjConsumidor(String cpfCnpjConsumidor) {
this.cpfCnpjConsumidor = cpfCnpjConsumidor;
}
public String getCpfCnpjConsumidorFormatado() {
if (VerificadorUtil.estaNulo(cpfCnpjConsumidor)) {
return "NÃO INFORMADO";
}
return FormatarUtil.retornarCpfCnpjFormatado(StringUtil.retornarApenasNumeros(cpfCnpjConsumidor));
}
public String getCaminhoQrCode() {
return caminhoQrCode;
}
public void setCaminhoQrCode(String caminhoQrCode) {
this.caminhoQrCode = caminhoQrCode;
}
*/
/*******************************************************************/
/*
public String getRazaoSocialDaLoja() {
return VerificadorUtil.naoEstaNulo(getPessoaJuridica())? getPessoaJuridica().getRazaoSocial() : "";
}
public String getCnpjDaLoja() {
return VerificadorUtil.naoEstaNulo(getPessoaJuridica())? StringUtil.formatarCnpj(getPessoaJuridica().getCpfCnpj()) : "";
}
public String getCnpjMatrizDaLojaSemAcentos() {
String cnpjMatriz = VerificadorUtil.naoEstaNulo(getPessoaJuridica())? getPessoaJuridica().getCpfCnpj() : "";
return VerificadorUtil.naoEstaNuloOuVazio(cnpjMatriz)? cnpjMatriz.substring(0, 8) : "";
}
//TODO: ALTERAÇÃO PROVISÓRIA
public String getEnderecoDoEmitente() {
String numero = getEnderecoEmitente().getNumero();
if (numero.equals("2650")) {
numero = "2990";
}
return getEnderecoEmitente().getLogradouro() + ", " + numero + ", " + getEnderecoEmitente().getComplemento() + ", " +
getEnderecoEmitente().getBairro() + ", " + getEnderecoEmitente().getMunicipio() + ", " + getEnderecoEmitente().getUnidadeFederativa();
}
public void preencherItens(List<Lancamento> lancamentos) {
Integer sequencial = 1;
for (Lancamento lancamento : lancamentos) {
NfceItemDTO item = new NfceItemDTO();
item.setSequencial(sequencial);
item.setSequencialProduto(lancamento.getProduto().getSequencial());
item.setDescricao(montagemDescricaoDoItem(lancamento));
item.setQuantidade(1);
item.setValorUnitario(lancamento.getValorVenda());
getItens().add(item);
sequencial++;
}
}
public String montagemDescricaoDoItem(Lancamento lancamento) {
StringBuilder descricaoCompleta = new StringBuilder();
descricaoCompleta.append(lancamento.getProduto().getCodigo());
descricaoCompleta.append(" - ");
descricaoCompleta.append(lancamento.getDescricaoNotaFiscal());
descricaoCompleta.append(" 1 UN X ");
descricaoCompleta.append(formatarValor(lancamento.getValorVenda()));
descricaoCompleta.append(" R$");
descricaoCompleta.append(formatarValor(lancamento.getValorVenda() * 1));
return descricaoCompleta.toString();
}
public void preencherItensComanda(List<Lancamento> lancamentos) {
Integer sequencial = 1;
for (Lancamento lancamento : lancamentos) {
NfceItemDTO item = new NfceItemDTO();
item.setSequencial(sequencial);
item.setSequencialProduto(lancamento.getProduto().getSequencial());
item.setDescricao(montagemDescricaoDoItemComanda(lancamento));
item.setQuantidade(1);
item.setValorUnitario(lancamento.getValorVenda());
getItens().add(item);
sequencial++;
}
}
public String montagemDescricaoDoItemComanda(Lancamento lancamento) {
StringBuilder descricaoCompleta = new StringBuilder();
descricaoCompleta.append(lancamento.getDescricaoComanda());
descricaoCompleta.append(" R$");
descricaoCompleta.append(formatarValor(lancamento.getValorVenda()));
return descricaoCompleta.toString();
}
public void preencherPagamentos(List<VendaFormaPagamento> pagamentos) {
for (VendaFormaPagamento vendaFormaPagamento : pagamentos) {
NfcePagamentoDTO pagamento = new NfcePagamentoDTO();
String formaDePagamento = vendaFormaPagamento.getFormaPagamento().getDescricao();
if (VerificadorUtil.naoEstaNulo(vendaFormaPagamento.getBandeiraCartao())) {
formaDePagamento = formaDePagamento + " (" + vendaFormaPagamento.getBandeiraCartao().getDescricao() + ") ";
}
pagamento.setFormaDePagamento(formaDePagamento);
pagamento.setValor(formatarValor(vendaFormaPagamento.getValorPagamento()));
getPagamentos().add(pagamento);
}
}
public String getValorTotal() {
Double total = 0.0;
if (!VerificadorUtil.isListaNulaOuVazia(getItens())) {
for (NfceItemDTO item : getItens()) {
total = total + item.getValorTotal();
}
}
return formatarValor(total);
}
public String formatarChave(String chaveAcessoNF) {
chaveAcessoNF = chaveAcessoNF.replace("NFe", "");
return chaveAcessoNF.substring(0, 4) + " " +
chaveAcessoNF.substring(4, 8) + " " +
chaveAcessoNF.substring(8, 12) + " " +
chaveAcessoNF.substring(12, 16) + " " +
chaveAcessoNF.substring(16, 20) + " " +
chaveAcessoNF.substring(20, 24) + " " +
chaveAcessoNF.substring(24, 28) + " " +
chaveAcessoNF.substring(28, 32) + " " +
chaveAcessoNF.substring(32, 36) + " " +
chaveAcessoNF.substring(36, 40) + " " +
chaveAcessoNF.substring(40, 44);
}
// Número: 1 Série: 1 Emissão: 25/03/2018 16:28:40
// Protocolo de Autorização: 327180000056573 25/03/2018 16:28:42
// http://nfce.sefaz.al.gov.br/QRCode/consultarNFCe.jsp?chNFe=27180321494821000100650010000000011000000011&nVersao=100&tpAmb=2&cDest=06256954459&dhEmi=323031382d30332d32355431363a32383a34302d30333a3030&vNF=11.50&vICMS=0.00&digVal=4e35376b3876386a4d3931483269386843546f4a767443354d41453d&cIdToken=000002&cHashQRCode=A0FC7AB12F30E66649C3FFFB275323FCD2AA0AD7
*/
/*
public String getNumeroSerieEmissao() {
StringBuilder numeroSerieEmissao = new StringBuilder();
numeroSerieEmissao.append("NÚMERO: ");
numeroSerieEmissao.append(getNumero());
numeroSerieEmissao.append(" SÉRIE: ");
numeroSerieEmissao.append(getSerie());
numeroSerieEmissao.append(" EMISSÃO: ");
numeroSerieEmissao.append(getDataHoraEmissao());
return numeroSerieEmissao.toString();
}
public String getProtocoloAutorizacaoDataHoraEmissao() {
return "PROTOCOLO DE AUTORIZAÇÃO: " + getProtocoloAutorizacao();
}
*/
/*
private String formatarValor(Double valor) {
return String.format("%.2f", valor);
}
*/
/*
@Transient
public Double getTotalLancamentos() {
Double total = 0.0;
if (!VerificadorUtil.isListaNulaOuVazia(getListaLancamento())) {
for (Lancamento lancamento : getListaLancamento()) {
total = total + lancamento.getValorVenda();
}
}
return total;
}
@Transient
public Double getTotalPago() {
Double total = 0.0;
if (!VerificadorUtil.isListaNulaOuVazia(getListaFormaPagamento())) {
for (VendaFormaPagamento vendaFormaPagamento : getListaFormaPagamento()) {
total = total + vendaFormaPagamento.getValorPagamento();
}
}
return total;
}
*/
}