Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
507 blopes 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
import java.util.Date;
5
 
6
import javax.persistence.Column;
7
import javax.persistence.EmbeddedId;
8
import javax.persistence.Entity;
9
import javax.persistence.JoinColumn;
10
import javax.persistence.ManyToOne;
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_produto_loja", schema="sc_sec")
23
public class ProdutoLoja implements Serializable, Identidade {
24
 
25
        private static final long serialVersionUID = 1L;
26
 
27
        private ProdutoLojaId produtoLojaId;
28
        private Produto produto;
29
        private Loja loja;
30
        private Integer quantidadeEstoque;
31
        private Integer quantidadeEstoqueContagem;
32
//      private Integer quantidadeEstoqueUltimaContagem;
33
        private Date dataContagem;
34
        private Date dataContagemPreparacao;
35
        private Usuario usuarioUltimaContagem;
36
        private Usuario usuarioUltimaContagemPreparacao;
37
        private String localizacao;
38
        private Boolean indicadorContagemSolicitada = false;
543 blopes 39
        private Boolean retirarTransferenciaAutomatica;
507 blopes 40
 
41
        public ProdutoLoja() {
42
                this.produtoLojaId = new ProdutoLojaId();
43
        }
44
 
45
        public ProdutoLoja(ProdutoLojaId produtoLojaId) {
46
                this.produtoLojaId = produtoLojaId;
47
        }
48
 
49
        public ProdutoLoja(Produto produto, Loja loja) {
50
                produtoLojaId = new ProdutoLojaId();
51
                setProduto(produto);
52
                setLoja(loja);
53
        }
54
 
55
        @Override
56
        @Transient
57
        public Object getId() {
58
                return getProdutoLojaId();
59
        }
60
        @Override
61
        public void setId(Object id) {
62
                this.produtoLojaId = (ProdutoLojaId) id;
63
        }
64
 
65
        @EmbeddedId
66
        public ProdutoLojaId getProdutoLojaId() {
67
                return produtoLojaId;
68
        }
69
        public void setProdutoLojaId(ProdutoLojaId produtoLojaId) {
70
                this.produtoLojaId = produtoLojaId;
71
        }
72
 
73
        @ManyToOne
74
        @ForeignKey(name="fk_produtoloja_produto")
75
        @JoinColumn(name = "seq_produto", insertable=false, updatable=false, nullable = false)
76
        public Produto getProduto() {
77
                return produto;
78
        }
79
        public void setProduto(Produto produto) {
80
                if (VerificadorUtil.naoEstaNulo(produto)) {
81
                        produtoLojaId.setSequencialProduto(produto.getSequencial());
82
                }
83
                this.produto = produto;
84
        }
85
 
86
        @ManyToOne
87
        @ForeignKey(name="fk_produtoloja_loja")
88
        @JoinColumn(name = "seq_loja", insertable=false, updatable=false, nullable = false)
89
        public Loja getLoja() {
90
                return loja;
91
        }
92
        public void setLoja(Loja loja) {
93
                if (VerificadorUtil.naoEstaNulo(loja)) {
94
                        produtoLojaId.setSequencialLoja(loja.getSequencial());
95
                }
96
                this.loja = loja;
97
        }
98
 
99
        @Column(name="qtd_estoque")
100
        public Integer getQuantidadeEstoque() {
101
                return quantidadeEstoque;
102
        }
103
        public void setQuantidadeEstoque(Integer quantidadeEstoque) {
104
                this.quantidadeEstoque = quantidadeEstoque;
105
        }
106
 
107
        @Column(name="qtd_estoque_contagem")
108
        public Integer getQuantidadeEstoqueContagem() {
109
                return quantidadeEstoqueContagem;
110
        }
111
        public void setQuantidadeEstoqueContagem(Integer quantidadeEstoqueContagem) {
112
                this.quantidadeEstoqueContagem = quantidadeEstoqueContagem;
113
        }
114
 
115
        @Column(name="dat_contagem")
116
        public Date getDataContagem() {
117
                return dataContagem;
118
        }
119
        public void setDataContagem(Date dataContagem) {
120
                this.dataContagem = dataContagem;
121
        }
122
 
123
        @Column(name="dth_contagem_preparacao")
124
        public Date getDataContagemPreparacao() {
125
                return dataContagemPreparacao;
126
        }
127
        public void setDataContagemPreparacao(Date dataContagemPreparacao) {
128
                this.dataContagemPreparacao = dataContagemPreparacao;
129
        }
130
 
131
        @ManyToOne
132
        @ForeignKey(name="fk_produtoloja_usuario")
133
        @JoinColumn(name = "seq_usuario_contagem", nullable = false)
134
        public Usuario getUsuarioUltimaContagem() {
135
                return usuarioUltimaContagem;
136
        }
137
        public void setUsuarioUltimaContagem(Usuario usuarioUltimaContagem) {
138
                this.usuarioUltimaContagem = usuarioUltimaContagem;
139
        }
140
 
141
        @ManyToOne
142
        @ForeignKey(name="fk_produtoloja_usuariopreparacao")
143
        @JoinColumn(name = "seq_usuario_contagem_preparacao", nullable = false)
144
        public Usuario getUsuarioUltimaContagemPreparacao() {
145
                return usuarioUltimaContagemPreparacao;
146
        }
147
        public void setUsuarioUltimaContagemPreparacao(Usuario usuarioUltimaContagemPreparacao) {
148
                this.usuarioUltimaContagemPreparacao = usuarioUltimaContagemPreparacao;
149
        }
150
 
151
        @Column(name="dsc_localizacao")
152
        @Size(max = 20, message = "Limite de caracteres ultrapassado: Localização")
153
        public String getLocalizacao() {
154
                return localizacao;
155
        }
156
        public void setLocalizacao(String localizacao) {
157
                this.localizacao = StringUtil.setarUpperCaseComTrim(localizacao);
158
        }
159
 
160
        @Column(name="ind_contagem_solicitada")
161
        public Boolean getIndicadorContagemSolicitada() {
162
                return indicadorContagemSolicitada;
163
        }
164
        public void setIndicadorContagemSolicitada(Boolean indicadorContagemSolicitada) {
165
                this.indicadorContagemSolicitada = indicadorContagemSolicitada;
166
        }
167
 
543 blopes 168
        @Column(name="ind_retirar_transferencia_auto")
169
        public Boolean getRetirarTransferenciaAutomatica() {
170
                return retirarTransferenciaAutomatica;
171
        }
172
        public void setRetirarTransferenciaAutomatica(Boolean retirarTransferenciaAutomatica) {
173
                this.retirarTransferenciaAutomatica = retirarTransferenciaAutomatica;
174
        }
175
 
507 blopes 176
        @Transient
177
        public Long getSequencialDoProduto() {
178
                return VerificadorUtil.naoEstaNulo(produto)? produto.getSequencial() : null;
179
        }
180
 
181
        @Transient
182
        public Long getSequencialDaLoja() {
183
                return VerificadorUtil.naoEstaNulo(loja)? loja.getSequencial() : null;
184
        }
185
 
186
        @Transient
187
        public Modelo getModeloDoProduto() {
188
                return VerificadorUtil.naoEstaNulo(produto)? VerificadorUtil.naoEstaNulo(produto.getModelo())? produto.getModelo() : null : null;
189
        }
190
 
191
        @Transient
192
        public String getNomeDoUsuarioUltimaContagem() {
193
                return VerificadorUtil.naoEstaNulo(getUsuarioUltimaContagem())? getUsuarioUltimaContagem().getNomeDaPessoa() : null;
194
        }
195
 
196
        @Transient
197
        public String getNomeDoUsuarioUltimaContagemPreparacao() {
198
                return VerificadorUtil.naoEstaNulo(getUsuarioUltimaContagemPreparacao())? getUsuarioUltimaContagemPreparacao().getNomeDaPessoa() : null;
199
        }
200
 
201
        @Transient
202
        public Boolean contagemFoiIniciada() {
203
                return getDataContagemPreparacao().after(getDataContagem());
204
        }
205
 
206
        @Override
207
        public int hashCode() {
208
                final int prime = 31;
209
                int result = 1;
210
                result = prime * result + ((produtoLojaId == null) ? 0 : produtoLojaId.hashCode());
211
                return result;
212
        }
213
 
214
        @Override
215
        public boolean equals(Object obj) {
216
                if (this == obj)
217
                        return true;
218
                if (obj == null)
219
                        return false;
220
                if (getClass() != obj.getClass())
221
                        return false;
222
                ProdutoLoja other = (ProdutoLoja) obj;
223
                if (produtoLojaId == null) {
224
                        if (other.produtoLojaId != null)
225
                                return false;
226
                } else if (!produtoLojaId.equals(other.produtoLojaId))
227
                        return false;
228
                return true;
229
        }
230
 
231
}