Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
200 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
4
import java.util.List;
5
 
6
import javax.inject.Inject;
7
import javax.inject.Named;
8
 
9
import org.primefaces.model.chart.LineChartModel;
10
import org.springframework.context.annotation.Scope;
11
 
12
import br.com.ec.core.generic.GenericService;
13
import br.com.ec.core.util.DataUtils;
14
import br.com.ec.core.util.VerificadorUtil;
15
import br.com.ec.domain.dto.ConsolidadoGestaoDTO;
16
import br.com.ec.domain.dto.DetalhamentoCaixaDTO;
17
import br.com.ec.domain.dto.FluxoDeCaixaCategoriaDTO;
18
import br.com.ec.domain.dto.FluxoDeCaixaDTO;
19
import br.com.ec.domain.dto.ParametrosConsultaLancamentosDTO;
20
import br.com.ec.domain.dto.ProvisaoCaixaDTO;
21
import br.com.ec.domain.model.Categoria;
22
import br.com.ec.domain.model.Orcamento;
23
import br.com.ec.domain.model.Parcela;
24
import br.com.ec.domain.model.tipos.TipoCategoria;
25
import br.com.ec.domain.service.acompanhamento.AcompanhamentoService;
26
import br.com.ec.domain.service.orcamento.OrcamentoService;
27
import br.com.ec.domain.service.parcela.ParcelaService;
28
import br.com.ec.web.exception.VerificadorLancamentoException;
29
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
30
import br.com.ec.web.generic.AbstractBean;
31
import br.com.ec.web.message.LancadorMensagem;
32
 
