Subversion Repositories Integrator Subversion

Rev

Details | 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.Table;
11
import javax.persistence.Transient;
12
import javax.validation.constraints.NotNull;
13
 
14
import org.hibernate.validator.constraints.NotEmpty;
15
 
16
import br.com.ec.domain.model.tipos.TipoPlanoVivo;
17
import br.com.ec.domain.model.tipos.TipoServicoVivo;
18
import br.edu.cesmac.core.interfaces.Alterar;
19
import br.edu.cesmac.core.interfaces.Cadastrar;
20
import br.edu.cesmac.core.util.StringUtil;
21
import br.edu.cesmac.core.util.VerificadorUtil;
22
 
23
@Entity
24
@Table(name="sec_produto_vivo", schema="sc_sec")
25
public class ProdutoVivo implements Serializable {
26
 
27
        private static final long serialVersionUID = 1L;
28
 
29
        private Long sequencial;
30
        private String codigoServico;
31
        private String descricao;
32
        private Double valorAssinatura;
33
        private Double valorComissao;
34
        private String detalhes;
35
        private String tipoServico;
36
        private String tipoPlano;
37
        private Boolean indicadorPortifolio;
38
 
39
        @Id
40
        @GeneratedValue(strategy = GenerationType.IDENTITY)
41
        @Column(name="seq_produto_vivo", nullable=false)
42
        public Long getSequencial() {
43
                return sequencial;
44
        }
45
        public void setSequencial(Long sequencial) {
46
                this.sequencial = sequencial;
47
        }
48
 
49
        @Column(name="cod_servico")
50
        public String getCodigoServico() {
51
                return codigoServico;
52
        }
53
        public void setCodigoServico(String codigoServico) {
54
                this.codigoServico = codigoServico;
55
        }
56
 
57
        @Column(name="dsc_produto")
58
        @NotNull(message = "Parâmetro obrigatório não preenchido: Descrição do produto", groups = {Cadastrar.class, Alterar.class})
59
        @NotEmpty(message = "Parâmetro obrigatório não preenchido: Descrição do produto", groups = {Cadastrar.class, Alterar.class})
60
        public String getDescricao() {
61
                return descricao;
62
        }
63
        public void setDescricao(String descricao) {
64
                this.descricao = StringUtil.setarUpperCase(descricao);
65
        }
66
 
67
        @Column(name="val_assinatura")
68
        @NotNull(message = "Parâmetro obrigatório não preenchido: Valor da Assinatura", groups = {Cadastrar.class, Alterar.class})
69
        public Double getValorAssinatura() {
70
                return valorAssinatura;
71
        }
72
        public void setValorAssinatura(Double valorAssinatura) {
73
                this.valorAssinatura = valorAssinatura;
74
        }
75
 
76
        @Column(name="val_comissao")
77
        public Double getValorComissao() {
78
                return valorComissao;
79
        }
80
        public void setValorComissao(Double valorComissao) {
81
                this.valorComissao = valorComissao;
82
        }
83
 
84
        @Column(name="dsc_detalhes")
85
        public String getDetalhes() {
86
                return detalhes;
87
        }
88
        public void setDetalhes(String detalhes) {
89
                this.detalhes = StringUtil.setarUpperCase(detalhes);
90
        }
91
 
92
        @Column(name="tip_servico")
93
        @NotNull(message = "Parâmetro obrigatório não preenchido: Tipo do serviço", groups = {Cadastrar.class, Alterar.class})
94
        public String getTipoServico() {
95
                return tipoServico;
96
        }
97
        public void setTipoServico(String tipoServico) {
98
                this.tipoServico = tipoServico;
99
        }
100
 
101
        @Column(name="tip_plano")
102
        @NotNull(message = "Parâmetro obrigatório não preenchido: Tipo do plano", groups = {Cadastrar.class, Alterar.class})
103
        public String getTipoPlano() {
104
                return tipoPlano;
105
        }
106
        public void setTipoPlano(String tipoPlano) {
107
                this.tipoPlano = tipoPlano;
108
        }
109
 
110
        @Column(name="ind_portifolio")
111
        public Boolean getIndicadorPortifolio() {
112
                return indicadorPortifolio;
113
        }
114
        public void setIndicadorPortifolio(Boolean indicadorPortifolio) {
115
                this.indicadorPortifolio = indicadorPortifolio;
116
        }
117
 
118
        /***************************************************************/
119
 
120
        @Transient
121
        public String getDescricaoDoTipoServico() {
122
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoServico())? TipoServicoVivo.parse(getTipoServico()).getDescricao() : null;
123
        }
124
 
125
        @Transient
126
        public String getDescricaoDoTipoPlano() {
127
                return VerificadorUtil.naoEstaNuloOuVazio(getTipoPlano())? TipoPlanoVivo.parse(getTipoPlano()).getDescricao() : null;
128
        }
129
 
130
        @Transient
131
        public String getDescricaoCompleta() {
132
                return getDescricaoDoTipoServico() + " - " + getDescricaoDoTipoPlano() + " - " + getDescricao();
133
        }
134
 
135
        @Override
136
        public int hashCode() {
137
                final int prime = 31;
138
                int result = 1;
139
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
140
                return result;
141
        }
142
 
143
        @Override
144
        public boolean equals(Object obj) {
145
                if (this == obj)
146
                        return true;
147
                if (obj == null)
148
                        return false;
149
                if (getClass() != obj.getClass())
150
                        return false;
151
                ProdutoVivo other = (ProdutoVivo) obj;
152
                if (sequencial == null) {
153
                        if (other.sequencial != null)
154
                                return false;
155
                } else if (!sequencial.equals(other.sequencial))
156
                        return false;
157
                return true;
158
        }
159
 
160
}