/// <summary>
        /// Método auxiliar para cadastrar datas no calendário do wex
        /// </summary>
        /// <param name="descricao">descrição da data cadastrada</param>
        /// <param name="tipoCalendario">tipo de data (Folga ou Trabalho)</param>
        /// <param name="tipoVigencia">tipo de vigência da data do calendário</param>
        /// <param name="dataInicio">data de inicio</param>
        /// <param name="dataTermino">data de término do período (Opcional, usado apenas quando a vigência for por período)</param>
        private void AdicionarCalendario(string descricao, CsCalendarioDomain tipoCalendario, CsVigenciaDomain tipoVigencia, DateTime dataInicio, DateTime?dataTermino = null)
        {
            //TODO: REVER SE DEVERÁ SER PASSADO PARA O CalendarioBo
            Calendario calendario = new Calendario()
            {
                CsCalendario = tipoCalendario.ToInt(),
                CsVigencia   = tipoVigencia.ToInt(),
                DtInicio     = dataInicio.Date,
                Periodo      = dataInicio.Date,
                Oid          = Guid.NewGuid(),
                TxDescricao  = descricao,
                CsSituacao   = CsSituacaoDomain.Ativo.ToInt()
            };

            switch (tipoVigencia)
            {
            case CsVigenciaDomain.PorDiaMes:
                calendario.CsMes = dataInicio.Month;
                calendario.NbDia = dataInicio.Day;
                break;

            case CsVigenciaDomain.PorDiaMesAno:
                break;

            case CsVigenciaDomain.PorPeriodo:
                if (!dataTermino.HasValue)
                {
                    throw new ArgumentException("Deveria ter preenchido a data de término do período.");
                }
                calendario.DtTermino = dataTermino.Value.Date;
                break;

            default:
                break;
            }
            contexto.Calendarios.Add(calendario);
            contexto.SaveChanges();
        }
Exemple #2
0
        private Calendario CriarCalendario(string descricao, CsCalendarioDomain tipoCalendario, CsVigenciaDomain tipoVigencia, DateTime dataInicio, CsSituacaoDomain situacao, DateTime?dataTermino = null)
        {
            Calendario calendario = new Calendario()
            {
                CsCalendario = tipoCalendario.ToInt(),
                CsVigencia   = tipoVigencia.ToInt(),
                DtInicio     = dataInicio.Date,
                Periodo      = dataInicio.Date,
                Oid          = Guid.NewGuid(),
                TxDescricao  = descricao,
                CsSituacao   = situacao.ToInt()
            };

            switch (tipoVigencia)
            {
            case CsVigenciaDomain.PorDiaMes:
                calendario.CsMes = dataInicio.Month;
                calendario.NbDia = dataInicio.Day;
                break;

            case CsVigenciaDomain.PorDiaMesAno:
                break;

            case CsVigenciaDomain.PorPeriodo:
                if (!dataTermino.HasValue)
                {
                    throw new ArgumentException("Deveria ter preenchido a data de término do período.");
                }
                calendario.DtTermino = dataTermino.Value.Date;
                break;

            default:
                break;
            }
            return(calendario);
        }
