Subversion Repositories Integrator Subversion

Rev

Rev 106 | Rev 144 | 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
import java.util.regex.Matcher;
5
import java.util.regex.Pattern;
6
 
7
import javax.persistence.Column;
8
import javax.persistence.Entity;
9
import javax.persistence.GeneratedValue;
10
import javax.persistence.GenerationType;
11
import javax.persistence.Id;
12
import javax.persistence.JoinColumn;
13
import javax.persistence.OneToOne;
14
import javax.persistence.SequenceGenerator;
15
import javax.persistence.Table;
16
import javax.persistence.Transient;
17
import javax.validation.constraints.NotNull;
18
 
19
import org.hibernate.annotations.ForeignKey;
20
 
21
import br.edu.cesmac.core.interfaces.Alterar;
22
import br.edu.cesmac.core.interfaces.Cadastrar;
23
import br.edu.cesmac.core.util.VerificadorUtil;
24
 
25
@Entity
26
@Table(name="sec_fornecedor", schema="sc_sec")
27
public class Fornecedor implements Serializable {
28
 
29
        private static final long serialVersionUID = 1L;
30
 
31
        private Long sequencial;
32
        private Pessoa pessoa;
33
        private Boolean emiteNotaFiscal;
140 espaco 34
        private Boolean sujeitoST;
106 espaco 35
        private Boolean ativo;
36
 
37
        public Fornecedor() {
38
                setEmiteNotaFiscal(false);
39
                setAtivo(true);
40
        }
41
 
42
        @Id
43
        @SequenceGenerator(name = "sq_fornecedor")
44
        @GeneratedValue(strategy=GenerationType.IDENTITY)
45
        @Column(name="seq_fornecedor", nullable=false)
46
        public Long getSequencial() {
47
                return sequencial;
48
        }
49
        public void setSequencial(Long sequencial) {
50
                this.sequencial = sequencial;
51
        }
52
 
53
        @OneToOne
54
        @ForeignKey(name="fk_fornecedorproduto_pessoa")
55
        @JoinColumn(name="seq_pessoa", referencedColumnName="seq_pessoa")
56
        @NotNull(message="Obrigatório informar a pessoa", groups={Cadastrar.class, Alterar.class})
57
        public Pessoa getPessoa() {
58
                return pessoa;
59
        }
60
        public void setPessoa(Pessoa pessoa) {
61
                this.pessoa = pessoa;
62
        }
63
 
64
        @Column(name="ind_emite_notafiscal", nullable=false)
65
        @NotNull(message="Obrigatório informar a indicação de emissão de nota fiscal", groups={Cadastrar.class, Alterar.class})
66
        public Boolean getEmiteNotaFiscal() {
67
                return emiteNotaFiscal;
68
        }
69
        public void setEmiteNotaFiscal(Boolean emiteNotaFiscal) {
70
                this.emiteNotaFiscal = emiteNotaFiscal;
71
        }
72
 
140 espaco 73
        @Column(name="ind_sujeito_st", nullable=false)
74
        @NotNull(message="Obrigatório informar a indicação de substituição tributária", groups={Cadastrar.class, Alterar.class})
75
        public Boolean getSujeitoST() {
76
                if (VerificadorUtil.estaNulo(sujeitoST)) {
77
                        return false;
78
                }
79
                return sujeitoST;
80
        }
81
        public void setSujeitoST(Boolean sujeitoST) {
82
                this.sujeitoST = sujeitoST;
83
        }
84
 
106 espaco 85
        @Column(name="ind_ativo", nullable=false)
86
        @NotNull(message="Obrigatório informar a indicação de ativo", groups={Cadastrar.class, Alterar.class})
87
        public Boolean getAtivo() {
88
                return ativo;
89
        }
90
        public void setAtivo(Boolean ativo) {
91
                this.ativo = ativo;
92
        }
93
 
94
        @Transient
95
        public Long getSequencialPessoa() {
96
                return VerificadorUtil.naoEstaNulo(getPessoa())? getPessoa().getSequencial() : null;
97
        }
98
 
99
        @Transient
100
        public String getNomeDaPessoa() {
101
                return VerificadorUtil.naoEstaNulo(getPessoa())? getPessoa().getNome() : null;
102
        }
103
        @Transient
104
        public String getNomeAbreviadoDaPessoa() {
105
                if (VerificadorUtil.naoEstaNulo(getNomeDaPessoa())) {
106
                        String pattern = "\\S+";
107
                        Pattern r = Pattern.compile(pattern);
108
                        Matcher m = r.matcher(getNomeDaPessoa());
109
                        if (m.find( )) {
110
                                return m.group(0);
111
                        }
112
                        return getNomeDaPessoa();
113
                }
114
                return "";
115
        }
116
 
117
        @Override
118
        public int hashCode() {
119
                final int prime = 31;
120
                int result = 1;
121
                result = prime * result + ((pessoa == null) ? 0 : pessoa.hashCode());
122
                return result;
123
        }
124
 
125
        @Override
126
        public boolean equals(Object obj) {
127
                if (this == obj)
128
                        return true;
129
                if (obj == null)
130
                        return false;
131
                if (getClass() != obj.getClass())
132
                        return false;
133
                Fornecedor other = (Fornecedor) obj;
134
                if (pessoa == null) {
135
                        if (other.pessoa != null)
136
                                return false;
137
                } else if (!pessoa.equals(other.pessoa))
138
                        return false;
139
                return true;
140
        }
141
 
142
}