Subversion Repositories Integrator Subversion

Rev

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

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