Subversion Repositories Integrator Subversion

Rev

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