Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
4
import java.util.ArrayList;
5
import java.util.List;
6
 
7
import javax.inject.Inject;
8
import javax.inject.Named;
9
 
10
import org.primefaces.model.StreamedContent;
11
import org.springframework.context.annotation.Scope;
12
 
13
import br.com.ec.domain.dto.ConsolidadoDTO;
14
import br.com.ec.domain.dto.ConsolidadoPessoaJuridicaDTO;
15
import br.com.ec.domain.dto.ParametrosConsultaNotaFiscalDTO;
16
import br.com.ec.domain.model.NotaFiscal;
17
import br.com.ec.domain.model.Pessoa;
18
import br.com.ec.domain.model.tipos.TipoNotaFiscal;
19
import br.com.ec.domain.service.notafiscal.NotaFiscalService;
20
import br.edu.cesmac.core.consulta.ParametrosConsulta;
21
import br.edu.cesmac.core.generic.GenericService;
22
import br.edu.cesmac.core.util.VerificadorUtil;
23
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
24
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
25
import br.edu.cesmac.web.generic.AbstractBean;
26
 
27
@Named
28
@Scope("view")
29
public class ConsolidadoBean extends AbstractBean<ConsolidadoDTO> implements Serializable {
30
 
31
        private static final long serialVersionUID = 1L;
32
 
33
        private NotaFiscalService notaFiscalService;
34
 
35
        @Inject
36
        public ConsolidadoBean(NotaFiscalService notaFiscalService) {
37
                this.notaFiscalService = notaFiscalService;
38
        }
39
 
40
        @Override
41
        public void preCarregamento() {
42
                entidade = new ConsolidadoDTO();
43
                parametrosConsulta = new ParametrosConsulta<ConsolidadoDTO>();
44
                parametrosConsulta.setEntidade(entidade);
45
        }
46
 
47
        @Override
48
        public void limparEntidade() {
49
                ConsolidadoDTO ConsolidadoVigencia = new ConsolidadoDTO();
50
                setEntidade(ConsolidadoVigencia);
51
        }
52
 
53
        @Override
54
        public GenericService<ConsolidadoDTO> getService() {
55
                return null;
56
        }
57
 
58
        @Override
59
        public ConsolidadoDTO getEntidade() {
60
                return entidade;
61
        }
62
 
63
        @Override
64
        public ConsolidadoDTO getId() {
65
                return getEntidade();
66
        }
67
 
68
        /*******************************************************/
69
 
70
        public void consultarValoresNotasFiscais() {
71
                ParametrosConsultaNotaFiscalDTO parametros = new ParametrosConsultaNotaFiscalDTO();
72
                parametros.setEntidade(new NotaFiscal());
73
                if (VerificadorUtil.naoEstaNulo(getEntidade().getVigencia())) {
74
                        parametros.setDataInicial(getEntidade().getVigencia().getDataInicio());
75
                        parametros.setDataFinal(getEntidade().getVigencia().getDataFim());
76
                }
77
                List<NotaFiscal> notasFiscais = notaFiscalService.consultarNotasFiscais(parametros);
78
 
79
                Integer notasRecebidas = 0;
80
                Double valorTotalRecebido = 0.0;
81
                for (NotaFiscal nf : notasFiscais) {
82
                        if (VerificadorUtil.naoEstaNulo(nf.getValorNotaFiscal())) {
83
                                if (nf.getTipoNotaFiscal().equals(TipoNotaFiscal.NFE_RECEBIDA.getValor())) {
84
                                        notasRecebidas++;
85
                                        valorTotalRecebido = valorTotalRecebido + nf.getValorNotaFiscal();
86
                                }
87
                        }
88
                }
89
                getEntidade().setValorTotalNotasFiscaisRecebidas(valorTotalRecebido);
90
                getEntidade().setNotasFiscaisRecebidas(notasRecebidas);
91
 
92
                Integer notasRemessas = 0;
93
                Double valorTotalRemessas = 0.0;
94
                for (NotaFiscal nf : notasFiscais) {
95
                        if (VerificadorUtil.naoEstaNulo(nf.getValorNotaFiscal())) {
96
                                if (nf.getTipoNotaFiscal().equals(TipoNotaFiscal.NFE_REMESSA.getValor())) {
97
                                        notasRemessas++;
98
                                        valorTotalRemessas = valorTotalRemessas + nf.getValorNotaFiscal();
99
                                }
100
                        }
101
                }
102
                getEntidade().setValorTotalNotasFiscaisRemessas(valorTotalRemessas);
103
                getEntidade().setNotasFiscaisRemessas(notasRemessas);
104
 
105
                List<ConsolidadoPessoaJuridicaDTO> pessoasJuridicasEmitidas = preencherNotasPorPessoaJuridica(notasFiscais);
106
                for (ConsolidadoPessoaJuridicaDTO consolidadoPessoaJuridica : pessoasJuridicasEmitidas) {
107
                        Integer notasEmitidas = 0;
108
                        Double valorTotalEmitido = 0.0;
109
 
110
                        for (NotaFiscal nf : notasFiscais) {
111
                                if (VerificadorUtil.naoEstaNulo(nf.getPessoaJuridicaEmitente())) {
112
                                        if (nf.getPessoaJuridicaEmitente().equals(consolidadoPessoaJuridica.getPessoaJuridica())) {
113
                                                if (nf.getTipoNotaFiscal().equals(TipoNotaFiscal.NFCE_EMITIDA.getValor())) {
114
                                                        notasEmitidas++;
115
                                                        valorTotalEmitido = valorTotalEmitido + nf.getValorNotaFiscal();
116
                                                }
117
                                        }
118
                                }
119
                        }
120
 
121
                        consolidadoPessoaJuridica.setNotasFiscaisEmitidas(notasEmitidas);
122
                        consolidadoPessoaJuridica.setValorTotalNotasFiscaisEmitidas(valorTotalEmitido);
123
                }
124
                getEntidade().setConsolidadosPessoaJuridica(pessoasJuridicasEmitidas);
125
        }
126
 
127
        private List<ConsolidadoPessoaJuridicaDTO> preencherNotasPorPessoaJuridica(List<NotaFiscal> notasFiscais) {
128
                List<Pessoa> pessoas = new ArrayList<Pessoa>();
129
                for (NotaFiscal notaFiscal : notasFiscais) {
130
                        if (VerificadorUtil.naoEstaNulo(notaFiscal.getPessoaJuridicaEmitente())) {
131
                                if (!pessoas.contains(notaFiscal.getPessoaJuridicaEmitente())) {
132
                                        pessoas.add(notaFiscal.getPessoaJuridicaEmitente());
133
                                }
134
                        }
135
                }
136
                List<ConsolidadoPessoaJuridicaDTO> consolidadosPJ = new ArrayList<ConsolidadoPessoaJuridicaDTO>();
137
                for (Pessoa pessoa : pessoas) {
138
                        ConsolidadoPessoaJuridicaDTO consolidadoPessoaJuridica = new ConsolidadoPessoaJuridicaDTO();
139
                        consolidadoPessoaJuridica.setPessoaJuridica(pessoa);
140
                        consolidadosPJ.add(consolidadoPessoaJuridica);
141
                }
142
                return consolidadosPJ;
143
        }
144
 
145
        public StreamedContent downloadXmlsNotasFiscaisEmitidas() {
146
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
147
                        @Override
148
                        public StreamedContent execute() {
149
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFCE_EMITIDA.getValor(), null);
150
                        }
151
                });
152
        }
153
 
154
        public StreamedContent downloadXmlsNotasFiscaisEmitidas(final Pessoa pessoaEmissor) {
155
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
156
                        @Override
157
                        public StreamedContent execute() {
158
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFCE_EMITIDA.getValor(), pessoaEmissor);
159
                        }
160
                });
161
        }
162
 
163
        public StreamedContent downloadXmlsNotasFiscaisRecebidas() {
164
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
165
                        @Override
166
                        public StreamedContent execute() {
167
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFE_RECEBIDA.getValor(), null);
168
                        }
169
                });
170
        }
171
 
172
        public StreamedContent downloadXmlsNotasFiscaisRemessa() {
173
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
174
                        @Override
175
                        public StreamedContent execute() {
176
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFE_REMESSA.getValor(), null);
177
                        }
178
                });
179
        }
180
 
181
}