Exemple #3
0
        /// <summary>
        /// Cria uma instância de PlanCalendarioCoorp.
        /// </summary>
        /// <param name="session">Seção atual</param>
        /// <param name="csCalendario">Folga ou Trabalho</param>
        /// <param name="csVigencia">PorPeriodo, PorDiaMes ou PorDiaMesAno</param>
        /// <param name="dtInicio">Dia de inicio do calendário por Período</param>
        /// <param name="dtTermino">Dia de término do calendário por Período</param>
        /// <param name="dia">Dia do calendário PorDiaMesAno e PorDiaMes</param>
        /// <param name="mes">Mês do calendário PorDiaMesAno e PorDiaMes</param>
        /// <param name="ano">Ano do calendário PorDiaMesAno</param>
        /// <param name="save">Se verdadeiro, persiste</param>
        /// <returns>Instância de PlanCalendario para testes</returns>
        public static Calendario CriarCalendario(Session session, CsCalendarioDomain csCalendario,
                                                 CsVigenciaDomain csVigencia, DateTime dtInicio,
                                                 DateTime dtTermino, int dia, CsMesDomain mes, int ano, bool save = false)
        {
            Calendario cal = new Calendario(session)
            {
                CsCalendario = csCalendario,
                CsVigencia   = csVigencia,
                CsSituacao   = CsSituacaoDomain.Ativo,
                TxDescricao  = GetDescricao()
            };

            switch (csVigencia)
            {
            case CsVigenciaDomain.PorPeriodo:
                cal.DtInicio  = dtInicio;
                cal.DtTermino = dtTermino;
                break;

            case CsVigenciaDomain.PorDiaMes:
                cal.CsMes = mes;
                cal.NbDia = dia;
                break;

            case CsVigenciaDomain.PorDiaMesAno:
                cal.DtInicio = new DateTime(ano, (int)mes, dia);
                break;
            }

            if (save)
            {
                cal.Save();
            }

            return(cal);
        }
 public static bool CalendarioPossuiDiaCadastrado(DateTime dataAtual, List <Calendario> diasCadastradosCalendario, CsCalendarioDomain tipo)
 {
     return(diasCadastradosCalendario.Any(o =>
                                          o.CsCalendario == (int)tipo &&
                                          (
                                              (o.CsVigencia == (int)CsVigenciaDomain.PorDiaMesAno && o.DtInicio.Value >= dataAtual.Date && o.DtInicio.Value <= dataAtual.Date) ||
                                              (o.CsVigencia == (int)CsVigenciaDomain.PorDiaMes && o.NbDia == dataAtual.Day && o.CsMes.Value == dataAtual.Month) ||
                                              (o.CsVigencia == (int)CsVigenciaDomain.PorPeriodo && dataAtual.Date >= o.DtInicio.Value.Date && dataAtual.Date <= o.DtTermino.Value.Date)
                                          )));
 }
Exemple #5
0
 /// <summary>
 /// Cria uma instância de PlanCalendarioCoorp por determinado Dia e mês repetidos a cada ano.
 /// </summary>
 /// <param name="session">Seção atual</param>
 /// <param name="csCalendario">Folga ou Trabalho</param>
 /// <param name="dia">Dia do calendário PorDiaMesAno e PorDiaMes</param>
 /// <param name="mes">Mês do calendário PorDiaMesAno e PorDiaMes</param>
 /// <param name="save">Se verdadeiro, persiste</param>
 /// <returns>Instância de PlanCalendario para testes</returns>
 public static Calendario CriarCalendarioPorDiaMes(Session session, CsCalendarioDomain csCalendario,
                                                   int dia, CsMesDomain mes, bool save = false)
 {
     return(CriarCalendario(session, csCalendario, CsVigenciaDomain.PorDiaMes, new DateTime(),
                            new DateTime(), dia, mes, 0, save));
 }
Exemple #6
0
 /// <summary>
 /// Cria uma instância de PlanCalendarioCoorp por um determinado período.
 /// </summary>
 /// <param name="session">Seção atual</param>
 /// <param name="csCalendario">Folga ou Trabalho</param>
 /// <param name="dtInicio">Dia de inicio do calendário por Período</param>
 /// <param name="dtTermino">Dia de término do calendário por Período</param>
 /// <param name="save">Se verdadeiro, persiste</param>
 /// <returns>Instância de PlanCalendario para testes</returns>
 public static Calendario CriarCalendarioPorPeriodo(Session session, CsCalendarioDomain csCalendario,
                                                    DateTime dtInicio, DateTime dtTermino, bool save = false)
 {
     return(CriarCalendario(session, csCalendario, CsVigenciaDomain.PorPeriodo, dtInicio, dtTermino,
                            0, CsMesDomain.Janeiro, 0, save));
 }