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.Entity;
7
import javax.persistence.GeneratedValue;
8
import javax.persistence.GenerationType;
9
import javax.persistence.Id;
10
import javax.persistence.JoinColumn;
11
import javax.persistence.ManyToOne;
12
import javax.persistence.Table;
13
import javax.persistence.Transient;
14
 
15
import org.hibernate.annotations.ForeignKey;
16
 
17
import br.com.ec.domain.model.tipos.TipoConta;
18
import br.com.ec.domain.model.tipos.TipoFrequencia;
19
import br.edu.cesmac.core.util.StringUtil;
20
import br.edu.cesmac.core.util.VerificadorUtil;
21
 
22
@Entity
23
@Table(name="sec_conta", schema="sc_sec")
24
public class Conta implements Serializable {
25
 
26
        private static final long serialVersionUID = 1L;
27
 
28
        private Long sequencial;
29
        private Categoria categoria;
30
        private Venda venda;
31
        private Pessoa pessoa;
32
        private Loja loja;
33
        private ContaFormaPagamento formaDePagamento;
34
 
35
        private String tipoFrequencia;
36
        private String tipoConta;
37
        private String observacao;
38
        private Boolean indicadorAtivo;
39
 
40
        private Compra compra;
41
 
42
        public Conta() {}
43
 
44
        public Conta(String tipoConta) {
45
                this.tipoConta = tipoConta;
46
        }
47
 
48
        @Id
49
        @GeneratedValue(strategy = GenerationType.IDENTITY)
50
        @Column(name="seq_conta", nullable=false)
51
        public Long getSequencial() {
52
                return sequencial;
53
        }
54
        public void setSequencial(Long sequencial) {
55
                this.sequencial = sequencial;
56
        }
57
 
58
        @ManyToOne
59
        @ForeignKey(name = "fk_conta_categoria")
60
        @JoinColumn(name="seq_categoria", referencedColumnName="seq_categoria", nullable=true)
61
        public Categoria getCategoria() {
62
                return categoria;
63
        }
64
        public void setCategoria(Categoria categoria) {
65
                this.categoria = categoria;
66
        }
67
 
68
        @ManyToOne
69
        @ForeignKey(name = "fk_conta_venda")
70
        @JoinColumn(name="seq_venda", referencedColumnName="seq_venda", nullable=true)
71
        public Venda getVenda() {
72
                return venda;
73
        }
74
        public void setVenda(Venda venda) {
75
                this.venda = venda;
76
        }
77
 
78
        @ManyToOne
79
        @ForeignKey(name="fk_conta_pessoa")
80
        @JoinColumn(name="seq_pessoa", referencedColumnName="seq_pessoa", nullable=true)
81
        public Pessoa getPessoa() {
82
                return pessoa;
83
        }
84
        public void setPessoa(Pessoa pessoa) {
85
                this.pessoa = pessoa;
86
        }
87
 
88
        @ManyToOne
89
        @ForeignKey(name="fk_conta_loja")
90
        @JoinColumn(name="seq_loja", referencedColumnName="seq_loja", nullable=true)
91
        public Loja getLoja() {
92
                return loja;
93
        }
94
        public void setLoja(Loja loja) {
95
                this.loja = loja;
96
        }
97
 
98
        @ManyToOne
99
        @ForeignKey(name="fk_conta_contaformapag")
100
        @JoinColumn(name="seq_conta_forma_pagamento", referencedColumnName="seq_conta_forma_pagamento", nullable=true)
101
        public ContaFormaPagamento getFormaDePagamento() {
102
                return formaDePagamento;
103
        }
104
        public void setFormaDePagamento(ContaFormaPagamento formaDePagamento) {
105
                this.formaDePagamento = formaDePagamento;
106
        }
107
 
108
        @Column(name="tip_frequencia")
109
        public String getTipoFrequencia() {
110
                return tipoFrequencia;
111
        }
112
        public void setTipoFrequencia(String tipoFrequencia) {
113
                this.tipoFrequencia = tipoFrequencia;
114
        }
115
 
116
        @Transient
117
        public String getTipoFrequenciaDescricao() {
118
                return TipoFrequencia.parse(getTipoFrequencia()).getDescricao();
119
        }
120
 
121
        @Column(name="tip_conta")
122
        public String getTipoConta() {
123
                return tipoConta;
124
        }
125
        public void setTipoConta(String tipoConta) {
126
                this.tipoConta = tipoConta;
127
        }
128
 
129
        @Transient
130
        public String getTipoContaDescricao() {
131
                return TipoConta.parse(getTipoConta()).getDescricao();
132
        }
133
 
134
        @Column(name="dsc_observacao")
135
        public String getObservacao() {
136
                return observacao;
137
        }
138
        public void setObservacao(String observacao) {
139
                this.observacao = StringUtil.setarUpperCase(observacao);
140
        }
141
 
142
        @Column(name="ind_ativo", nullable=false)
143
        public Boolean getIndicadorAtivo() {
144
                return indicadorAtivo;
145
        }
146
        public void setIndicadorAtivo(Boolean indicadorAtivo) {
147
                this.indicadorAtivo = indicadorAtivo;
148
        }
149
 
150
        @Transient
151
        public Compra getCompra() {
152
                return compra;
153
        }
154
        public void setCompra(Compra compra) {
155
                this.compra = compra;
156
        }
157
 
158
        @Override
159
        public int hashCode() {
160
                final int prime = 31;
161
                int result = 1;
162
                result = prime * result + ((sequencial == null) ? 0 : sequencial.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
                Conta other = (Conta) obj;
175
                if (sequencial == null) {
176
                        if (other.sequencial != null)
177
                                return false;
178
                } else if (!sequencial.equals(other.sequencial))
179
                        return false;
180
                return true;
181
        }
182
 
183
        @Transient
184
        public Boolean ehContaAPagar() {
185
                return VerificadorUtil.naoEstaNulo(getTipoConta())? TipoConta.CONTA_A_PAGAR.getValor().equals(getTipoConta()) : false;
186
        }
187
 
188
        @Transient
189
        public Boolean ehContaAReceber() {
190
                return VerificadorUtil.naoEstaNulo(getTipoConta())? TipoConta.CONTA_A_RECEBER.getValor().equals(getTipoConta()) : false;
191
        }
192
 
193
        @Transient
194
        public Long getSequencialDaVenda() {
195
                return VerificadorUtil.naoEstaNulo(getVenda())? getVenda().getSequencial() : null;
196
        }
197
 
198
        @Transient
199
        public Boolean formaDePagamentoEhDebito() {
200
                return VerificadorUtil.naoEstaNulo(getFormaDePagamento())? getFormaDePagamento().formaDePagamentoEhDebito() : false;
201
        }
202
 
203
        @Transient
204
        public Boolean formaDePagamentoEhCredito() {
205
                return VerificadorUtil.naoEstaNulo(getFormaDePagamento())? getFormaDePagamento().formaDePagamentoEhCredito() : false;
206
        }
207
 
208
}