Subversion Repositories Integrator Subversion

Rev

Rev 259 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 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;
294 espaco 10
import javax.persistence.JoinColumn;
11
import javax.persistence.ManyToOne;
259 espaco 12
import javax.persistence.SequenceGenerator;
13
import javax.persistence.Table;
294 espaco 14
import javax.persistence.Transient;
259 espaco 15
import javax.validation.constraints.NotNull;
16
import javax.validation.constraints.Size;
17
 
294 espaco 18
import org.hibernate.annotations.ForeignKey;
259 espaco 19
import org.hibernate.validator.constraints.NotEmpty;
20
 
21
import br.com.ec.core.interfaces.Alterar;
22
import br.com.ec.core.interfaces.Cadastrar;
23
import br.com.ec.core.util.StringUtil;
294 espaco 24
import br.com.ec.domain.model.tipos.TipoContaBancaria;
259 espaco 25
 
26
@Entity
27
@Table(name="sec_conta_bancaria", schema="sc_sec")
28
public class ContaBancaria implements Serializable {
29
 
30
        private static final long serialVersionUID = 1L;
31
        private static final long CONTA_CAIXA = 1L;
32
 
33
        private Long sequencial;
34
        private String descricao;
294 espaco 35
        private Pessoa pessoa;
36
        private String tipoContaBancaria; // C - CAIXA (RECEBIMENTO EM: DINHEIRO E CUPONS) e B - BANCO
259 espaco 37
        private Boolean ativo;
38
 
39
        public ContaBancaria() {}
40
 
41
        public ContaBancaria(Long sequencial) {
42
                this.sequencial = sequencial;
43
        }
44
 
45
        @Id
46
        @SequenceGenerator(name = "sq_contabancaria")
47
        @GeneratedValue(strategy = GenerationType.IDENTITY)
48
        @Column(name="seq_conta_bancaria", nullable=false)
49
        public Long getSequencial() {
50
                return sequencial;
51
        }
52
        public void setSequencial(Long sequencial) {
53
                this.sequencial = sequencial;
54
        }
55
 
56
        @Column(name="dsc_descricao")
57
        @Size(max = 120, message = "Limite de caracteres ultrapassado: Descrição")
58
        @NotNull(message="Obrigatório informar a descrição", groups={Cadastrar.class, Alterar.class})
59
        @NotEmpty(message="Obrigatório informar a descrição", groups={Cadastrar.class, Alterar.class})
60
        public String getDescricao() {
61
                return descricao;
62
        }
63
        public void setDescricao(String descricao) {
64
                this.descricao = StringUtil.setarUpperCaseComTrim(descricao);
65
        }
66
 
294 espaco 67
        @ManyToOne
68
        @ForeignKey(name="fk_contabancaria_pessoa")
69
        @JoinColumn(name = "seq_pessoa", nullable=true)
70
        public Pessoa getPessoa() {
71
                return pessoa;
72
        }
73
        public void setPessoa(Pessoa pessoa) {
74
                this.pessoa = pessoa;
75
        }
76
 
77
        @Column(name="tip_conta_bancaria", nullable=false)
78
        @NotNull(message="Obrigatório informar o tipo da conta bancária", groups={Cadastrar.class, Alterar.class})
79
        public String getTipoContaBancaria() {
80
                return tipoContaBancaria;
81
        }
82
        public void setTipoContaBancaria(String tipoContaBancaria) {
83
                this.tipoContaBancaria = tipoContaBancaria;
84
        }
85
 
86
        @Transient
87
        public String getTipoContaBancariaDescricao() {
88
                return TipoContaBancaria.parse(getTipoContaBancaria()).getDescricao();
89
        }
90
 
259 espaco 91
        @Column(name="ind_ativo", nullable=false)
92
        public Boolean getAtivo() {
93
                return ativo;
94
        }
95
 
96
        public void setAtivo(Boolean ativo) {
97
                this.ativo = ativo;
98
        }
99
 
100
        @Transient
101
        public static long getContaCaixa() {
102
                return CONTA_CAIXA;
103
        }
104
 
105
        @Override
106
        public int hashCode() {
107
                final int prime = 31;
108
                int result = 1;
109
                result = prime * result
110
                                + ((sequencial == null) ? 0 : sequencial.hashCode());
111
                return result;
112
        }
113
 
114
        @Override
115
        public boolean equals(Object obj) {
116
                if (this == obj)
117
                        return true;
118
                if (obj == null)
119
                        return false;
120
                if (getClass() != obj.getClass())
121
                        return false;
122
                ContaBancaria other = (ContaBancaria) obj;
123
                if (sequencial == null) {
124
                        if (other.sequencial != null)
125
                                return false;
126
                } else if (!sequencial.equals(other.sequencial))
127
                        return false;
128
                return true;
129
        }
130
 
131
}