feat: add dynamic deduction items for late entry and insurance fines to checkout calculations
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
namespace _0_Framework.Application.Enums
|
||||||
|
{
|
||||||
|
public class CheckoutDynamicDeductionItem
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public int Count { get; set; }
|
||||||
|
public string Amount { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using _0_Framework.Application;
|
using _0_Framework.Application;
|
||||||
|
using _0_Framework.Application.Enums;
|
||||||
using _0_Framework.Domain;
|
using _0_Framework.Domain;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
||||||
@@ -33,7 +34,8 @@ public class CustomizeCheckout : EntityBase
|
|||||||
ICollection<CustomizeCheckoutSalaryAid> customizeCheckoutSalaryAids,
|
ICollection<CustomizeCheckoutSalaryAid> customizeCheckoutSalaryAids,
|
||||||
ICollection<CustomizeCheckoutReward> customizeCheckoutRewards, TimeSpan lateToWorkValue, double settingSalary,
|
ICollection<CustomizeCheckoutReward> customizeCheckoutRewards, TimeSpan lateToWorkValue, double settingSalary,
|
||||||
double dailyWage, WorkshopShiftStatus shiftStatus, IrregularShift irregularShift,
|
double dailyWage, WorkshopShiftStatus shiftStatus, IrregularShift irregularShift,
|
||||||
ICollection<CustomizeRotatingShift> customizeRotatingShifts, ICollection<CustomizeCheckoutRegularShift> employeeSettingsShifts)
|
ICollection<CustomizeRotatingShift> customizeRotatingShifts, ICollection<CustomizeCheckoutRegularShift> employeeSettingsShifts,
|
||||||
|
ICollection<CheckoutDynamicDeductionItem> checkoutDynamicDeductions)
|
||||||
{
|
{
|
||||||
YearInt = Convert.ToInt32(contractStart.ToFarsi().Substring(0, 4));
|
YearInt = Convert.ToInt32(contractStart.ToFarsi().Substring(0, 4));
|
||||||
MonthInt = Convert.ToInt32(contractStart.ToFarsi().Substring(5, 2));
|
MonthInt = Convert.ToInt32(contractStart.ToFarsi().Substring(5, 2));
|
||||||
@@ -83,6 +85,7 @@ public class CustomizeCheckout : EntityBase
|
|||||||
IrregularShift = irregularShift;
|
IrregularShift = irregularShift;
|
||||||
CustomizeRotatingShifts = customizeRotatingShifts;
|
CustomizeRotatingShifts = customizeRotatingShifts;
|
||||||
RegularShifts = employeeSettingsShifts;
|
RegularShifts = employeeSettingsShifts;
|
||||||
|
CheckoutDynamicDeductions = checkoutDynamicDeductions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -286,6 +289,7 @@ public class CustomizeCheckout : EntityBase
|
|||||||
public ICollection<CustomizeCheckoutLoanInstallments> CustomizeCheckoutLoanInstallments { get; set; }
|
public ICollection<CustomizeCheckoutLoanInstallments> CustomizeCheckoutLoanInstallments { get; set; }
|
||||||
public ICollection<CustomizeCheckoutSalaryAid> CustomizeCheckoutSalaryAids { get; set; }
|
public ICollection<CustomizeCheckoutSalaryAid> CustomizeCheckoutSalaryAids { get; set; }
|
||||||
public ICollection<CustomizeCheckoutReward> CustomizeCheckoutRewards { get; set; }
|
public ICollection<CustomizeCheckoutReward> CustomizeCheckoutRewards { get; set; }
|
||||||
|
public ICollection<CheckoutDynamicDeductionItem> CheckoutDynamicDeductions { get; private set; }
|
||||||
|
|
||||||
public IrregularShift IrregularShift { get; set; }
|
public IrregularShift IrregularShift { get; set; }
|
||||||
public ICollection<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; }
|
public ICollection<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; }
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ using Company.Domain.CustomizeCheckoutTempAgg.ValueObjects;
|
|||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using _0_Framework.Application.Enums;
|
||||||
|
|
||||||
|
|
||||||
namespace Company.Domain.CustomizeCheckoutTempAgg;
|
namespace Company.Domain.CustomizeCheckoutTempAgg;
|
||||||
@@ -21,7 +22,8 @@ public class CustomizeCheckoutTemp : EntityBase
|
|||||||
{
|
{
|
||||||
LateToWorkValue = lateToWorkValue;
|
LateToWorkValue = lateToWorkValue;
|
||||||
}
|
}
|
||||||
public CustomizeCheckoutTemp(DateTime contractStart, DateTime contractEnd, long employeeId, string employeeFName,
|
public CustomizeCheckoutTemp(
|
||||||
|
DateTime contractStart, DateTime contractEnd, long employeeId, string employeeFName,
|
||||||
string employeeLName, DateTime employeeDateOfBirth,
|
string employeeLName, DateTime employeeDateOfBirth,
|
||||||
string employeeNationalCode, string workshopFullName, long workshopId, long? contractId,
|
string employeeNationalCode, string workshopFullName, long workshopId, long? contractId,
|
||||||
double monthlySalary, double fridayPay, double overTimePay, double baseYearsPay, double bonusesPay,
|
double monthlySalary, double fridayPay, double overTimePay, double baseYearsPay, double bonusesPay,
|
||||||
@@ -37,7 +39,8 @@ public class CustomizeCheckoutTemp : EntityBase
|
|||||||
ICollection<CustomizeCheckoutTempSalaryAid> customizeCheckoutSalaryAids,
|
ICollection<CustomizeCheckoutTempSalaryAid> customizeCheckoutSalaryAids,
|
||||||
ICollection<CustomizeCheckoutTempReward> customizeCheckoutRewards,
|
ICollection<CustomizeCheckoutTempReward> customizeCheckoutRewards,
|
||||||
TimeSpan lateToWorkValue, double settingSalary, double dailyWage, WorkshopShiftStatus shiftStatus, IrregularShift irregularShift,
|
TimeSpan lateToWorkValue, double settingSalary, double dailyWage, WorkshopShiftStatus shiftStatus, IrregularShift irregularShift,
|
||||||
ICollection<CustomizeRotatingShift> customizeRotatingShifts, ICollection<CustomizeCheckoutRegularShift> employeeSettingsShifts)
|
ICollection<CustomizeRotatingShift> customizeRotatingShifts, ICollection<CustomizeCheckoutRegularShift> employeeSettingsShifts,
|
||||||
|
ICollection<CheckoutDynamicDeductionItem> checkoutDynamicDeductions)
|
||||||
{
|
{
|
||||||
YearInt = Convert.ToInt32(contractStart.ToFarsi().Substring(0, 4));
|
YearInt = Convert.ToInt32(contractStart.ToFarsi().Substring(0, 4));
|
||||||
MonthInt = Convert.ToInt32(contractStart.ToFarsi().Substring(5, 2));
|
MonthInt = Convert.ToInt32(contractStart.ToFarsi().Substring(5, 2));
|
||||||
@@ -87,6 +90,7 @@ public class CustomizeCheckoutTemp : EntityBase
|
|||||||
IrregularShift = irregularShift;
|
IrregularShift = irregularShift;
|
||||||
CustomizeRotatingShifts = customizeRotatingShifts;
|
CustomizeRotatingShifts = customizeRotatingShifts;
|
||||||
RegularShifts = employeeSettingsShifts;
|
RegularShifts = employeeSettingsShifts;
|
||||||
|
CheckoutDynamicDeductions = checkoutDynamicDeductions;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Getters
|
#region Getters
|
||||||
@@ -123,6 +127,7 @@ public class CustomizeCheckoutTemp : EntityBase
|
|||||||
public IrregularShift IrregularShift { get; set; }
|
public IrregularShift IrregularShift { get; set; }
|
||||||
public ICollection<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; }
|
public ICollection<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; }
|
||||||
public ICollection<CustomizeCheckoutRegularShift> RegularShifts { get; set; }
|
public ICollection<CustomizeCheckoutRegularShift> RegularShifts { get; set; }
|
||||||
|
public ICollection<CheckoutDynamicDeductionItem> CheckoutDynamicDeductions { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Security.AccessControl;
|
using System.Security.AccessControl;
|
||||||
using _0_Framework.Application;
|
using _0_Framework.Application;
|
||||||
|
using _0_Framework.Application.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Base;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Base;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
||||||
@@ -18,8 +19,6 @@ namespace CompanyManagment.App.Contracts.CustomizeCheckout;
|
|||||||
public class CustomizeCheckoutMandatoryViewModel
|
public class CustomizeCheckoutMandatoryViewModel
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// حقوق ماهانه
|
/// حقوق ماهانه
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -207,6 +206,8 @@ public class CustomizeCheckoutMandatoryViewModel
|
|||||||
public ICollection<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; } = [];
|
public ICollection<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; } = [];
|
||||||
|
|
||||||
public ICollection<CustomizeSifts> EmployeeSettingsShifts { get; set; } = [];
|
public ICollection<CustomizeSifts> EmployeeSettingsShifts { get; set; } = [];
|
||||||
|
public List<CheckoutDynamicDeductionItem> DynamicDeductions { get; set; } = new();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime;
|
using System.Runtime;
|
||||||
using System.Security.AccessControl;
|
using System.Security.AccessControl;
|
||||||
|
using _0_Framework.Application.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Base;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Base;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
||||||
@@ -12,116 +13,115 @@ using CompanyManagment.App.Contracts.Loan;
|
|||||||
using CompanyManagment.App.Contracts.Reward;
|
using CompanyManagment.App.Contracts.Reward;
|
||||||
using CompanyManagment.App.Contracts.SalaryAid;
|
using CompanyManagment.App.Contracts.SalaryAid;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.CustomizeCheckout
|
namespace CompanyManagment.App.Contracts.CustomizeCheckout;
|
||||||
|
|
||||||
|
public class CustomizeCheckoutViewModel
|
||||||
{
|
{
|
||||||
public class CustomizeCheckoutViewModel
|
public long Id { get; set; }
|
||||||
{
|
public DateTime CreationDate { get; set; }
|
||||||
public long Id { get; set; }
|
public string Month { get; set; }
|
||||||
public DateTime CreationDate { get; set; }
|
public string Year { get; set; }
|
||||||
public string Month { get; set; }
|
public int PrintCounter { get; set; }
|
||||||
public string Year { get; set; }
|
|
||||||
public int PrintCounter { get; set; }
|
|
||||||
|
|
||||||
|
|
||||||
public long EmployeeId { get; set; }
|
public long EmployeeId { get; set; }
|
||||||
public string EmployeeFName { get; set; }
|
public string EmployeeFName { get; set; }
|
||||||
public string EmployeeLName { get; set; }
|
public string EmployeeLName { get; set; }
|
||||||
public string EmployeeFullName => $"{EmployeeFName} {EmployeeLName}";
|
public string EmployeeFullName => $"{EmployeeFName} {EmployeeLName}";
|
||||||
public string FatherName { get; set; }
|
public string FatherName { get; set; }
|
||||||
public string NationalCode { get; set; }
|
public string NationalCode { get; set; }
|
||||||
public string DateOfBirth { get; set; }
|
public string DateOfBirth { get; set; }
|
||||||
public long PersonnelCode { get; set; }
|
public long PersonnelCode { get; set; }
|
||||||
public string PersonnelCodeString => PersonnelCode.ToString();
|
public string PersonnelCodeString => PersonnelCode.ToString();
|
||||||
|
|
||||||
public string WorkshopName { get; set; }
|
public string WorkshopName { get; set; }
|
||||||
public long WorkshopId { get; set; }
|
public long WorkshopId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public long EmployerId { get; set; }
|
public long EmployerId { get; set; }
|
||||||
public string EmployerName { get; set; }
|
public string EmployerName { get; set; }
|
||||||
public List<EmployerViewModel> EmployerList { get; set; }
|
public List<EmployerViewModel> EmployerList { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public long ContractId { get; set; }
|
public long ContractId { get; set; }
|
||||||
public string ContractNo { get; set; }
|
public string ContractNo { get; set; }
|
||||||
public DateTime ContractStartGr { get; set; }
|
public DateTime ContractStartGr { get; set; }
|
||||||
public DateTime ContractEndGr { get; set; }
|
public DateTime ContractEndGr { get; set; }
|
||||||
public string ContractStartFa { get; set; }
|
public string ContractStartFa { get; set; }
|
||||||
public string ContractEndFa { get; set; }
|
public string ContractEndFa { get; set; }
|
||||||
//[JsonIgnore]
|
//[JsonIgnore]
|
||||||
//public string LastDayOfWork => LeftWorkDateGr.AddDays(-1).ToFarsi();
|
//public string LastDayOfWork => LeftWorkDateGr.AddDays(-1).ToFarsi();
|
||||||
//[JsonIgnore]
|
//[JsonIgnore]
|
||||||
//public string LeftWorkDateFa => LeftWorkDateGr.ToFarsi();
|
//public string LeftWorkDateFa => LeftWorkDateGr.ToFarsi();
|
||||||
public DateTime LeftWorkDateGr { get; set; }
|
public DateTime LeftWorkDateGr { get; set; }
|
||||||
|
|
||||||
public string SumOfWorkingDays { get; set; }
|
public string SumOfWorkingDays { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public string MonthlySalary { get; set; }
|
public string MonthlySalary { get; set; }
|
||||||
public string BaseYearsPay { get; set; }
|
public string BaseYearsPay { get; set; }
|
||||||
|
|
||||||
public string MarriedAllowance { get; set; }
|
public string MarriedAllowance { get; set; }
|
||||||
public string OvertimePay { get; set; }
|
public string OvertimePay { get; set; }
|
||||||
public string NightworkPay { get; set; }
|
public string NightworkPay { get; set; }
|
||||||
public string FridayPay { get; set; }
|
public string FridayPay { get; set; }
|
||||||
public string MissionPay { get; set; }
|
public string MissionPay { get; set; }
|
||||||
public string ShiftPay { get; set; }
|
public string ShiftPay { get; set; }
|
||||||
public string FamilyAllowance { get; set; }
|
public string FamilyAllowance { get; set; }
|
||||||
public string BonusesPay { get; set; }
|
public string BonusesPay { get; set; }
|
||||||
public string LeavePay { get; set; }
|
public string LeavePay { get; set; }
|
||||||
public string RewardPay { get; set; }
|
public string RewardPay { get; set; }
|
||||||
|
|
||||||
public bool IsBirthday { get; set; } = true;
|
public bool IsBirthday { get; set; } = true;
|
||||||
public string FineDeduction { get; set; }
|
public string FineDeduction { get; set; }
|
||||||
public string InsuranceDeduction { get; set; }
|
public string InsuranceDeduction { get; set; }
|
||||||
public string TaxDeducation { get; set; }
|
public string TaxDeducation { get; set; }
|
||||||
public string InstallmentDeduction { get; set; }
|
public string InstallmentDeduction { get; set; }
|
||||||
public string SalaryAidDeduction { get; set; }
|
public string SalaryAidDeduction { get; set; }
|
||||||
public string AbsenceDeduction { get; set; }
|
public string AbsenceDeduction { get; set; }
|
||||||
public string EarlyExitDeduction { get; set; }
|
public string EarlyExitDeduction { get; set; }
|
||||||
public string LateToWorkDeduction { get; set; }
|
public string LateToWorkDeduction { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public string TotalClaims { get; set; }
|
public string TotalClaims { get; set; }
|
||||||
public string TotalDeductions { get; set; }
|
public string TotalDeductions { get; set; }
|
||||||
public string TotalPayment { get; set; }
|
public string TotalPayment { get; set; }
|
||||||
|
|
||||||
public List<FineViewModel> FineViewModelList { get; set; }
|
public List<FineViewModel> FineViewModelList { get; set; }
|
||||||
public List<RewardViewModel> RewardViewModels { get; set; }
|
public List<RewardViewModel> RewardViewModels { get; set; }
|
||||||
public List<LoanInstallmentViewModel> InstallmentViewModels { get; set; }
|
public List<LoanInstallmentViewModel> InstallmentViewModels { get; set; }
|
||||||
public List<SalaryAidViewModel> SalaryAidViewModels { get; set; }
|
public List<SalaryAidViewModel> SalaryAidViewModels { get; set; }
|
||||||
public bool TotalPaymentHide { get; set; }
|
public bool TotalPaymentHide { get; set; }
|
||||||
public PersonnelCheckoutDailyRollCallViewModel MonthlyRollCall { get; set; }
|
public PersonnelCheckoutDailyRollCallViewModel MonthlyRollCall { get; set; }
|
||||||
public double TotalPaymentD { get; set; }
|
public double TotalPaymentD { get; set; }
|
||||||
|
|
||||||
public string TotalLateToWorkDeduction { get; set; }
|
public string TotalLateToWorkDeduction { get; set; }
|
||||||
|
|
||||||
public string LateToWorkValue { get; set; }
|
public string LateToWorkValue { get; set; }
|
||||||
|
|
||||||
public string SettingSalary { get; set; }
|
public string SettingSalary { get; set; }
|
||||||
public string DailyWage { get; set; }
|
public string DailyWage { get; set; }
|
||||||
public WorkshopShiftStatus ShiftStatus { get; set; }
|
public WorkshopShiftStatus ShiftStatus { get; set; }
|
||||||
|
|
||||||
public string EmployeePicture { get; set; }
|
public string EmployeePicture { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public IrregularShift IrregularShift { get; set; }
|
public IrregularShift IrregularShift { get; set; }
|
||||||
public List<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; }
|
public List<CustomizeRotatingShift> CustomizeRotatingShifts { get; set; }
|
||||||
public List<CustomizeSifts> RegularShift { get; set; }
|
public List<CustomizeSifts> RegularShift { get; set; }
|
||||||
|
|
||||||
public bool HasAmountConflict { get; set; }
|
public bool HasAmountConflict { get; set; }
|
||||||
|
|
||||||
// New: up to three dynamic deduction items (title -> amount string)
|
// New: up to three dynamic deduction items (name, count, amount)
|
||||||
public IDictionary<string, string> DynamicDeductions { get; set; } = new Dictionary<string, string>();
|
public List<CheckoutDynamicDeductionItem> CheckoutDynamicDeductions { get; set; } = new List<CheckoutDynamicDeductionItem>();
|
||||||
|
|
||||||
//public bool HasLeft { get; set; }
|
//public bool HasLeft { get; set; }
|
||||||
//public string IsBlockCantracingParty { get; set; }
|
//public string IsBlockCantracingParty { get; set; }
|
||||||
//public string IsActiveString { get; set; }
|
//public string IsActiveString { get; set; }
|
||||||
//public long WorkingHoursId { get; set; }
|
//public long WorkingHoursId { get; set; }
|
||||||
//public string ArchiveCode { get; set; }
|
//public string ArchiveCode { get; set; }
|
||||||
//public string ConsumableItems { get; set; }
|
//public string ConsumableItems { get; set; }
|
||||||
//public string HousingAllowance { get; set; }
|
//public string HousingAllowance { get; set; }
|
||||||
//public string YearsPay { get; set; }
|
//public string YearsPay { get; set; }
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ namespace CompanyManagment.Application
|
|||||||
result.LateToWorkDeduction, result.EarlyExitDeduction, result.RewardPay, result.SalaryAidDeduction, result.InstallmentDeduction, result.FineDeduction,
|
result.LateToWorkDeduction, result.EarlyExitDeduction, result.RewardPay, result.SalaryAidDeduction, result.InstallmentDeduction, result.FineDeduction,
|
||||||
result.TaxDeduction, result.SumOfWorkingDays, result.TotalClaimsStr, result.TotalDeductionsStr, result.TotalPayment, contract?.ContractNo ?? "-",
|
result.TaxDeduction, result.SumOfWorkingDays, result.TotalClaimsStr, result.TotalDeductionsStr, result.TotalPayment, contract?.ContractNo ?? "-",
|
||||||
fines, loanInstallments, salaryAids, rewards, result.LateToWorkValue, result.SettingSalary, result.DailyWage, result.ShiftStatus, result.IrregularShift, result.CustomizeRotatingShifts,
|
fines, loanInstallments, salaryAids, rewards, result.LateToWorkValue, result.SettingSalary, result.DailyWage, result.ShiftStatus, result.IrregularShift, result.CustomizeRotatingShifts,
|
||||||
regularShift);
|
regularShift,result.DynamicDeductions);
|
||||||
|
|
||||||
|
|
||||||
_customizeCheckoutRepository.Create(entity);
|
_customizeCheckoutRepository.Create(entity);
|
||||||
@@ -187,7 +187,7 @@ namespace CompanyManagment.Application
|
|||||||
computations.LateToWorkDeduction, computations.EarlyExitDeduction, computations.RewardPay, computations.SalaryAidDeduction, computations.InstallmentDeduction, computations.FineDeduction,
|
computations.LateToWorkDeduction, computations.EarlyExitDeduction, computations.RewardPay, computations.SalaryAidDeduction, computations.InstallmentDeduction, computations.FineDeduction,
|
||||||
computations.TaxDeduction, computations.SumOfWorkingDays, computations.TotalClaimsStr, computations.TotalDeductionsStr, computations.TotalPayment, contract?.ContractNo ?? "-",
|
computations.TaxDeduction, computations.SumOfWorkingDays, computations.TotalClaimsStr, computations.TotalDeductionsStr, computations.TotalPayment, contract?.ContractNo ?? "-",
|
||||||
fines, loanInstallments, salaryAids, rewards, computations.LateToWorkValue, computations.SettingSalary, computations.DailyWage, computations.ShiftStatus, computations.IrregularShift,
|
fines, loanInstallments, salaryAids, rewards, computations.LateToWorkValue, computations.SettingSalary, computations.DailyWage, computations.ShiftStatus, computations.IrregularShift,
|
||||||
computations.CustomizeRotatingShifts, regularShift);
|
computations.CustomizeRotatingShifts, regularShift,computations.DynamicDeductions);
|
||||||
|
|
||||||
_customizeCheckoutRepository.Create(entity);
|
_customizeCheckoutRepository.Create(entity);
|
||||||
_customizeCheckoutRepository.RemoveEmployeeCustomizeCheckoutInDates(command.WorkshopId, employeeId, command.ContractStart, command.ContractEnd);
|
_customizeCheckoutRepository.RemoveEmployeeCustomizeCheckoutInDates(command.WorkshopId, employeeId, command.ContractStart, command.ContractEnd);
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ namespace CompanyManagment.Application
|
|||||||
result.LateToWorkDeduction, result.EarlyExitDeduction, result.RewardPay, result.SalaryAidDeduction, result.InstallmentDeduction, result.FineDeduction,
|
result.LateToWorkDeduction, result.EarlyExitDeduction, result.RewardPay, result.SalaryAidDeduction, result.InstallmentDeduction, result.FineDeduction,
|
||||||
result.TaxDeduction, result.SumOfWorkingDays, result.TotalClaimsStr, result.TotalDeductionsStr, result.TotalPayment, contract?.ContractNo ?? "-",
|
result.TaxDeduction, result.SumOfWorkingDays, result.TotalClaimsStr, result.TotalDeductionsStr, result.TotalPayment, contract?.ContractNo ?? "-",
|
||||||
fines, loanInstallments, salaryAids, rewards, result.LateToWorkValue, result.SettingSalary, result.DailyWage, result.ShiftStatus, result.IrregularShift, result.CustomizeRotatingShifts,
|
fines, loanInstallments, salaryAids, rewards, result.LateToWorkValue, result.SettingSalary, result.DailyWage, result.ShiftStatus, result.IrregularShift, result.CustomizeRotatingShifts,
|
||||||
regularShift);
|
regularShift,result.DynamicDeductions);
|
||||||
|
|
||||||
|
|
||||||
_customizeCheckoutTempRepository.Create(entity);
|
_customizeCheckoutTempRepository.Create(entity);
|
||||||
@@ -147,6 +147,7 @@ namespace CompanyManagment.Application
|
|||||||
var regularShift = computations.EmployeeSettingsShifts.Select(x =>
|
var regularShift = computations.EmployeeSettingsShifts.Select(x =>
|
||||||
new CustomizeCheckoutRegularShift(x.StartTime, x.EndTime, x.Placement)).ToList();
|
new CustomizeCheckoutRegularShift(x.StartTime, x.EndTime, x.Placement)).ToList();
|
||||||
|
|
||||||
|
|
||||||
var entity = new CustomizeCheckoutTemp(command.ContractStart, command.ContractEnd, employeeId, employee.FName, employee.LName, employee.DateOfBirth, employee.NationalCode,
|
var entity = new CustomizeCheckoutTemp(command.ContractStart, command.ContractEnd, employeeId, employee.FName, employee.LName, employee.DateOfBirth, employee.NationalCode,
|
||||||
workshop.WorkshopFullName, command.WorkshopId, contract?.Id,
|
workshop.WorkshopFullName, command.WorkshopId, contract?.Id,
|
||||||
computations.MonthlySalary, computations.FridayPay, computations.OverTimePay, computations.BaseYearsPay,
|
computations.MonthlySalary, computations.FridayPay, computations.OverTimePay, computations.BaseYearsPay,
|
||||||
@@ -155,7 +156,7 @@ namespace CompanyManagment.Application
|
|||||||
computations.LateToWorkDeduction, computations.EarlyExitDeduction, computations.RewardPay, computations.SalaryAidDeduction, computations.InstallmentDeduction, computations.FineDeduction,
|
computations.LateToWorkDeduction, computations.EarlyExitDeduction, computations.RewardPay, computations.SalaryAidDeduction, computations.InstallmentDeduction, computations.FineDeduction,
|
||||||
computations.TaxDeduction, computations.SumOfWorkingDays, computations.TotalClaimsStr, computations.TotalDeductionsStr, computations.TotalPayment, contract?.ContractNo ?? "-",
|
computations.TaxDeduction, computations.SumOfWorkingDays, computations.TotalClaimsStr, computations.TotalDeductionsStr, computations.TotalPayment, contract?.ContractNo ?? "-",
|
||||||
fines, loanInstallments, salaryAids, rewards, computations.LateToWorkValue, computations.SettingSalary, computations.DailyWage, computations.ShiftStatus, computations.IrregularShift,
|
fines, loanInstallments, salaryAids, rewards, computations.LateToWorkValue, computations.SettingSalary, computations.DailyWage, computations.ShiftStatus, computations.IrregularShift,
|
||||||
computations.CustomizeRotatingShifts, regularShift);
|
computations.CustomizeRotatingShifts, regularShift,computations.DynamicDeductions);
|
||||||
_customizeCheckoutTempRepository.Create(entity);
|
_customizeCheckoutTempRepository.Create(entity);
|
||||||
_customizeCheckoutTempRepository.RemoveEmployeeTemporaryCheckoutInDates(command.WorkshopId, employeeId, command.ContractStart, command.ContractEnd);
|
_customizeCheckoutTempRepository.RemoveEmployeeTemporaryCheckoutInDates(command.WorkshopId, employeeId, command.ContractStart, command.ContractEnd);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ using CompanyManagment.App.Contracts.Fine;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using _0_Framework.Application.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Base;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Base;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
||||||
@@ -4304,19 +4305,25 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
long workshopId,
|
long workshopId,
|
||||||
DateTime contractStart, DateTime contractEnd)
|
DateTime contractStart, DateTime contractEnd)
|
||||||
{
|
{
|
||||||
|
var dynamicdeductions = new List<CheckoutDynamicDeductionItem>();
|
||||||
//مقدار جریمه تاخیر ورود
|
//مقدار جریمه تاخیر ورود
|
||||||
double lateEntryFine = 0;
|
double lateEntryFine = 0;
|
||||||
//مرز جریمه جداگانه تاخیر ورود
|
//مرز جریمه جداگانه تاخیر ورود
|
||||||
int minuteThresholdForLateEntryFine = 16;
|
int minuteThresholdForLateEntryFine = 16;
|
||||||
|
//تعداد دفعاتی که پرسنل بیش از مرز تاخیر ورود داشته است
|
||||||
int lateEntryFineTimes = 0;
|
int lateEntryFineTimes = 0;
|
||||||
//مرز محاسبه تعجیل خروج
|
//مرز محاسبه تعجیل خروج
|
||||||
int minuteThresholdForEarlyExitCalculation = 30;
|
int minuteThresholdForEarlyExitCalculation = 30;
|
||||||
//مبلغ جریمه تاخیر ورود
|
//مبلغ جریمه تاخیر ورود
|
||||||
int lateEntryFineAmount = 40_000;
|
int lateEntryFineAmount = 400_000;
|
||||||
|
|
||||||
|
|
||||||
//مقدار جریمه افرادی که دارای بیمه هستند ولی غیبت کرده اند
|
//مقدار جریمه افرادی که دارای بیمه هستند ولی غیبت کرده اند
|
||||||
int absenceForInsuranceEmployeesAmount = 150_000;
|
int absenceForInsuranceEmployeesAmount = 1500_000;
|
||||||
|
//جریمه غیبت برای پرسنل بیمه شده
|
||||||
|
double absenceForInsuranceFine = 0;
|
||||||
|
//تعداد روز غیبت پرسنل بیمه شده
|
||||||
|
int absenceForInsuranceDays = 0;
|
||||||
|
|
||||||
|
|
||||||
var checkoutEnd = contractEnd;
|
var checkoutEnd = contractEnd;
|
||||||
@@ -4726,12 +4733,14 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
leavePermittedDays -= absenceDays;
|
leavePermittedDays -= absenceDays;
|
||||||
leavePayAmount = leavePermittedDays * dailyWage;
|
leavePayAmount = leavePermittedDays * dailyWage;
|
||||||
absentsDeductionAmount = 0;
|
absentsDeductionAmount = 0;
|
||||||
|
absenceDays = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
absenceDays -= leavePermittedDays;
|
absenceDays -= leavePermittedDays;
|
||||||
absentsDeductionAmount = absenceDays * dailyWage;
|
absentsDeductionAmount = absenceDays * dailyWage;
|
||||||
leavePayAmount = 0;
|
leavePayAmount = 0;
|
||||||
|
leavePermittedDays = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -5046,6 +5055,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
{
|
{
|
||||||
lateEntryFineTimes = (int)minutes / minuteThresholdForLateEntryFine;
|
lateEntryFineTimes = (int)minutes / minuteThresholdForLateEntryFine;
|
||||||
lateEntryFine = lateEntryFineTimes * lateEntryFineAmount;
|
lateEntryFine = lateEntryFineTimes * lateEntryFineAmount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lateToWorkDeduction += dayMinuteWage * minutes;
|
lateToWorkDeduction += dayMinuteWage * minutes;
|
||||||
@@ -5060,6 +5070,14 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dynamicdeductions.Add(new()
|
||||||
|
{
|
||||||
|
Amount = lateEntryFine.ToMoney(),
|
||||||
|
Name = "جریمه 40 تومانی",
|
||||||
|
Count = lateEntryFineTimes
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if (mandatoryDays == 31)
|
// if (mandatoryDays == 31)
|
||||||
// {
|
// {
|
||||||
@@ -5068,6 +5086,28 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
# region جریمه افراد غایبی که بیمه هستند
|
||||||
|
|
||||||
|
var leftWorkInsurance = _context.LeftWorkInsuranceList.FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId
|
||||||
|
&&( x.StartWorkDate <= contractEnd &&
|
||||||
|
x.LeftWorkDate >= contractStart)
|
||||||
|
|| (x.LeftWorkDate == null && x.StartWorkDate <= contractEnd));
|
||||||
|
if (leftWorkInsurance != null && absenceDays >0)
|
||||||
|
{
|
||||||
|
absenceForInsuranceFine = absenceDays * absenceForInsuranceEmployeesAmount;
|
||||||
|
absenceForInsuranceDays = absenceDays;
|
||||||
|
|
||||||
|
dynamicdeductions.Add(new CheckoutDynamicDeductionItem
|
||||||
|
{
|
||||||
|
Amount = absenceForInsuranceFine.ToMoney(),
|
||||||
|
Name = "جریمه بیمه",
|
||||||
|
Count = absenceForInsuranceDays
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
return new CustomizeCheckoutMandatoryViewModel
|
return new CustomizeCheckoutMandatoryViewModel
|
||||||
{
|
{
|
||||||
InsuranceDeduction = Math.Truncate(insuranceDeductionAmount),
|
InsuranceDeduction = Math.Truncate(insuranceDeductionAmount),
|
||||||
@@ -5110,6 +5150,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
CustomizeRotatingShifts = customizeWorkshopEmployeeSettings.CustomizeRotatingShifts,
|
CustomizeRotatingShifts = customizeWorkshopEmployeeSettings.CustomizeRotatingShifts,
|
||||||
EmployeeSettingsShifts = customizeWorkshopEmployeeSettings.CustomizeWorkshopEmployeeSettingsShifts
|
EmployeeSettingsShifts = customizeWorkshopEmployeeSettings.CustomizeWorkshopEmployeeSettingsShifts
|
||||||
.Select(x => (CustomizeSifts)x).ToList(),
|
.Select(x => (CustomizeSifts)x).ToList(),
|
||||||
|
DynamicDeductions = dynamicdeductions,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,4 +13,8 @@
|
|||||||
<PackageReference Include="PersianTools.Core" Version="2.0.4" />
|
<PackageReference Include="PersianTools.Core" Version="2.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Domain\CustomizeCheckoutShared\ValueObjects\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
Reference in New Issue
Block a user