package br.com.ec.domain.dto;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.model.Ponto;
import br.com.ec.domain.model.tipos.TipoOcorrenciaEscala;
public class FuncionarioEscalaDTO
{
private Long sequencialFuncionario
;
private FuncionarioDTO funcionarioDTO
;
private Date dataEscala
;
private String tipoOcorrenciaEscala
;
private String quantidadeHorasTrabalhadas
;
private String quantidadeHorasIntervalo
;
private String periodo
;
private String periodoIntervalo
;
private String intervalo
;
private String inicioPonto
;
private String justificativas
;
public FuncionarioEscalaDTO
() {}
public FuncionarioEscalaDTO
(Long sequencialFuncionario,
Date dataEscala,
String tipoOcorrenciaEscala
) {
this.
sequencialFuncionario = sequencialFuncionario
;
// this.funcionarioDTO = new FuncionarioDTO(sequencialFuncionario, sequencialPessoa, nomeFuncionario);
this.
dataEscala = dataEscala
;
this.
tipoOcorrenciaEscala = tipoOcorrenciaEscala
;
}
public Long getSequencialFuncionario
() {
return sequencialFuncionario
;
}
public void setSequencialFuncionario
(Long sequencialFuncionario
) {
this.
sequencialFuncionario = sequencialFuncionario
;
}
public FuncionarioDTO getFuncionarioDTO
() {
return funcionarioDTO
;
}
public void setFuncionarioDTO
(FuncionarioDTO funcionarioDTO
) {
this.
funcionarioDTO = funcionarioDTO
;
}
public Date getDataEscala
() {
return dataEscala
;
}
public void setDataEscala
(Date dataEscala
) {
this.
dataEscala = dataEscala
;
}
public String getTipoOcorrenciaEscala
() {
return tipoOcorrenciaEscala
;
}
public void setTipoOcorrenciaEscala
(String tipoOcorrenciaEscala
) {
this.
tipoOcorrenciaEscala = tipoOcorrenciaEscala
;
}
public String getQuantidadeHorasTrabalhadas
() {
return quantidadeHorasTrabalhadas
;
}
public void setQuantidadeHorasTrabalhadas
(String quantidadeHorasTrabalhadas
) {
this.
quantidadeHorasTrabalhadas = quantidadeHorasTrabalhadas
;
}
public String getQuantidadeHorasIntervalo
() {
return quantidadeHorasIntervalo
;
}
public void setQuantidadeHorasIntervalo
(String quantidadeHorasIntervalo
) {
this.
quantidadeHorasIntervalo = quantidadeHorasIntervalo
;
}
public String getPeriodo
() {
return periodo
;
}
public void setPeriodo
(String periodo
) {
this.
periodo = periodo
;
}
public String getPeriodoIntervalo
() {
return periodoIntervalo
;
}
public void setPeriodoIntervalo
(String periodoIntervalo
) {
this.
periodoIntervalo = periodoIntervalo
;
}
public String getIntervalo
() {
return intervalo
;
}
public void setIntervalo
(String intervalo
) {
this.
intervalo = intervalo
;
}
public String getInicioPonto
() {
return inicioPonto
;
}
public void setInicioPonto
(String inicioPonto
) {
this.
inicioPonto = inicioPonto
;
}
public String getJustificativas
() {
return justificativas
;
}
public void setJustificativas
(String justificativas
) {
this.
justificativas = justificativas
;
}
public String diaVigencia
() {
if (VerificadorUtil.
naoEstaNulo(getDataEscala
())) {
return DataUtils.
converterDataParaStringNoFormato(getDataEscala
(),
"dd");
}
return null;
}
public String letraDiaVigencia
() {
if (VerificadorUtil.
naoEstaNulo(getDataEscala
())) {
Calendar calendar =
new GregorianCalendar();
calendar.
setTime(getDataEscala
());
String nome =
"";
int dia = calendar.
get(calendar.
DAY_OF_WEEK);
switch(dia
) {
case Calendar.
SUNDAY: nome =
"D"; break;
case Calendar.
MONDAY: nome =
"S"; break;
case Calendar.
TUESDAY: nome =
"T"; break;
case Calendar.
WEDNESDAY: nome =
"Q"; break;
case Calendar.
THURSDAY: nome =
"Q"; break;
case Calendar.
FRIDAY: nome =
"S"; break;
case Calendar.
SATURDAY: nome =
"S"; break;
}
return nome
;
}
return "";
}
public String corTipoOcorrenciaEscala
() {
if (VerificadorUtil.
naoEstaNuloOuVazio(getTipoOcorrenciaEscala
())) {
return TipoOcorrenciaEscala.
parse(getTipoOcorrenciaEscala
()).
getCor();
}
return "none";
}
public void atualizarDadosEscala
(Date dataPonto,
List<Ponto
> pontos
) {
setDataEscala
(dataPonto
);
setTipoOcorrenciaEscala
(TipoOcorrenciaEscala.
SEM_PONTO.
getValor());
for (Ponto ponto : pontos
) {
if (DataUtils.
datasIguais(ponto.
getDataPonto(), dataPonto
)) {
setQuantidadeHorasTrabalhadas
(ponto.
getHorasTrabalhadas());
setQuantidadeHorasIntervalo
(ponto.
getIntervalo());
setPeriodo
(ponto.
getPeriodoTrabalhado());
setIntervalo
(ponto.
getIntervalo());
setPeriodoIntervalo
(ponto.
getPeriodoIntervaloTrabalhado());
setInicioPonto
(ponto.
getInicioPonto());
setJustificativas
(ponto.
getJustificativas());
if (ponto.
getPontoCompleto()) {
setTipoOcorrenciaEscala
(TipoOcorrenciaEscala.
PONTO_COMPLETO.
getValor());
} else {
setTipoOcorrenciaEscala
(TipoOcorrenciaEscala.
PONTO_INCOMPLETO.
getValor());
}
}
}
}
}