Subversion Repositories Integrator Subversion

Rev

Rev 353 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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