Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

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