Subversion Repositories Integrator Subversion

Rev

Rev 195 | Go to most recent revision | Details | 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.SequenceGenerator;
12
import javax.persistence.Table;
13
import javax.persistence.Transient;
14
import javax.validation.constraints.Size;
15
 
16
import org.hibernate.annotations.ForeignKey;
17
 
18
import br.edu.cesmac.core.generic.identidade.Identidade;
19
import br.edu.cesmac.core.util.StringUtil;
20
import br.edu.cesmac.core.util.VerificadorUtil;
21
 
22
@Entity
23
@Table(name="sec_avaliacao_loja", schema="sc_sec")
24
public class AvaliacaoLoja implements Serializable, Identidade {
25
 
26
        private static final long serialVersionUID = 1L;
27
 
28
        private AvaliacaoLojaId avaliacaoLojaId;
29
        private Loja loja;
30
        private Avaliacao avaliacao;
31
        private String observacao;
32
        private Double valorMetaMensal;
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
 
114
        @Column(name="val_margem_contribuicao")
115
        public Double getValorMargemContribuicao() {
116
                return valorMargemContribuicao;
117
        }
118
        public void setValorMargemContribuicao(Double valorMargemContribuicao) {
119
                this.valorMargemContribuicao = valorMargemContribuicao;
120
        }
121
 
122
        @Transient
123
        public Double getValorTotalVendido() {
124
                return valorTotalVendido;
125
        }
126
        public void setValorTotalVendido(Double valorTotalVendido) {
127
                this.valorTotalVendido = valorTotalVendido;
128
        }
129
 
130
        @Override
131
        public int hashCode() {
132
                final int prime = 31;
133
                int result = 1;
134
                result = prime * result + ((avaliacaoLojaId == null) ? 0 : avaliacaoLojaId.hashCode());
135
                return result;
136
        }
137
 
138
        @Override
139
        public boolean equals(Object obj) {
140
                if (this == obj)
141
                        return true;
142
                if (obj == null)
143
                        return false;
144
                if (getClass() != obj.getClass())
145
                        return false;
146
                AvaliacaoLoja other = (AvaliacaoLoja) obj;
147
                if (avaliacaoLojaId == null) {
148
                        if (other.avaliacaoLojaId != null)
149
                                return false;
150
                } else if (!avaliacaoLojaId.equals(other.avaliacaoLojaId))
151
                        return false;
152
                return true;
153
        }
154
 
155
        @Transient
156
        public Long getSequencialDaAvaliacao() {
157
                return VerificadorUtil.naoEstaNulo(getAvaliacao())? getAvaliacao().getSequencial() : null;
158
        }
159
 
160
        @Transient
161
        public Long getSequencialDaVigencia() {
162
                return VerificadorUtil.naoEstaNulo(getAvaliacao())? getAvaliacao().getSequencialDaVigencia() : null;
163
        }
164
 
165
        @Transient
166
        public Long getSequencialDaLoja() {
167
                return VerificadorUtil.naoEstaNulo(getAvaliacaoLojaId())? getAvaliacaoLojaId().getSequencialLoja() : null;
168
        }
169
 
170
        @Transient
171
        public Double retornarPercentualRealizado(Double totalVendas) {
172
                return retornarPercentual(totalVendas, getValorMetaMensal());
173
        }
174
 
175
        @Transient
176
        public Double retornarPercentual(Double total, Double meta) {
177
                return VerificadorUtil.naoEstaNulo(total) && VerificadorUtil.naoEstaNulo(meta)? meta > new Double(0.0) ? total / meta : new Double(0.0) : new Double(0.0);
178
        }
179
 
180
}