Subversion Repositories Integrator Subversion

Rev

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