Subversion Repositories Integrator Subversion

Rev

Rev 170 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.dto.nfce;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.model.NotaFiscal;
import br.com.ec.domain.model.NotaFiscalProduto;
import br.com.ec.domain.model.Pessoa;
import br.com.ec.web.converters.FormatarUtil;
import br.com.ec.web.util.DataUtil;

public class NotaFiscalRemessaDTO implements Serializable {

        private static final long serialVersionUID = 1L;

        private Long sequencialNotaFiscal;
       
        private Loja lojaEmitente;
        private Loja lojaDestino;
       
        private Pessoa pessoaEmitente;
        private Pessoa pessoaDestinatario;
        private List<NotaFiscalProduto> itens = new ArrayList<NotaFiscalProduto>();
       
//      private List<NfceItemDTO> itens = new ArrayList<NfceItemDTO>();
       
        private String numero = "";
        private String serie = "";
        private String dataHoraEmissao = "";
        private String chave = "";
        private String protocoloAutorizacao = "";
        private String cpfCnpjConsumidor = "";
        private String caminhoQrCode = "";
       
        private NotaFiscal notaFiscal;
       
        public NotaFiscalRemessaDTO() {}
       
        /*
        public NotaFiscalRemessaDTO(Venda venda) {
                this.venda = venda;
                if (VerificadorUtil.naoEstaNulo(venda.getCliente())) {
                        this.setCpfCnpjConsumidor(venda.getCliente().getCpfCnpj());
                } else {
                        this.setCpfCnpjConsumidor("NÃO INFORMADO");
                }
        }
       
        public NotaFiscalRemessaDTO(NotaFiscal notaFiscal) {
                this.setVenda(notaFiscal.getVenda());
                this.setNumero("" + notaFiscal.getNumeroNotaFiscal());
                this.setSerie(notaFiscal.getSerie());
                this.setChave(notaFiscal.getChave());
                this.setCaminhoQrCode(notaFiscal.getCaminhoQrcode());
                if (VerificadorUtil.naoEstaNulo(notaFiscal.getVenda().getCliente())) {
                        this.setCpfCnpjConsumidor(notaFiscal.getVenda().getCliente().getCpfCnpj());
                } else {
                        this.setCpfCnpjConsumidor("NÃO INFORMADO");
                }
        this.setDataHoraEmissao(DataUtil.retornarDataFormatadaEmFormatoTexto("yyyy-MM-dd HH:mm:ss", notaFiscal.getDataHoraEmissao()));
        this.setProtocoloAutorizacao(notaFiscal.getProtocoloAutorizacao());
        }
         */


        public Long getSequencialNotaFiscal() {
                return sequencialNotaFiscal;
        }
        public void setSequencialNotaFiscal(Long sequencialNotaFiscal) {
                this.sequencialNotaFiscal = sequencialNotaFiscal;
        }
       
        public Loja getLojaEmitente() {
                return lojaEmitente;
        }
        public void setLojaEmitente(Loja lojaEmitente) {
                this.lojaEmitente = lojaEmitente;
        }
       
        public Loja getLojaDestino() {
                return lojaDestino;
        }
        public void setLojaDestino(Loja lojaDestino) {
                this.lojaDestino = lojaDestino;
        }
       
        public Pessoa getPessoaEmitente() {
                return pessoaEmitente;
        }
        public void setPessoaEmitente(Pessoa pessoaEmitente) {
                this.pessoaEmitente = pessoaEmitente;
        }
       
        public Pessoa getPessoaDestinatario() {
                return pessoaDestinatario;
        }
        public void setPessoaDestinatario(Pessoa pessoaDestinatario) {
                this.pessoaDestinatario = pessoaDestinatario;
        }
       
        public List<NotaFiscalProduto> getItens() {
                return itens;
        }
        public void setItens(List<NotaFiscalProduto> itens) {
                this.itens = itens;
        }
       
        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(cpfCnpjConsumidor);
        }
       
        public String getCaminhoQrCode() {
                return caminhoQrCode;
        }
        public void setCaminhoQrCode(String caminhoQrCode) {
                this.caminhoQrCode = caminhoQrCode;
        }
       
        public NotaFiscal getNotaFiscal() {
                return notaFiscal;
        }
        public void setNotaFiscal(NotaFiscal notaFiscal) {
                this.notaFiscal = notaFiscal;
        }
       
        /*******************************************************************/
       
        public String getRazaoSocialDaLoja() {
                return VerificadorUtil.naoEstaNulo(getPessoaEmitente())? getPessoaEmitente().getRazaoSocial() : "";
        }
       
        public String getCnpjDaLoja() {
                return VerificadorUtil.naoEstaNulo(getPessoaEmitente())? StringUtil.formatarCnpj(getPessoaEmitente().getCpfCnpj()) : "";
        }
        /*
        public String getEnderecoDoEmitente() {
                return getEnderecoEmitente().getLogradouro() + ", " + getEnderecoEmitente().getNumero() + ", " + 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("  ");
                descricaoCompleta.append(formatarValor(lancamento.getValorVenda() * 1));
                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);
        }

        public void preencherDadosNotaFiscal(NotaFiscal nf) {
                if (VerificadorUtil.naoEstaNulo(nf.getNumeroNotaFiscal())) {
                        this.setNumero(nf.getNumeroNotaFiscal().toString());
                }
                this.setSerie(nf.getSerie());
                this.setDataHoraEmissao(DataUtil.retornarDataFormatadaEmFormatoTexto("yyyy-MM-dd'T'HH:mm:ss'-03:00'", nf.getDataHoraEmissao()));
                this.setPessoaEmitente(nf.getPessoaEmitente());
                this.setPessoaDestinatario(nf.getPessoaDestinatario());
                if (VerificadorUtil.naoEstaNulo(nf.getListaNFRemessaProdutos())) {
                        this.setItens(nf.getListaNFRemessaProdutos());
                }
                this.setNotaFiscal(nf);
        }
       
        /*
        @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;  
        }
        */

       
}