add HasCheckout Validation in InsuranceList
This commit is contained in:
@@ -10,6 +10,15 @@ namespace Company.Domain.CheckoutAgg;
|
||||
|
||||
public interface ICheckoutRepository : IRepository<long, Checkout>
|
||||
{
|
||||
/// <summary>
|
||||
/// چک میکند که آیا پرسنل در سال و ماه درخواستی در این کارگاه فیش حقوقی دارد یا خیر
|
||||
/// </summary>
|
||||
/// <param name="workshopId"></param>
|
||||
/// <param name="employeId"></param>
|
||||
/// <param name="سال به صورت رشته عددی"></param>
|
||||
/// <param name="ماه بصورت رشته عددی"></param>
|
||||
/// <returns></returns>
|
||||
bool HasCheckout(long workshopId, long employeId, string year, string month);
|
||||
EditCheckout GetDetails(long id);
|
||||
|
||||
void CreateCkeckout(Checkout command);
|
||||
|
||||
@@ -50,7 +50,7 @@ public class EmployeeInsurancListDataViewModel
|
||||
/// </summary>
|
||||
public double BenefitsIncludedNonContinuous { get; set; }
|
||||
/// <summary>
|
||||
/// جمع کل دستمزد و مزایای ماهانه
|
||||
/// جمع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول
|
||||
/// DSW_TOTL
|
||||
/// </summary>
|
||||
public double IncludedAndNotIncluded { get; set; }
|
||||
|
||||
@@ -253,6 +253,13 @@ public class EmployeeDetailsForInsuranceListViewModel
|
||||
/// DSW_SPOUSE
|
||||
/// </summary>
|
||||
public double MarriedAllowance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیا پرسنل دارای فیش حقوقی برای این ماه است
|
||||
/// -
|
||||
/// جهت محاسبه اضافه کار و حق اولاد
|
||||
/// </summary>
|
||||
public bool EmployeeHasCheckout { get; set; }
|
||||
///// <summary>
|
||||
///// مجموع پایه سنواتی کارکنان
|
||||
///// DSK_INC
|
||||
|
||||
@@ -28,4 +28,13 @@ public class CreateInsuranceWorkshopInfo
|
||||
public long? InsuranceJobId { get; set; }
|
||||
//public bool ConfirmSentlist { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// محاسبه اضافه کار فیش حقوقی در لیست بیمه
|
||||
/// </summary>
|
||||
public bool InsuranceCheckoutOvertime { get; set; }
|
||||
/// <summary>
|
||||
/// محاسبه حق اولاد در لیست بیمه
|
||||
/// </summary>
|
||||
public bool InsuranceCheckoutFamilyAllowance { get; set; }
|
||||
|
||||
}
|
||||
@@ -5,6 +5,7 @@ using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using _0_Framework.Application;
|
||||
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
||||
using Company.Domain.CheckoutAgg;
|
||||
using Company.Domain.DateSalaryAgg;
|
||||
using Company.Domain.DateSalaryItemAgg;
|
||||
using Company.Domain.EmployeeAgg;
|
||||
@@ -55,8 +56,9 @@ public class InsuranceListApplication: IInsuranceListApplication
|
||||
private readonly IPersonalContractingPartyApp _contractingPartyApp;
|
||||
private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository;
|
||||
private readonly IInsuranceYearlySalaryApplication _insuranceYearlySalaryApplication;
|
||||
private readonly ICheckoutRepository _checkoutRepository;
|
||||
|
||||
public InsuranceListApplication( IInsuranceListRepository insuranceListRepositpry, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceEmployeeInfoRepository insuranceEmployeeInfoRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workShopRepository, ILeftWorkInsuranceApplication leftWorkInsuranceApplication, IInsuranceEmployeeInfoApplication insuranceEmployeeInfoApplication, IEmployeeInsurancListDataApplication employeeInsurancListDataApplication, IYearlySalaryApplication yearlySalaryApplication,IYearlySalaryItemApplication yearlySalaryItemApplication ,IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository,IInsuranceJobItemRepositpry insuranceJobItemRepository, IDateSalaryRepository dateSalaryRepository, IDateSalaryItemRepository dateSalaryItemRepository, IPersonalContractingPartyApp contractingPartyApp, ILeftWorkInsuranceRepository leftWorkInsuranceRepository, IInsuranceYearlySalaryApplication insuranceYearlySalaryApplication)
|
||||
public InsuranceListApplication( IInsuranceListRepository insuranceListRepositpry, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceEmployeeInfoRepository insuranceEmployeeInfoRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workShopRepository, ILeftWorkInsuranceApplication leftWorkInsuranceApplication, IInsuranceEmployeeInfoApplication insuranceEmployeeInfoApplication, IEmployeeInsurancListDataApplication employeeInsurancListDataApplication, IYearlySalaryApplication yearlySalaryApplication,IYearlySalaryItemApplication yearlySalaryItemApplication ,IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository,IInsuranceJobItemRepositpry insuranceJobItemRepository, IDateSalaryRepository dateSalaryRepository, IDateSalaryItemRepository dateSalaryItemRepository, IPersonalContractingPartyApp contractingPartyApp, ILeftWorkInsuranceRepository leftWorkInsuranceRepository, IInsuranceYearlySalaryApplication insuranceYearlySalaryApplication, ICheckoutRepository checkoutRepository)
|
||||
{
|
||||
// _transactionManager = transactionManager;
|
||||
|
||||
@@ -77,6 +79,7 @@ public class InsuranceListApplication: IInsuranceListApplication
|
||||
_contractingPartyApp = contractingPartyApp;
|
||||
_leftWorkInsuranceRepository = leftWorkInsuranceRepository;
|
||||
_insuranceYearlySalaryApplication = insuranceYearlySalaryApplication;
|
||||
_checkoutRepository = checkoutRepository;
|
||||
}
|
||||
|
||||
public OperationResult Create(CreateInsuranceList command)
|
||||
@@ -379,7 +382,7 @@ public class InsuranceListApplication: IInsuranceListApplication
|
||||
|
||||
var result = new MainEmployeeDetailsViewModel();
|
||||
var workshopId = searchModel.WorkshopIds.FirstOrDefault();
|
||||
//var employerId = _workShopRepository.GetDetails(workshopId).EmployerIdList.FirstOrDefault();
|
||||
var workshop = _workShopRepository.GetDetails(workshopId);
|
||||
//var isBolock = _contractingPartyApp.IsBlockByEmployerId(employerId);
|
||||
var isBolock = _contractingPartyApp.IsBlockCheckByWorkshopId(workshopId);
|
||||
double monthlybaseYear = 0;
|
||||
@@ -408,10 +411,27 @@ public class InsuranceListApplication: IInsuranceListApplication
|
||||
_insuranceListRepositpry.GetEmployeeInsuranceDataAmonthAgo(startDateGr, workshopId);
|
||||
watch.Start();
|
||||
var computeResult = employeesInfoAndLeftWorks.Select(employee =>
|
||||
{
|
||||
var dateOfBirth = employee.DateOfBirthGr.ToFarsi();
|
||||
var dateOfIssue = employee.DateOfIssueGr.ToFarsi();
|
||||
var leftDate = employee.LeftWorkDateGr != null ? employee.LeftWorkDateGr.Value.AddDays(-1) : new DateTime();
|
||||
{
|
||||
var dateOfBirth = employee.DateOfBirthGr.ToFarsi();
|
||||
var dateOfIssue = employee.DateOfIssueGr.ToFarsi();
|
||||
var leftDate = employee.LeftWorkDateGr != null ? employee.LeftWorkDateGr.Value.AddDays(-1) : new DateTime();
|
||||
|
||||
|
||||
//آیا در کارگاه تیک محاسبه اضافه کار یا حق اولاد زده شده است؟
|
||||
bool hasWorkshopOverTimeOrFamilyAllowance =
|
||||
workshop.InsuranceCheckoutFamilyAllowance || workshop.InsuranceCheckoutOvertime;
|
||||
|
||||
//آیا پرسنل فیش حقوق دارد
|
||||
//این مورد زمانی چک می شود که تیک محاسبه در کارگاه زده شده باشد
|
||||
// در غیر اینصورت بصورت پیشفرض دارای فیش حقوق در نظر گرفته می شود
|
||||
bool employeeHasCheckout = true;
|
||||
if (hasWorkshopOverTimeOrFamilyAllowance && (leftDate >= startDateGr || employee.LeftWorkDateGr == null))
|
||||
{
|
||||
employeeHasCheckout = _checkoutRepository.HasCheckout(workshopId, employee.EmployeeId,
|
||||
searchModel.Year, searchModel.Month);
|
||||
}
|
||||
|
||||
|
||||
|
||||
var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employee.StartWorkDateGr, leftDate, startDateGr,endDateGr, employee.EmployeeId);
|
||||
var leftWorkFa = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr.ToFarsi(): "";
|
||||
@@ -472,8 +492,8 @@ public class InsuranceListApplication: IInsuranceListApplication
|
||||
return new EmployeeDetailsForInsuranceListViewModel
|
||||
{
|
||||
#region EmployeeInfo
|
||||
|
||||
InsuranceEmployeeInformationId = employee.InsuranceEmployeeInformationId,
|
||||
EmployeeHasCheckout = employeeHasCheckout,
|
||||
InsuranceEmployeeInformationId = employee.InsuranceEmployeeInformationId,
|
||||
EmployeeId = employee.EmployeeId,
|
||||
FName = employee.FName,
|
||||
LName = employee.LName,
|
||||
@@ -1423,6 +1443,7 @@ public class InsuranceListApplication: IInsuranceListApplication
|
||||
var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employeeData.StartWorkDateGr, leftDate, startDateGr, endDateGr, employeeData.EmployeeId);
|
||||
var leftWorkFa = workingDays.hasLeftWorkInMonth ? employeeData.LeftWorkDateGr.ToFarsi() : "";
|
||||
var startWorkFa = employeeData.StartWorkDateGr.ToFarsi();
|
||||
var workshop = _workShopRepository.GetDetails(workshopId);
|
||||
|
||||
//آیا کارفرما است
|
||||
bool isManager = employeeData.JobId is 10 or 16 or 17 or 18 or 3498;
|
||||
@@ -1432,9 +1453,22 @@ public class InsuranceListApplication: IInsuranceListApplication
|
||||
|
||||
// محاسبه بیمه بیکاری
|
||||
var unEmploymentInsurance = (employeeData.BenefitsIncludedContinuous * 3) / 100;
|
||||
|
||||
|
||||
//آیا در کارگاه تیک محاسبه اضافه کار یا حق اولاد زده شده است؟
|
||||
bool hasWorkshopOverTimeOrFamilyAllowance =
|
||||
workshop.InsuranceCheckoutFamilyAllowance || workshop.InsuranceCheckoutOvertime;
|
||||
|
||||
bool employeeHasCheckout = true;
|
||||
if (hasWorkshopOverTimeOrFamilyAllowance && (leftDate >= startDateGr || employeeData.LeftWorkDateGr == null))
|
||||
{
|
||||
employeeHasCheckout = _checkoutRepository.HasCheckout(workshopId, employeeData.EmployeeId,
|
||||
searchModel.Year, searchModel.Month);
|
||||
}
|
||||
return new EmployeeDetailsForInsuranceListViewModel
|
||||
{
|
||||
#region EmployeeInfo
|
||||
#region EmployeeInfo
|
||||
EmployeeHasCheckout = employeeHasCheckout,
|
||||
EmployeeInsurancListDataId = employeeData.EmployeeInsurancListDataId,
|
||||
|
||||
InsuranceEmployeeInformationId = employeeData.InsuranceEmployeeInformationId,
|
||||
|
||||
@@ -44,6 +44,8 @@ public class InsuranceWorkshopInfoApplication: IInsuranceWorkshopInfoApplication
|
||||
workshop.InsuranceJobId = workshopObj.InsuranceJobId;
|
||||
workshop.InsuranceCode = workshopObj.InsuranceCode;
|
||||
workshop.AgreementNumber = workshopObj.AgreementNumber;
|
||||
workshop.InsuranceCheckoutOvertime = workshopObj.InsuranceCheckoutOvertime;
|
||||
workshop.InsuranceCheckoutFamilyAllowance = workshopObj.InsuranceCheckoutFamilyAllowance;
|
||||
return workshop;
|
||||
}
|
||||
else
|
||||
@@ -60,6 +62,8 @@ public class InsuranceWorkshopInfoApplication: IInsuranceWorkshopInfoApplication
|
||||
workshop.FixedSalary = workshopObj.FixedSalary;
|
||||
workshop.Population = workshopObj.Population;
|
||||
workshop.InsuranceJobId = workshopObj.InsuranceJobId;
|
||||
workshop.InsuranceCheckoutOvertime = workshopObj.InsuranceCheckoutOvertime;
|
||||
workshop.InsuranceCheckoutFamilyAllowance = workshopObj.InsuranceCheckoutFamilyAllowance;
|
||||
return workshop;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,6 +47,23 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
||||
_rollCallRepository = rollCallRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// چیک میکند که آیا پرسنل در سال و ماه درخواستی در این کارگاه فیش حقوقی دارد یا خیر
|
||||
/// </summary>
|
||||
/// <param name="workshopId"></param>
|
||||
/// <param name="employeId"></param>
|
||||
/// <param name="سال به صورت رشته عددی"></param>
|
||||
/// <param name="ماه بصورت رشته عددی"></param>
|
||||
/// <returns></returns>
|
||||
public bool HasCheckout(long workshopId, long employeId, string year, string month)
|
||||
{
|
||||
var farisMonthName = Tools.ToFarsiMonthByNumber(month);
|
||||
|
||||
return _context.CheckoutSet.Any(x =>
|
||||
x.WorkshopId == workshopId && x.EmployeeId == employeId && x.Year == year && x.Month == farisMonthName &&
|
||||
x.IsActiveString == "true");
|
||||
}
|
||||
|
||||
public EditCheckout GetDetails(long id)
|
||||
{
|
||||
return _context.CheckoutSet.Select(x => new EditCheckout()
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
{
|
||||
var index = 1;
|
||||
|
||||
if (Model.EmployeeDetailsForInsuranceList.Any(x => !x.IsMaritalStatusSet))
|
||||
if (Model.EmployeeDetailsForInsuranceList.Any(x => !x.IsMaritalStatusSet || !x.EmployeeHasCheckout))
|
||||
{
|
||||
<script>
|
||||
|
||||
@@ -51,12 +51,12 @@
|
||||
<th colspan="4">
|
||||
|
||||
<p style="color: red">
|
||||
ابتدا وضعیت تاهل پرسنل در لیست زیر را مشخص نمایید
|
||||
ابتدا خطاهای پرسنل در لیست زیر را برطرف نمایید
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<th class="header-style sorting_asc_disabled sorting_desc_disabled"> نوع خطا </th>
|
||||
<th class="header-style sorting_asc_disabled sorting_desc_disabled"> کدملی </th>
|
||||
<th class="header-styledit-btn sorting_asc_disabled sorting_desc_disabled"> نام خانوادگی </th>
|
||||
<th class="header-style sorting_asc_disabled sorting_desc_disabled"> نام </th>
|
||||
@@ -69,10 +69,24 @@
|
||||
<tbody>
|
||||
@foreach (var item in Model.EmployeeDetailsForInsuranceList)
|
||||
{
|
||||
if (!item.IsMaritalStatusSet)
|
||||
if (!item.IsMaritalStatusSet || !item.EmployeeHasCheckout)
|
||||
{
|
||||
<tr>
|
||||
<td class="td-ellipsis emptyTR" >
|
||||
|
||||
@{
|
||||
if (!item.IsMaritalStatusSet)
|
||||
{
|
||||
<span style="color: #ff00ce"> وضعیت تاهل ندارد </span>
|
||||
<br />
|
||||
}
|
||||
|
||||
if (!item.EmployeeHasCheckout)
|
||||
{
|
||||
<span style="color: red">فیش حقوقی ندارد</span>
|
||||
}
|
||||
}
|
||||
</td>
|
||||
<td class="td-ellipsis @(item.Nationality == "ایرانی" ? "emptyTR" : "")">@item.NationalCode</td>
|
||||
<td class="td-ellipsis emptyTR">@item.LName</td>
|
||||
<td class="td-ellipsis emptyTR">@item.FName</td>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
{
|
||||
var index = 1;
|
||||
|
||||
if (Model.EmployeeDetailsForInsuranceList.Any(x => !x.IsMaritalStatusSet))
|
||||
if (Model.EmployeeDetailsForInsuranceList.Any(x => !x.IsMaritalStatusSet || !x.EmployeeHasCheckout))
|
||||
{
|
||||
<script>
|
||||
|
||||
@@ -51,12 +51,12 @@
|
||||
<th colspan="4">
|
||||
|
||||
<p style="color: red">
|
||||
ابتدا وضعیت تاهل پرسنل در لیست زیر را مشخص نمایید
|
||||
ابتدا خطاهای پرسنل در لیست زیر را برطرف نمایید
|
||||
</p>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<th class="header-style sorting_asc_disabled sorting_desc_disabled"> نوع خطا </th>
|
||||
<th class="header-style sorting_asc_disabled sorting_desc_disabled"> کدملی </th>
|
||||
<th class="header-styledit-btn sorting_asc_disabled sorting_desc_disabled"> نام خانوادگی </th>
|
||||
<th class="header-style sorting_asc_disabled sorting_desc_disabled"> نام </th>
|
||||
@@ -69,10 +69,24 @@
|
||||
<tbody>
|
||||
@foreach (var item in Model.EmployeeDetailsForInsuranceList)
|
||||
{
|
||||
if (!item.IsMaritalStatusSet)
|
||||
if (!item.IsMaritalStatusSet || !item.EmployeeHasCheckout)
|
||||
{
|
||||
<tr>
|
||||
<td class="td-ellipsis emptyTR">
|
||||
|
||||
@{
|
||||
if (!item.IsMaritalStatusSet)
|
||||
{
|
||||
<span style="color: #ff00ce"> وضعیت تاهل ندارد </span>
|
||||
<br />
|
||||
}
|
||||
|
||||
if (!item.EmployeeHasCheckout)
|
||||
{
|
||||
<span style="color: red">فیش حقوقی ندارد</span>
|
||||
}
|
||||
}
|
||||
</td>
|
||||
<td class="td-ellipsis @(item.Nationality == "ایرانی" ? "emptyTR" : "")">@item.NationalCode</td>
|
||||
<td class="td-ellipsis emptyTR">@item.LName</td>
|
||||
<td class="td-ellipsis emptyTR">@item.FName</td>
|
||||
|
||||
@@ -785,7 +785,7 @@ public class IndexModel : PageModel
|
||||
dswrec[20] = item.MonthlyBenefits.ToString();
|
||||
//دستمزد و مزایای ماهانه مشمول
|
||||
dswrec[21] = item.MonthlyBenefitsIncluded.ToString();
|
||||
//جمع کل دستمزد و مزایای ماهانه مسمول غیرمشمول
|
||||
//جمع کل دستمزد و مزایای ماهانه مشمول غیرمشمول
|
||||
dswrec[22] = item.IncludedAndNotIncluded.ToString();
|
||||
//حق بیمه سهم بیمه شده
|
||||
dswrec[23] = item.InsuranceShare.ToString();
|
||||
|
||||
Reference in New Issue
Block a user