Subversion Repositories Integrator Subversion

Rev

Rev 648 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
259 espaco 1
package br.com.ec.domain.model;
2
 
526 blopes 3
import java.io.File;
259 espaco 4
import java.io.Serializable;
5
import java.util.Date;
6
 
526 blopes 7
import javax.faces.context.FacesContext;
259 espaco 8
import javax.persistence.Column;
9
import javax.persistence.Entity;
10
import javax.persistence.GeneratedValue;
11
import javax.persistence.GenerationType;
12
import javax.persistence.Id;
13
import javax.persistence.SequenceGenerator;
14
import javax.persistence.Table;
648 blopes 15
import javax.persistence.Transient;
526 blopes 16
import javax.servlet.ServletContext;
259 espaco 17
import javax.validation.constraints.NotNull;
18
import javax.validation.constraints.Size;
19
 
20
import org.hibernate.validator.constraints.NotEmpty;
21
 
22
import br.com.ec.core.interfaces.Alterar;
23
import br.com.ec.core.interfaces.Cadastrar;
24
import br.com.ec.core.util.StringUtil;
648 blopes 25
import br.com.ec.domain.model.tipos.TipoSituacoesVigencia;
526 blopes 26
import br.com.ec.domain.shared.ConstantesSEC;
259 espaco 27
 
