Subversion Repositories Integrator Subversion

Rev

Rev 344 | Go to most recent revision | 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
107
        public static long getContaPix() {
349 espaco 108
                return ConstantesSEC.ContaBancaria.CONTA_BANCARIA_ITAU_ESPACOCASE_7L;
288 espaco 109
        }
110
 
291 espaco 111
        @Transient
344 espaco 112
        public static long getContaTransferencia() {
113
                return ConstantesSEC.ContaBancaria.CONTA_BANCARIA_NUBANK_ESPACOCASE_5L;
114
        }
115
 
116
        @Transient
291 espaco 117
        public static long getContaCasaDasCapas() {
344 espaco 118
                return ConstantesSEC.ContaBancaria.CONTA_BANCARIA_BRADESCO_CASADASCAPAS_4L;
291 espaco 119
        }
120
 
293 espaco 121
        @Transient
122
        public String getNomePessoa() {
123
                return VerificadorUtil.naoEstaNulo(getPessoa())? getPessoa().getNome() : "";
124
        }
125
 
126
        @Transient
127
        public String getCpfCnpjPessoa() {
128
                return VerificadorUtil.naoEstaNulo(getPessoa())? getPessoa().getCpfCnpjFormatado() : "";
129
        }
130
 
106 espaco 131
        @Override
132
        public int hashCode() {
133
                final int prime = 31;
134
                int result = 1;
135
                result = prime * result
136
                                + ((sequencial == null) ? 0 : sequencial.hashCode());
137
                return result;
138
        }
139
 
140
        @Override
141
        public boolean equals(Object obj) {
142
                if (this == obj)
143
                        return true;
144
                if (obj == null)
145
                        return false;
146
                if (getClass() != obj.getClass())
147
                        return false;
148
                ContaBancaria other = (ContaBancaria) obj;
149
                if (sequencial == null) {
150
                        if (other.sequencial != null)
151
                                return false;
152
                } else if (!sequencial.equals(other.sequencial))
153
                        return false;
154
                return true;
155
        }
156
 
157
}