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.NotNull;
14
import javax.validation.constraints.Size;
15
 
16
import org.hibernate.annotations.ForeignKey;
17
 
195 espaco 18
import br.com.ec.core.generic.identidade.Identidade;
19
import br.com.ec.core.interfaces.Alterar;
20
import br.com.ec.core.interfaces.Cadastrar;
21
import br.com.ec.core.util.VerificadorUtil;
106 espaco 22
 
23
@Entity
24
@Table(name="sec_transferencia_produto", schema="sc_sec")
25
public class TransferenciaProduto implements Serializable, Identidade {
26
 
27
        private static final long serialVersionUID = 1L;
28
 
29
        private TransferenciaProdutoId transferenciaProdutoId;
30
        private Transferencia transferencia;
31
        private Produto produto;
32
        private Usuario usuarioSaida;
33
        private Usuario usuarioEntrada;
34
        private Integer quantidadeTransferir;
35
        private Boolean indicadorRecebido;
36
        private String observacao;
37
 
38
        public TransferenciaProduto() {
39
                this.transferenciaProdutoId = new TransferenciaProdutoId();
40
        }
41
 
42
        public TransferenciaProduto(TransferenciaProdutoId transferenciaProdutoId) {
43
                this.transferenciaProdutoId = transferenciaProdutoId;
44
        }
45
 
46
        public TransferenciaProduto(Produto produto, Loja loja) {
47
                transferenciaProdutoId = new TransferenciaProdutoId();
48
                setTransferencia(transferencia);
49
                setProduto(produto);
50
        }
51
 
52
        public TransferenciaProduto(Long sequencialProduto, Long sequencialTransferencia) {
53
                transferenciaProdutoId = new TransferenciaProdutoId();
54
                transferenciaProdutoId.setSequencialProduto(sequencialProduto);
55
                transferenciaProdutoId.setSequencialTransferencia(sequencialTransferencia);
56
        }
57
 
58
        @Override
59
        @Transient
60
        public Object getId() {
61
                return getTransferenciaProdutoId();
62
        }
63
        @Override
64
        public void setId(Object id) {
65
                this.transferenciaProdutoId = (TransferenciaProdutoId) id;
66
        }
67
 
68
        @EmbeddedId
69
        public TransferenciaProdutoId getTransferenciaProdutoId() {
70
                return transferenciaProdutoId;
71
        }
72
        public void setTransferenciaProdutoId(TransferenciaProdutoId transferenciaProdutoId) {
73
                this.transferenciaProdutoId = transferenciaProdutoId;
74
        }
75
 
76
        @ManyToOne
77
        @ForeignKey(name="fk_transfproduto_transferencia")
78
        @MapsId(value="sequencialTransferencia")
79
        @JoinColumn(name = "seq_transferencia", referencedColumnName="seq_transferencia", insertable=false, updatable=false, nullable = false)
80
        public Transferencia getTransferencia() {
81
                return transferencia;
82
        }
83
        public void setTransferencia(Transferencia transferencia) {
84
                if (VerificadorUtil.naoEstaNulo(transferencia)) {
85
                        transferenciaProdutoId.setSequencialTransferencia(transferencia.getSequencial());
86
                }
87
                this.transferencia = transferencia;
88
        }
89
 
90
        @ManyToOne
91
        @ForeignKey(name="fk_transfproduto_produto")
92
        @JoinColumn(name = "seq_produto", insertable=false, updatable=false, nullable = false)
93
        public Produto getProduto() {
94
                return produto;
95
        }
96
        public void setProduto(Produto produto) {
97
                if (VerificadorUtil.naoEstaNulo(produto)) {
98
                        transferenciaProdutoId.setSequencialProduto(produto.getSequencial());
99
                }
100
                this.produto = produto;
101
        }
102
 
103
        @ManyToOne
104
        @ForeignKey(name="fk_transfproduto_usuairo_saida")
105
        @JoinColumn(name = "seq_usuario_saida", nullable = true)
106
        public Usuario getUsuarioSaida() {
107
                return usuarioSaida;
108
        }
109
        public void setUsuarioSaida(Usuario usuarioSaida) {
110
                this.usuarioSaida = usuarioSaida;
111
        }
112
 
113
        @ManyToOne
114
        @ForeignKey(name="fk_transfproduto_usuairo_entrada")
115
        @JoinColumn(name = "seq_usuario_entrada", nullable = true)
116
        public Usuario getUsuarioEntrada() {
117
                return usuarioEntrada;
118
        }
119
        public void setUsuarioEntrada(Usuario usuarioEntrada) {
120
                this.usuarioEntrada = usuarioEntrada;
121
        }
122
 
123
        @Column(name="qtd_transferir")
124
        @NotNull(message = "Parâmetro obrigatório não preenchido: Quantidade para transferência", groups = {Cadastrar.class, Alterar.class})
125
        public Integer getQuantidadeTransferir() {
126
                return quantidadeTransferir;
127
        }
128
        public void setQuantidadeTransferir(Integer quantidadeTransferir) {
129
                this.quantidadeTransferir = quantidadeTransferir;
130
        }
131
 
132
        @Column(name="ind_recebido")
133
        @NotNull(message = "Parâmetro obrigatório não preenchido: Indicador de Recebido", groups = {Cadastrar.class, Alterar.class})
134
        public Boolean getIndicadorRecebido() {
135
                return indicadorRecebido;
136
        }
137
        public void setIndicadorRecebido(Boolean indicadorRecebido) {
138
                this.indicadorRecebido = indicadorRecebido;
139
        }
140
 
141
        @Column(name="dsc_observacao")
142
        @Size(max = 200, message = "Limite de caracteres ultrapassado: Observação")
143
        public String getObservacao() {
144
                return observacao;
145
        }
146
        public void setObservacao(String observacao) {
147
                this.observacao = observacao;
148
        }
149
 
150
        @Transient
151
        public Long getSequencialDoTransferencia() {
152
                return VerificadorUtil.naoEstaNulo(transferencia)? transferencia.getSequencial() : null;
153
        }
154
 
155
        @Transient
156
        public Long getSequencialDoProduto() {
157
                return VerificadorUtil.naoEstaNulo(produto)? produto.getSequencial() : null;
158
        }
159
 
160
        @Override
161
        public int hashCode() {
162
                final int prime = 31;
163
                int result = 1;
164
                result = prime * result + ((transferenciaProdutoId == null) ? 0 : transferenciaProdutoId.hashCode());
165
                return result;
166
        }
167
 
168
        @Override
169
        public boolean equals(Object obj) {
170
                if (this == obj)
171
                        return true;
172
                if (obj == null)
173
                        return false;
174
                if (getClass() != obj.getClass())
175
                        return false;
176
                TransferenciaProduto other = (TransferenciaProduto) obj;
177
                if (transferenciaProdutoId == null) {
178
                        if (other.transferenciaProdutoId != null)
179
                                return false;
180
                } else if (!transferenciaProdutoId.equals(other.transferenciaProdutoId))
181
                        return false;
182
                return true;
183
        }
184
 
185
}