public void Entrada(Lancamento model) { Profissional profissional = null; using (ProfissionalRepository profissionalRepository = new ProfissionalRepository()) profissional = profissionalRepository.ConsultarPorIdSemRastreamento(model.ProfissionalID); var lancamento = _repository.ConsultarUltimoLancamento(model.ContratoID, model.ProfissionalID); //Verifica se foi feito lançamento da saida no período anterior if (PermitirEntrada(lancamento)) { var dominio = new Lancamento(); dominio.ContratoID = model.ContratoID; dominio.ProfissionalID = model.ProfissionalID; dominio.Observacao = model.Observacao; dominio.HorarioEntrada = DateTime.Now; DateTime?horarioEntrada = dominio.HorarioEntrada; //Verifica se o profissional entra nas regras de lançamento para CLT if (profissional.Regime.Equals("CLT")) { //Resgatar horario de entrada do profissional DateTime?horarioAtual = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, profissional.HorarioEntrada.Value.Hours, profissional.HorarioEntrada.Value.Minutes, 0); //Verifica se o profissional esta dentro do horário de entrada double tempoDecorrido = (horarioAtual - horarioEntrada).Value.TotalMinutes; //Não permitir o lançamento após 15 minutos de tolerância if (tempoDecorrido > 15) { throw new Exception("Entrada não permitida. Ultrapassado tempo limite."); } //Verificar se o profissional esta em período de férias if (profissional.FeriasInicio.HasValue && profissional.FeriasTermino.HasValue) { if (horarioEntrada.Value >= profissional.FeriasInicio.Value && horarioEntrada.Value <= profissional.FeriasTermino.Value) { throw new Exception("Entrada não permitida no período de férias."); } } } dominio.HorarioSaida = null; dominio.Atividade = ""; _repository.Incluir(dominio); } else { throw new Exception("Entrada não permitida"); } }
static void Main(string[] args) { AssociadosAsserti_AssociadosDataContext context = new AssociadosAsserti_AssociadosDataContext(); EmpresaRepository empresaRepository = new EmpresaRepository(context); GerarEmpresa(empresaRepository); ProfissionalRepository profissionalRepository = new ProfissionalRepository(context); GerarProfissional(profissionalRepository); SocioRepository socioRepository = new SocioRepository(context); GerarSocio(socioRepository); UsuarioRepository usuarioRepository = new UsuarioRepository(context); GerarUsuario(usuarioRepository); }
public ProfissionalService(ProfissionalRepository profissionalRepository, ProfissionalServicoRep pServicoRep, ServicoRep servicoRep) { _pfRepository = profissionalRepository; _servicoRep = pServicoRep; _sRep = servicoRep; }