Subversion Repositories Integrator Subversion

Rev

Rev 195 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 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
 
195 espaco 13
import br.com.ec.core.consulta.ParametrosConsulta;
14
import br.com.ec.core.generic.GenericService;
15
import br.com.ec.core.util.VerificadorUtil;
106 espaco 16
import br.com.ec.domain.dto.ConsolidadoNotasFiscaisDTO;
17
import br.com.ec.domain.dto.ConsolidadoPessoaJuridicaDTO;
18
import br.com.ec.domain.dto.ParametrosConsultaNotaFiscalDTO;
19
import br.com.ec.domain.model.NotaFiscal;
20
import br.com.ec.domain.model.Pessoa;
21
import br.com.ec.domain.model.Vigencia;
170 espaco 22
import br.com.ec.domain.model.tipos.nfe.TipoNotaFiscal;
106 espaco 23
import br.com.ec.domain.service.notafiscal.NotaFiscalService;
195 espaco 24
import br.com.ec.web.exception.VerificadorLancamentoException;
25
import br.com.ec.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
26
import br.com.ec.web.generic.AbstractBean;
106 espaco 27
 
28
@Named
29
@Scope("view")
30
public class ConsolidadoNotasFiscaisBean extends AbstractBean<ConsolidadoNotasFiscaisDTO> implements Serializable {
31
 
32
        private static final long serialVersionUID = 1L;
33
 
34
        private List<String> anosSelecionados;
35
        private List<String> mesesSelecionados;
36
 
37
        private List<Vigencia> vigencias;
38
 
39
        // OPÇÕES DE RELATORIOS PARA SEREM CONSULTADOS E APRESENTADOS
40
        private Boolean consolidadoNotasFiscais;
41
 
42
        private NotaFiscalService notaFiscalService;
43
 
44
        @Inject
45
        public ConsolidadoNotasFiscaisBean(NotaFiscalService notaFiscalService) {
46
                this.notaFiscalService = notaFiscalService;
47
        }
48
 
49
        public List<String> getAnosSelecionados() {
50
                return anosSelecionados;
51
        }
52
        public void setAnosSelecionados(List<String> anosSelecionados) {
53
                this.anosSelecionados = anosSelecionados;
54
        }
55
 
56
        public List<String> getMesesSelecionados() {
57
                return mesesSelecionados;
58
        }
59
        public void setMesesSelecionados(List<String> mesesSelecionados) {
60
                this.mesesSelecionados = mesesSelecionados;
61
        }
62
 
63
        public List<Vigencia> getVigencias() {
64
                return vigencias;
65
        }
66
        public void setVigencias(List<Vigencia> vigencias) {
67
                this.vigencias = vigencias;
68
        }
69
 
70
        public Boolean getConsolidadoNotasFiscais() {
71
                return consolidadoNotasFiscais;
72
        }
73
        public void setConsolidadoNotasFiscais(Boolean consolidadoNotasFiscais) {
74
                this.consolidadoNotasFiscais = consolidadoNotasFiscais;
75
        }
76
 
77
        @Override
78
        public void preCarregamento() {
79
                entidade = new ConsolidadoNotasFiscaisDTO();
80
                parametrosConsulta = new ParametrosConsulta<ConsolidadoNotasFiscaisDTO>();
81
                parametrosConsulta.setEntidade(entidade);
82
        }
83
 
84
        @Override
85
        public void limparEntidade() {
86
                ConsolidadoNotasFiscaisDTO ConsolidadoVigencia = new ConsolidadoNotasFiscaisDTO();
87
                setEntidade(ConsolidadoVigencia);
88
        }
89
 
90
        @Override
91
        public GenericService<ConsolidadoNotasFiscaisDTO> getService() {
92
                return null;
93
        }
94
 
95
        @Override
96
        public ConsolidadoNotasFiscaisDTO getEntidade() {
97
                return entidade;
98
        }
99
 
100
        @Override
101
        public ConsolidadoNotasFiscaisDTO getId() {
102
                return getEntidade();
103
        }
104
 
105
        /*******************************************************/
106
 
107
        public void consultarConsolidacoes() {
108
                if (getConsolidadoNotasFiscais()) {
109
                        consultarValoresNotasFiscais();
110
                }
111
        }
112
 
113
        public void consultarValoresNotasFiscais() {
114
                ParametrosConsultaNotaFiscalDTO parametros = new ParametrosConsultaNotaFiscalDTO();
115
                parametros.setEntidade(new NotaFiscal());
116
                if (VerificadorUtil.naoEstaNulo(getEntidade().getVigencia())) {
117
                        parametros.setDataInicial(getEntidade().getVigencia().getDataInicio());
118
                        parametros.setDataFinal(getEntidade().getVigencia().getDataFim());
119
                }
120
                List<NotaFiscal> notasFiscais = notaFiscalService.consultarNotasFiscais(parametros);
121
 
122
                Integer notasRecebidas = 0;
123
                Double valorTotalRecebido = 0.0;
124
                for (NotaFiscal nf : notasFiscais) {
125
                        if (VerificadorUtil.naoEstaNulo(nf.getValorNotaFiscal())) {
170 espaco 126
                                if (nf.getTipoNotaFiscal().equals(TipoNotaFiscal.NFE_ENTRADA.getValor())) {
106 espaco 127
                                        notasRecebidas++;
128
                                        valorTotalRecebido = valorTotalRecebido + nf.getValorNotaFiscal();
129
                                }
130
                        }
131
                }
132
                getEntidade().setValorTotalNotasFiscaisRecebidas(valorTotalRecebido);
133
                getEntidade().setNotasFiscaisRecebidas(notasRecebidas);
134
 
135
                Integer notasRemessas = 0;
136
                Double valorTotalRemessas = 0.0;
137
                for (NotaFiscal nf : notasFiscais) {
138
                        if (VerificadorUtil.naoEstaNulo(nf.getValorNotaFiscal())) {
545 blopes 139
                                if (nf.getTipoNotaFiscal().equals(TipoNotaFiscal.NFE_REMESSA_SAIDA.getValor())) {
106 espaco 140
                                        notasRemessas++;
141
                                        valorTotalRemessas = valorTotalRemessas + nf.getValorNotaFiscal();
142
                                }
143
                        }
144
                }
145
                getEntidade().setValorTotalNotasFiscaisRemessas(valorTotalRemessas);
146
                getEntidade().setNotasFiscaisRemessas(notasRemessas);
147
 
148
                List<ConsolidadoPessoaJuridicaDTO> pessoasJuridicasEmitidas = preencherNotasPorPessoaJuridica(notasFiscais);
149
                for (ConsolidadoPessoaJuridicaDTO consolidadoPessoaJuridica : pessoasJuridicasEmitidas) {
150
                        Integer notasEmitidas = 0;
151
                        Double valorTotalEmitido = 0.0;
152
 
153
                        for (NotaFiscal nf : notasFiscais) {
170 espaco 154
                                if (VerificadorUtil.naoEstaNulo(nf.getPessoaEmitente())) {
155
                                        if (nf.getPessoaEmitente().equals(consolidadoPessoaJuridica.getPessoaJuridica())) {
156
                                                if (nf.getTipoNotaFiscal().equals(TipoNotaFiscal.NFE_SAIDA.getValor()) ||
157
                                                                nf.getTipoNotaFiscal().equals(TipoNotaFiscal.NFCE_SAIDA.getValor())) {
106 espaco 158
                                                        notasEmitidas++;
159
                                                        valorTotalEmitido = valorTotalEmitido + nf.getValorNotaFiscal();
160
                                                }
161
                                        }
162
                                }
163
                        }
164
 
165
                        consolidadoPessoaJuridica.setNotasFiscaisEmitidas(notasEmitidas);
166
                        consolidadoPessoaJuridica.setValorTotalNotasFiscaisEmitidas(valorTotalEmitido);
167
                }
168
                getEntidade().setConsolidadosPessoaJuridica(pessoasJuridicasEmitidas);
169
        }
170
 
171
        private List<ConsolidadoPessoaJuridicaDTO> preencherNotasPorPessoaJuridica(List<NotaFiscal> notasFiscais) {
172
                List<Pessoa> pessoas = new ArrayList<Pessoa>();
173
                for (NotaFiscal notaFiscal : notasFiscais) {
170 espaco 174
                        if (VerificadorUtil.naoEstaNulo(notaFiscal.getPessoaEmitente())) {
175
                                if (!pessoas.contains(notaFiscal.getPessoaEmitente())) {
176
                                        pessoas.add(notaFiscal.getPessoaEmitente());
106 espaco 177
                                }
178
                        }
179
                }
180
                List<ConsolidadoPessoaJuridicaDTO> consolidadosPJ = new ArrayList<ConsolidadoPessoaJuridicaDTO>();
181
                for (Pessoa pessoa : pessoas) {
182
                        ConsolidadoPessoaJuridicaDTO consolidadoPessoaJuridica = new ConsolidadoPessoaJuridicaDTO();
183
                        consolidadoPessoaJuridica.setPessoaJuridica(pessoa);
184
                        consolidadosPJ.add(consolidadoPessoaJuridica);
185
                }
186
                return consolidadosPJ;
187
        }
188
 
189
        public StreamedContent downloadXmlsNotasFiscaisEmitidas() {
190
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
191
                        @Override
192
                        public StreamedContent execute() {
170 espaco 193
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFCE_SAIDA.getValor(), null);
106 espaco 194
                        }
195
                });
196
        }
197
 
198
        public StreamedContent downloadXmlsNotasFiscaisEmitidas(final Pessoa pessoaEmissor) {
199
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
200
                        @Override
201
                        public StreamedContent execute() {
170 espaco 202
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFCE_SAIDA.getValor(), pessoaEmissor);
106 espaco 203
                        }
204
                });
205
        }
206
 
207
        public StreamedContent downloadXmlsNotasFiscaisRecebidas() {
208
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
209
                        @Override
210
                        public StreamedContent execute() {
170 espaco 211
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFE_ENTRADA.getValor(), null);
106 espaco 212
                        }
213
                });
214
        }
215
 
216
        public StreamedContent downloadXmlsNotasFiscaisRemessa() {
217
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
218
                        @Override
219
                        public StreamedContent execute() {
545 blopes 220
                                return notaFiscalService.downloadXmls(getEntidade().getVigencia().getDataInicio(), getEntidade().getVigencia().getDataFim(), TipoNotaFiscal.NFE_REMESSA_SAIDA.getValor(), null);
106 espaco 221
                        }
222
                });
223
        }
224
 
225
}