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