diff --git a/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs b/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs
index 4c9478c8..ed64868b 100644
--- a/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs
+++ b/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs
@@ -61,5 +61,9 @@ public class ComputingViewModel
///
public TimeSpan EmployeeMandatoryHours { get; set; }
+ ///
+ /// مجموع مرخصی های پرسنل در این فیش حقوقی
+ ///
+ public TimeSpan TotalLeaveOnThisCheckout { get; set; }
//public List holidays;
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
index 6b0f52d7..f05ae55b 100644
--- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
+++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
@@ -1131,7 +1131,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
ch.TotalBreakTimeStr = ch.CheckoutRollCall.TotalBreakTimeSpan.ToFarsiHoursAndMinutes("-");
ch.TotalPresentTimeStr = ch.CheckoutRollCall.TotalPresentTimeSpan.ToFarsiHoursAndMinutes("-");
ch.TotalMandatoryTimeStr = ch.CheckoutRollCall.TotalMandatoryTimeSpan.ToFarsiHoursAndMinutes("-");
- ch.TotalPaidLeave = ch.CheckoutRollCall.TotalPaidLeaveTmeSpan.ToFarsiDaysAndHoursAndMinutes("-");
+ ch.TotalPaidLeave = Tools.ToFarsiHoursAndMinutes(Convert.ToInt32(ch.CheckoutRollCall.TotalPaidLeaveTmeSpan.TotalHours), ch.CheckoutRollCall.TotalPaidLeaveTmeSpan.Minutes, "-");
ch.MonthlyRollCall = ch.CheckoutRollCall.RollCallDaysCollection
.Select(x => new CheckoutDailyRollCallViewModel
{
diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs
index 261dea2c..eb78e688 100644
--- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs
+++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs
@@ -323,6 +323,9 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll
TimeSpan totalLeaveSpan = TimeSpan.Zero;
TimeSpan starndardHoursesPerTotalDaysSapn = new TimeSpan(hours, minutes, 0);
+
+ //محموع تمام مرخصی های این ماه
+ TimeSpan totalLeaveOnThisCheckout = TimeSpan.Zero;
if (leaveSearchResult.Count > 0 || hoursesleave.Count > 0)
{
if (leaveSearchResult.Any(x => x.HasShiftDuration))
@@ -342,6 +345,7 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll
TimeSpan totalLeave = new TimeSpan(leaveSearchResult.Sum(x => x.ShiftDuration.Ticks));
totalLeave = totalLeave.Add(hoursesleaveTimeSpans);
+ totalLeaveOnThisCheckout = totalLeave;
var totalLeaveDouble = (totalLeave.TotalMinutes) / 60;
if (totalLeaveDouble > starndardHoursesPerTotalDays)
{
@@ -413,7 +417,11 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll
totalLeaveSpan = sumLeave;
}
-
+ #region TotalLeaveOnThisCheckout
+
+ totalLeaveOnThisCheckout = (leavingDayCout * workingPerDayAve).Add(hoursesleaveTimeSpans);
+
+ #endregion
}
@@ -886,6 +894,10 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll
// مرخصی استحقاقی
TotalPaidLeave = totalLeaveSpan,
+
+ // مجموع مرخصی های پرسنل در این فیش حقوقی
+ TotalLeaveOnThisCheckout = totalLeaveOnThisCheckout,
+
//مرخصی استعلاجی
TotalSickLeave = new TimeSpan(sickLeaveTimeSpans.Sum(x => x.Ticks)),
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs
index ff15a680..9910ae27 100644
--- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs
+++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs
@@ -31,6 +31,7 @@ using PersianTools.Core;
using ServiceHost.Hubs;
using System.Diagnostics.Contracts;
using WorkFlow.Application.Contracts.WorkFlow;
+using System.Globalization;
namespace ServiceHost.Areas.Admin.Pages.Company.Checkouts;
@@ -949,6 +950,23 @@ public class IndexModel : PageModel
contract.ContractEndGr, contract.WorkshopIds, contract.EmployeeId, fridayStartToEnd,
officialHoliday, totalHoursH, totalHoursM, consumableItemDouble, housingAllowanceDouble,
familyAllowanceDouble, marriedAllowanceDouble, workshop.IsOldContract);
+
+ switch (computeOption)
+ {
+ case "OnEndOfYear":
+ var endOfYearCheckout = separation.ContractEnd.Substring(5, 2);
+
+ mandatoryCompute.TotalPaidLeave = separation.HasLeft || endOfYearCheckout == "12" ? mandatoryCompute.TotalPaidLeave : mandatoryCompute.TotalLeaveOnThisCheckout;
+ break;
+ case "OnLeftWork":
+ mandatoryCompute.TotalPaidLeave = separation.HasLeft ? mandatoryCompute.TotalPaidLeave : mandatoryCompute.TotalLeaveOnThisCheckout;
+ break;
+ case "OnEndOfContract":
+ var startMonth = contract.ContarctStart.Substring(5, 2);
+ var endMonth = contract.ContractEnd.Substring(5, 2);
+ mandatoryCompute.TotalPaidLeave = startMonth != endMonth ? mandatoryCompute.TotalLeaveOnThisCheckout : mandatoryCompute.TotalPaidLeave;
+ break;
+ }
var command = new CreateCheckout
{
EmployeeFullName = employee.EmployeeFullName,