public void encerrarDia(DiaTrabalho ponto) { if (ponto.algumIntervaloEmAberto()) { throw new IntervaloEmAbertoException(ponto.getIntervaloEmAberto()); } ponto.Fim = dataHoraStrategy.getDataHoraAtual().TimeOfDay; pontoRepository.save(ponto); }
public PontoService(PontoFactory pontoFactory, IDataHoraStrategy dataHoraStrategy, FuncionarioPossuiPontoAbertoSpecification pontoAbertoSpec, FuncionarioJaTrabalhouHojeSpecification funcTrabSpec, SessaoLogin sessaoLogin, IPontoDiaRepository pontoRepository, ITipoIntervaloRepository tipoIntervaloRepository) { this.pontoFactory = pontoFactory; this.dataHoraStrategy = dataHoraStrategy; this.deixouPontoAberto = pontoAbertoSpec; this.jaTrabalhouHoje = funcTrabSpec; this.jaTrabalhouHoje.Data = dataHoraStrategy.getDataHoraAtual(); this.sessaoLogin = sessaoLogin; this.pontoRepository = pontoRepository; this.tipoIntervaloRepository = tipoIntervaloRepository; }
public virtual void registrarIntervalo(TipoIntervalo tipoIntervalo, IDataHoraStrategy dataHoraStrategy) { if (intervaloFoiRegistrado(tipoIntervalo)) { var intervalo = getIntervalo(tipoIntervalo); if (intervalo.Saida.HasValue) { throw new IntervaloJaRegistradoException(tipoIntervalo); } intervalo.Saida = dataHoraStrategy.getDataHoraAtual().TimeOfDay; } else { if (algumIntervaloEmAberto()) { throw new IntervaloEmAbertoException(getIntervaloEmAberto()); } Intervalos.Add(new Intervalo(tipoIntervalo, dataHoraStrategy.getDataHoraAtual().TimeOfDay)); } }
public DiaTrabalho criarDiaTrabalho(IDataHoraStrategy dataHoraStrategy, SessaoLogin sessaoLogin) { DateTime dt = dataHoraStrategy.getDataHoraAtual(); if (repository.existePontoDia(sessaoLogin.UsuarioLogado as Funcionario, dt)) { throw new PontoDiaJaExisteException(dt); } if (feriadoService.isFeriado(dt)) { return(new DiaTrabalhoFeriado(feriadoService.getFeriado(dt), dt.TimeOfDay, sessaoLogin.UsuarioLogado as Funcionario)); } return(new DiaTrabalhoComum(dt.Date, dt.TimeOfDay, sessaoLogin.UsuarioLogado as Funcionario)); }