Skip to content

Commit

Permalink
Atualização ultimo dia do mes 30 ou 31
Browse files Browse the repository at this point in the history
  • Loading branch information
gpfernando2024 committed Nov 1, 2024
1 parent 6a6ece6 commit 9bbd051
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 18 deletions.
43 changes: 29 additions & 14 deletions Controllers/DailyReportController .cs
Original file line number Diff line number Diff line change
Expand Up @@ -307,14 +307,19 @@ out conclusaoData
if (isValidFormat)
{
// Se for quinta-feira, soma 4 dias
// Se for quinta-feira, soma 4 dias, a menos que seja dia 30 ou 31
if (conclusaoData.DayOfWeek == DayOfWeek.Thursday)
{
conclusaoData = conclusaoData.AddDays(4); // Até segunda
conclusaoData = (conclusaoData.Day == 30 || conclusaoData.Day == 31)
? conclusaoData.AddDays(1)
: conclusaoData.AddDays(4); // Até segunda
}
// Se for sexta-feira, soma 3 dias
// Se for sexta-feira, soma 3 dias, a menos que seja dia 30 ou 31
else if (conclusaoData.DayOfWeek == DayOfWeek.Friday)
{
conclusaoData = conclusaoData.AddDays(3); // Até Segunda
conclusaoData = (conclusaoData.Day == 30 || conclusaoData.Day == 31)
? conclusaoData.AddDays(1)
: conclusaoData.AddDays(3); // Até segunda
}
// Caso contrário, soma apenas 1 dia
else
Expand All @@ -330,7 +335,6 @@ out conclusaoData
}
}


}
}
return items;
Expand Down Expand Up @@ -678,16 +682,27 @@ private void AddEventsDeliveries(XWPFDocument doc, List<EventDeliveryItem> event
*/

var groupedEvents = eventsDeliveries
.Where(e => e.Status == "Concluido" &&
e.Custom_Sistema == "Transporte Escolar" &&
e.DataRealEntrega.HasValue &&
// Lógica para somar dias conforme o dia da semana
(e.DataRealEntrega.Value.DayOfWeek == DayOfWeek.Thursday
? e.DataRealEntrega.Value.AddDays(4).Date // De quinta até segunda
: e.DataRealEntrega.Value.DayOfWeek == DayOfWeek.Friday
? e.DataRealEntrega.Value.AddDays(3).Date // De sexta até segunda
: e.DataRealEntrega.Value.AddDays(1).Date) == today) // Soma 1 dia para outros dias
.GroupBy(e => e.Custom_Sistema);
.Where(e => e.Status == "Concluido" &&
e.Custom_Sistema == "Transporte Escolar" &&
e.DataRealEntrega.HasValue &&
// Lógica para somar dias conforme o dia da semana, mas adiciona apenas 1 dia se for dia 30 ou 31
((e.DataRealEntrega.Value.DayOfWeek == DayOfWeek.Thursday
? (e.DataRealEntrega.Value.Day >= 30
? e.DataRealEntrega.Value.AddDays(1).Date
: e.DataRealEntrega.Value.AddDays(4).Date) // De quinta até segunda ou apenas 1 dia se dia 30 ou 31
: e.DataRealEntrega.Value.DayOfWeek == DayOfWeek.Friday
? (e.DataRealEntrega.Value.Day >= 30
? e.DataRealEntrega.Value.AddDays(1).Date
: e.DataRealEntrega.Value.AddDays(3).Date) // De sexta até segunda ou apenas 1 dia se dia 30 ou 31
: e.DataRealEntrega.Value.AddDays(1).Date)) == today) // Soma 1 dia para outros dias
.GroupBy(e => e.Custom_Sistema);

// Função auxiliar para ajustar a data ao primeiro dia do próximo mês se ultrapassar o último dia do mês
DateTime AdjustDate(DateTime date)
{
int daysInMonth = DateTime.DaysInMonth(date.Year, date.Month);
return date.Day > daysInMonth ? new DateTime(date.Year, date.Month, 1).AddMonths(1) : date;
}

// Verificando se há eventos agrupados
if (groupedEvents.Any())
Expand Down
14 changes: 10 additions & 4 deletions Views/DailyReport/StatusReport.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -95,18 +95,24 @@
System.Globalization.DateTimeStyles.None,
out DateTime conclusaoData))
{
// Lógica para somar os dias até segunda-feira
// Se for quinta-feira, soma 4 dias, a menos que seja dia 30 ou 31
if (conclusaoData.DayOfWeek == DayOfWeek.Thursday)
{
conclusaoData = conclusaoData.AddDays(4); // De quinta até segunda
conclusaoData = (conclusaoData.Day == 30 || conclusaoData.Day == 31)
? conclusaoData.AddDays(1)
: conclusaoData.AddDays(4); // Até segunda
}
// Se for sexta-feira, soma 3 dias, a menos que seja dia 30 ou 31
else if (conclusaoData.DayOfWeek == DayOfWeek.Friday)
{
conclusaoData = conclusaoData.AddDays(3); // De sexta até segunda
conclusaoData = (conclusaoData.Day == 30 || conclusaoData.Day == 31)
? conclusaoData.AddDays(1)
: conclusaoData.AddDays(3); // Até segunda
}
// Caso contrário, soma apenas 1 dia
else
{
conclusaoData = conclusaoData.AddDays(1); // Soma 1 dia para outros dias
conclusaoData = conclusaoData.AddDays(1);
}

// Verifica se a data ajustada é hoje
Expand Down

0 comments on commit 9bbd051

Please sign in to comment.