33
@Named
34
@Scope("view")
35
public class FluxoDeCaixaBean extends AbstractBean<ConsolidadoGestaoDTO> implements Serializable {
36
 
37
        private static final long serialVersionUID = 1L;
38
 
39
        private FluxoDeCaixaDTO fluxoDeCaixa;
40
        private List<FluxoDeCaixaCategoriaDTO> receitas;
41
        private List<FluxoDeCaixaCategoriaDTO> despesas;
42
 
43
        private List<Parcela> parcelas;
44
        private LineChartModel graficoCaixa;
45
        private List<DetalhamentoCaixaDTO> provisaoDetalhamentoCaixa;
46
        private Orcamento orcamento;
47
 
48
        private AcompanhamentoService acompanhamentoService;
49
        private ParcelaService parcelaService;
50
        private OrcamentoService orcamentoService;
51
 
52
        @Inject
53
        public FluxoDeCaixaBean(AcompanhamentoService acompanhamentoService, ParcelaService parcelaService, OrcamentoService orcamentoService) {
54
                this.acompanhamentoService = acompanhamentoService;
55
                this.parcelaService = parcelaService;
56
                this.orcamentoService = orcamentoService;
57
        }
58
 
59
        @Override
60
        public void limparEntidade() {
61
                setEntidade(new ConsolidadoGestaoDTO());
62
        }
63
 
64
        @Override
65
        public GenericService<ConsolidadoGestaoDTO> getService() {
66
                return null;
67
        }
68
 
69
        @Override
70
        public ConsolidadoGestaoDTO getEntidade() {
71
                return entidade;
72
        }
73
 
74
        @Override
75
        public ConsolidadoGestaoDTO getId() {
76
                return getEntidade();
77
        }
78
 
79
        public FluxoDeCaixaDTO getFluxoDeCaixa() {
80
                return fluxoDeCaixa;
81
        }
82
        public void setFluxoDeCaixa(FluxoDeCaixaDTO fluxoDeCaixa) {
83
                this.fluxoDeCaixa = fluxoDeCaixa;
84
        }
85
 
86
        public List<FluxoDeCaixaCategoriaDTO> getReceitas() {
87
                return receitas;
88
        }
89
        public void setReceitas(List<FluxoDeCaixaCategoriaDTO> receitas) {
90
                this.receitas = receitas;
91
        }
92
 
93
        public List<FluxoDeCaixaCategoriaDTO> getDespesas() {
94
                return despesas;
95
        }
96
        public void setDespesas(List<FluxoDeCaixaCategoriaDTO> despesas) {
97
                this.despesas = despesas;
98
        }
99
 
100
        public List<Parcela> getParcelas() {
101
                return parcelas;
102
        }
103
        public void setParcelas(List<Parcela> parcelas) {
104
                this.parcelas = parcelas;
105
        }
106
        public Double getTotalValoresParcelas() {
107
                Double valorTotal = new Double(0.0);
108
                if (VerificadorUtil.naoEstaNuloOuVazio(getParcelas())) {
109
                        for (Parcela parcela : getParcelas()) {
110
                                valorTotal = valorTotal + parcela.getValor();
111
                        }
112
                }
113
                return valorTotal;
114
        }
115
 
116
        public LineChartModel getGraficoCaixa() {
117
                return graficoCaixa;
118
        }
119
        public void setGraficoCaixa(LineChartModel graficoCaixa) {
120
                this.graficoCaixa = graficoCaixa;
121
        }
122
 
123
        public List<DetalhamentoCaixaDTO> getProvisaoDetalhamentoCaixa() {
124
                return provisaoDetalhamentoCaixa;
125
        }
126
        public void setProvisaoDetalhamentoCaixa(List<DetalhamentoCaixaDTO> provisaoDetalhamentoCaixa) {
127
                this.provisaoDetalhamentoCaixa = provisaoDetalhamentoCaixa;
128
        }
129
 
130
        public Orcamento getOrcamento() {
131
                return orcamento;
132
        }
133
        public void setOrcamento(Orcamento orcamento) {
134
                this.orcamento = orcamento;
135
        }
136
 
137
        /********************************************************************/
138
 
139
        @Override
140
        public void preCarregamento() {
141
                try {
142
                        setFluxoDeCaixa(new FluxoDeCaixaDTO(DataUtils.getPrimeiroDiaDoMesAtual(), DataUtils.getUltimoDiaDoMesAtual()));
143
                        consultarFluxoDeCaixa();
144
                } catch (Exception e) {
145
                        e.printStackTrace();
146
                }
147
        }
148
 
149
        public void consultarFluxoDeCaixa() {
150
                setFluxoDeCaixa(acompanhamentoService.consultarFluxoDeCaixa(getFluxoDeCaixa()));
151
                setReceitas(acompanhamentoService.consultarFluxoDeCaixaPorCategoria(getFluxoDeCaixa(), TipoCategoria.RECEITAS.getValor()));
152
                setDespesas(acompanhamentoService.consultarFluxoDeCaixaPorCategoria(getFluxoDeCaixa(), TipoCategoria.DESPESAS.getValor()));
153
        }
154
 
155
        public void consultarProvisaoCaixa() {
156
                ProvisaoCaixaDTO provisaoCaixa = acompanhamentoService.consultarGraficoCaixa(getFluxoDeCaixa().getDataInicial(), getFluxoDeCaixa().getDataFinal());
157
                setGraficoCaixa(provisaoCaixa.getGrafico());
158
                setProvisaoDetalhamentoCaixa(provisaoCaixa.getDetalhamentos());
159
        }
160
 
161
        public Double getValorTotalReceitas() {
162
                Double valorTotal = new Double(0.0);
163
                for (FluxoDeCaixaCategoriaDTO filhas : getReceitas()) {
164
                        valorTotal = valorTotal + filhas.getValor();
165
                }
166
                return valorTotal;
167
        }
168
 
169
        public Double getValorTotalDespesas() {
170
                Double valorTotal = new Double(0.0);
171
                for (FluxoDeCaixaCategoriaDTO filhas : getDespesas()) {
172
                        valorTotal = valorTotal + filhas.getValor();
173
                }
174
                return valorTotal;
175
        }
176
 
177
        public Double getValorTotalReceitasFuturas() {
178
                Double valorTotalFuturo = new Double(0.0);
179
                for (FluxoDeCaixaCategoriaDTO filhas : getReceitas()) {
180
                        valorTotalFuturo = valorTotalFuturo + filhas.getValorFuturo();
181
                }
182
                return valorTotalFuturo;
183
        }
184
 
185
        public Double getValorTotalDespesasFuturas() {
186
                Double valorTotalFuturo = new Double(0.0);
187
                for (FluxoDeCaixaCategoriaDTO filhas : getDespesas()) {
188
                        valorTotalFuturo = valorTotalFuturo + filhas.getValorFuturo();
189
                }
190
                return valorTotalFuturo;
191
        }
192
 
193
        public Double getValorTotalReceitasOrcadas() {
194
                Double valorTotalOrcado = new Double(0.0);
195
                for (FluxoDeCaixaCategoriaDTO filhas : getReceitas()) {
196
                        valorTotalOrcado = valorTotalOrcado + filhas.getValorOrcado();
197
                }
198
                return valorTotalOrcado;
199
        }
200
 
201
        public Double getValorTotalDespesasOrcadas() {
202
                Double valorTotalOrcado = new Double(0.0);
203
                for (FluxoDeCaixaCategoriaDTO filhas : getDespesas()) {
204
                        valorTotalOrcado = valorTotalOrcado + filhas.getValorOrcado();
205
                }
206
                return valorTotalOrcado;
207
        }
208
 
209
        public List<Parcela> consultarLancamentosParcela(Categoria categoria, Categoria categoriaPai, String tipoConta) {
210
                ParametrosConsultaLancamentosDTO parcelaConsulta = new ParametrosConsultaLancamentosDTO();
211
                parcelaConsulta.setDataInicial(getFluxoDeCaixa().getDataInicial());
212
                parcelaConsulta.setDataFinal(getFluxoDeCaixa().getDataFinal());
213
                parcelaConsulta.setCentroDeCustos(getFluxoDeCaixa().getCentroDeCustos());
214
                parcelaConsulta.setCategoria(categoria);
215
                parcelaConsulta.setCategoriaPai(categoriaPai);
216
                parcelaConsulta.setTipoBusca(tipoConta);
217
                return parcelaService.consultarParcelas(parcelaConsulta);
218
        }
219
 
220
        public void prepararGerirOrcado(FluxoDeCaixaDTO fluxo, Categoria categoriaPai, Categoria categoria) {
221
                setOrcamento(orcamentoService.prepararGerirOrcado(fluxo, categoriaPai, categoria));
222
        }
223
 
224
        public void cadastrarOrcamento() {
225
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
226
                        public void execute() {
227
                                orcamentoService.atualizarOrcamento(getOrcamento());
228
                                consultarFluxoDeCaixa();
229
                                LancadorMensagem.lancarSucesso("ORÇAMENTO ATUALIZADO COM SUCESSO!");
230
                        }
231
                });
232
        }
233
 
234
}