From 3fa027dfd1145d176d4ab6232d6883865ad4f1fa Mon Sep 17 00:00:00 2001 From: MahanCh Date: Thu, 26 Jun 2025 14:43:11 +0330 Subject: [PATCH] change rollcall mandatoory computes --- .../Repository/RollCallMandatoryRepository.cs | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs index 9ca9baa1..b7d610d1 100644 --- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs @@ -3889,27 +3889,38 @@ public class RollCallMandatoryRepository : RepositoryBase, 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, 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;