From c0e438aa6dcb7d40944946fbb52adf3365ebc11a Mon Sep 17 00:00:00 2001 From: SamSys Date: Sun, 18 May 2025 18:57:41 +0330 Subject: [PATCH] insurane nane caspian 1403 esfand --- .../InsuranceListApplication.cs | 206 +++++++++++------- .../InsuranceList/318/1404_01/DSKKAR00.dbf | Bin 0 -> 1414 bytes .../InsuranceList/318/1404_01/DSKWOR00.dbf | Bin 0 -> 13082 bytes 3 files changed, 132 insertions(+), 74 deletions(-) create mode 100644 ServiceHost/InsuranceList/318/1404_01/DSKKAR00.dbf create mode 100644 ServiceHost/InsuranceList/318/1404_01/DSKWOR00.dbf diff --git a/CompanyManagment.Application/InsuranceListApplication.cs b/CompanyManagment.Application/InsuranceListApplication.cs index 2821f128..e05f2296 100644 --- a/CompanyManagment.Application/InsuranceListApplication.cs +++ b/CompanyManagment.Application/InsuranceListApplication.cs @@ -415,7 +415,7 @@ public class InsuranceListApplication: IInsuranceListApplication { var dateOfBirth = employee.DateOfBirthGr.ToFarsi(); var dateOfIssue = employee.DateOfIssueGr.ToFarsi(); - var leftDate = employee.LeftWorkDateGr != null ? employee.LeftWorkDateGr.Value.AddDays(-1) : new DateTime(); + var leftDate = employee.LeftWorkDateGr?.AddDays(-1) ?? new DateTime(); bool isManager = employee.JobId is 10 or 16 or 17 or 18 or 3498; @@ -452,9 +452,22 @@ public class InsuranceListApplication: IInsuranceListApplication var leftWorkFa = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr.ToFarsi(): ""; var startWorkFa = employee.StartWorkDateGr.ToFarsi(); //به دست آوردن دستمزد روزانه با توجه به اینکه کارگاه مشاغل مقطوع است یا خیر - var dailyWage = searchModel.FixedSalary ? - Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, workshopId, employee.EmployeeId, startDateGr, endDateGr, employee.JobId, searchModel.Population, searchModel.InsuranceJobId)) - : ComputeDailyWage(yearlysaleries.DayliWage, employee.EmployeeId, workshopId, searchModel.Year); + + double dailyWage = 0; + if (searchModel.FixedSalary) + { + var res = GetDailyWageFixedSalary(searchModel.Year, workshopId, employee.EmployeeId, startDateGr, + endDateGr, employee.JobId, searchModel.Population, searchModel.InsuranceJobId); + dailyWage = res ?? 0; + + } + else + { + var res = ComputeDailyWage(yearlysaleries.DayliWage, employee.EmployeeId, workshopId, searchModel.Year); + dailyWage = res; + } + + //بدست آوردن پایه سنوات var baseYears = _insuranceListRepositpry.GetEmployeeInsuranceBaseYear(employee.EmployeeId, workshopId, workingDays.countWorkingDays, startDateGr, endDateGr,workingDays.startWork, workingDays.endWork, workingDays.hasLeftWorkInMonth); @@ -511,7 +524,7 @@ public class InsuranceListApplication: IInsuranceListApplication .FirstOrDefault(e => e.EmployeeId == employee.EmployeeId); //مزیای عیر مشمول لیست قبل var benefitsIncludedNonContinuous = - employeeListData != null ? employeeListData.BenefitsIncludedNonContinuous : 0; + employeeListData?.BenefitsIncludedNonContinuous ?? 0; if (workshop.InsuranceCheckoutFamilyAllowance && employeeHasCheckout && !isManager) { @@ -619,7 +632,7 @@ public class InsuranceListApplication: IInsuranceListApplication }; - }); + }).ToList(); Console.WriteLine("New Compute : " + watch.Elapsed); watch.Stop(); @@ -1661,93 +1674,138 @@ public class InsuranceListApplication: IInsuranceListApplication private double? GetDailyWageFixedSalary(string year, long workshopId,long employeeId,DateTime? startDateGr, DateTime? endDateGr, long jobId, string population, long? insuranceJobId) { + double? result = 0; //اگر مشاغل مقطوع بود و شغلش کارفرما بود // در جدول لیست بیمه قبلی چک شود - if (jobId == 10) //کارفرما + try { - InsuranceListSearchModel searchModel = new InsuranceListSearchModel(); - var workshop = _workShopRepository.GetDetails(workshopId); - if (workshop.FixedSalary) - + if (workshopId == 318 && year == "1403") { + double percent = 0; + switch (jobId) + { + case 39: + percent = 1.75; + return 4180000; + break; + case 466: + percent = 1.6; + return 3822000; + break; + case 1192 or 398 or 8: + percent = 1.5; + return 3583000; + break; + } + + //var dateSaleryviewModel = new DateSalarySearchModel(); + //dateSaleryviewModel.StartDateGr = startDateGr; + //dateSaleryviewModel.EndDateGr = endDateGr; + //var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); + //// && _dateSalary.Id >0 + //if (_dateSalary != null) + //{ + // var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); + // dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; + // dateSaleryItemviewModel.Percent = percent; + // var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); + // if (dateSalaryItem != null) + // result = dateSalaryItem[0].Salary; + //} + } + if (jobId == 10) //کارفرما + { + InsuranceListSearchModel searchModel = new InsuranceListSearchModel(); + var workshop = _workShopRepository.GetDetails(workshopId); + if (workshop.FixedSalary) + + { var inJob = _insuranceJobItemRepository .GetInsuranceJobItemByInsuranceJobId((long)workshop.InsuranceJobId); if (workshop.Population == "MoreThan500") { var max = inJob.MaxBy(x => x.PercentageMoreThan); - var dateSaleryviewModel = new DateSalarySearchModel(); - dateSaleryviewModel.StartDateGr = startDateGr; - dateSaleryviewModel.EndDateGr = endDateGr; - var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); - if (_dateSalary != null) - { - var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); - dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; - dateSaleryItemviewModel.Percent = max.PercentageMoreThan; - var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); - if (dateSalaryItem != null) - result = dateSalaryItem[0].Salary; - } + var dateSaleryviewModel = new DateSalarySearchModel(); + dateSaleryviewModel.StartDateGr = startDateGr; + dateSaleryviewModel.EndDateGr = endDateGr; + var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); + if (_dateSalary != null) + { + var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); + dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; + dateSaleryItemviewModel.Percent = max.PercentageMoreThan; + var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); + if (dateSalaryItem != null) + result = dateSalaryItem[0].Salary; + } } else { - var max = inJob.MaxBy(x => x.PercentageLessThan); - var dateSaleryviewModel = new DateSalarySearchModel(); - dateSaleryviewModel.StartDateGr = startDateGr; - dateSaleryviewModel.EndDateGr = endDateGr; - var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); - if (_dateSalary != null) - { - var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); - dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; - dateSaleryItemviewModel.Percent = max.PercentageLessThan; - var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); - if (dateSalaryItem != null) - result = dateSalaryItem[0].Salary; - } + var max = inJob.MaxBy(x => x.PercentageLessThan); + var dateSaleryviewModel = new DateSalarySearchModel(); + dateSaleryviewModel.StartDateGr = startDateGr; + dateSaleryviewModel.EndDateGr = endDateGr; + var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); + if (_dateSalary != null) + { + var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); + dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; + dateSaleryItemviewModel.Percent = max.PercentageLessThan; + var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); + if (dateSalaryItem != null) + result = dateSalaryItem[0].Salary; + } } - - + + + } + //var insuransList = _insuranceListRepositpry.GetInsuranceListByWorkshopIdAndYear(workshopId, year); + //var employeeInsurancListData = _employeeInsurancListDataRepository.GetEmployeeInsurancListDataByEmployeeIdAndInsuranceListId(employeeId, insuransList.Id); + //if (employeeInsurancListData != null ) + //{ + // result = employeeInsurancListData.DailyWage; + //} + } + else + { + + var searchModel = new InsuranceJobItemSearchModel(); + searchModel.InsuranceJobId = (long)insuranceJobId; + var JobItem = _insuranceJobItemRepository.GetInsuranceJobItemByInsuranceJobIdForFixedSalary((long)insuranceJobId, jobId); + + if (JobItem != null && JobItem.Id != 0) + { + double percent = 0; + if (population == "MoreThan500") + percent = JobItem.PercentageMoreThan; + else if (population == "LessThan500") + percent = JobItem.PercentageLessThan; + + var dateSaleryviewModel = new DateSalarySearchModel(); + dateSaleryviewModel.StartDateGr = startDateGr; + dateSaleryviewModel.EndDateGr = endDateGr; + var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); + // && _dateSalary.Id >0 + if (_dateSalary != null) + { + var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); + dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; + dateSaleryItemviewModel.Percent = percent; + var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); + if (dateSalaryItem != null) + result = dateSalaryItem[0].Salary; + } + } + + } - //var insuransList = _insuranceListRepositpry.GetInsuranceListByWorkshopIdAndYear(workshopId, year); - //var employeeInsurancListData = _employeeInsurancListDataRepository.GetEmployeeInsurancListDataByEmployeeIdAndInsuranceListId(employeeId, insuransList.Id); - //if (employeeInsurancListData != null ) - //{ - // result = employeeInsurancListData.DailyWage; - //} } - else + catch (Exception) { - var searchModel = new InsuranceJobItemSearchModel(); - searchModel.InsuranceJobId = (long)insuranceJobId; - var JobItem = _insuranceJobItemRepository.GetInsuranceJobItemByInsuranceJobIdForFixedSalary((long)insuranceJobId, jobId); - - if (JobItem != null && JobItem.Id != 0) - { - double percent = 0; - if (population == "MoreThan500") - percent = JobItem.PercentageMoreThan; - else if (population == "LessThan500") - percent = JobItem.PercentageLessThan; - - var dateSaleryviewModel = new DateSalarySearchModel(); - dateSaleryviewModel.StartDateGr = startDateGr; - dateSaleryviewModel.EndDateGr = endDateGr; - var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); - // && _dateSalary.Id >0 - if (_dateSalary != null) - { - var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); - dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; - dateSaleryItemviewModel.Percent = percent; - var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); - if (dateSalaryItem != null) - result = dateSalaryItem[0].Salary; - } - } + result = 0; } return result; } diff --git a/ServiceHost/InsuranceList/318/1404_01/DSKKAR00.dbf b/ServiceHost/InsuranceList/318/1404_01/DSKKAR00.dbf new file mode 100644 index 0000000000000000000000000000000000000000..84f179c90094d0804088ae10dff5b40c06b64c32 GIT binary patch literal 1414 zcmcJNv2GJV5QfiKq##h!L}+THNVj{wJsZ(n?u>GBZqD*u3e%*a&#T0Wk_I6p>k5b> zBq|<&2cV#&MWVA1ksSvm3o~m)vBGWM#k&& zaFrg%w%@)<@cU$F=1bNs ze&%Jr*e<(X(y{PIAbcr>@`F&#^ufE)1ZJaCxU)E)>UsijR_jw(hl}xi`gRI1`cUhW z@3+^7pb})!^NCi&-TW8O5)*BP3P>F{&~aZKD20a;)bsO zPZtr@Xmu1<>Vzr?eBTEMr0+*ciMAv;RD#5X9w~9D2TOO5byJ-B??RhwJBXc=^Z~B)@(=9&EgV!%-z9Utdq;7Z%7buWfEM znzj0CkiQzAI{Pn~U(i7P4g5E6{&yM|*HbQ`bI4O74muax0%krip86Ef2*l{eSv&sCBCV~RmkyIYV>?pn#~U} z*tiDay!Bnb_%2=3_;{h5F0VB{T`1oq1&z-Z$hVqXmr4Hl0{Nvif={i{Ss>rI60cul z7jpcS8a>~8%}X>^zYXDwC26g;v3lhO)~DWFsnzd7K5u>28bA-`{}%Fj_SxKMUfo=+ zHNKl8zrX~SQUqL?fNA^?EN_7lP71CWYu}5ygWW+c@zEK!#u59fwVj1~QkS41{8=JKY_h{^OT59!Blnbe|n`TX$Frxbg|7 z@N3eW{&os#ma0fSadu9%Kn^qyq$_#kx7cu>4WHa(!}jQHyv05iGWN)B_BBs|9B>z; zfEA$$oRE&pqG&K3hpWxTWuZ^V*Ulg;DL@)+qnzbd>eLH|fwp0+?PNd>rPbib1b}>L zJarDbQHOQGlP8^N$J1=x>A;ibnNf5gV6nVa3*eENsDR;nKkBr%^TqMfA!@PTZ$Iiq zV|)hvyf{_7kYIBZa0v^$p;ZfH1bc?7>OHb18oR_J3jjIS39l7KBEPyQV2IU#A1aiTu z@Yo0k67PHxjttkL9R+*7b8mROTfK2Ny5~1H2CCm8Q~GQ|Ql2Mo)p}$Dx5)KbPz!j_ zV?YiH)Ix^JDH~g+2xL&?Y+M%l0IC%T5W|dGAlQ=u{&@18V~7L8G^{=Wkfj2WEr5I& z`S)apQ7>wb_Ss~+H;6pt;i5C3yQ}Y;>GbCCX@BzCX_~?DS4S%O#hCi1HY6Fd1SlX zBRg$OU}Ox#BDDa#vT=O>^FGpVLRlA63zQ6Hh~gfK%v`t>$Rsf`N-BHGx#hv0;~>m9igKTSs%fk!7p71_TZ7@NfN+lq~elfUJ9V41rcYZk(9*7UW=)33{0MO+xti* zgJO82v7VA4sV$QOWi2d1SV8lGY*wLlYZ`=sUV_|d(&Fua{!X%9RPnm9DC34 z!qt0!jyR8O6e<8QzAE;}i1lPS{Z@%bj_b$EJaUO67d8!{>XCEgLLby3v?)iC}j-0&4OQ{96BVyYTJo4T4wC@`MliT