Subversion Repositories Integrator Subversion

Rev

Rev 106 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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