Subversion Repositories Integrator Subversion

Rev

Rev 353 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.dto;

import java.util.Date;

import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.util.VerificadorUtil;

public class FuncionarioFeriasDTO {
       
        private Long sequencialFuncionarioFerias;
        private FuncionarioDTO funcionarioDTO;
        private Date dataInicial;
        private Date dataFinal;
        private Integer quantidadeDiasFerias = 30;
        private Integer quantidadeDiasAquisicaoFerias = 365;
        private Date dataInicialAquisicao;
        private Date dataFinalAquisicao;
        private Boolean confirmada;
        private String observacao;
        private Boolean executada;
       
        public FuncionarioFeriasDTO() {}
       
        public FuncionarioFeriasDTO(Long sequencialFuncionarioFerias, Long sequencialFuncionario, Long sequencialPessoa, String nomeFuncionario,
                        Date dataInicial, Date dataFinal, Date dataInicialAquisicao, Date dataFinalAquisicao, Boolean confirmada, String observacao,
                        Boolean executada) {
                this.sequencialFuncionarioFerias = sequencialFuncionarioFerias;
                this.funcionarioDTO = new FuncionarioDTO(sequencialFuncionario, sequencialPessoa, nomeFuncionario);
                this.dataInicial = dataInicial;
                this.dataFinal = dataFinal;
                this.dataInicialAquisicao = dataInicialAquisicao;
                this.dataFinalAquisicao = dataFinalAquisicao;
                this.confirmada = confirmada;
                this.observacao = observacao;
                this.executada = executada;
        }

        public Long getSequencialFuncionarioFerias() {
                return sequencialFuncionarioFerias;
        }
        public void setSequencialFuncionarioFerias(Long sequencialFuncionarioFerias) {
                this.sequencialFuncionarioFerias = sequencialFuncionarioFerias;
        }
       
        public FuncionarioDTO getFuncionarioDTO() {
                return funcionarioDTO;
        }
        public void setFuncionarioDTO(FuncionarioDTO funcionarioDTO) {
                this.funcionarioDTO = funcionarioDTO;
        }
       
        public Date getDataInicial() {
                return dataInicial;
        }
        public void setDataInicial(Date dataInicial) {
                this.dataInicial = dataInicial;
        }

        public Date getDataFinal() {
                return dataFinal;
        }
        public void setDataFinal(Date dataFinal) {
                this.dataFinal = dataFinal;
        }
       
        public Integer getQuantidadeDiasFerias() {
                return quantidadeDiasFerias;
        }
        public void setQuantidadeDiasFerias(Integer quantidadeDiasFerias) {
                this.quantidadeDiasFerias = quantidadeDiasFerias;
        }
       
        public Integer getQuantidadeDiasAquisicaoFerias() {
                return quantidadeDiasAquisicaoFerias;
        }
        public void setQuantidadeDiasAquisicaoFerias(Integer quantidadeDiasAquisicaoFerias) {
                this.quantidadeDiasAquisicaoFerias = quantidadeDiasAquisicaoFerias;
        }

        public Date getDataInicialAquisicao() {
                return dataInicialAquisicao;
        }
        public void setDataInicialAquisicao(Date dataInicialAquisicao) {
                this.dataInicialAquisicao = dataInicialAquisicao;
        }
       
        public Date getDataFinalAquisicao() {
                return dataFinalAquisicao;
        }
        public void setDataFinalAquisicao(Date dataFinalAquisicao) {
                this.dataFinalAquisicao = dataFinalAquisicao;
        }
       
        public Boolean getConfirmada() {
                return confirmada;
        }
        public void setConfirmada(Boolean confirmada) {
                this.confirmada = confirmada;
        }

        public String getObservacao() {
                return observacao;
        }
        public void setObservacao(String observacao) {
                this.observacao = StringUtil.setarUpperCaseComTrim(observacao);
        }
       
        public Boolean getExecutada() {
                return executada;
        }
        public void setExecutada(Boolean executada) {
                this.executada = executada;
        }
       
        public Boolean estaProvisionada() {
                if (VerificadorUtil.naoEstaNulo(getDataInicial())) {
                        return getDataInicial().after(DataUtils.getDataAtual());
                }
                return false;
        }
       
        public Boolean precisaProvisionar() {
                if (VerificadorUtil.naoEstaNulo(getDataFinalAquisicao()) && VerificadorUtil.estaNulo(getDataInicial())) {
                        return getDataFinalAquisicao().before(DataUtils.getDataAtual());
                }
                return (VerificadorUtil.estaNulo(getDataInicial()) && VerificadorUtil.estaNulo(getDataInicialAquisicao()));
        }
       
        public Integer diasVencido() {
                if (VerificadorUtil.naoEstaNulo(getDataFinalAquisicao())) {
                        Integer quantidadeDias = DataUtils.calcularDiferenceEmDiasEntreDuasDatas(DataUtils.getDataAtual(), getDataFinalAquisicao());
                        if (quantidadeDias > 0) {
                                return quantidadeDias;
                        }
                }
                return null;
        }
       
        public void provisionarDataFinal() {
                if (VerificadorUtil.naoEstaNulo(getDataInicial())) {
                        setDataFinal(DataUtils.acrescentarDias(getDataInicial(), getQuantidadeDiasFerias()-1));
                }
        }
       
        public void provisionarDataAquisicaoFinal() {
                if (VerificadorUtil.naoEstaNulo(getDataInicialAquisicao())) {
                        setDataFinalAquisicao(DataUtils.acrescentarDias(getDataInicialAquisicao(), getQuantidadeDiasAquisicaoFerias()-1));
                }
        }

}