diff --git a/CompanyManagment.App.Contracts/RollCall/GroupedRollCalls.cs b/CompanyManagment.App.Contracts/RollCall/GroupedRollCalls.cs index 44f99afa..d2489592 100644 --- a/CompanyManagment.App.Contracts/RollCall/GroupedRollCalls.cs +++ b/CompanyManagment.App.Contracts/RollCall/GroupedRollCalls.cs @@ -13,6 +13,10 @@ public class GroupedRollCalls public TimeSpan BreakTime { get; set; } public DateTime ShiftDate { get; set; } + /// + /// تاریخ های جمع کاری + /// + public DateTime? Fridays { get; set; } /// /// تاخیر در ورود (مدت زمانی که کارمند با تأخیر وارد شده است) /// diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs index 1f3a9592..b9eb8f86 100644 --- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs @@ -159,15 +159,40 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll { breakTime = CalculateBreakTime(breakTimeEntity, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))); } - return new GroupedRollCalls() + + DateTime friday = new DateTime(); + + if (x.Any(s => + s.StartDate != null && s.EndDate != null && s.StartDate.Value.DayOfWeek == DayOfWeek.Friday)) + { + friday = x.FirstOrDefault(s => + s.StartDate != null && s.EndDate != null && + (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday)) + .StartDate.Value; + + } + + if (x.Any(s => + s.StartDate != null && s.EndDate != null && s.EndDate.Value.DayOfWeek == DayOfWeek.Friday)) + { + friday = x.FirstOrDefault(s => + s.StartDate != null && s.EndDate != null && + (s.EndDate.Value.DayOfWeek == DayOfWeek.Friday)) + .EndDate.Value; + } + + return new GroupedRollCalls() { CreationDate = x.Key, ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value, EndWithOutResTime = s.EndDate!.Value }) .ToList(), - HasFriday = x.Any(s => - s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || - s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), - SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - breakTime, + //HasFriday = x.Any(s => + // s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || + // s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), + + Fridays = friday, + + SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - breakTime, BreakTime = breakTime, }; @@ -175,19 +200,20 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll } - numberOfFridays = groupedRollCall.Count(x => x.HasFriday); + var firdays = groupedRollCall.Where(x => x.Fridays != null && x.Fridays != new DateTime()).DistinctBy(x => x.Fridays.Value.Date).ToList(); + numberOfFridays = firdays.Count(); - ////*****کسر ساعاعت استراحت پرسنل از ساعت کار - //List rollCallSubtractSpan = groupedRollCall.Select(x => new GroupedRollCalls() - //{ - // CreationDate = x.CreationDate, - // AfterSubtractRestSpan = AfterSubtract(command, x.SumOneDaySpan, x.CreationDate), - //}).ToList(); + ////*****کسر ساعاعت استراحت پرسنل از ساعت کار + //List rollCallSubtractSpan = groupedRollCall.Select(x => new GroupedRollCalls() + //{ + // CreationDate = x.CreationDate, + // AfterSubtractRestSpan = AfterSubtract(command, x.SumOneDaySpan, x.CreationDate), + //}).ToList(); - TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks)); + TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks)); TimeSpan sumSpansWhitOutleaves = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks)); diff --git a/DadmehrGostar.sln.DotSettings b/DadmehrGostar.sln.DotSettings index ed0ebd5d..2d803009 100644 --- a/DadmehrGostar.sln.DotSettings +++ b/DadmehrGostar.sln.DotSettings @@ -1,3 +1,4 @@  + False True True \ No newline at end of file