Subversion Repositories Integrator Subversion

Rev

Rev 182 | Details | Compare with Previous | 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.Date;
6
import java.util.List;
7
 
8
import javax.inject.Inject;
9
import javax.inject.Named;
10
 
11
import org.springframework.context.annotation.Scope;
12
 
13
import br.com.ec.domain.dto.FluxoDeCaixaDTO;
14
import br.com.ec.domain.dto.QuadroResumosDTO;
15
import br.com.ec.domain.model.AvaliacaoLoja;
16
import br.com.ec.domain.model.Loja;
17
import br.com.ec.domain.service.acompanhamento.AcompanhamentoService;
18
import br.com.ec.domain.service.avaliacaoloja.AvaliacaoLojaService;
19
import br.com.ec.domain.service.loja.LojaService;
20
import br.edu.cesmac.core.consulta.ParametrosConsulta;
21
import br.edu.cesmac.core.generic.GenericService;
22
import br.edu.cesmac.core.util.DataUtils;
23
import br.edu.cesmac.core.util.VerificadorUtil;
24
import br.edu.cesmac.web.generic.AbstractBean;
25
 
26
@Named
27
@Scope("view")
28
public class QuadroResumoBean extends AbstractBean<QuadroResumosDTO> implements Serializable {
29
 
30
        private static final long serialVersionUID = 1L;
31
 
32
        private Date dataInicial;
33
        private Date dataFinal;
34
 
35
        private FluxoDeCaixaDTO fluxoMatriz;
36
        private List<FluxoDeCaixaDTO> fluxosDeCaixa;
37
 
38
        private LojaService lojaService;
39
        private AcompanhamentoService acompanhamentoService;
40
        private AvaliacaoLojaService avaliacaoLojaService;
41
 
42
        @Inject
43
        public QuadroResumoBean(LojaService lojaService, AcompanhamentoService acompanhamentoService, AvaliacaoLojaService avaliacaoLojaService) {
44
                this.lojaService = lojaService;
45
                this.acompanhamentoService = acompanhamentoService;
46
                this.avaliacaoLojaService = avaliacaoLojaService;
47
        }
48
 
49
        @Override
50
        public void preCarregamento() {
51
                try {
52
                        if (VerificadorUtil.estaNulo(parametrosConsulta)) {
53
                                entidade = new QuadroResumosDTO();
54
                                parametrosConsulta = new ParametrosConsulta<QuadroResumosDTO>();
55
                                parametrosConsulta.setEntidade(entidade);
56
                        }
57
                        setDataInicial(DataUtils.getPrimeiroDiaDoMesAtual());
58
                        setDataFinal(DataUtils.getUltimoDiaDoMesAtual());
59
                        consultarQuadroResumos();
60
                } catch (Exception e) {
61
                        e.printStackTrace();
62
                }
63
        }
64
 
65
        @Override
66
        public GenericService<QuadroResumosDTO> getService() {
67
                return null;
68
        }
69
 
70
        @Override
71
        public void limparEntidade() {
72
                setEntidade(new QuadroResumosDTO());
73
        }
74
 
75
        @Override
76
        public QuadroResumosDTO getEntidade() {
77
                return entidade;
78
        }
79
 
80
        @Override
81
        public QuadroResumosDTO getId() {
82
                return getEntidade();
83
        }
84
 
85
        public Date getDataInicial() {
86
                return dataInicial;
87
        }
88
        public void setDataInicial(Date dataInicial) {
89
                this.dataInicial = dataInicial;
90
        }
91
 
92
        public Date getDataFinal() {
93
                return dataFinal;
94
        }
95
        public void setDataFinal(Date dataFinal) {
96
                this.dataFinal = dataFinal;
97
        }
98
 
99
        public FluxoDeCaixaDTO getFluxoMatriz() {
100
                return fluxoMatriz;
101
        }
102
        public void setFluxoMatriz(FluxoDeCaixaDTO fluxoMatriz) {
103
                this.fluxoMatriz = fluxoMatriz;
104
        }
105
 
106
        public List<FluxoDeCaixaDTO> getFluxosDeCaixa() {
107
                return fluxosDeCaixa;
108
        }
109
        public void setFluxosDeCaixa(List<FluxoDeCaixaDTO> fluxosDeCaixa) {
110
                this.fluxosDeCaixa = fluxosDeCaixa;
111
        }
112
 
113
        /********************************************************************/
114
 
115
        public void consultarQuadroResumos() {
116
                fluxoMatriz = new FluxoDeCaixaDTO();
117
                fluxoMatriz.setMatriz(true);
118
                fluxoMatriz.setDataInicial(getDataInicial());
119
                fluxoMatriz.setDataFinal(getDataFinal());
120
                fluxoMatriz = acompanhamentoService.consultarFluxoDeCaixa(fluxoMatriz);
121
 
122
                fluxosDeCaixa = new ArrayList<FluxoDeCaixaDTO>();
123
                List<Loja> lojasAtivas = lojaService.listarLojasAtivas();
124
                for (Loja lojaAtiva : lojasAtivas) {
125
                        FluxoDeCaixaDTO fluxoCaixa = new FluxoDeCaixaDTO();
126
                        fluxoCaixa.setCentroDeCustos(lojaAtiva);
127
                        fluxoCaixa.setDataInicial(getDataInicial());
128
                        fluxoCaixa.setDataFinal(getDataFinal());
129
                        fluxoCaixa.setValorMetaMensal(0.0);
130
                        fluxoCaixa.setValorMargemContribuicao(0.0);
131
 
132
                        AvaliacaoLoja avaliacaoLoja = avaliacaoLojaService.consultarAvaliacaoLojaPelaData(lojaAtiva, getDataFinal());
133
                        if (VerificadorUtil.naoEstaNulo(avaliacaoLoja)) {
134
                                if (VerificadorUtil.naoEstaNulo(avaliacaoLoja.getValorMetaMensal())) {
135
                                        fluxoCaixa.setValorMetaMensal(avaliacaoLoja.getValorMetaMensal());
136
                                }
137
                                if (VerificadorUtil.naoEstaNulo(avaliacaoLoja.getValorMargemContribuicao())) {
138
                                        fluxoCaixa.setValorMargemContribuicao(avaliacaoLoja.getValorMargemContribuicao());
139
                                }
140
                        }
141
                        fluxoCaixa = acompanhamentoService.consultarFluxoDeCaixa(fluxoCaixa);
142
                        fluxosDeCaixa.add(fluxoCaixa);
143
                }
144
        }
145
 
146
        public Double getValorTotalFluxo() {
147
                Double totalFluxo = new Double(0);
148
                for (FluxoDeCaixaDTO fluxoCaixa : fluxosDeCaixa) {
149
                        if (VerificadorUtil.naoEstaNulo(fluxoCaixa.getValorTotalFluxo())) {
150
                                totalFluxo = totalFluxo + fluxoCaixa.getValorTotalFluxo();
151
                        }
152
                }
153
                return totalFluxo;
154
        }
155
 
156
        public Double getValorTotalMargemContribuicao() {
157
                Double totalMargemContribuicao = new Double(0);
158
                for (FluxoDeCaixaDTO fluxoCaixa : fluxosDeCaixa) {
159
                        if (VerificadorUtil.naoEstaNulo(fluxoCaixa.getCentroDeCustos())) {
160
                                totalMargemContribuicao = totalMargemContribuicao + fluxoCaixa.getValorMargemContribuicao();
161
                        }
162
                }
163
                return totalMargemContribuicao;
164
        }
165
 
166
        public Double calcularValorTotalMargemContribuicao() {
167
                Double totalMargemContribuicao = new Double(0);
168
                for (FluxoDeCaixaDTO fluxoCaixa : fluxosDeCaixa) {
169
                        totalMargemContribuicao = totalMargemContribuicao + fluxoCaixa.calcularValorMargemContribuicao(fluxoMatriz.getValorTotalFluxo());
170
                }
171
                return totalMargemContribuicao;
172
        }
173
 
174
        public Double calcularValorTotalFluxoComMargemContribuicao() {
175
                Double totalFluxoComMargemContribuicao = new Double(0);
176
                for (FluxoDeCaixaDTO fluxoCaixa : fluxosDeCaixa) {
177
                        totalFluxoComMargemContribuicao = totalFluxoComMargemContribuicao + fluxoCaixa.calcularValorFluxoComMargemContribuicao(fluxoMatriz.getValorTotalFluxo());
178
                }
179
                return totalFluxoComMargemContribuicao;
180
        }
181
 
182
        public Double getValorTotalProdutosUtilizados() {
183
                Double totalProdutosUtilizados = new Double(0);
184
                for (FluxoDeCaixaDTO fluxoCaixa : fluxosDeCaixa) {
185
                        if (VerificadorUtil.naoEstaNulo(fluxoCaixa.getValorTotalProdutosUtilizados())) {
186
                                totalProdutosUtilizados = totalProdutosUtilizados + fluxoCaixa.getValorTotalProdutosUtilizados();
187
                        }
188
                }
189
                return totalProdutosUtilizados;
190
        }
191
 
192
}