Example #1
0
        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);
        }
Example #3
0
 public ProfissionalService(ProfissionalRepository profissionalRepository, ProfissionalServicoRep pServicoRep, ServicoRep servicoRep)
 {
     _pfRepository = profissionalRepository;
     _servicoRep   = pServicoRep;
     _sRep         = servicoRep;
 }