change rollcall mandatoory computes

This commit is contained in:
MahanCh
2025-06-26 14:43:11 +03:30
parent 8284ec199f
commit 3fa027dfd1

View File

@@ -3889,27 +3889,38 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
firstShift = shift;
}
if (shift.start == firstShift.Value.start && shift.end == firstShift.Value.end)
{
//قانون کباب مهدی : فیش های بعد از تیر ماه 1404 به بعد اگر میزان تاخیرشون بیشتر از 5 دقیقه باشه حساب بشه
//ولی قبلی ها به همون طور شکل قبل همشون حساب بشن
TimeSpan effectiveLate = rc.LateEntryDuration;
if (contractStart > beforeTir1404)
{
if (rc.LateEntryDuration.TotalMinutes > 5)
// فقط اگر بیشتر از 5 دقیقه بود، محاسبه کنیم
if (effectiveLate.TotalMinutes > 5)
{
minutes += rc.LateEntryDuration.TotalMinutes;
totalLateToWorkSpan = totalLateToWorkSpan.Add(rc.LateEntryDuration);
effectiveLate = effectiveLate - TimeSpan.FromMinutes(5);
}
else
{
effectiveLate = TimeSpan.Zero;
}
}
else
{
minutes += rc.LateEntryDuration.TotalMinutes;
totalLateToWorkSpan = totalLateToWorkSpan.Add(rc.LateEntryDuration);
}
minutes += effectiveLate.TotalMinutes;
totalLateToWorkSpan = totalLateToWorkSpan.Add(effectiveLate);
lateToWorkDeduction += dayMinuteWage * minutes;
}
lateToWorkDeduction += dayMinuteWage * minutes;
//if (contractStart>beforeTir1404)
//{
//}
//if (shift.start == firstShift.Value.start && shift.end == firstShift.Value.end)
//{
// minutes += rc.LateEntryDuration.TotalMinutes;
// totalLateToWorkSpan = totalLateToWorkSpan.Add(rc.LateEntryDuration);
//}
//lateToWorkDeduction += dayMinuteWage * minutes;
}
}
@@ -3923,27 +3934,30 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
var rollCallShift = rollCall.TotalShiftDurationTimeSpan;
var dayMinuteWage = rollCallShift.TotalMinutes == 0 ? 0 : (dailyWage / rollCallShift.TotalMinutes);
var minutes = rollCall.TotalLateEntryDuration.TotalMinutes;
TimeSpan effectiveLate = rollCall.TotalLateEntryDuration;
//قانون کباب مهدی : فیش های بعد از تیر ماه 1404 به بعد اگر میزان تاخیرشون بیشتر از 5 دقیقه باشه حساب بشه
//ولی قبلی ها به همون طور شکل قبل همشون حساب بشن
if (contractStart > beforeTir1404)
{
if (minutes > 5)
// اگر بیشتر از 5 دقیقه بود، فقط اضافه آن لحاظ شود
if (effectiveLate.TotalMinutes > 5)
{
lateToWorkDeduction += dayMinuteWage * minutes;
totalLateToWorkSpan = totalLateToWorkSpan.Add(rollCall.TotalLateEntryDuration);
effectiveLate = effectiveLate - TimeSpan.FromMinutes(5);
}
else
{
effectiveLate = TimeSpan.Zero;
}
}
else
{
lateToWorkDeduction += dayMinuteWage * minutes;
totalLateToWorkSpan = totalLateToWorkSpan.Add(rollCall.TotalLateEntryDuration);
}
var minutes = rollCall.TotalLateEntryDuration.TotalMinutes;
lateToWorkDeduction += dayMinuteWage * minutes;
totalLateToWorkSpan = totalLateToWorkSpan.Add(rollCall.TotalLateEntryDuration);
}
}
if (mandatoryDays == 31)
{
mandatoryDays = 30;