diff --git a/CompanyManagment.Application/InsuranceListApplication.cs b/CompanyManagment.Application/InsuranceListApplication.cs
index a040c8bd..7742e008 100644
--- a/CompanyManagment.Application/InsuranceListApplication.cs
+++ b/CompanyManagment.Application/InsuranceListApplication.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using _0_Framework.Application;
@@ -369,6 +370,8 @@ public class InsuranceListApplication: IInsuranceListApplication
///
public MainEmployeeDetailsViewModel SearchEmployeeForCreateInsuranceList( EmployeeForCreateInsuranceListSearchModel searchModel)
{
+ var watch = new Stopwatch();
+ watch.Start();
var result = new MainEmployeeDetailsViewModel();
var workshopId = searchModel.WorkshopIds.FirstOrDefault();
//var employerId = _workShopRepository.GetDetails(workshopId).EmployerIdList.FirstOrDefault();
@@ -689,6 +692,7 @@ public class InsuranceListApplication: IInsuranceListApplication
result.IsExist = true;
result.IsBlock = isBolock;
}
+ Console.WriteLine("SearchEmployeeForCreateInsuranceList : " + watch.Elapsed);
return result;
}
diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs
index d3cd39dd..49dce860 100644
--- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs
+++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs
@@ -154,6 +154,227 @@ public class IndexModel : PageModel
return Partial("./EmployeeDatatable", result);
}
+
+ // -4
+ ///
+ /// زمان لود مودال ایجاد یا ویرایش محاسبه - DSSKAR
+ ///
+ ///
+ ///
+ ///
+ public IActionResult OnPostComputeInsuranceList(
+ List employeeDetailsForInsuranceList,
+ string typeOfInsuranceSendWorkshop)
+ {
+ double sumOfEmployees = employeeDetailsForInsuranceList.Count();
+ double included = 0; //مشمول
+ double sumOfWorkingDays = 0;
+ double benefitsIncludedNonContinuous = 0; //مشمول غیر مستمر
+ double sumOfSalaries = 0;
+ double sumOfDailyWage = 0;
+ double insuredShare = 0;
+ double employerShare = 0; //سهم بیمه کارفرما
+ double sumOfIncluded = 0;
+ double unEmploymentInsurance = 0; //سهم بیمه بیکاری
+ double monthlyBenefits = 0; //مزایای ماهیانه
+ double sumForunEmploymentInsurance = 0;
+ double benefitsIncludedContinuous = 0;
+ double sumOfIncludedKarfarma = 0;
+ var hasKarfarma = false;
+ double countWithoutLeft = 0;
+
+
+ for (var i = 0; i < employeeDetailsForInsuranceList.Count; i++)
+ {
+ var leftWorkDay = "";
+ if (!string.IsNullOrWhiteSpace(employeeDetailsForInsuranceList[i].LeftWorkDate))
+ {
+ leftWorkDay = employeeDetailsForInsuranceList[i].LeftWorkDate.Substring(8, 2);
+ if (leftWorkDay == "01")
+ countWithoutLeft = countWithoutLeft + 1;
+ else
+ leftWorkDay = "";
+ }
+ else
+ {
+ leftWorkDay = "";
+ }
+
+
+ // if (employeeDetailsForInsuranceList[i].IncludeStatus && (employeeDetailsForInsuranceList[i].JobId == 10 || employeeDetailsForInsuranceList[i].JobId == 17 || employeeDetailsForInsuranceList[i].JobId == 18 || employeeDetailsForInsuranceList[i].JobId == 16))// 10 --> karfarma
+ if (!employeeDetailsForInsuranceList[i].IncludeStatus &&
+ (employeeDetailsForInsuranceList[i].JobCode == "027079" ||
+ employeeDetailsForInsuranceList[i].JobCode == "024398" ||
+ employeeDetailsForInsuranceList[i].JobCode == "011015" ||
+ employeeDetailsForInsuranceList[i].JobCode == "020010")) // 10 --> karfarma
+ {
+ benefitsIncludedContinuous = 0;
+ sumForunEmploymentInsurance = sumForunEmploymentInsurance;
+ }
+ else
+ {
+ sumForunEmploymentInsurance = sumForunEmploymentInsurance +
+ employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous;
+ }
+
+ //if (employeeDetailsForInsuranceList[i].JobId == 10)//کارفرما
+ if (employeeDetailsForInsuranceList[i].JobCode == "024398") //کارفرما
+ {
+ hasKarfarma = true;
+ sumOfIncludedKarfarma = employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous;
+ }
+
+ sumOfWorkingDays = sumOfWorkingDays + employeeDetailsForInsuranceList[i].WorkingDays;
+ sumOfDailyWage = sumOfDailyWage + employeeDetailsForInsuranceList[i].DailyWage;
+ sumOfSalaries = sumOfSalaries + employeeDetailsForInsuranceList[i].MonthlySalary;
+ monthlyBenefits = monthlyBenefits + +employeeDetailsForInsuranceList[i].MonthlyBenefits;
+ sumOfIncluded = sumOfIncluded + employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous;
+
+ if (leftWorkDay != "01") //اگر ترک کار آن یکم ماه نبود
+ benefitsIncludedNonContinuous = benefitsIncludedNonContinuous +
+ employeeDetailsForInsuranceList[i].IncludedAndNotIncluded;
+
+
+ insuredShare = insuredShare + employeeDetailsForInsuranceList[i].InsuranceShare;
+ }
+
+ employerShare = GetRoundValueWhitGovermentlist(sumOfIncluded * 20 / 100, typeOfInsuranceSendWorkshop);
+ unEmploymentInsurance =
+ GetRoundValueWhitGovermentlist(sumForunEmploymentInsurance * 3 / 100, typeOfInsuranceSendWorkshop);
+ var totalEmployee = sumOfEmployees;
+ //sumOfEmployees = sumOfEmployees - countWithoutLeft;
+
+ #region heydari
+
+ if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 5 && !hasKarfarma)
+ //console.log(1);
+ employerShare = 0;
+
+ if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 6 && hasKarfarma)
+ {
+ //console.log(sumOfIncludedKarfarma);
+ var result = sumOfIncludedKarfarma * 20 / 100;
+ employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop);
+ }
+
+
+ if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft >= 6 && !hasKarfarma)
+ {
+ //ابتدا جمع کل مزایا به دست می آید
+ //جمع کل مزایا تقسیم بر تعداد کارگران منهای کسانی که ترک کار کرده اند.
+ //حاصل عبارت بالا در 5 ضرب میشو یعنی میانگینی برای محاسبه قیمت 5 نفر حساب می کنیم تا از طریق دولت پرداخت شود
+
+ var result = (sumOfIncluded - sumOfIncluded / (sumOfEmployees - countWithoutLeft) * 5) * 20 / 100;
+
+ employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop);
+ }
+
+ if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft > 6 && hasKarfarma)
+ {
+ // console.log(4);
+ //مجموع حقوق و مزایای ماهانه مشمول - حقوق و مزایای ماهانه مشمول کارفرما
+ var sum = sumOfIncluded - sumOfIncludedKarfarma; //ستون مربوط به کارفرما محاسبه نمی شود
+ var result = (sum - sum / (sumOfEmployees - countWithoutLeft - 1) * 5 + sumOfIncludedKarfarma) * 20 / 100;
+ employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop);
+ }
+
+ #endregion
+
+ //sumOfIncluded مجموع حقوق و مزایای ماهیانه مشمول
+ // عادی
+ //if (typeOfInsuranceSendWorkshop != "Govermentlist" && !hasKarfarma)
+ //{
+
+ // var empployerShare = (sumOfIncluded * 20) / 100; //سهم حق کارفرما
+ // insuredShare = (sumOfIncluded * 7) / 100; //سهم حق بیمه شده
+ // unEmploymentInsurance = (sumOfIncluded * 3) / 100; //بیمه بیکاری
+ // employerShare = GetRoundValueWhitGovermentlist(empployerShare, typeOfInsuranceSendWorkshop);
+ //}
+ //else if (typeOfInsuranceSendWorkshop != "Govermentlist" && hasKarfarma)
+ //{
+ // var tweniSeven = (sumOfIncludedKarfarma * 27) / 100;
+ // var sum = sumOfIncluded - sumOfIncludedKarfarma;
+ // var tweni= (sum * 20) / 100;
+ // var empployerShare = tweniSeven + tweni;
+
+ // insuredShare = (sum * 7) / 100;
+ // unEmploymentInsurance = (sum * 3) / 100;
+
+ // employerShare = GetRoundValueWhitGovermentlist(empployerShare, typeOfInsuranceSendWorkshop);
+ //}
+
+ // کمک دولت
+ //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees <= 5 && !hasKarfarma)
+ //{ //console.log(1);
+ // employerShare = 0;
+ //}
+
+ //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees <= 6 && hasKarfarma)
+ //{
+ // var tweniSeven = (sumOfIncludedKarfarma * 27) / 100;
+ // var sum = sumOfIncluded - sumOfIncludedKarfarma;
+ // insuredShare = (sum * 7) / 100;
+ // unEmploymentInsurance = (sum * 3) / 100;
+
+ // employerShare = GetRoundValueWhitGovermentlist(tweniSeven, typeOfInsuranceSendWorkshop);
+ //}
+
+ //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees >= 6 && !hasKarfarma)
+ //{
+
+
+ // var person = sumOfEmployees - 5;
+ // var divide = sumOfIncluded / sumOfEmployees;
+ // var result = divide * person;
+ // var finalresult = (result * 20) / 100;
+ // employerShare = GetRoundValueWhitGovermentlist(finalresult, typeOfInsuranceSendWorkshop);
+ // // employerShare =getRoundValue(((sumOfIncluded/sumOfEmployees)*(sumOfEmployees-5))*20/100);
+ //}
+
+ //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees > 6 && hasKarfarma)
+ //{ // console.log(4);
+ // var sum = sumOfIncluded - sumOfIncludedKarfarma;//ستون مربوط به کارفرما محاسبه نمی شود
+ // sumOfEmployees = sumOfEmployees - 1;
+
+ // var person = sumOfEmployees - 5;
+ // var divide = sum / sumOfEmployees;
+ // var result = divide * person;
+ // var finalresult = (result * 20) / 100;
+ // var toeniSeven = (sumOfIncludedKarfarma * 27) / 100;
+ // var sumOfUp = finalresult + toeniSeven;
+ // insuredShare = (sum * 7) / 100;
+ // var treePercent = (sum * 3) / 100;
+ // employerShare = GetRoundValueWhitGovermentlist(sumOfUp, typeOfInsuranceSendWorkshop);
+
+
+ //}
+
+
+ return new JsonResult(new
+ {
+ //تعداد نفرات
+ SumOfEmployees = totalEmployee,
+ //جمع حقوق ماهیانه
+ SumOfSalaries = sumOfSalaries.ToMoney(),
+ //جمع دستمزد روزانه
+ SumOfDailyWage = sumOfDailyWage.ToMoney(),
+ //جمع روزهای کارکرد
+ SumOfWorkingDays = sumOfWorkingDays,
+ //جمع مزایای ماهانه مشمول
+ SumOfBenefitsIncluded = monthlyBenefits.ToMoney(),
+ //مشمول
+ Included = sumOfIncluded.ToMoney(),
+ ////مشمول و غیر مشمول
+ IncludedAndNotIncluded = benefitsIncludedNonContinuous.ToMoney(),
+ ////IncludedAndNotIncluded = (sumOfIncluded + benefitsIncludedNonContinuous).ToMoney(),
+ //سهم حق بیمه شده
+ InsuredShare = insuredShare.ToMoney(),
+ //سهم حق کارفرما
+ EmployerShare = employerShare.ToMoney(),
+ //بیمه بیکاری
+ UnEmploymentInsurance = unEmploymentInsurance.ToMoney()
+ });
+ }
public IActionResult OnPostCreate(CreateInsuranceList command)
{
//var result =new OperationResult();
@@ -695,220 +916,7 @@ public class IndexModel : PageModel
});
}
- // زمان لود مودال ایجاد یا ویرایش محاسبه dsskar
- public IActionResult OnPostComputeInsuranceList(
- List employeeDetailsForInsuranceList,
- string typeOfInsuranceSendWorkshop)
- {
- double sumOfEmployees = employeeDetailsForInsuranceList.Count();
- double included = 0; //مشمول
- double sumOfWorkingDays = 0;
- double benefitsIncludedNonContinuous = 0; //مشمول غیر مستمر
- double sumOfSalaries = 0;
- double sumOfDailyWage = 0;
- double insuredShare = 0;
- double employerShare = 0; //سهم بیمه کارفرما
- double sumOfIncluded = 0;
- double unEmploymentInsurance = 0; //سهم بیمه بیکاری
- double monthlyBenefits = 0; //مزایای ماهیانه
- double sumForunEmploymentInsurance = 0;
- double benefitsIncludedContinuous = 0;
- double sumOfIncludedKarfarma = 0;
- var hasKarfarma = false;
- double countWithoutLeft = 0;
-
-
- for (var i = 0; i < employeeDetailsForInsuranceList.Count; i++)
- {
- var leftWorkDay = "";
- if (!string.IsNullOrWhiteSpace(employeeDetailsForInsuranceList[i].LeftWorkDate))
- {
- leftWorkDay = employeeDetailsForInsuranceList[i].LeftWorkDate.Substring(8, 2);
- if (leftWorkDay == "01")
- countWithoutLeft = countWithoutLeft + 1;
- else
- leftWorkDay = "";
- }
- else
- {
- leftWorkDay = "";
- }
-
-
- // if (employeeDetailsForInsuranceList[i].IncludeStatus && (employeeDetailsForInsuranceList[i].JobId == 10 || employeeDetailsForInsuranceList[i].JobId == 17 || employeeDetailsForInsuranceList[i].JobId == 18 || employeeDetailsForInsuranceList[i].JobId == 16))// 10 --> karfarma
- if (!employeeDetailsForInsuranceList[i].IncludeStatus &&
- (employeeDetailsForInsuranceList[i].JobCode == "027079" ||
- employeeDetailsForInsuranceList[i].JobCode == "024398" ||
- employeeDetailsForInsuranceList[i].JobCode == "011015" ||
- employeeDetailsForInsuranceList[i].JobCode == "020010")) // 10 --> karfarma
- {
- benefitsIncludedContinuous = 0;
- sumForunEmploymentInsurance = sumForunEmploymentInsurance;
- }
- else
- {
- sumForunEmploymentInsurance = sumForunEmploymentInsurance +
- employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous;
- }
-
- //if (employeeDetailsForInsuranceList[i].JobId == 10)//کارفرما
- if (employeeDetailsForInsuranceList[i].JobCode == "024398") //کارفرما
- {
- hasKarfarma = true;
- sumOfIncludedKarfarma = employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous;
- }
-
- sumOfWorkingDays = sumOfWorkingDays + employeeDetailsForInsuranceList[i].WorkingDays;
- sumOfDailyWage = sumOfDailyWage + employeeDetailsForInsuranceList[i].DailyWage;
- sumOfSalaries = sumOfSalaries + employeeDetailsForInsuranceList[i].MonthlySalary;
- monthlyBenefits = monthlyBenefits + +employeeDetailsForInsuranceList[i].MonthlyBenefits;
- sumOfIncluded = sumOfIncluded + employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous;
-
- if (leftWorkDay != "01") //اگر ترک کار آن یکم ماه نبود
- benefitsIncludedNonContinuous = benefitsIncludedNonContinuous +
- employeeDetailsForInsuranceList[i].IncludedAndNotIncluded;
-
-
- insuredShare = insuredShare + employeeDetailsForInsuranceList[i].InsuranceShare;
- }
-
- employerShare = GetRoundValueWhitGovermentlist(sumOfIncluded * 20 / 100, typeOfInsuranceSendWorkshop);
- unEmploymentInsurance =
- GetRoundValueWhitGovermentlist(sumForunEmploymentInsurance * 3 / 100, typeOfInsuranceSendWorkshop);
- var totalEmployee = sumOfEmployees;
- //sumOfEmployees = sumOfEmployees - countWithoutLeft;
-
- #region heydari
-
- if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 5 && !hasKarfarma)
- //console.log(1);
- employerShare = 0;
-
- if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 6 && hasKarfarma)
- {
- //console.log(sumOfIncludedKarfarma);
- var result = sumOfIncludedKarfarma * 20 / 100;
- employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop);
- }
-
-
- if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft >= 6 && !hasKarfarma)
- {
- //ابتدا جمع کل مزایا به دست می آید
- //جمع کل مزایا تقسیم بر تعداد کارگران منهای کسانی که ترک کار کرده اند.
- //حاصل عبارت بالا در 5 ضرب میشو یعنی میانگینی برای محاسبه قیمت 5 نفر حساب می کنیم تا از طریق دولت پرداخت شود
-
- var result = (sumOfIncluded - sumOfIncluded / (sumOfEmployees - countWithoutLeft) * 5) * 20 / 100;
-
- employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop);
- }
-
- if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft > 6 && hasKarfarma)
- {
- // console.log(4);
- //مجموع حقوق و مزایای ماهانه مشمول - حقوق و مزایای ماهانه مشمول کارفرما
- var sum = sumOfIncluded - sumOfIncludedKarfarma; //ستون مربوط به کارفرما محاسبه نمی شود
- var result = (sum - sum / (sumOfEmployees - countWithoutLeft - 1) * 5 + sumOfIncludedKarfarma) * 20 / 100;
- employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop);
- }
-
- #endregion
-
- //sumOfIncluded مجموع حقوق و مزایای ماهیانه مشمول
- // عادی
- //if (typeOfInsuranceSendWorkshop != "Govermentlist" && !hasKarfarma)
- //{
-
- // var empployerShare = (sumOfIncluded * 20) / 100; //سهم حق کارفرما
- // insuredShare = (sumOfIncluded * 7) / 100; //سهم حق بیمه شده
- // unEmploymentInsurance = (sumOfIncluded * 3) / 100; //بیمه بیکاری
- // employerShare = GetRoundValueWhitGovermentlist(empployerShare, typeOfInsuranceSendWorkshop);
- //}
- //else if (typeOfInsuranceSendWorkshop != "Govermentlist" && hasKarfarma)
- //{
- // var tweniSeven = (sumOfIncludedKarfarma * 27) / 100;
- // var sum = sumOfIncluded - sumOfIncludedKarfarma;
- // var tweni= (sum * 20) / 100;
- // var empployerShare = tweniSeven + tweni;
-
- // insuredShare = (sum * 7) / 100;
- // unEmploymentInsurance = (sum * 3) / 100;
-
- // employerShare = GetRoundValueWhitGovermentlist(empployerShare, typeOfInsuranceSendWorkshop);
- //}
-
- // کمک دولت
- //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees <= 5 && !hasKarfarma)
- //{ //console.log(1);
- // employerShare = 0;
- //}
-
- //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees <= 6 && hasKarfarma)
- //{
- // var tweniSeven = (sumOfIncludedKarfarma * 27) / 100;
- // var sum = sumOfIncluded - sumOfIncludedKarfarma;
- // insuredShare = (sum * 7) / 100;
- // unEmploymentInsurance = (sum * 3) / 100;
-
- // employerShare = GetRoundValueWhitGovermentlist(tweniSeven, typeOfInsuranceSendWorkshop);
- //}
-
- //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees >= 6 && !hasKarfarma)
- //{
-
-
- // var person = sumOfEmployees - 5;
- // var divide = sumOfIncluded / sumOfEmployees;
- // var result = divide * person;
- // var finalresult = (result * 20) / 100;
- // employerShare = GetRoundValueWhitGovermentlist(finalresult, typeOfInsuranceSendWorkshop);
- // // employerShare =getRoundValue(((sumOfIncluded/sumOfEmployees)*(sumOfEmployees-5))*20/100);
- //}
-
- //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees > 6 && hasKarfarma)
- //{ // console.log(4);
- // var sum = sumOfIncluded - sumOfIncludedKarfarma;//ستون مربوط به کارفرما محاسبه نمی شود
- // sumOfEmployees = sumOfEmployees - 1;
-
- // var person = sumOfEmployees - 5;
- // var divide = sum / sumOfEmployees;
- // var result = divide * person;
- // var finalresult = (result * 20) / 100;
- // var toeniSeven = (sumOfIncludedKarfarma * 27) / 100;
- // var sumOfUp = finalresult + toeniSeven;
- // insuredShare = (sum * 7) / 100;
- // var treePercent = (sum * 3) / 100;
- // employerShare = GetRoundValueWhitGovermentlist(sumOfUp, typeOfInsuranceSendWorkshop);
-
-
- //}
-
-
- return new JsonResult(new
- {
- //تعداد نفرات
- SumOfEmployees = totalEmployee,
- //جمع حقوق ماهیانه
- SumOfSalaries = sumOfSalaries.ToMoney(),
- //جمع دستمزد روزانه
- SumOfDailyWage = sumOfDailyWage.ToMoney(),
- //جمع روزهای کارکرد
- SumOfWorkingDays = sumOfWorkingDays,
- //جمع مزایای ماهانه مشمول
- SumOfBenefitsIncluded = monthlyBenefits.ToMoney(),
- //مشمول
- Included = sumOfIncluded.ToMoney(),
- ////مشمول و غیر مشمول
- IncludedAndNotIncluded = benefitsIncludedNonContinuous.ToMoney(),
- ////IncludedAndNotIncluded = (sumOfIncluded + benefitsIncludedNonContinuous).ToMoney(),
- //سهم حق بیمه شده
- InsuredShare = insuredShare.ToMoney(),
- //سهم حق کارفرما
- EmployerShare = employerShare.ToMoney(),
- //بیمه بیکاری
- UnEmploymentInsurance = unEmploymentInsurance.ToMoney()
- });
- }
+
public double GetRoundValueWhitGovermentlist(double value, string type)
{