Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
 
5
import javax.persistence.Column;
6
import javax.persistence.EmbeddedId;
7
import javax.persistence.Entity;
8
import javax.persistence.JoinColumn;
9
import javax.persistence.ManyToOne;
10
import javax.persistence.MapsId;
11
import javax.persistence.Table;
12
import javax.persistence.Transient;
13
 
14
import org.hibernate.annotations.ForeignKey;
15
 
16
import br.edu.cesmac.core.generic.identidade.Identidade;
17
import br.edu.cesmac.core.util.StringUtil;
18
import br.edu.cesmac.core.util.VerificadorUtil;
19
 
20
@Entity
21
@Table(name="sec_avaliacao_loja", schema="sc_sec")
22
public class AvaliacaoLoja implements Serializable, Identidade {
23
 
24
        private static final long serialVersionUID = 1L;
25
 
26
        private AvaliacaoLojaId avaliacaoLojaId;
27
        private Loja loja;
28
        private Avaliacao avaliacao;
29
        private String observacao;
30
        private Double valorMetaMensal;
31
        private Double valorMargemContribuicao;
32
 
33
        private Double valorTotalVendido;
34
 
35
        public AvaliacaoLoja() {
36
                this.avaliacaoLojaId = new AvaliacaoLojaId();
37
        }
38
 
39
        public AvaliacaoLoja(AvaliacaoLojaId avalicaoLojaId) {
40
                this.avaliacaoLojaId = avalicaoLojaId;
41
        }
42
 
43
        public AvaliacaoLoja(Loja loja, Avaliacao avaliacao) {
44
                avaliacaoLojaId = new AvaliacaoLojaId();
45
                setAvaliacao(avaliacao);
46
                setLoja(loja);
47
        }
48
 
49
        @Override
50
        @Transient
51
        public Object getId() {
52
                return getAvaliacaoLojaId();
53
        }
54
        @Override
55
        public void setId(Object id) {
56
                this.avaliacaoLojaId = (AvaliacaoLojaId) id;
57
        }
58
 
59
        @EmbeddedId
60
        public AvaliacaoLojaId getAvaliacaoLojaId() {
61
                return avaliacaoLojaId;
62
        }
63
        public void setAvaliacaoLojaId(AvaliacaoLojaId avaliacaoLojaId) {
64
                this.avaliacaoLojaId = avaliacaoLojaId;
65
        }
66
 
67
        @ManyToOne
68
        @ForeignKey(name="fk_avalloja_avaliacao")
69
        @MapsId(value="sequencialAvaliacao")
70
        @JoinColumn(name = "seq_avaliacao", referencedColumnName="seq_avaliacao", insertable=false, updatable=false, nullable = false)
71
        public Avaliacao getAvaliacao() {
72
                return avaliacao;
73
        }
74
        public void setAvaliacao(Avaliacao avaliacao) {
75
                if (VerificadorUtil.naoEstaNulo(avaliacao)) {
76
                        avaliacaoLojaId.setSequencialAvaliacao(avaliacao.getSequencial());
77
                }
78
                this.avaliacao = avaliacao;
79
        }
80
 
81
        @ManyToOne
82
        @ForeignKey(name="fk_avalloja_loja")
83
        @MapsId(value="sequencialLoja")
84
        @JoinColumn(name = "seq_loja", referencedColumnName="seq_loja", insertable=false, updatable=false, nullable = false)
85
        public Loja getLoja() {
86
                return loja;
87
        }
88
        public void setLoja(Loja loja) {
89
                if (VerificadorUtil.naoEstaNulo(loja)) {
90
                        avaliacaoLojaId.setSequencialLoja(loja.getSequencial());
91
                }
92
                this.loja = loja;
93
        }
94
 
95
        @Column(name="dsc_observacao")
96
        public String getObservacao() {
97
                return observacao;
98
        }
99
        public void setObservacao(String observacao) {
100
                this.observacao = StringUtil.setarUpperCase(observacao);
101
        }
102
 
103
        @Column(name="val_meta_mensal")
104
        public Double getValorMetaMensal() {
105
                return valorMetaMensal;
106
        }
107
        public void setValorMetaMensal(Double valorMetaMensal) {
108
                this.valorMetaMensal = valorMetaMensal;
109
        }
110
 
111
        @Column(name="val_margem_contribuicao")
112
        public Double getValorMargemContribuicao() {
113
                return valorMargemContribuicao;
114
        }
115
        public void setValorMargemContribuicao(Double valorMargemContribuicao) {
116
                this.valorMargemContribuicao = valorMargemContribuicao;
117
        }
118
 
119
        @Transient
120
        public Double getValorTotalVendido() {
121
                return valorTotalVendido;
122
        }
123
        public void setValorTotalVendido(Double valorTotalVendido) {
124
                this.valorTotalVendido = valorTotalVendido;
125
        }
126
 
127
        @Override
128
        public int hashCode() {
129
                final int prime = 31;
130
                int result = 1;
131
                result = prime * result + ((avaliacaoLojaId == null) ? 0 : avaliacaoLojaId.hashCode());
132
                return result;
133
        }
134
 
135
        @Override
136
        public boolean equals(Object obj) {
137
                if (this == obj)
138
                        return true;
139
                if (obj == null)
140
                        return false;
141
                if (getClass() != obj.getClass())
142
                        return false;
143
                AvaliacaoLoja other = (AvaliacaoLoja) obj;
144
                if (avaliacaoLojaId == null) {
145
                        if (other.avaliacaoLojaId != null)
146
                                return false;
147
                } else if (!avaliacaoLojaId.equals(other.avaliacaoLojaId))
148
                        return false;
149
                return true;
150
        }
151
 
152
        @Transient
153
        public Long getSequencialDaAvaliacao() {
154
                return VerificadorUtil.naoEstaNulo(getAvaliacao())? getAvaliacao().getSequencial() : null;
155
        }
156
 
157
        @Transient
158
        public Long getSequencialDaVigencia() {
159
                return VerificadorUtil.naoEstaNulo(getAvaliacao())? getAvaliacao().getSequencialDaVigencia() : null;
160
        }
161
 
162
        @Transient
163
        public Long getSequencialDaLoja() {
164
                return VerificadorUtil.naoEstaNulo(getAvaliacaoLojaId())? getAvaliacaoLojaId().getSequencialLoja() : null;
165
        }
166
 
167
        @Transient
168
        public Double retornarPercentualRealizado(Double totalVendas) {
169
                return retornarPercentual(totalVendas, getValorMetaMensal());
170
        }
171
 
172
        @Transient
173
        public Double retornarPercentual(Double total, Double meta) {
174
                return VerificadorUtil.naoEstaNulo(total) && VerificadorUtil.naoEstaNulo(meta)? meta > new Double(0.0) ? total / meta : new Double(0.0) : new Double(0.0);
175
        }
176
 
177
}