fix bug
This commit is contained in:
@@ -1791,43 +1791,62 @@ public class RollCallRepository : RepositoryBase<long, RollCall>, IRollCallRepos
|
||||
IsBirthDay = isBirthday
|
||||
};
|
||||
});
|
||||
var presentDays = rollCalls.Where(x => x.EmployeeId == employeeId).GroupBy(x => x.ShiftDate.Date).Select(x =>
|
||||
{
|
||||
var orderedRollcalls = x.OrderBy(y => y.StartDate!.Value).ToList();
|
||||
return new CheckoutDailyRollCallViewModel()
|
||||
{
|
||||
StartDate1 = orderedRollcalls.FirstOrDefault()?.StartDate?.ToString("HH:mm"),
|
||||
EndDate1 = orderedRollcalls.FirstOrDefault()?.EndDate?.ToString("HH:mm"),
|
||||
var presentDays = rollCalls.Where(x => x.EmployeeId == employeeId).GroupBy(x => x.ShiftDate.Date).Select(x =>
|
||||
{
|
||||
var orderedRollcalls = x.OrderBy(y => y.StartDate!.Value).ToList();
|
||||
var firstRollCall = orderedRollcalls.FirstOrDefault();
|
||||
var secondRollCall = orderedRollcalls.Skip(1).FirstOrDefault();
|
||||
return new CheckoutDailyRollCallViewModel()
|
||||
{
|
||||
StartDate1 = orderedRollcalls.FirstOrDefault()?.StartDate?.ToString("HH:mm"),
|
||||
EndDate1 = orderedRollcalls.FirstOrDefault()?.EndDate?.ToString("HH:mm"),
|
||||
|
||||
StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.StartDate?.ToString("HH:mm") ?? "",
|
||||
EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndDate?.ToString("HH:mm") ?? "",
|
||||
StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.StartDate?.ToString("HH:mm") ?? "",
|
||||
EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndDate?.ToString("HH:mm") ?? "",
|
||||
|
||||
TotalhourseSpan =
|
||||
new TimeSpan(x.Where(y => y.EndDate != null).Sum(y => (y.EndDate - y.StartDate)!.Value.Ticks)),
|
||||
DayOfWeek = x.Key.DayOfWeek.DayOfWeeKToPersian(),
|
||||
RollCallDateFa = x.Key.Date.ToFarsi(),
|
||||
DateTimeGr = x.Key.Date,
|
||||
IsSliced = x.Count() > 2,
|
||||
IsAbsent = false,
|
||||
IsBirthDay = pc.GetMonth(x.Key) == pc.GetMonth(birthDay) && pc.GetDayOfMonth(x.Key) == pc.GetDayOfMonth(birthDay)
|
||||
};
|
||||
});
|
||||
presentDays = presentDays.Select(x => new CheckoutDailyRollCallViewModel
|
||||
{
|
||||
StartDate1 = x.StartDate1,
|
||||
EndDate1 = x.EndDate1,
|
||||
EndDate2 = x.EndDate2,
|
||||
StartDate2 = x.StartDate2,
|
||||
TotalWorkingHours = $"{(int)(x.TotalhourseSpan.TotalHours)}:{x.TotalhourseSpan.Minutes.ToString("00")}",
|
||||
DayOfWeek = x.DayOfWeek,
|
||||
RollCallDateFa = x.RollCallDateFa,
|
||||
DateTimeGr = x.DateTimeGr,
|
||||
IsSliced = x.IsSliced,
|
||||
IsAbsent = false,
|
||||
IsBirthDay = x.IsBirthDay
|
||||
});
|
||||
TotalhourseSpan =
|
||||
new TimeSpan(x.Where(y => y.EndDate != null).Sum(y => (y.EndDate - y.StartDate)!.Value.Ticks)),
|
||||
DayOfWeek = x.Key.DayOfWeek.DayOfWeeKToPersian(),
|
||||
RollCallDateFa = x.Key.Date.ToFarsi(),
|
||||
DateTimeGr = x.Key.Date,
|
||||
IsSliced = x.Count() > 2,
|
||||
IsAbsent = false,
|
||||
IsBirthDay = pc.GetMonth(x.Key) == pc.GetMonth(birthDay) && pc.GetDayOfMonth(x.Key) == pc.GetDayOfMonth(birthDay),
|
||||
|
||||
List<CheckoutDailyRollCallViewModel> checkoutDailyRollCalls = presentDays.Concat(absentRecords).OrderBy(x => x.DateTimeGr).ToList();
|
||||
EnterDifferencesMinutes1 = firstRollCall != null && firstRollCall.LateEntryDuration > TimeSpan.Zero && workshopId == 170
|
||||
? CalculateEntryMinuteDifference(firstRollCall.EarlyEntryDuration,
|
||||
firstRollCall.LateEntryDuration)
|
||||
: "",
|
||||
ExitDifferencesMinutes1 = "",
|
||||
|
||||
EnterDifferencesMinutes2 = secondRollCall != null && secondRollCall.LateEntryDuration > TimeSpan.Zero && workshopId == 170
|
||||
? CalculateEntryMinuteDifference(secondRollCall.EarlyEntryDuration,
|
||||
secondRollCall.LateEntryDuration)
|
||||
: "",
|
||||
ExitDifferencesMinutes2 = ""
|
||||
};
|
||||
});
|
||||
presentDays = presentDays.Select(x => new CheckoutDailyRollCallViewModel
|
||||
{
|
||||
StartDate1 = x.StartDate1,
|
||||
EndDate1 = x.EndDate1,
|
||||
EndDate2 = x.EndDate2,
|
||||
StartDate2 = x.StartDate2,
|
||||
TotalWorkingHours = $"{(int)(x.TotalhourseSpan.TotalHours)}:{x.TotalhourseSpan.Minutes.ToString("00")}",
|
||||
DayOfWeek = x.DayOfWeek,
|
||||
RollCallDateFa = x.RollCallDateFa,
|
||||
DateTimeGr = x.DateTimeGr,
|
||||
IsSliced = x.IsSliced,
|
||||
IsAbsent = false,
|
||||
IsBirthDay = x.IsBirthDay,
|
||||
EnterDifferencesMinutes1 = x.EnterDifferencesMinutes1,
|
||||
ExitDifferencesMinutes1 = x.ExitDifferencesMinutes1,
|
||||
EnterDifferencesMinutes2 = x.EnterDifferencesMinutes2,
|
||||
ExitDifferencesMinutes2 = x.ExitDifferencesMinutes2,
|
||||
});
|
||||
|
||||
|
||||
List<CheckoutDailyRollCallViewModel> checkoutDailyRollCalls = presentDays.Concat(absentRecords).OrderBy(x => x.DateTimeGr).ToList();
|
||||
|
||||
checkoutDailyRollCalls.ForEach(x =>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user