28
@Entity
29
@Table(name="sec_vigencia", schema="sc_sec")
30
public class Vigencia implements Serializable {
31
 
32
        private static final long serialVersionUID = 1L;
33
 
34
        private Long sequencial;
35
        private String descricao;
36
        private Date dataInicio;
37
        private Date dataFim;
38
 
648 blopes 39
        // SITUAÇÕES: PENDENTE, EM ANDAMENTO, FINALIZADA
40
        private String tipoSituacaoFolha; //tip_situacao_folha
708 blopes 41
        private String tipoSituacaoConciliacaoBancaria; //tip_situacao_folha
648 blopes 42
 
43
        /*
44
        private String tipoSituacaoValeTransporte; //tip_situacao_valetransporte
45
        private String tipoSituacaoConciliacaoBancaria; //tip_situacao_conciliacaobancaria
46
        private String tipoSituacaoEscala; //tip_situacao_escala
47
        private String tipoSituacaoMetas; //tip_situacao_metas
48
        private String tipoSituacaoAvaliacoes; //tip_situacao_avaliacoes
49
        private String tipoSituacaoProvisaoFerias; //tip_situacao_provisaoferias
50
        private String tipoSituacaoNotasFiscais; //tip_situacao_notasfiscais
51
 
52
        private String tipoSituacaoConsolidacao; //tip_situacao_consolidacao
53
        */
54
 
259 espaco 55
        public Vigencia() {}
56
 
439 espaco 57
        public Vigencia(Long sequencial) {
58
                this.sequencial = sequencial;
59
        }
60
 
259 espaco 61
        public Vigencia(Long sequencial, String descricao) {
62
                this.sequencial = sequencial;
63
                this.descricao = descricao;
64
        }
65
 
66
        @Id
67
        @SequenceGenerator(name = "sq_vigencia")
68
        @GeneratedValue(strategy = GenerationType.IDENTITY)
69
        @Column(name="seq_vigencia", nullable=false)
70
        public Long getSequencial() {
71
                return sequencial;
72
        }
73
        public void setSequencial(Long sequencial) {
74
                this.sequencial = sequencial;
75
        }
76
 
77
        @Column(name="dsc_vigencia")
78
        @Size(max = 10, message = "Limite de caracteres ultrapassado: Vigência")
79
        @NotNull(message="Obrigatório informar a descrição", groups={Cadastrar.class, Alterar.class})
80
        @NotEmpty(message="Obrigatório informar a descrição", groups={Cadastrar.class, Alterar.class})
81
        public String getDescricao() {
82
                return descricao;
83
        }
84
        public void setDescricao(String descricao) {
85
                this.descricao = StringUtil.setarUpperCaseComTrim(descricao);
86
        }
87
 
88
        @Column(name="dth_inicio")
89
        @NotNull(message="Obrigatório informar a data de início", groups={Cadastrar.class, Alterar.class})
90
        public Date getDataInicio() {
91
                return dataInicio;
92
        }
93
        public void setDataInicio(Date dataInicio) {
94
                this.dataInicio = dataInicio;
95
        }
96
 
97
        @Column(name="dth_fim")
98
        @NotNull(message="Obrigatório informar a data de fim", groups={Cadastrar.class, Alterar.class})
99
        public Date getDataFim() {
100
                return dataFim;
101
        }
102
        public void setDataFim(Date dataFim) {
103
                this.dataFim = dataFim;
104
        }
648 blopes 105
 
106
        @Column(name="tip_situacao_folha")
107
        @NotNull(message="Obrigatório informar a situação da folha de pagamento", groups={Cadastrar.class, Alterar.class})
108
        public String getTipoSituacaoFolha() {
109
                return tipoSituacaoFolha;
110
        }
111
        public void setTipoSituacaoFolha(String tipoSituacaoFolha) {
112
                this.tipoSituacaoFolha = tipoSituacaoFolha;
113
        }
114
        @Transient
115
        public String descricaoSituacaoFolha() {
116
                return TipoSituacoesVigencia.parse(getTipoSituacaoFolha()).getDescricao();
117
        }
118
        @Transient
119
        public String corSituacaoFolha() {
120
                return TipoSituacoesVigencia.parse(getTipoSituacaoFolha()).getCor();
121
        }
122
 
708 blopes 123
        @Column(name="tip_situacao_conciliacaobanc")
124
        @NotNull(message="Obrigatório informar a situação da conciliação bancária", groups={Cadastrar.class, Alterar.class})
125
        public String getTipoSituacaoConciliacaoBancaria() {
126
                return tipoSituacaoConciliacaoBancaria;
127
        }
128
        public void setTipoSituacaoConciliacaoBancaria(String tipoSituacaoConciliacaoBancaria) {
129
                this.tipoSituacaoConciliacaoBancaria = tipoSituacaoConciliacaoBancaria;
130
        }
131
        @Transient
132
        public String descricaoSituacaoConciliacaoBancaria() {
133
                return TipoSituacoesVigencia.parse(getTipoSituacaoConciliacaoBancaria()).getDescricao();
134
        }
135
        @Transient
136
        public String corSituacaoConciliacaoBancaria() {
137
                return TipoSituacoesVigencia.parse(getTipoSituacaoConciliacaoBancaria()).getCor();
138
        }
139
 
259 espaco 140
        @Override
141
        public int hashCode() {
142
                final int prime = 31;
143
                int result = 1;
144
                result = prime * result + ((sequencial == null) ? 0 : sequencial.hashCode());
145
                return result;
146
        }
147
 
148
        @Override
149
        public boolean equals(Object obj) {
150
                if (this == obj)
151
                        return true;
152
                if (obj == null)
153
                        return false;
154
                if (getClass() != obj.getClass())
155
                        return false;
156
                Vigencia other = (Vigencia) obj;
157
                if (sequencial == null) {
158
                        if (other.sequencial != null)
159
                                return false;
160
                } else if (!sequencial.equals(other.sequencial))
161
                        return false;
162
                return true;
163
        }
526 blopes 164
 
165
        /********************************************/
259 espaco 166
 
526 blopes 167
        @Transient
168
        public String caminhoPadraoImagens() {
530 blopes 169
                return ConstantesSEC.TESTE_EMISSAO_LOCAL? ConstantesSEC.Imagem.CAMINHO_PADRAO_LOCAL : ConstantesSEC.Imagem.CAMINHO_PADRAO_SERVIDOR;
526 blopes 170
        }
171
 
172
        @Transient
173
        public String caminhoPastaImagens() {
174
                ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
175
                return ConstantesSEC.TESTE_EMISSAO_LOCAL?
176
                                servletContext.getRealPath("") + File.separator + ConstantesSEC.Imagem.NOME_PASTA_PADRAO + File.separator :
177
                                servletContext.getRealPath("") + File.separator + ".." + File.separator + ConstantesSEC.Imagem.NOME_PASTA_PADRAO + File.separator;
178
        }
179
 
180
        @Transient
528 blopes 181
        public String imagemPromocoes() {
526 blopes 182
                return retornarImagemPngOuJpg("promocoes_");
183
        }
184
 
185
        @Transient
186
        public String imagemEscala() {
187
                return retornarImagemPngOuJpg("escala_");
188
        }
189
 
639 blopes 190
        @Transient
191
        public String imagemDestaques() {
192
                return retornarImagemPngOuJpg("destaques_");
193
        }
194
 
526 blopes 195
        private String retornarImagemPngOuJpg(String pasta) {
196
                File foto = new File(caminhoPastaImagens() + pasta + getSequencial() + ".jpg");
197
                if (foto.exists()) {
198
                        return caminhoPadraoImagens() + pasta + getSequencial() + ".jpg";
199
                }
528 blopes 200
                foto = new File(caminhoPastaImagens() + pasta + getSequencial() + ".jpeg");
201
                if (foto.exists()) {
202
                        return caminhoPadraoImagens() + pasta + getSequencial() + ".jpeg";
203
                }
526 blopes 204
                if (!foto.exists()) {
205
                        foto = new File(caminhoPastaImagens() + pasta + getSequencial() + ".png");
206
                }
207
                return foto.exists()? caminhoPadraoImagens() + pasta + getSequencial() + ".png" : caminhoPadraoImagens() + "SEM_IMAGEM.png";
208
        }
209
 
259 espaco 210
}