Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
296 espaco 1
package br.com.ec.domain.model;
2
 
3
import java.io.Serializable;
4
import java.util.Date;
5
 
6
import javax.persistence.Column;
7
import javax.persistence.Entity;
8
import javax.persistence.GeneratedValue;
9
import javax.persistence.GenerationType;
10
import javax.persistence.Id;
11
import javax.persistence.JoinColumn;
12
import javax.persistence.ManyToOne;
13
import javax.persistence.SequenceGenerator;
14
import javax.persistence.Table;
15
import javax.persistence.Transient;
16
import javax.validation.constraints.NotNull;
17
 
18
import org.hibernate.annotations.ForeignKey;
19
 
20
import br.com.ec.core.interfaces.Alterar;
21
import br.com.ec.core.interfaces.Cadastrar;
380 espaco 22
import br.com.ec.domain.dto.ExtratoBancoDTO;
296 espaco 23
import br.com.ec.domain.model.tipos.TipoExtratoBanco;
24
 
25
@Entity
26
@Table(name="sec_extrato_banco", schema="sc_sec")
27
public class ExtratoBanco implements Serializable {
28
 
29
        private static final long serialVersionUID = 1L;
30
        private static final long CONTA_CAIXA = 1L;
31
 
32
        private Long sequencial;
33
        private ContaBancaria contaBancaria;
380 espaco 34
        private String tipoExtratoBanco; // D - Débitos e C - Créditos e T - Transferências e X - PIX e P - Pagamento
296 espaco 35
        private Date dataLancamento;
377 espaco 36
        private String descricao;
296 espaco 37
        private Double valorTotal;
38
        private String observacao;
375 espaco 39
        private Boolean indicadorConciliado;
296 espaco 40
 
41
        public ExtratoBanco() {}
42
 
43
        public ExtratoBanco(Long sequencial) {
44
                this.sequencial = sequencial;
45
        }
46
 
380 espaco 47
        public ExtratoBanco(ExtratoBancoDTO extratoBancoDTO) {
48
                this.contaBancaria = new ContaBancaria(extratoBancoDTO.getContaBancariaDTO().getSequencial());
49
                this.tipoExtratoBanco = extratoBancoDTO.getTipoExtratoBanco();
50
                this.dataLancamento = extratoBancoDTO.getDataLancamento();
51
                this.descricao = extratoBancoDTO.getDescricao();
52
                this.valorTotal = extratoBancoDTO.getValorTotal();
53
                this.observacao = extratoBancoDTO.getObservacao();
54
                this.indicadorConciliado = extratoBancoDTO.getIndicadorConciliado();
55
        }
56
 
296 espaco 57
        @Id
58
        @SequenceGenerator(name = "sq_extratobanco")
59
        @GeneratedValue(strategy = GenerationType.IDENTITY)
60
        @Column(name="seq_extrato_banco", nullable=false)
61
        public Long getSequencial() {
62
                return sequencial;
63
        }
64
        public void setSequencial(Long sequencial) {
65
                this.sequencial = sequencial;
66
        }
67
 
68
        @ManyToOne
69
        @ForeignKey(name="fk_extratobanco_contabancaria")
70
        @JoinColumn(name = "seq_conta_bancaria", nullable=false)
71
        @NotNull(message="Obrigatório informar a conta bancária", groups={Cadastrar.class, Alterar.class})
72
        public ContaBancaria getContaBancaria() {
73
                return contaBancaria;
74
        }
75
        public void setContaBancaria(ContaBancaria contaBancaria) {
76
                this.contaBancaria = contaBancaria;
77
        }
78
 
79
        @Column(name="tip_extrato_banco", nullable=false)
80
        @NotNull(message="Obrigatório informar o tipo do extrato", groups={Cadastrar.class, Alterar.class})
81
        public String getTipoExtratoBanco() {
82
                return tipoExtratoBanco;
83
        }
84
        public void setTipoExtratoBanco(String tipoExtratoBanco) {
85
                this.tipoExtratoBanco = tipoExtratoBanco;
86
        }
87
 
88
        @Column(name="dat_lancamento", nullable=false)
89
        @NotNull(message="Obrigatório informar a data do lançamento", groups={Cadastrar.class, Alterar.class})
90
        public Date getDataLancamento() {
91
                return dataLancamento;
92
        }
93
        public void setDataLancamento(Date dataLancamento) {
94
                this.dataLancamento = dataLancamento;
95
        }
96
 
377 espaco 97
        @Column(name="dsc_extrato_banco")
98
        public String getDescricao() {
99
                return descricao;
100
        }
101
        public void setDescricao(String descricao) {
102
                this.descricao = descricao;
103
        }
104
 
105
        @Column(name="val_total", nullable=false)
106
        @NotNull(message="Obrigatório informar o valor total do extrato", groups={Cadastrar.class, Alterar.class})
107
        public Double getValorTotal() {
108
                return valorTotal;
109
        }
110
        public void setValorTotal(Double valorTotal) {
111
                this.valorTotal = valorTotal;
112
        }
113
 
296 espaco 114
        @Column(name="dsc_observacao")
115
        public String getObservacao() {
116
                return observacao;
117
        }
118
        public void setObservacao(String observacao) {
119
                this.observacao = observacao;
120
        }
121
 
375 espaco 122
        @Column(name="ind_conciliado", nullable=false)
123
        @NotNull(message="Obrigatório informar o indicador de conciliado", groups={Cadastrar.class, Alterar.class})
124
        public Boolean getIndicadorConciliado() {
125
                return indicadorConciliado;
126
        }
127
        public void setIndicadorConciliado(Boolean indicadorConciliado) {
128
                this.indicadorConciliado = indicadorConciliado;
129
        }
130
 
296 espaco 131
        @Transient
132
        public String getTipoExtratoBancoDescricao() {
133
                return TipoExtratoBanco.parse(getTipoExtratoBanco()).getDescricao();
134
        }
135
 
136
        @Transient
137
        public static long getContaCaixa() {
138
                return CONTA_CAIXA;
139
        }
140
 
141
        @Override
142
        public int hashCode() {
143
                final int prime = 31;
144
                int result = 1;
145
                result = prime * result
146
                                + ((sequencial == null) ? 0 : sequencial.hashCode());
147
                return result;
148
        }
149
 
150
        @Override
151
        public boolean equals(Object obj) {
152
                if (this == obj)
153
                        return true;
154
                if (obj == null)
155
                        return false;
156
                if (getClass() != obj.getClass())
157
                        return false;
158
                ExtratoBanco other = (ExtratoBanco) obj;
159
                if (sequencial == null) {
160
                        if (other.sequencial != null)
161
                                return false;
162
                } else if (!sequencial.equals(other.sequencial))
163
                        return false;
164
                return true;
165
        }
166
 
167
}