Subversion Repositories Integrator Subversion

Rev

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