manadatory Compute friday count bug fix

This commit is contained in:
SamSys
2025-07-07 02:14:38 +03:30
parent 0ed24dff45
commit 33e3efeef5
3 changed files with 44 additions and 13 deletions

View File

@@ -13,6 +13,10 @@ public class GroupedRollCalls
public TimeSpan BreakTime { get; set; } public TimeSpan BreakTime { get; set; }
public DateTime ShiftDate { get; set; } public DateTime ShiftDate { get; set; }
/// <summary>
/// تاریخ های جمع کاری
/// </summary>
public DateTime? Fridays { get; set; }
/// <summary> /// <summary>
/// تاخیر در ورود (مدت زمانی که کارمند با تأخیر وارد شده است) /// تاخیر در ورود (مدت زمانی که کارمند با تأخیر وارد شده است)
/// </summary> /// </summary>

View File

@@ -159,15 +159,40 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
{ {
breakTime = CalculateBreakTime(breakTimeEntity, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))); 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, CreationDate = x.Key,
ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value, EndWithOutResTime = s.EndDate!.Value }) ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value, EndWithOutResTime = s.EndDate!.Value })
.ToList(), .ToList(),
HasFriday = x.Any(s => //HasFriday = x.Any(s =>
s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || // s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday ||
s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), // s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)),
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - breakTime,
Fridays = friday,
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - breakTime,
BreakTime = breakTime, BreakTime = breakTime,
}; };
@@ -175,19 +200,20 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, 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<GroupedRollCalls> rollCallSubtractSpan = groupedRollCall.Select(x => new GroupedRollCalls() //List<GroupedRollCalls> rollCallSubtractSpan = groupedRollCall.Select(x => new GroupedRollCalls()
//{ //{
// CreationDate = x.CreationDate, // CreationDate = x.CreationDate,
// AfterSubtractRestSpan = AfterSubtract(command, x.SumOneDaySpan, x.CreationDate), // AfterSubtractRestSpan = AfterSubtract(command, x.SumOneDaySpan, x.CreationDate),
//}).ToList(); //}).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)); TimeSpan sumSpansWhitOutleaves = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks));

View File

@@ -1,3 +1,4 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeEditing/SuppressNullableWarningFix/Enabled/@EntryValue">False</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Govermentlist/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=Govermentlist/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Mcls/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> <s:Boolean x:Key="/Default/UserDictionary/Words/=Mcls/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>