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));
}
}
}