diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs index f103d0ec..fbe8b825 100644 --- a/0_Framework/Application/Tools.cs +++ b/0_Framework/Application/Tools.cs @@ -33,11 +33,80 @@ public static class Tools public static string[] DayNamesG = { "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه", "شنبه" }; /// - /// محاسبه سن + /// دریافت روزهای کارکرد پرسنل در لیست بیمه ماه مشخص شده + /// با کمک شروع بکار و ترک کار /// + /// + /// /// /// + /// /// + public static (int countWorkingDays,DateTime startWork,DateTime endWork,bool hasStartWorkInMonth,bool hasLeftWorkInMonth) GetEmployeeInsuranceWorkingDays(DateTime startWork,DateTime? leftWork,DateTime startDate, + DateTime endDate,long employeeId) + { + DateTime start = startDate; + DateTime end = endDate; + bool startWorkInMonth = false; + bool endWorkInMonth = false; + + //اگر شروع بکار پرسنل در ماه مشخص شده لیست بیمه بود + if (startWork >= startDate) + { + start = startWork; + startWorkInMonth = true; + } + + if(leftWork == null) + leftWork = DateTime.MinValue; + //اگر ترک کار پرسنل در ماه مشخص شده لیست بیمه بود + if (leftWork != DateTime.MinValue && leftWork.Value <= endDate) + { + end = leftWork.Value; + endWorkInMonth = true; + } + + int countDays = (int)(end - start).TotalDays +1; + + + //روزهای کارکرد پرسنل با آی دی های زیر دستی تعریف شد + switch (employeeId) + { + + //case 3812://ثابت- کسری حاجی پور + // countWorkingDays = 15; + // break; + case 40463://ثابت + countDays = 10; + break; + case 40469://ثابت + countDays = 7; + break; + case 9950://ثابت + countDays = 15; + break; + case 9640://ثابت + countDays = 15; + break; + case 40998://ثابت + countDays = 15; + break; + case 6219://ثابت + countDays = 15; + break; + //case 7897://ثابت + // countWorkingDays = 15; + } + + + return (countDays,start,end,startWorkInMonth,endWorkInMonth); + } + /// + /// محاسبه سن + /// + /// + /// + /// public static (int yearCount, int monthCount, int dayCount) GetAge(DateTime startDate, DateTime endDate) { diff --git a/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs b/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs index 9800796b..0ba87c2d 100644 --- a/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs +++ b/Company.Domain/ContarctingPartyAgg/IPersonalContractingPartyRepository.cs @@ -36,6 +36,12 @@ public interface IPersonalContractingPartyRepository :IRepository + /// تعداد روز های کارکرد پرسنل + /// DSW_DD + /// public int WorkingDays { get; private set; } - // دستمزد روزانه + + /// + /// دستمزد روزانه پرسنل double + /// DSW_ROOZ + /// public double DailyWage { get; private set; } - //دستمزد ماهانه + + /// + /// دستمزد ماهانه پرسنل double + /// DSW_MAH + /// public double MonthlySalary{ get; private set; } - - //مزایای ماهانه + + /// + /// مزایای ماهانه + /// DSW_MAZ + /// public double MonthlyBenefits { get; private set; } - //دستمزد و مزایای ماهانه مشمول + + /// + /// جمع دستمزد و مزایای ماهانه مشمول + /// DSW_MASH + /// public double MonthlyBenefitsIncluded { get; private set; } // مزایای مشمول مستمر public double BenefitsIncludedContinuous { get; private set; } //مزایای مشمول غیر مستمر public double BenefitsIncludedNonContinuous { get; private set; } - //سهم بیمه حق کارگر + + /// + /// حق بیمه سهم بیمه شده + /// DSW_BIME + /// public double InsuranceShare { get; private set; } - // تاریخ شروع به کار + + /// + /// تایخ شروع بکار میلادی + /// DSW_SDATE + /// public DateTime StartWorkDate { get; private set; } - //تاریخ ترک کار + + /// + /// تاریخ ترک کار میلادی + /// DSW_EDATE + /// public DateTime? LeftWorkDate { get; private set; } // آی دی شغل public long JobId { get; private set; } - + public bool IncludeStatus { get; private set; } + /// + /// پایه سنواتی + /// DSW_INC + /// + public double BaseYears { get; private set; } - public void Edit(int workingDays, double dailyWage, double monthlySalary, double monthlyBenefits, double monthlyBenefitsIncluded, double benefitsIncludedContinuous, double benefitsIncludedNonContinuous, double insuranceShare, DateTime startWorkDate, DateTime? leftWorkDate, long jobId, bool includeStatus) + /// + /// جمع پایه سنوات و دستمزد روزانه + /// DSW_INC + /// + public double DailyWagePlusBaseYears { get; private set; } + + /// + /// حق تاهل + /// DSW_SPOUSE + /// + public double MarriedAllowance { get; private set; } + + + public void Edit(int workingDays, double dailyWage, double monthlySalary, double monthlyBenefits, double monthlyBenefitsIncluded, + double benefitsIncludedContinuous, double benefitsIncludedNonContinuous, double insuranceShare, DateTime startWorkDate, + DateTime? leftWorkDate, long jobId, bool includeStatus, double baseYears, double marriedAllowance) { WorkingDays = workingDays; @@ -71,7 +128,11 @@ public class EmployeeInsurancListData : EntityBase LeftWorkDate = leftWorkDate; JobId = jobId; IncludeStatus= includeStatus; + BaseYears = baseYears; + MarriedAllowance = marriedAllowance; + DailyWagePlusBaseYears = dailyWage + baseYears; } + } \ No newline at end of file diff --git a/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs b/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs index 7efc607b..e99d7a11 100644 --- a/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs +++ b/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs @@ -27,6 +27,20 @@ public interface IInsuranceListRepository:IRepository InsuranceListViewModel GetInsuranceListByWorkshopIdAndYear(long workshopId, string year); + #region farokhi + /// + /// جستجوی لیست بیمه بهینه شده + /// + /// + /// + public List OptimizedSearch(InsuranceListSearchModel searchModel); + + /// + /// محاسبه پایه سنوات بیمه برای پرسنل + /// + /// + (int insuranceHistoryYearsCount, double baseYear) GetEmployeeInsuranceBaseYear(long employeeId, long workshopId, int countWorkingDay, DateTime listStartDate, DateTime listEndDate, DateTime startWorkDate, DateTime leftDate, bool hasLeft); + #endregion #region client List SearchForClient(InsuranceListSearchModel searchModel); diff --git a/Company.Domain/InsuranceListAgg/InsuranceList.cs b/Company.Domain/InsuranceListAgg/InsuranceList.cs index b40844a0..b0880d7f 100644 --- a/Company.Domain/InsuranceListAgg/InsuranceList.cs +++ b/Company.Domain/InsuranceListAgg/InsuranceList.cs @@ -13,7 +13,8 @@ public class InsuranceList : EntityBase public InsuranceList(long workshopId, string year, string month, int sumOfEmployees, int sumOfWorkingDays, double sumOfSalaries, double sumOfBenefitsIncluded, double included, double includedAndNotIncluded, double insuredShare, - double employerShare, double unEmploymentInsurance, double difficultJobsInsuranc, DateTime startDate, DateTime endDate, double sumOfDailyWage, bool confirmSentlist=false) + double employerShare, double unEmploymentInsurance, double difficultJobsInsuranc, DateTime startDate, DateTime endDate, + double sumOfDailyWage, double sumOfBaseYears, double sumOfMarriedAllowance, bool confirmSentlist=false) { WorkshopId = workshopId; Year = year; @@ -31,46 +32,130 @@ public class InsuranceList : EntityBase StartDate = startDate; EndDate = endDate; SumOfDailyWage = sumOfDailyWage; + SumOfBaseYears = sumOfBaseYears; + SumOfMarriedAllowance = sumOfMarriedAllowance; ConfirmSentlist = confirmSentlist; + SumOfDailyWagePlusBaseYears = sumOfDailyWage + sumOfBaseYears; + } //آی دی کارگاه public long WorkshopId { get; private set; } - //سال + + /// + /// سال ارسال لیست + /// DSK_YY + /// public string Year { get; private set; } - //ماه + + /// + /// ماه ارسال لیست + /// DSK_MM + /// public string Month { get; private set; } - //مجموع تعداد پرسنل + + /// + /// تعداد کارکنان + /// DSK_NUM + /// public int SumOfEmployees { get; private set; } - //مجموع روزهای کارکرد پرسنل + + /// + /// مجموع روزهای کارکرد کارکنان + /// DSK_TDD + /// public int SumOfWorkingDays { get; private set; } - // مجموع دستمزد پرسنل + + /// + /// مجموع دستمزد ماهانه کارکنان + /// DSK_TMAH + /// public double SumOfSalaries { get; private set; } + /// + /// مجموع دستمزد روزانه کارکنان + /// DSK_TROOZ + /// public double SumOfDailyWage { get; set; } - //مجموع مزایای مشمول + + /// + /// مجموع مزایای ماهانه مشمول + /// DSK_TMAZ + /// public double SumOfBenefitsIncluded { get; private set; } - //مشمول + + /// + /// مجموع دستمزد و مزایای ماهانه مشمول + /// DSK_TMASH + /// public double Included { get; private set; } - //غیرمشمول + + /// + /// مجموع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول + /// DSK_TTOTL + /// public double IncludedAndNotIncluded { get; private set; } - //سهم بیمه شده + + /// + /// مجموع حق بیمه سهم بیمه شده + /// DSK_TBIME + /// public double InsuredShare { get; private set; } - //سهم کارفرما + + /// + /// مجموع حق بیمه سهم کارفرما + /// DSK_TKOSO + /// public double EmployerShare { get; private set; } - //حق بیمه بیکاری + + /// + /// مجموع حق بیمه بیکاری + /// DSK_BIC + /// public double UnEmploymentInsurance { get; private set; } - //مزایای مشاغل سخت + + /// + /// نرخ مشاغل سخت زیان آور + /// DSK_BIMH + /// public double DifficultJobsInsuranc { get; private set; } - //تاریخ شروع لیست + + /// + /// تاریخ شروع لیست + /// میلادی + /// public DateTime StartDate { get; private set; } - // تاریخ پایان لیست + + /// + /// تاریخ پایان لیست + /// میلادی + /// public DateTime EndDate { get; private set; } + public bool ConfirmSentlist { get; private set; } + + /// + /// مجموع پایه سنواتی کارکنان + /// DSK_INC + /// + public double SumOfBaseYears { get; private set; } + + /// + /// جمع پایه سنوات و دستمزد روزانه کارکنان + /// DSW_INC + /// + public double SumOfDailyWagePlusBaseYears { get; private set; } + + /// + /// مجموع حق تاهل کارکنان + /// DSK_SPOUSE + /// + public double SumOfMarriedAllowance { get; private set; } + public List InsuranceListWorkshops { get; set; } public void Edit(int sumOfEmployees, int sumOfWorkingDays, double sumOfSalaries, double sumOfBenefitsIncluded, double included, double includedAndNotIncluded, double insuredShare, double employerShare, double unEmploymentInsurance, double difficultJobsInsuranc, - DateTime startDate, double sumOfDailyWage,bool confirmSentlist) + DateTime startDate, double sumOfDailyWage, double sumOfBaseYears, double sumOfMarriedAllowance, bool confirmSentlist) { SumOfEmployees = sumOfEmployees; SumOfWorkingDays = sumOfWorkingDays; @@ -83,7 +168,10 @@ public class InsuranceList : EntityBase UnEmploymentInsurance = unEmploymentInsurance; DifficultJobsInsuranc = difficultJobsInsuranc; SumOfDailyWage = sumOfDailyWage; + SumOfBaseYears = sumOfBaseYears; + SumOfMarriedAllowance = sumOfMarriedAllowance; ConfirmSentlist = confirmSentlist; + SumOfDailyWagePlusBaseYears = sumOfDailyWage + sumOfBaseYears; } } \ No newline at end of file diff --git a/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs b/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs index de06adce..5bd39f8e 100644 --- a/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs +++ b/Company.Domain/LeftWorkInsuranceAgg/ILeftWorkInsuranceRepository.cs @@ -31,4 +31,14 @@ public interface ILeftWorkInsuranceRepository : IRepository + /// دریافت شروع و ترک کار بیمه پرسنل و اطلاعات هویتی آن + /// + /// + /// + List GetEmployeeInsuranceLeftWorksAndInformation(long workshopId, DateTime startDate, DateTime endDate); + + #endregion } \ No newline at end of file diff --git a/Company.Domain/WorkshopAgg/IWorkshopRepository.cs b/Company.Domain/WorkshopAgg/IWorkshopRepository.cs index 14612d9d..ae70a623 100644 --- a/Company.Domain/WorkshopAgg/IWorkshopRepository.cs +++ b/Company.Domain/WorkshopAgg/IWorkshopRepository.cs @@ -63,5 +63,15 @@ public interface IWorkshopRepository : IRepository PersonalContractingPartyViewModel GetPersonalContractingPartyByWorkshopId(long workshopId); List GetWorkshopsByClientAccountId(long clientAccountId); - #endregion + #endregion + + #region Insurance + /// + /// لیست انتخاب کارگاه در مودال ایجاد بیمه + /// + /// + List GetWorkshopSelectListInsuransce(); + + #endregion + } \ No newline at end of file diff --git a/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs b/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs index 02e354c0..25c5c6f7 100644 --- a/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs +++ b/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs @@ -51,7 +51,14 @@ public interface IYearlySalaryRepository : IRepository Task HolidayGregorian(DateTime gregorianDate); Task HolidayShamsi(string shamsiDate); - #endregion + #endregion + + + #region Insurance + + InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year); + + #endregion + - } \ No newline at end of file diff --git a/Company.Domain/empolyerAgg/IEmployerRepository.cs b/Company.Domain/empolyerAgg/IEmployerRepository.cs index 88973019..ed6a4139 100644 --- a/Company.Domain/empolyerAgg/IEmployerRepository.cs +++ b/Company.Domain/empolyerAgg/IEmployerRepository.cs @@ -44,7 +44,13 @@ public interface IEmployerRepository : IRepository OperationResult ActiveAll(long id); List GetAllEmployers(); - #endregion + #endregion + + #region Insurance + + (string employerName, bool isLegal) InsuranceEmployerByWorkshopId(long workshopId); + + #endregion diff --git a/CompanyManagment.App.Contracts/EmployeeInsurancListData/CreateEmployeeInsurancListData.cs b/CompanyManagment.App.Contracts/EmployeeInsurancListData/CreateEmployeeInsurancListData.cs index 5274327e..088c90c1 100644 --- a/CompanyManagment.App.Contracts/EmployeeInsurancListData/CreateEmployeeInsurancListData.cs +++ b/CompanyManagment.App.Contracts/EmployeeInsurancListData/CreateEmployeeInsurancListData.cs @@ -12,29 +12,78 @@ public class CreateEmployeeInsurancListData { //آی دی کارگاه public long InsuranceListId { get; set; } public long EmployeeId { get; set; } - //روزهای کارکرد پرسنل + + /// + /// تعداد روز های کارکرد پرسنل + /// DSW_DD + /// public int WorkingDays { get; set; } - // دستمزد روزانه - public double DailyWage { get; set; } - //دستمزد ماهانه - public double MonthlySalary { get; set; } - //مزایای ماهانه - public double MonthlyBenefits { get; set; } - //دستمزد و مزایای ماهانه مشمول + /// + /// دستمزد روزانه پرسنل double + /// DSW_ROOZ + /// + public double DailyWage { get; set; } + + /// + /// دستمزد ماهانه پرسنل double + /// DSW_MAH + /// + public double MonthlySalary { get; set; } + + /// + /// مزایای ماهانه + /// DSW_MAZ + /// + public double MonthlyBenefits { get; set; } + + /// + /// جمع دستمزد و مزایای ماهانه مشمول + /// DSW_MASH + /// public double MonthlyBenefitsIncluded { get; set; } // مزایای مشمول مستمر public double BenefitsIncludedContinuous { get; set; } //مزایای مشمول غیر مستمر public double BenefitsIncludedNonContinuous { get; set; } - //سهم بیمه حق کارگر + + /// + /// حق بیمه سهم بیمه شده + /// DSW_BIME + /// public double InsuranceShare { get; set; } - // تاریخ شروع به کار + + /// + /// تایخ شروع بکار میلادی + /// DSW_SDATE + /// public DateTime StartWorkDate { get; set; } - //تاریخ ترک کار + + /// + /// تاریخ ترک کار میلادی + /// DSW_EDATE + /// public DateTime? LeftWorkDate { get; set; } // آی دی شغل public long JobId { get; set; } public bool IncludeStatus { get; set; } + + /// + /// پایه سنواتی + /// DSW_INC + /// + public double BaseYears { get; set; } + + /// + /// جمع پایه سنوات و دستمزد روزانه + /// DSW_INC + /// + public double DailyWagePlusBaseYears { get; set; } + + /// + /// حق تاهل + /// DSW_SPOUSE + /// + public double MarriedAllowance { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataSearchModel.cs b/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataSearchModel.cs index da0f4fca..cfe2d96a 100644 --- a/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataSearchModel.cs +++ b/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataSearchModel.cs @@ -35,4 +35,22 @@ public class EmployeeInsurancListDataSearchModel public DateTime LeftWorkDate { get; set; } // آی دی شغل public long JobId { get; set; } + + /// + /// پایه سنواتی + /// DSW_INC + /// + public double BaseYears { get; set; } + + /// + /// جمع پایه سنوات و دستمزد روزانه + /// DSW_INC + /// + public double DailyWagePlusBaseYears { get; set; } + + /// + /// حق تاهل + /// DSW_SPOUSE + /// + public double MarriedAllowance { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataViewModel.cs b/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataViewModel.cs index 0962c286..52c694e9 100644 --- a/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataViewModel.cs +++ b/CompanyManagment.App.Contracts/EmployeeInsurancListData/EmployeeInsurancListDataViewModel.cs @@ -11,32 +11,76 @@ public class EmployeeInsurancListDataViewModel public long InsuranceListId { get; set; } public long EmployeeId { get; set; } - //روزهای کارکرد پرسنل + + /// + /// تعداد روز های کارکرد پرسنل + /// DSW_DD + /// public int WorkingDays { get; set; } - // دستمزد روزانه + + /// + /// دستمزد روزانه پرسنل double + /// DSW_ROOZ + /// public double DailyWage { get; set; } - //دستمزد ماهانه + + /// + /// دستمزد ماهانه پرسنل double + /// DSW_MAH + /// public double MonthlySalary { get; set; } - //مزایای ماهانه + /// + /// مزایای ماهانه + /// DSW_MAZ + /// public double MonthlyBenefits { get; set; } - //دستمزد و مزایای ماهانه مشمول + + /// + /// جمع دستمزد و مزایای ماهانه مشمول + /// DSW_MASH + /// public double MonthlyBenefitsIncluded { get; set; } // مزایای مشمول مستمر public double BenefitsIncludedContinuous { get; set; } //مزایای مشمول غیر مستمر public double BenefitsIncludedNonContinuous { get; set; } - //مشمول و غیر مشمول + /// + /// جمع کل دستمزد و مزایای ماهانه + /// DSW_TOTL + /// public double IncludedAndNotIncluded { get; set; } - //سهم بیمه حق کارگر + + /// + /// حق بیمه سهم بیمه شده + /// DSW_BIME + /// public double InsuranceShare { get; set; } - // تاریخ شروع به کار + + /// + /// تایخ شروع بکار میلادی + /// DSW_SDATE + /// public DateTime StartWorkDate { get; set; } - //تاریخ ترک کار + + /// + /// تاریخ ترک کار میلادی + /// DSW_EDATE + /// public DateTime? LeftWorkDate { get; set; } // آی دی شغل public long JobId { get; set; } + + /// + /// نام شغل + /// DSW_OCP + /// public string JobName { get; set; } + + /// + /// کد شغل + /// DSW_JOB + /// public string JobCode { get; set; } public string StrStartWorkDate { get; set; } public string StrLeftWorkDate { get; set; } @@ -53,5 +97,23 @@ public class EmployeeInsurancListDataViewModel public bool IncludeStatus { get; set; } public bool HasConfilictLeftWork { get; set; } + /// + /// پایه سنواتی + /// DSW_INC + /// + public double BaseYears { get; set; } + + /// + /// جمع پایه سنوات و دستمزد روزانه + /// DSW_INC + /// + public double DailyWagePlusBaseYears { get; set; } + + /// + /// حق تاهل + /// DSW_SPOUSE + /// + public double MarriedAllowance { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs b/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs index 32e00882..969638b4 100644 --- a/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs +++ b/CompanyManagment.App.Contracts/Employer/IEmployerApplication.cs @@ -44,8 +44,12 @@ public interface IEmployerApplication OperationResult ActiveAll(long id); List GetAllEmployers(); - #endregion + #endregion + #region Insurance + (string employerName, bool isLegal) InsuranceEmployerByWorkshopId(long workshopId); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/CreateInsuranceList.cs b/CompanyManagment.App.Contracts/InsuranceList/CreateInsuranceList.cs index 109e3dc5..394b34b5 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/CreateInsuranceList.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/CreateInsuranceList.cs @@ -14,48 +14,141 @@ public class CreateInsuranceList { //آی دی کارگاه public long WorkshopId { get; set; } public string WorkshopName { get; set; } - - //سال + + /// + /// سال ارسال لیست + /// DSK_YY + /// public string Year { get; set; } - //ماه + + /// + /// ماه ارسال لیست + /// DSK_MM + /// public string Month { get; set; } - //مجموع تعداد پرسنل + + /// + /// تعداد کارکنان + /// DSK_NUM + /// public int SumOfEmployees { get; set; } - //مجموع روزهای کارکرد پرسنل + + /// + /// مجموع روزهای کارکرد کارکنان + /// DSK_TDD + /// public int SumOfWorkingDays { get; set; } - // مجموع دستمزد پرسنل + + /// + /// مجموع دستمزد ماهانه کارکنان + /// DSK_TMAH + /// public double SumOfSalaries { get; set; } - //مجموع مزایای مشمول + + /// + /// مجموع مزایای ماهانه مشمول + /// DSK_TMAZ + /// public double SumOfBenefitsIncluded { get; set; } - //مشمول + + /// + /// مجموع دستمزد و مزایای ماهانه مشمول + /// DSK_TMASH + /// public double Included { get; set; } - //غیرمشمول و مشمول + + /// + /// مجموع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول + /// DSK_TTOTL + /// public double IncludedAndNotIncluded { get; set; } - //سهم بیمه شده + + /// + /// مجموع حق بیمه سهم بیمه شده + /// DSK_TBIME + /// public double InsuredShare { get; set; } - //سهم کارفرما + + /// + /// مجموع حق بیمه سهم کارفرما + /// DSK_TKOSO + /// public double EmployerShare { get; set; } - //حق بیمه بیکاری + + /// + /// مجموع حق بیمه بیکاری + /// DSK_BIC + /// public double UnEmploymentInsurance { get; set; } - //مزایای مشاغل سخت + + /// + /// نرخ مشاغل سخت زیان آور + /// DSK_BIMH + /// public double DifficultJobsInsuranc { get; set; } - //تاریخ شروع لیست + + /// + /// تاریخ شروع لیست + /// میلادی + /// public DateTime StartDate { get; set; } - // تاریخ پایان لیست + + /// + /// تاریخ پایان لیست + /// میلادی + /// public DateTime EndDate { get; set; } public List WorkShopList { get; set; } public SelectList WorkShopSelectList { get; set; } public List YearList { get; set; } public string BeforCurrentMonth { get; set; } public string CurrentYear { get; set; } + /// + /// اطلاعات ذخیره شده کارگاه برای بیمه + /// public InsuranceWorkshopInfoViewModel InsuranceWorkshopInfo { get; set; } + /// + /// لیست اطلاعات هویتی کارکنان + /// public List EmployeeDetailsForInsuranceList { get; set; } + /// + /// لیست اطلاعات محاسباتی کارکنان + /// public List EmployeeInsurancListDataList { get; set; } public List WorkshopIds { get; set; } + /// + /// کمک هزینه مسکن + /// public double HousingAllowance { get; set; } + /// + /// کمک هزینه اقلام مصرفی + /// public double ConsumableItems { get; set; } + /// + /// مجموع دستمزد روزانه کارکنان + /// DSK_TROOZ + /// public double SumOfDailyWage { get; set; } public double AllInsuredShare { get; set; } + + /// + /// مجموع پایه سنواتی کارکنان + /// DSK_INC + /// + public double SumOfBaseYears { get; set; } + + /// + /// جمع پایه سنوات و دستمزد روزانه کارکنان + /// DSW_INC + /// + public double SumOfDailyWagePlusBaseYears { get; set; } + + /// + /// مجموع حق تاهل کارکنان + /// DSK_SPOUSE + /// + public double SumOfMarriedAllowance { get; set; } + public bool ConfirmSentlist { get; set; } diff --git a/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs b/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs index 69283ea5..415d893e 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs @@ -6,84 +6,225 @@ using System.Threading.Tasks; namespace CompanyManagment.App.Contracts.InsuranceList; +/// +/// اطلاعات ذخریه شده پرسنل برای بیمه +/// public class EmployeeDetailsForInsuranceListViewModel { public long EmployeeId { get; set; } public long InsuranceEmployeeInformationId { get; set; } + + /// + /// نام + /// DSW_FNAME + /// public string FName { get; set; } + + /// + /// نام خانوادگی + /// DSW_LNAME + /// public string LName { get; set; } + /// + /// نام پدر + /// DSW_DNAME + /// public string FatherName { get; set; } + + /// + /// تاریخ تولد میلادی + /// DSW_BDATE + /// public DateTime DateOfBirthGr { get; set; } + /// + /// تاریخ صدور میلادی + /// DSW_IDATE + /// public DateTime DateOfIssueGr { get; set; } + + /// + /// تاریخ تولد شمسی + /// DSW_BDATE + /// public string DateOfBirth { get; set; } + /// + /// تاریخ صدور شمسی + /// DSW_IDATE + /// public string DateOfIssue { get; set; } + /// + /// محل صدور + /// DSW_IDPLC + /// public string PlaceOfIssue { get; set; } + + /// + /// کد ملی پرسنل + /// PER_NATCOD + /// public string NationalCode { get; set; } + + /// + /// ملیت + /// DSW_NAT + /// public string Nationality { get; set; } + /// + /// شماره شناسنامه + /// DSW_IDNO + /// public string IdNumber { get; set; } + + /// + /// جنسیت + /// DSW_SEX + /// public string Gender { get; set; } + + /// + /// شماره بیمه + /// DSW_ID1 + /// public string InsuranceCode { get; set; } // public long EmployeeInsurancListDataId { get; set; } public long InsuranceListId { get; set; } - //روزهای کارکرد پرسنل + /// + /// تعداد روز های کارکرد پرسنل + /// DSW_DD + /// public int WorkingDays { get; set; } - // دستمزد روزانه + + + /// + /// دستمزد روزانه پرسنل double + /// DSW_ROOZ + /// public double DailyWage { get; set; } + + /// + /// دستمزد روزانه پرسنل str + /// DSW_ROOZ + /// public string DailyWageStr { get; set; } - //دستمزد ماهانه + + /// + /// دستمزد ماهانه پرسنل double + /// DSW_MAH + /// public double MonthlySalary { get; set; } public double MonthlyBaseYears { get; set; } public string MonthlyBaseYearsStr { get; set; } - //مزایای ماهانه + /// + /// مزایای ماهانه + /// DSW_MAZ + /// public double MonthlyBenefits { get; set; } - //دستمزد و مزایای ماهانه مشمول + + /// + /// جمع دستمزد و مزایای ماهانه مشمول + /// DSW_MASH + /// public double MonthlyBenefitsIncluded { get; set; } - // مزایای مشمول مستمر + /// + /// مزایای مشمول مستمر + /// public double BenefitsIncludedContinuous { get; set; } - //مزایای مشمول غیر مستمر + /// + /// مزایای مشمول غیر مستمر + /// public double BenefitsIncludedNonContinuous { get; set; } + + /// + /// جمع کل دستمزد و مزایای ماهانه + /// DSW_TOTL + /// public double IncludedAndNotIncluded { get; set; } - //سهم بیمه حق کارگر + + /// + /// حق بیمه سهم بیمه شده + /// DSW_BIME + /// public double InsuranceShare { get; set; } // تاریخ شروع به کار public string StartWorkDate { get; set; } - //تاریخ ترک کار + + public string LeftWorkDate { get; set; } - // تاریخ شروع به کار + + /// + /// تایخ شروع بکار میلادی + /// DSW_SDATE + /// public DateTime StartWorkDateGr { get; set; } - //تاریخ ترک کار + + /// + /// تاریخ ترک کار میلادی + /// DSW_EDATE + /// public DateTime? LeftWorkDateGr { get; set; } // آی دی شغل public long JobId { get; set; } + + /// + /// نام شغل + /// DSW_OCP + /// public string JobName { get; set; } + + /// + /// کد شغل + /// DSW_JOB + /// public string JobCode { get; set; } public double HousingAllowance { get; set; } public double ConsumableItems { get; set; } - public double MaritalStatus { get; set; } + + /// + /// وضعیت تاهل + /// + public string MaritalStatus { get; set; } public bool IsMaritalStatusSet { get; set; } public int EndMonthCurrentDay { get; set; } public double SumOfDailyWage { get; set; } - //بیمه سهم کارفرما + + /// + /// حق بیمه سهم کارفرما + /// public double EmployerShare { get; set; } - //بیمه بیکاری + /// + /// بیمه بیکاری + /// public double UnEmploymentInsurance { get; set; } public string StartMonthCurrent { get; set; } public bool HasLeftWorkInMonth { get; set; } public bool HasStartWorkInMonth { get; set; } public long EmployeeInsurancListDataId { get; set; } + /// + /// مشمول مزیا - عدم مشمول مزایا + /// public bool IncludeStatus { get; set; } - + + /// + /// تایخ شروع بکار میلادی جدید + /// DSW_SDATE + /// public DateTime StartWorkDateNew { get; set; } + + /// + /// تاریخ ترک کار میلادی جدید + /// DSW_EDATE + /// public DateTime? LeftWorkDateNew { get; set; } + public string StrLeftWorkDateNew { get; set; } public string StrStartWorkDateNew { get; set; } public long JobIdNew { get; set; } @@ -93,4 +234,40 @@ public class EmployeeDetailsForInsuranceListViewModel public bool HasConfilictLeftWork { get; set; } public double YearlySalaryItem { get; set; } public bool HasConfilictJobs { get; set; } + + + /// + /// پایه سنواتی + /// DSW_INC + /// + public double BaseYears { get; set; } + + /// + /// جمع پایه سنوات و دستمزد روزانه + /// DSW_INC + /// + public double DailyWagePlusBaseYears { get; set; } + + /// + /// حق تاهل + /// DSW_SPOUSE + /// + public double MarriedAllowance { get; set; } + ///// + ///// مجموع پایه سنواتی کارکنان + ///// DSK_INC + ///// + //public double SumOfBaseYears { get; set; } + + ///// + ///// جمع پایه سنوات و دستمزد روزانه کارکنان + ///// DSW_INC + ///// + //public double SumOfDailyWagePlusBaseYears { get; set; } + + ///// + ///// مجموع حق تاهل کارکنان + ///// DSK_SPOUSE + ///// + //public double SumOfMarriedAllowance { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/MainEmployeeDetailsViewModel.cs b/CompanyManagment.App.Contracts/InsuranceList/MainEmployeeDetailsViewModel.cs index 3f541a9c..740380f4 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/MainEmployeeDetailsViewModel.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/MainEmployeeDetailsViewModel.cs @@ -12,4 +12,5 @@ public class MainEmployeeDetailsViewModel public bool IsExist { get; set; } public bool IsBlock { get; set; } public double MaritalStatus { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceWorkshopInfo/InsuranceWorkshopInfoViewModel.cs b/CompanyManagment.App.Contracts/InsuranceWorkshopInfo/InsuranceWorkshopInfoViewModel.cs index bea04389..2b1981d0 100644 --- a/CompanyManagment.App.Contracts/InsuranceWorkshopInfo/InsuranceWorkshopInfoViewModel.cs +++ b/CompanyManagment.App.Contracts/InsuranceWorkshopInfo/InsuranceWorkshopInfoViewModel.cs @@ -10,16 +10,37 @@ public class InsuranceWorkshopInfoViewModel { public long InsuranceWorkshopInfoId { get; set; } public long WorkshopId { get; set; } - //نام کارگاه + /// + /// نام کارگاه + /// DSK_NAME + /// public string WorkshopName { get; set; } - //کد کارگاهی بیمه + /// + /// کد کارگاهی بیمه + /// DSK_ID + /// public string InsuranceCode { get; set; } - //ردیف پیمان + + /// + /// ردیف پیمان + /// public string AgreementNumber { get; set; } - // نام کارفرما + + /// + /// نام کارفرما + /// DSK_FARM + /// public string EmployerName { get; set; } - //آدرس کارگاه + /// + /// آدرس کارگاه + /// DSK_ADRS + /// public string Address { get; set; } + + /// + /// شماره لیست + /// DSK_LISTNO + /// public string ListNumber { get; set; } //public bool FixedSalary { get; set; } //public string Population { get; set; } diff --git a/CompanyManagment.App.Contracts/LeftWorkInsurance/ILeftWorkInsuranceApplication.cs b/CompanyManagment.App.Contracts/LeftWorkInsurance/ILeftWorkInsuranceApplication.cs index c9cc6081..f9a3d9c3 100644 --- a/CompanyManagment.App.Contracts/LeftWorkInsurance/ILeftWorkInsuranceApplication.cs +++ b/CompanyManagment.App.Contracts/LeftWorkInsurance/ILeftWorkInsuranceApplication.cs @@ -31,4 +31,14 @@ public interface ILeftWorkInsuranceApplication OperationResult CheckEditLeftWorkInsurance(long workshopId, long employeeId, string date, int type); OperationResult CheckBeforeSaveLeftWorkInsurance(long workshopId, long employeeId, string date, int type); + + #region Insurance + /// + /// دریافت شروع و ترک کار بیمه پرسنل و اطلاعات هویتی آن + /// + /// + /// + List GetEmployeeInsuranceLeftWorksAndInformation(long workshopId, DateTime startDate, DateTime endDate); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs b/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs index 971aa982..b3303f0a 100644 --- a/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs +++ b/CompanyManagment.App.Contracts/PersonalContractingParty/IPersonalContractingPartyApp.cs @@ -42,6 +42,16 @@ public interface IPersonalContractingPartyApp OperationResult DisableBlock(long id); #endregion + #region Insurance + /// + /// چک میکند که آیا طرف حساب بلاک است یا خیر + /// با دریافت آی دی کارگاه + /// + /// + /// + bool IsBlockCheckByWorkshopId(long workshopId); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs b/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs index a38ed9d3..73d34584 100644 --- a/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs +++ b/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs @@ -61,4 +61,14 @@ public interface IWorkshopApplication #endregion AccountViewModel GetClientAccountByWorkshopId(long workshopId); + + + #region Insurance + /// + /// لیست انتخاب کارگاه در مودال ایجاد بیمه + /// + /// + List GetWorkshopSelectListInsuransce(); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs b/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs index 3e2fd568..d068375a 100644 --- a/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs +++ b/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs @@ -19,4 +19,10 @@ public interface IYearlySalaryApplication Task HolidayGregorian(DateTime gregorianDate); Task HolidayShamsi(string shamsiDate); + + #region Insurance + + InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/YearlySalary/InsuranceYearlySalaryModel.cs b/CompanyManagment.App.Contracts/YearlySalary/InsuranceYearlySalaryModel.cs new file mode 100644 index 00000000..093d2053 --- /dev/null +++ b/CompanyManagment.App.Contracts/YearlySalary/InsuranceYearlySalaryModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CompanyManagment.App.Contracts.YearlySalary; + +public class InsuranceYearlySalaryModel +{ + public double DayliWage { get; set; } + public double HousingAllowance { get; set; } + public double ConsumableItems { get; set; } + public double MarriedAllowance { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.Application/EmployeeInsurancListDataApplication.cs b/CompanyManagment.Application/EmployeeInsurancListDataApplication.cs index 30f996a0..01a97daf 100644 --- a/CompanyManagment.Application/EmployeeInsurancListDataApplication.cs +++ b/CompanyManagment.Application/EmployeeInsurancListDataApplication.cs @@ -26,7 +26,9 @@ public class EmployeeInsurancListDataApplication : IEmployeeInsurancListDataAppl if (command == null) return operation.Failed("لطفا اطلاعات ورودی را تکمیل نمایید!"); - var employeeInsurancListData = new EmployeeInsurancListData(command.InsuranceListId, command.EmployeeId, command.WorkingDays, command.DailyWage, command.MonthlySalary, command.MonthlyBenefits, command.MonthlyBenefitsIncluded, command.BenefitsIncludedContinuous, command.BenefitsIncludedNonContinuous, command.InsuranceShare, command.StartWorkDate,command.LeftWorkDate,command.JobId,command.IncludeStatus); + var employeeInsurancListData = new EmployeeInsurancListData(command.InsuranceListId, command.EmployeeId, command.WorkingDays, command.DailyWage, command.MonthlySalary, command.MonthlyBenefits, + command.MonthlyBenefitsIncluded, command.BenefitsIncludedContinuous, command.BenefitsIncludedNonContinuous, command.InsuranceShare, + command.StartWorkDate,command.LeftWorkDate,command.JobId,command.IncludeStatus, command.BaseYears,command.MarriedAllowance); _employeeInsurancListDataRepository.Create(employeeInsurancListData); _employeeInsurancListDataRepository.SaveChanges(); return operation.Succcedded(); diff --git a/CompanyManagment.Application/EmployerApplication.cs b/CompanyManagment.Application/EmployerApplication.cs index d3498c57..594b12c3 100644 --- a/CompanyManagment.Application/EmployerApplication.cs +++ b/CompanyManagment.Application/EmployerApplication.cs @@ -939,5 +939,16 @@ public class EmployerApplication : IEmployerApplication return _EmployerRepository.GetAllEmployers(); } - #endregion + + + #endregion + + #region Insurance + + public (string employerName, bool isLegal) InsuranceEmployerByWorkshopId(long workshopId) + { + return _EmployerRepository.InsuranceEmployerByWorkshopId(workshopId); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/InsuranceListApplication.cs b/CompanyManagment.Application/InsuranceListApplication.cs index fa7836c7..cd9bf530 100644 --- a/CompanyManagment.Application/InsuranceListApplication.cs +++ b/CompanyManagment.Application/InsuranceListApplication.cs @@ -1,12 +1,15 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Runtime.InteropServices; using _0_Framework.Application; +using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; using Company.Domain.DateSalaryAgg; using Company.Domain.DateSalaryItemAgg; using Company.Domain.EmployeeAgg; using Company.Domain.EmployeeChildrenAgg; +using Company.Domain.empolyerAgg; using Company.Domain.InsuranceEmployeeInfoAgg; using Company.Domain.InsuranceJobItemAgg; using Company.Domain.InsuranceListAgg; @@ -337,352 +340,521 @@ public class InsuranceListApplication: IInsuranceListApplication public List Search(InsuranceListSearchModel searchModel) { - var result = _insuranceListRepositpry.Search(searchModel); - result = result.Select(x => new InsuranceListViewModel() - { - Id = x.Id, - Year = x.Year, - Month = x.Month.GetMonthByNumber(), - MonthNumber = x.MonthNumber, - WorkShopCode = x.WorkShopCode, - WorkShopName = x.WorkShopName, - WorkShopId = x.WorkShopId, - TypeOfInsuranceSend = x.TypeOfInsuranceSend, - FixedSalary = x.FixedSalary, - StrFixedSalary = x.StrFixedSalary, - EmployerName = x.EmployerName, - Branch = x.Branch, - City = x.City, - ConfirmSentlist = x.ConfirmSentlist, - EmployerId = x.EmployerId, - IsBlockCantracingParty = _contractingPartyApp.IsBlockByEmployerId(x.EmployerId), + return _insuranceListRepositpry.OptimizedSearch(searchModel); + //var result = _insuranceListRepositpry.Search(searchModel); + //result = result.Select(x => new InsuranceListViewModel() + //{ + // Id = x.Id, + // Year = x.Year, + // Month = x.Month.GetMonthByNumber(), + // MonthNumber = x.MonthNumber, + // WorkShopCode = x.WorkShopCode, + // WorkShopName = x.WorkShopName, + // WorkShopId = x.WorkShopId, + // TypeOfInsuranceSend = x.TypeOfInsuranceSend, + // FixedSalary = x.FixedSalary, + // StrFixedSalary = x.StrFixedSalary, + // EmployerName = x.EmployerName, + // Branch = x.Branch, + // City = x.City, + // ConfirmSentlist = x.ConfirmSentlist, + // EmployerId = x.EmployerId, + // IsBlockCantracingParty = _contractingPartyApp.IsBlockByEmployerId(x.EmployerId), - }).ToList(); - return result; + //}).ToList(); + //return result; } - // محاسبه جدول پرسنل در - DSKWOR 1 create + /// + /// محاسبه جدول پرسنل در مودال ایجاد لیست بیمه + /// + /// + /// public MainEmployeeDetailsViewModel SearchEmployeeForCreateInsuranceList( EmployeeForCreateInsuranceListSearchModel searchModel) { + var watch = new Stopwatch(); + var result = new MainEmployeeDetailsViewModel(); var workshopId = searchModel.WorkshopIds.FirstOrDefault(); - var employerId = _workShopRepository.GetDetails(workshopId).EmployerIdList.FirstOrDefault(); - var isBolock = _contractingPartyApp.IsBlockByEmployerId(employerId); + //var employerId = _workShopRepository.GetDetails(workshopId).EmployerIdList.FirstOrDefault(); + //var isBolock = _contractingPartyApp.IsBlockByEmployerId(employerId); + var isBolock = _contractingPartyApp.IsBlockCheckByWorkshopId(workshopId); double monthlybaseYear = 0; - // اگر لیست بیمه تکراری نبود - if (!_insuranceListRepositpry.Exists(x =>x.Year == searchModel.Year && x.Month == searchModel.Month && searchModel.WorkshopIds.Contains(x.WorkshopId))) + // اگر در این سال و ماه برای این کارگاه لیست بیمه ایجاد نشده بود + if (!_insuranceListRepositpry.Exists(x => + x.Year == searchModel.Year && x.Month == searchModel.Month && + searchModel.WorkshopIds.Contains(x.WorkshopId))) { - List list = new List(); - - // شروع بکار و ترک کار بیمه - var leftWorkInsuranceViewModelList =_leftWorkInsuranceApplication.SearchForCreateInsuranceList(searchModel); + var startMonthFa = $"{searchModel.Year}/{searchModel.Month}/01"; + DateTime startDateGr = startMonthFa.ToGeorgianDateTime(); + DateTime endDateGr = startMonthFa.FindeEndOfMonth() + .ToGeorgianDateTime(); + int endOfMonth = Convert.ToInt32((startMonthFa.FindeEndOfMonth()).Substring(8, 2)); - int leftWorkInsuranceCount= leftWorkInsuranceViewModelList.Count(); + + //مقادیر سالانه این تاریخ + var yearlysaleries = _yearlySalaryApplication.GetInsuranceItems(startDateGr, endDateGr, searchModel.Year); - string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; - string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - var model = new YearlySalarySearchModel(); - var startDate = startMonthCurrent.ToGeorgianDateTime(); - model.StartDateGr = startDate; - model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); - model.year = searchModel.Year; - - - //مقادیر سالانه این تاریخ - var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); - - var yearlysalaryItem = new YearlysalaryItemViewModel(); - var housingAllowance = new YearlysalaryItemViewModel(); - var consumableItems = new YearlysalaryItemViewModel(); - var maritalStatus = new YearlysalaryItemViewModel(); - if (yearSalaryObj != null) - { - yearlysalaryItem = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "مزد روزانه").FirstOrDefault(); - housingAllowance = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "کمک هزینه مسکن").FirstOrDefault(); - consumableItems = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "کمک هزینه اقلام").FirstOrDefault(); - maritalStatus = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "حق تاهل").FirstOrDefault(); - - } - - foreach (var item in leftWorkInsuranceViewModelList) - { - var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); - - var employeeDetailsForInsuranceObj = new EmployeeDetailsForInsuranceListViewModel(); - employeeDetailsForInsuranceObj.HasConfilictJobs = false; + // دریافت اطلاعات هویتی و شروع و ترک کار کارکنان + var employeesInfoAndLeftWorks = + _leftWorkInsuranceApplication.GetEmployeeInsuranceLeftWorksAndInformation(workshopId, startDateGr, + endDateGr); + 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(); - employeeDetailsForInsuranceObj.IsMaritalStatusSet = // آیا وضعیت تاهل پرسنل ست شده است - !string.IsNullOrWhiteSpace(employeeObject.MaritalStatus); - if (_insuranceEmployeeInfoRepository.Exists(x => x.EmployeeId == item.EmployeeId)) - { - var employeeInfoObject = _insuranceEmployeeInfoApplication.GetDetailsByEmployeeId(item.EmployeeId); - employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = employeeInfoObject.Id; - employeeDetailsForInsuranceObj.EmployeeId = employeeInfoObject.EmployeeId; - employeeDetailsForInsuranceObj.FName = employeeInfoObject.FName; - employeeDetailsForInsuranceObj.LName = employeeInfoObject.LName; - employeeDetailsForInsuranceObj.FatherName = employeeInfoObject.FatherName; - employeeDetailsForInsuranceObj.DateOfBirth = employeeInfoObject.DateOfBirth; - employeeDetailsForInsuranceObj.DateOfIssue = employeeInfoObject.DateOfIssue; - employeeDetailsForInsuranceObj.DateOfBirthGr = employeeInfoObject.DateOfBirthGr; - employeeDetailsForInsuranceObj.DateOfIssueGr = employeeInfoObject.DateOfIssueGr; - employeeDetailsForInsuranceObj.PlaceOfIssue = employeeInfoObject.PlaceOfIssue; - employeeDetailsForInsuranceObj.IdNumber = employeeInfoObject.IdNumber; - employeeDetailsForInsuranceObj.Gender = employeeInfoObject.Gender; + var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employee.StartWorkDateGr, leftDate, startDateGr,endDateGr, employee.EmployeeId); + var leftWorkFa = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr.ToFarsi(): ""; + var startWorkFa = workingDays.startWork.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); + //بدست آوردن پایه سنوات + var baseYears = _insuranceListRepositpry.GetEmployeeInsuranceBaseYear(employee.EmployeeId, workshopId, + workingDays.countWorkingDays, startDateGr, endDateGr,workingDays.startWork, workingDays.endWork, workingDays.hasLeftWorkInMonth); - //از جدول پرسنل پر می شود - employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; //employeeInfoObject.NationalCode; - employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; - employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; //employeeInfoObject.InsuranceCode; - } - else - { - // var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); - employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = 0; - //employeeDetailsForInsuranceObj.EmployeeInsurancListDataId = 0; - employeeDetailsForInsuranceObj.EmployeeId = employeeObject.Id; - employeeDetailsForInsuranceObj.FName = employeeObject.FName; - employeeDetailsForInsuranceObj.LName = employeeObject.LName; - employeeDetailsForInsuranceObj.FatherName = employeeObject.FatherName; - employeeDetailsForInsuranceObj.DateOfBirth = (employeeObject.DateOfBirth=="1300/10/11"?"" : employeeObject.DateOfBirth); - employeeDetailsForInsuranceObj.DateOfIssue = employeeObject.DateOfIssue; - employeeDetailsForInsuranceObj.PlaceOfIssue = employeeObject.PlaceOfIssue; - employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; - employeeDetailsForInsuranceObj.IdNumber = employeeObject.IdNumber; - employeeDetailsForInsuranceObj.Gender = employeeObject.Gender; - employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; - employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; - } + + + //جمع مزد روزانه و پایه سنوات + var dailyWagePlusBaseYears = dailyWage + baseYears.baseYear; + - #region ComputingWorkingDays - int startWork = 0; - int endWork = 0; + //دستمزد ماهانه با محاسبه پایه سنوات + var monthlySalary = GetRoundValue(dailyWagePlusBaseYears * workingDays.countWorkingDays); - var year = Convert.ToInt32(searchModel.Year); - var month = Convert.ToInt32(searchModel.Month); - var day = 1; - var persianCurrentStartDate = new PersianDateTime(year, month, day); - var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); - var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); - //آخرین روز ماه جاری - var endMonthCurrentDay = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + //حق تاهل + var marriedAllowance = employee.MaritalStatus == "متاهل" ? yearlysaleries.MarriedAllowance : 0; - var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); - var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); - var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); - var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); + //محاسبه مزایای ماهانه + var monthlyBenefits = GetMonthlyBenefits(endOfMonth, yearlysaleries.ConsumableItems, yearlysaleries.HousingAllowance, marriedAllowance, workingDays.countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, employee.JobId, employee.EmployeeId); - if (persianStartDateUser < persianCurrentStartDate) - employeeDetailsForInsuranceObj.HasStartWorkInMonth = false; - else - employeeDetailsForInsuranceObj.HasStartWorkInMonth = true; + //محاسبه مزایای مشمول مستمر + var benefitsIncludedContinuous = monthlyBenefits + monthlySalary; - //اگر شروع به کار کاربر از ابتدای ماه جاری کمتر باشد - if (persianStartDateUser <= persianCurrentStartDate) - { - startWork = 1; - } - else - { - startWork = dayStartDateUser; - } + //محاسبه حق بیمه سهم بیمه شده + var insuranceShare = (benefitsIncludedContinuous * 7) / 100; - if (!string.IsNullOrEmpty(item.LeftWorkDate)) - { - var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); - var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); - var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); - var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); - var persianEndDateUser = persianLeftDateUser.AddDays(-1); - var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); + //محاسبه حق بیمه سهم کارفرما + var employerShare = (benefitsIncludedContinuous * 20) / 100; - //if (persianLeftDateUser <= persianCurrentEndDate) - // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; - //else - // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + // محاسبه بیمه بیکاری + var unEmploymentInsurance = (benefitsIncludedContinuous * 3) / 100; + return new EmployeeDetailsForInsuranceListViewModel + { + #region EmployeeInfo - //ترک کارش در ماه و سال جاری بود نمایش داده شود - if (!item.LeftWorkDate.Contains(searchModel.Year + "/" + searchModel.Month)) - { - employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - item.LeftWorkDate = string.Empty; - item.LeftWorkDateGr = null; - } - else - { - employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; - } + InsuranceEmployeeInformationId = employee.InsuranceEmployeeInformationId, + EmployeeId = employee.EmployeeId, + FName = employee.FName, + LName = employee.LName, + FatherName = employee.FatherName, + DateOfBirth = dateOfBirth == "1300/10/11" ? "" : dateOfBirth, + DateOfIssue = dateOfIssue, + DateOfBirthGr = employee.DateOfBirthGr, + DateOfIssueGr = employee.DateOfIssueGr, + PlaceOfIssue = employee.PlaceOfIssue, + IdNumber = employee.IdNumber, + Gender = employee.Gender, + NationalCode = employee.NationalCode, + Nationality = employee.Nationality, + InsuranceCode = employee.InsuranceCode, + // آیا وضعیت تاهل پرسنل ست شده است + IsMaritalStatusSet = !string.IsNullOrWhiteSpace(employee.MaritalStatus), + MaritalStatus = employee.MaritalStatus, - //اگر پایان به کار کاربر از پایان ماه جاری بیشتر باشد - if (persianEndDateUser >= persianCurrentEndDate) - { - endWork = endMonthCurrentDay; - } - else - { - endWork = Convert.ToInt32(persianEndDateUserStr.Substring(8, 2)); - } - } - else - { - employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - endWork = endMonthCurrentDay; - } + StartMonthCurrent = startMonthFa, + WorkingDays = workingDays.countWorkingDays, + StartWorkDate = startWorkFa, + StartWorkDateGr = workingDays.startWork, + LeftWorkDate = leftWorkFa, + LeftWorkDateGr = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr : null, + JobId = employee.JobId, + JobName = employee.JobName, + JobCode = employee.JobCode, - int countWorkingDays = 0; - for (int i = startWork; i <= endWork; i++) - { - countWorkingDays = countWorkingDays + 1; - } - //farokhiChanges - //روزهای کارکرد پرسنل با آی دی های زیر دستی تعریف شد - switch (item.EmployeeId) - { + HasStartWorkInMonth = workingDays.hasStartWorkInMonth, + HasLeftWorkInMonth = workingDays.hasLeftWorkInMonth, + #endregion + + #region Compute + //مشمول مزایا بودن + IncludeStatus = employee.IncludeStatus, + + //دستمزد روزانه + DailyWage = GetRoundValue(dailyWage), + DailyWageStr = dailyWage.ToMoney(), + + HasConfilictJobs = dailyWage == 0, + + //پایه سنوات + BaseYears = baseYears.baseYear, + + //مجموع مزد روزانه و پایه سنوات + DailyWagePlusBaseYears = dailyWagePlusBaseYears, + + //حق تاهل + MarriedAllowance = employee.MaritalStatus == "متاهل" ? yearlysaleries.MarriedAllowance : 0, + + //دستمزد ماهانه + MonthlySalary = monthlySalary, - //case 3812://ثابت- کسری حاجی پور - // countWorkingDays = 15; - // break; - case 40463://ثابت - countWorkingDays = 10; - break; - case 40469://ثابت - countWorkingDays = 7; - break; - case 9950://ثابت - countWorkingDays = 15; - break; - case 9640://ثابت - countWorkingDays = 15; - break; - case 40998://ثابت - countWorkingDays = 15; - break; - case 6219://ثابت - countWorkingDays = 15; - break; - //case 7897://ثابت - // countWorkingDays = 15; - break; - } - #endregion + + //مزایای ماهانه + MonthlyBenefits = monthlyBenefits, - employeeDetailsForInsuranceObj.IncludeStatus = item.IncludeStatus; + //مزایای مشمول مستمر + BenefitsIncludedContinuous = benefitsIncludedContinuous, + + //مزیایی مشمول غیر مستمر + BenefitsIncludedNonContinuous = 0, + + // جمع کل دستمزد و مزایای ماهانه + IncludedAndNotIncluded = benefitsIncludedContinuous, + + //حق بیمه سهم بیمه شده + InsuranceShare = GetRoundValue(insuranceShare), + + //حق بیمه سهم کارفرما + EmployerShare = GetRoundValue(employerShare), + + //بیمه بیکاری + UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance), + + //کمک هزینه مسکن + HousingAllowance = yearlysaleries.HousingAllowance, + //کمک هزینه اقلام + ConsumableItems = yearlysaleries.ConsumableItems, + + EndMonthCurrentDay = endOfMonth, + YearlySalaryItem = yearlysaleries.DayliWage, + MonthlyBaseYearsStr = "0", + MonthlyBaseYears = 0, + #endregion - #region InsuranceJob - double dailyWage = employeeDetailsForInsuranceObj.DailyWage; - if (searchModel.FixedSalary) - { - dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, item.WorkshopId,item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); - employeeDetailsForInsuranceObj.HasConfilictJobs = (dailyWage == 0 ? true : false); - } - #endregion + }; + }); + Console.WriteLine("New Compute : " + watch.Elapsed); + watch.Stop(); - if (yearlysalaryItem != null) - { - if(!searchModel.FixedSalary ) - { - //dailyWage= yearlysalaryItem.ItemValue; - dailyWage = ComputeDailyWage(yearlysalaryItem.ItemValue, item.EmployeeId,item.WorkshopId, searchModel.Year) ; - //(double basic, int totalYears) basicResult = BasicYear(item.EmployeeId, workshopId, startDate); - //var basic = basicResult.basic; - - //if (basicResult.totalYears > 0) - //{ - // monthlybaseYear = GetMonthlyBaseYear(basicResult.basic, countWorkingDays); - //} - } - employeeDetailsForInsuranceObj.DailyWage = GetRoundValue(dailyWage); - employeeDetailsForInsuranceObj.DailyWageStr = employeeDetailsForInsuranceObj.DailyWage.ToMoney(); - employeeDetailsForInsuranceObj.MonthlySalary = GetRoundValue(dailyWage * countWorkingDays); - employeeDetailsForInsuranceObj.HousingAllowance = housingAllowance.ItemValue; - employeeDetailsForInsuranceObj.ConsumableItems = consumableItems.ItemValue; - employeeDetailsForInsuranceObj.EndMonthCurrentDay = endMonthCurrentDay; - employeeDetailsForInsuranceObj.YearlySalaryItem = yearlysalaryItem.ItemValue; - employeeDetailsForInsuranceObj.MonthlyBaseYearsStr = monthlybaseYear.ToMoney(); - - if (item.IncludeStatus) - { - var marital = employeeObject.MaritalStatus == "متاهل" ? maritalStatus.ItemValue : 0; - employeeDetailsForInsuranceObj.MonthlyBenefits = GetMonthlyBenefits(endMonthCurrentDay, consumableItems.ItemValue, housingAllowance.ItemValue, marital, countWorkingDays); - } - else - { - employeeDetailsForInsuranceObj.MonthlyBenefits = 0; - } + watch.Start(); - if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت - { - employeeDetailsForInsuranceObj.MonthlyBenefits = 0; - } - //farokhiChanges - if (item.EmployeeId == 42783) - employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; + #region Old_heydari + //List list = new List(); + //var leftWorkInsuranceViewModel = _leftWorkInsuranceApplication.SearchForCreateInsuranceList(searchModel); + ////int leftWorkInsuranceCount= leftWorkInsuranceViewModelList.Count(); - employeeDetailsForInsuranceObj.BenefitsIncludedContinuous =employeeDetailsForInsuranceObj.MonthlyBenefits + employeeDetailsForInsuranceObj.MonthlySalary; - - //if ((!item.IncludeStatus &&(item.JobId == 10 || item.JobId == 17 || item.JobId == 18 || item.JobId == 16)) ||(item.IncludeStatus && item.JobId == 10)) // 10 --> karfarma - //{ - // var insuranceShare2 =(employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 27) / 100; - // employeeDetailsForInsuranceObj.InsuranceShare =GetRoundValue(insuranceShare2); - //} - //else - //{ - var insuranceShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 7) / 100; - employeeDetailsForInsuranceObj.InsuranceShare = GetRoundValue(insuranceShare); //Math.Round(insuranceShare, MidpointRounding.ToPositiveInfinity); - //} + //string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; + //string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - var employerShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 20) / 100; - employeeDetailsForInsuranceObj.EmployerShare = GetRoundValue(employerShare); //Math.Round(employerShare, MidpointRounding.ToPositiveInfinity); + //var model = new YearlySalarySearchModel(); + //var startDate = startMonthCurrent.ToGeorgianDateTime(); + //var endDate = endMonthCurrent.ToGeorgianDateTime(); + //model.StartDateGr = startDate; + //model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); + //model.year = searchModel.Year; - //if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId==10)//کمک دولت - //{employeeDetailsForInsuranceObj.InsuranceShare = 0;} - var unEmploymentInsurance =(employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 3) / 100; - employeeDetailsForInsuranceObj.UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance); - employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous; - employeeDetailsForInsuranceObj.IncludedAndNotIncluded = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous + employeeDetailsForInsuranceObj.BenefitsIncludedContinuous; + //foreach (var item in leftWorkInsuranceViewModel) + //{ + // var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); - } + // var employeeDetailsForInsuranceObj = new EmployeeDetailsForInsuranceListViewModel(); + // employeeDetailsForInsuranceObj.HasConfilictJobs = false; - employeeDetailsForInsuranceObj.StartMonthCurrent = startMonthCurrent; - employeeDetailsForInsuranceObj.WorkingDays = countWorkingDays; - employeeDetailsForInsuranceObj.StartWorkDate = item.StartWorkDate; - employeeDetailsForInsuranceObj.LeftWorkDate = item.LeftWorkDate; - employeeDetailsForInsuranceObj.JobId = item.JobId; - employeeDetailsForInsuranceObj.JobName = item.JobName; - employeeDetailsForInsuranceObj.JobCode = item.JobCode; - if (!string.IsNullOrWhiteSpace(item.LeftWorkDate)) - employeeDetailsForInsuranceObj.LeftWorkDateGr = item.LeftWorkDateGr; + // // آیا وضعیت تاهل پرسنل ست شده است + // employeeDetailsForInsuranceObj.IsMaritalStatusSet = + // !string.IsNullOrWhiteSpace(employeeObject.MaritalStatus); + // //دزیافت اطلاعات هویتی پرسنل + // //در صورت نداشن دیتا از جدول پرسنل پر می شود + // #region PersonnelInfo - employeeDetailsForInsuranceObj.StartWorkDateGr = item.StartWorkDateGr; - //farokhiChanges - if (item.EmployeeId == 42783) - employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; + // if (_insuranceEmployeeInfoRepository.Exists(x => x.EmployeeId == item.EmployeeId)) + // { + // var employeeInfoObject = _insuranceEmployeeInfoApplication.GetDetailsByEmployeeId(item.EmployeeId); + // employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = employeeInfoObject.Id; + // employeeDetailsForInsuranceObj.EmployeeId = employeeInfoObject.EmployeeId; + // employeeDetailsForInsuranceObj.FName = employeeInfoObject.FName; + // employeeDetailsForInsuranceObj.LName = employeeInfoObject.LName; + // employeeDetailsForInsuranceObj.FatherName = employeeInfoObject.FatherName; + // employeeDetailsForInsuranceObj.DateOfBirth = employeeInfoObject.DateOfBirth; + // employeeDetailsForInsuranceObj.DateOfIssue = employeeInfoObject.DateOfIssue; + // employeeDetailsForInsuranceObj.DateOfBirthGr = employeeInfoObject.DateOfBirthGr; + // employeeDetailsForInsuranceObj.DateOfIssueGr = employeeInfoObject.DateOfIssueGr; + // employeeDetailsForInsuranceObj.PlaceOfIssue = employeeInfoObject.PlaceOfIssue; + // employeeDetailsForInsuranceObj.IdNumber = employeeInfoObject.IdNumber; + // employeeDetailsForInsuranceObj.Gender = employeeInfoObject.Gender; - list.Add(employeeDetailsForInsuranceObj); - } + // //از جدول پرسنل پر می شود + // employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; //employeeInfoObject.NationalCode; + // employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; + // employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; //employeeInfoObject.InsuranceCode; + // } + // else + // { + // // var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); + // employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = 0; + // //employeeDetailsForInsuranceObj.EmployeeInsurancListDataId = 0; + // employeeDetailsForInsuranceObj.EmployeeId = employeeObject.Id; + // employeeDetailsForInsuranceObj.FName = employeeObject.FName; + // employeeDetailsForInsuranceObj.LName = employeeObject.LName; + // employeeDetailsForInsuranceObj.FatherName = employeeObject.FatherName; + // employeeDetailsForInsuranceObj.DateOfBirth = (employeeObject.DateOfBirth == "1300/10/11" ? "" : employeeObject.DateOfBirth); + // employeeDetailsForInsuranceObj.DateOfIssue = employeeObject.DateOfIssue; + // employeeDetailsForInsuranceObj.PlaceOfIssue = employeeObject.PlaceOfIssue; + // employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; + // employeeDetailsForInsuranceObj.IdNumber = employeeObject.IdNumber; + // employeeDetailsForInsuranceObj.Gender = employeeObject.Gender; + // employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; + // employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; + // } + // #endregion - list = list.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) + // //روزهای کارکرد پرسنل + // #region ComputingWorkingDays + + // int startWork = 0; + // int endWork = 0; + + // var year = Convert.ToInt32(searchModel.Year); + // var month = Convert.ToInt32(searchModel.Month); + // var day = 1; + // var persianCurrentStartDate = new PersianDateTime(year, month, day); + // var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + // var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); + // //آخرین روز ماه جاری + // var endMonthCurrentDay = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + + // var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); + // var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); + // var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); + // var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); + + // if (persianStartDateUser < persianCurrentStartDate) + // employeeDetailsForInsuranceObj.HasStartWorkInMonth = false; + // else + // employeeDetailsForInsuranceObj.HasStartWorkInMonth = true; + + // //اگر شروع به کار کاربر از ابتدای ماه جاری کمتر باشد + // if (persianStartDateUser <= persianCurrentStartDate) + // { + // startWork = 1; + // } + // else + // { + // startWork = dayStartDateUser; + // } + + // if (!string.IsNullOrEmpty(item.LeftWorkDate)) + // { + // var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); + // var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); + // var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); + // var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); + // var persianEndDateUser = persianLeftDateUser.AddDays(-1); + // var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); + + // //if (persianLeftDateUser <= persianCurrentEndDate) + // // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; + // //else + // // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + + // //ترک کارش در ماه و سال جاری بود نمایش داده شود + // if (!item.LeftWorkDate.Contains(searchModel.Year + "/" + searchModel.Month)) + // { + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + // item.LeftWorkDate = string.Empty; + // item.LeftWorkDateGr = null; + // } + // else + // { + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; + // } + + // //اگر پایان به کار کاربر از پایان ماه جاری بیشتر باشد + // if (persianEndDateUser >= persianCurrentEndDate) + // { + // endWork = endMonthCurrentDay; + // } + // else + // { + // endWork = Convert.ToInt32(persianEndDateUserStr.Substring(8, 2)); + // } + // } + // else + // { + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + // endWork = endMonthCurrentDay; + // } + + // int countWorkingDays = 0; + // for (int i = startWork; i <= endWork; i++) + // { + // countWorkingDays = countWorkingDays + 1; + // } + // //farokhiChanges + // //روزهای کارکرد پرسنل با آی دی های زیر دستی تعریف شد + // switch (item.EmployeeId) + // { + + // //case 3812://ثابت- کسری حاجی پور + // // countWorkingDays = 15; + // // break; + // case 40463://ثابت + // countWorkingDays = 10; + // break; + // case 40469://ثابت + // countWorkingDays = 7; + // break; + // case 9950://ثابت + // countWorkingDays = 15; + // break; + // case 9640://ثابت + // countWorkingDays = 15; + // break; + // case 40998://ثابت + // countWorkingDays = 15; + // break; + // case 6219://ثابت + // countWorkingDays = 15; + // break; + // //case 7897://ثابت + // // countWorkingDays = 15; + // break; + // } + // #endregion + + // employeeDetailsForInsuranceObj.IncludeStatus = item.IncludeStatus; + + + // #region InsuranceJob + // double dailyWage = employeeDetailsForInsuranceObj.DailyWage; + // if (searchModel.FixedSalary) + // { + // dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, workshopId, item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); + // employeeDetailsForInsuranceObj.HasConfilictJobs = (dailyWage == 0 ? true : false); + // } + // #endregion + + // if (yearlysaleries != null) + // { + // if (!searchModel.FixedSalary) + // { + // //dailyWage= yearlysalaryItem.ItemValue; + // dailyWage = ComputeDailyWage(yearlysaleries.DayliWage, item.EmployeeId, workshopId, searchModel.Year); + // //(double basic, int totalYears) basicResult = BasicYear(item.EmployeeId, workshopId, startDate); + // //var basic = basicResult.basic; + + // //if (basicResult.totalYears > 0) + // //{ + // // monthlybaseYear = GetMonthlyBaseYear(basicResult.basic, countWorkingDays); + // //} + // } + // employeeDetailsForInsuranceObj.DailyWage = GetRoundValue(dailyWage); + // employeeDetailsForInsuranceObj.BaseYears = 0; + + // employeeDetailsForInsuranceObj.DailyWageStr = employeeDetailsForInsuranceObj.DailyWage.ToMoney(); + // employeeDetailsForInsuranceObj.DailyWagePlusBaseYears = 0; + // employeeDetailsForInsuranceObj.MonthlySalary = GetRoundValue(dailyWage * countWorkingDays); + // employeeDetailsForInsuranceObj.HousingAllowance = yearlysaleries.HousingAllowance; + // employeeDetailsForInsuranceObj.ConsumableItems = yearlysaleries.ConsumableItems; + // employeeDetailsForInsuranceObj.EndMonthCurrentDay = endMonthCurrentDay; + // employeeDetailsForInsuranceObj.YearlySalaryItem = yearlysaleries.DayliWage; + // employeeDetailsForInsuranceObj.MonthlyBaseYearsStr = monthlybaseYear.ToMoney(); + + + + // employeeDetailsForInsuranceObj.MarriedAllowance = 0; + + // if (item.IncludeStatus) + // { + // var marital = employeeObject.MaritalStatus == "متاهل" ? yearlysaleries.MarriedAllowance : 0; + // employeeDetailsForInsuranceObj.MonthlyBenefits = GetMonthlyBenefits(endMonthCurrentDay, yearlysaleries.ConsumableItems, yearlysaleries.HousingAllowance, marital, countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, item.JobId, item.EmployeeId); + // } + // else + // { + // employeeDetailsForInsuranceObj.MonthlyBenefits = 0; + // } + + // if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت + // { + // employeeDetailsForInsuranceObj.MonthlyBenefits = 0; + // } + // //farokhiChanges + // if (item.EmployeeId == 42783) + // employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; + + // employeeDetailsForInsuranceObj.BenefitsIncludedContinuous = employeeDetailsForInsuranceObj.MonthlyBenefits + employeeDetailsForInsuranceObj.MonthlySalary; + + + // //حق بیمه سهم بیمه شده + // var insuranceShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 7) / 100; + // employeeDetailsForInsuranceObj.InsuranceShare = GetRoundValue(insuranceShare); //Math.Round(insuranceShare, MidpointRounding.ToPositiveInfinity); + + // //حق بیمه سهم کارفرما + // var employerShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 20) / 100; + // employeeDetailsForInsuranceObj.EmployerShare = GetRoundValue(employerShare); //Math.Round(employerShare, MidpointRounding.ToPositiveInfinity); + + + // //if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId==10)//کمک دولت + // //{employeeDetailsForInsuranceObj.InsuranceShare = 0;} + + + // var unEmploymentInsurance = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 3) / 100; + // employeeDetailsForInsuranceObj.UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance); + + // employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous; + // employeeDetailsForInsuranceObj.IncludedAndNotIncluded = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous + employeeDetailsForInsuranceObj.BenefitsIncludedContinuous; + + // } + + // employeeDetailsForInsuranceObj.StartMonthCurrent = startMonthCurrent; + // employeeDetailsForInsuranceObj.WorkingDays = countWorkingDays; + // employeeDetailsForInsuranceObj.StartWorkDate = item.StartWorkDate; + // employeeDetailsForInsuranceObj.LeftWorkDate = item.LeftWorkDate; + // employeeDetailsForInsuranceObj.JobId = item.JobId; + // employeeDetailsForInsuranceObj.JobName = item.JobName; + // employeeDetailsForInsuranceObj.JobCode = item.JobCode; + // if (!string.IsNullOrWhiteSpace(item.LeftWorkDate)) + // employeeDetailsForInsuranceObj.LeftWorkDateGr = item.LeftWorkDateGr; + + // employeeDetailsForInsuranceObj.StartWorkDateGr = item.StartWorkDateGr; + // //farokhiChanges + // if (item.EmployeeId == 42783) + // employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; + + // list.Add(employeeDetailsForInsuranceObj); + //} + + //result.EmployeeDetailsForInsuranceList = list.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) + // .ThenBy(x => x.LName).ToList(); + + + #endregion + + result.EmployeeDetailsForInsuranceList = computeResult.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) .ThenBy(x => x.LName).ToList(); - result.EmployeeDetailsForInsuranceList = list; + Console.WriteLine("ToList compute : " + watch.Elapsed); result.IsExist = false; - result.IsBlock = isBolock == "true"?true:false; - result.MaritalStatus = maritalStatus.ItemValue; + result.IsBlock = isBolock; + result.MaritalStatus = yearlysaleries.MarriedAllowance; + } else { result.IsExist = true; - result.IsBlock = isBolock == "true" ? true : false; + result.IsBlock = isBolock; } + return result; } @@ -1031,7 +1203,7 @@ public class InsuranceListApplication: IInsuranceListApplication .Where(x => x.ItemName == "حق تاهل").FirstOrDefault(); item.HousingAllowance = housingAllowance.ItemValue; item.ConsumableItems = consumableItems.ItemValue; - item.MaritalStatus = maritalStatus.ItemValue; + item.MarriedAllowance = maritalStatus.ItemValue; item.YearlySalaryItem = yearlysalaryItem.ItemValue; } @@ -1132,7 +1304,7 @@ public class InsuranceListApplication: IInsuranceListApplication if (item.IncludeStatus) { var marital = employeeObject.MaritalStatus == "متاهل" ? maritalStatus.ItemValue : 0; - item.MonthlyBenefits = GetMonthlyBenefits(dayMonthCurrent, consumableItems.ItemValue, housingAllowance.ItemValue, marital, countWorkingDays); + item.MonthlyBenefits = GetMonthlyBenefits(dayMonthCurrent, consumableItems.ItemValue, housingAllowance.ItemValue, marital, countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, item.JobId, item.EmployeeId); } else { @@ -1286,8 +1458,27 @@ public class InsuranceListApplication: IInsuranceListApplication return result; } - private double GetMonthlyBenefits(int endMonthCurrentDay, double consumableItemsItemValue, double housingAllowanceItemValue,double maritalStatus, int countWorkingDays) + /// + /// محاسبه مزایای ماهانه + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + private double GetMonthlyBenefits(int endMonthCurrentDay, double consumableItemsItemValue, double housingAllowanceItemValue,double maritalStatus, int countWorkingDays, string typeOfInsuranceSendWorkshop, long jobId,long employeeId) { + //اگر پرسنل کارفرما بود و نوع لیست کارگاه کمک دولت بود مزایا محاسبه نشود + if (typeOfInsuranceSendWorkshop == "Govermentlist" && jobId == 10) + return 0; + //پرسنل استثناء + if (employeeId == 42783) + return 53082855; + //مزایای ماهانه با توجه به پایان ماه که 30 یا 31 روزه است، متفاوت می باشد //برای ماه 29 روزه هم تقسیم بر 30 می شود. if (countWorkingDays == endMonthCurrentDay) @@ -1315,6 +1506,8 @@ public class InsuranceListApplication: IInsuranceListApplication dailyWage=employeeInsurancListData.DailyWage; } } + + dailyWage = employeeId == 6536 ? 9399512 : dailyWage; return dailyWage; } public MainEmployeeDetailsViewModel GetEmployeeForInsuranceList(List leftWorkInsuranceViewModelList, EmployeeForEditInsuranceListSearchModel searchModel) @@ -1545,7 +1738,7 @@ public class InsuranceListApplication: IInsuranceListApplication if (item.IncludeStatus) { var marital = employeeObject.MaritalStatus == "متاهل" ? maritalStatus.ItemValue : 0; - employeeDetailsForInsuranceObj.MonthlyBenefits = GetMonthlyBenefits(endMonthCurrentDay, consumableItems.ItemValue, housingAllowance.ItemValue, marital, countWorkingDays); + employeeDetailsForInsuranceObj.MonthlyBenefits = GetMonthlyBenefits(endMonthCurrentDay, consumableItems.ItemValue, housingAllowance.ItemValue, marital, countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, item.JobId, item.EmployeeId); } else { diff --git a/CompanyManagment.Application/LeftWorkInsuranceApplication.cs b/CompanyManagment.Application/LeftWorkInsuranceApplication.cs index 9b155cea..8594755b 100644 --- a/CompanyManagment.Application/LeftWorkInsuranceApplication.cs +++ b/CompanyManagment.Application/LeftWorkInsuranceApplication.cs @@ -447,30 +447,17 @@ public class LeftWorkInsuranceApplication : ILeftWorkInsuranceApplication public List SearchForCreateInsuranceList( EmployeeForCreateInsuranceListSearchModel searchModel) { - var resultList = new List(); + string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; + var resultList = new List(); var leftWorkInsuranceList = _leftWorkInsuranceRepository.SearchForCreateInsuranceList(searchModel); - //foreach (var item in leftWorkInsuranceList) - //{ - // item.StartWorkDate = item.StartWorkDateGr.ToFarsi(); - // if (item.LeftWorkDateGr != null) - // { - // item.LeftWorkDate = item.LeftWorkDateGr.ToFarsi(); - // item.EndWorkDate = GetBeforeDate(item.LeftWorkDate); - // item.IsActiveWorkshop = false; - // } - // else - // { - // item.IsActiveWorkshop = true; - // } - //} //انتخاب ماه و سال برای ثبت بیمه اجباری است if (!string.IsNullOrWhiteSpace(searchModel.Year) && !string.IsNullOrWhiteSpace(searchModel.Month)) { string yearAndMonth = searchModel.Year + "/" + searchModel.Month; - string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; + // string endMonthCurrent = searchModel.Year + "/" + searchModel.Month + startMonthCurrent.FindeEndOfMonth(); var year = Convert.ToInt32(searchModel.Year); @@ -619,4 +606,15 @@ public class LeftWorkInsuranceApplication : ILeftWorkInsuranceApplication return _leftWorkInsuranceRepository.CheckBeforeSaveLeftWorkInsurance(workshopId, employeeId, date.ToGeorgianDateTime(), type); } + + #region Insurance + + public List GetEmployeeInsuranceLeftWorksAndInformation(long workshopId, DateTime startDate, DateTime endDate) + { + return _leftWorkInsuranceRepository.GetEmployeeInsuranceLeftWorksAndInformation(workshopId, startDate, endDate); + } + + #endregion + + } \ No newline at end of file diff --git a/CompanyManagment.Application/PersonalContractingPartyApplication.cs b/CompanyManagment.Application/PersonalContractingPartyApplication.cs index ec919574..6aa564db 100644 --- a/CompanyManagment.Application/PersonalContractingPartyApplication.cs +++ b/CompanyManagment.Application/PersonalContractingPartyApplication.cs @@ -491,7 +491,16 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp return opration.Succcedded(); } - + + + #endregion + + #region Insurance + + public bool IsBlockCheckByWorkshopId(long workshopId) + { + return _personalContractingPartyRepository2.IsBlockCheckByWorkshopId(workshopId); + } #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/WorkshopAppliction.cs b/CompanyManagment.Application/WorkshopAppliction.cs index cdd32b06..a7d06170 100644 --- a/CompanyManagment.Application/WorkshopAppliction.cs +++ b/CompanyManagment.Application/WorkshopAppliction.cs @@ -16,6 +16,7 @@ using CompanyManagment.App.Contracts.RollCallService; using CompanyManagment.App.Contracts.Workshop; using CompanyManagment.App.Contracts.WorkshopPlan; using CompanyManagment.EFCore.Migrations; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration.UserSecrets; using Microsoft.Identity.Client; using Workshop = Company.Domain.WorkshopAgg.Workshop; @@ -754,10 +755,21 @@ public class WorkshopAppliction : IWorkshopApplication return _personalContractingPartyRepository.GetAccountByPersonalContractingParty(contractingParty.id); } - //public List GetConnectedPersonnelsForMain(long workshopId) - //{ - // return _workshopRepository.GetConnectedPersonnelsForMain(workshopId); - //} - #endregion + + //public List GetConnectedPersonnelsForMain(long workshopId) + //{ + // return _workshopRepository.GetConnectedPersonnelsForMain(workshopId); + //} + + #endregion + + #region Insurance + + public List GetWorkshopSelectListInsuransce() + { + return _workshopRepository.GetWorkshopSelectListInsuransce(); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/YearlySalaryApplication.cs b/CompanyManagment.Application/YearlySalaryApplication.cs index d2344aaf..82afe137 100644 --- a/CompanyManagment.Application/YearlySalaryApplication.cs +++ b/CompanyManagment.Application/YearlySalaryApplication.cs @@ -148,4 +148,19 @@ public class YearlySalaryApplication : IYearlySalaryApplication { return _yearlySalaryRepository.HolidayShamsi(shamsiDate); } + + #region Insurance + /// + /// دریافت مقادیر برای استفاده در بیمه + /// + /// + /// + /// + /// + public InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year) + { + return _yearlySalaryRepository.GetInsuranceItems(startDate, endDate, year); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Migrations/20250116224550_AddBaseYearsToInsurance.Designer.cs b/CompanyManagment.EFCore/Migrations/20250116224550_AddBaseYearsToInsurance.Designer.cs new file mode 100644 index 00000000..2193b3d8 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250116224550_AddBaseYearsToInsurance.Designer.cs @@ -0,0 +1,8401 @@ +// +using System; +using CompanyManagment.EFCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + [DbContext(typeof(CompanyContext))] + [Migration("20250116224550_AddBaseYearsToInsurance")] + partial class AddBaseYearsToInsurance + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckoutTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopGroupSettingId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChanged") + .HasColumnType("bit"); + + b.Property("IsShiftChanged") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopGroupSettingId"); + + b.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopSettingId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("GroupName") + .HasMaxLength(120) + .HasColumnType("nvarchar(120)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChange") + .HasColumnType("bit"); + + b.Property("IsShiftChange") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MainGroup") + .HasColumnType("bit"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopSettingId"); + + b.ToTable("CustomizeWorkshopGroupSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPayInEndOfYear") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("BonusesPaysInEndOfMonth") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Currency") + .HasColumnType("int"); + + b.Property("EndTimeOffSet") + .HasColumnType("time"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MaxMonthDays") + .HasColumnType("int"); + + b.Property("OverTimeThresholdMinute") + .HasColumnType("int"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("CustomizeWorkshopSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EndDateGr") + .HasColumnType("datetime2"); + + b.Property("StartDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("StartDateGr") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("DateSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateSalaryId") + .HasColumnType("bigint"); + + b.Property("Percent") + .HasColumnType("float"); + + b.Property("PercentageId") + .HasColumnType("bigint"); + + b.Property("Salary") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("DateSalaryId"); + + b.HasIndex("PercentageId"); + + b.ToTable("DateSalaryItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployeeId", "AccountId"); + + b.ToTable("EmployeeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("BankBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BankCardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FieldOfStudy") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByMonth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByYear") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("LevelOfEducation") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MilitaryService") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NumberOfChildren") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("Employees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ParentNationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeChildren", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeComputeOptionsAgg.EmployeeComputeOptions", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("EmployeeComputeOptions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsurancListDataAgg.EmployeeInsurancListData", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYears") + .HasColumnType("float"); + + b.Property("BenefitsIncludedContinuous") + .HasColumnType("float"); + + b.Property("BenefitsIncludedNonContinuous") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("InsuranceListId") + .HasColumnType("bigint"); + + b.Property("InsuranceShare") + .HasColumnType("float"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthlyBenefits") + .HasColumnType("float"); + + b.Property("MonthlyBenefitsIncluded") + .HasColumnType("float"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkingDays") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("EmployeeInsurancListData", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfEnd") + .HasColumnType("datetime2"); + + b.Property("DateOfStart") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkShopId"); + + b.ToTable("EmployeeInsuranceRecord", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployerId", "AccountId"); + + b.ToTable("EmployerAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Evidences", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Evidence_Id") + .HasColumnType("bigint"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("Evidence_Id"); + + b.ToTable("EvidenceDetails", (string)null); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ArchiveNo") + .HasColumnType("bigint"); + + b.Property("Client") + .HasColumnType("int"); + + b.Property("ClientVisitDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FileClass") + .HasColumnType("nvarchar(max)"); + + b.Property("HasMandate") + .HasColumnType("int"); + + b.Property("ProceederReference") + .HasColumnType("nvarchar(max)"); + + b.Property("Reqester") + .HasColumnType("bigint"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Summoned") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Files", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdditionalDeadline") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileState_Id") + .HasColumnType("bigint"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("FileState_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("File_Alerts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.Property("FileId") + .HasColumnType("bigint"); + + b.Property("FileEmployerId") + .HasColumnType("bigint"); + + b.HasKey("FileId", "FileEmployerId"); + + b.HasIndex("FileEmployerId"); + + b.ToTable("FileAndFileEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceWorkshopCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NationalId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RegisterId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployer", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileTiming_Id") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("FileTiming_Id"); + + b.ToTable("File_States", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Deadline") + .HasColumnType("int"); + + b.Property("Tips") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Timings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTitle.FileTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Titles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("FinancialStatments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Balance") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Creditor") + .HasColumnType("float"); + + b.Property("Deptor") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(600) + .HasColumnType("nvarchar(600)"); + + b.Property("DescriptionOption") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FinancialStatementId") + .HasColumnType("bigint"); + + b.Property("MessageText") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("SentSms") + .HasColumnType("bit"); + + b.Property("SentSmsDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfTransaction") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("FinancialStatementId"); + + b.ToTable("FinancialTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineAgg.Fine", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FineDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Fines", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineSubjectAgg.FineSubject", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("FineSubjects", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AnnualSalary") + .HasColumnType("float"); + + b.Property("BaseSalary") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobSalary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("GroupPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupPlanId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("GroupPlanId"); + + b.ToTable("GroupPlanJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("Holidays", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HolidayId") + .HasColumnType("bigint"); + + b.Property("HolidayYear") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("Holidaydate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("HolidayId"); + + b.ToTable("Holidayitems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(250) + .HasColumnType("nvarchar(250)"); + + b.Property("City") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ContractAmount") + .HasColumnType("float"); + + b.Property("ContractDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractDateGr") + .HasColumnType("datetime2"); + + b.Property("ContractEndFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("ContractStartFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyCompenseation") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(10000) + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeManualCount") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExtensionNo") + .HasColumnType("int"); + + b.Property("HasValueAddedTax") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Obligation") + .HasColumnType("float"); + + b.Property("OfficialCompany") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("RepresentativeName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("State") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.Property("TypeOfContract") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("WorkshopManualCount") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("id"); + + b.ToTable("InstitutionContracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FnameLname") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("PhoneType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Position") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SendSms") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutinContractContactInfo", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.InstitutionPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseContractAmont") + .HasColumnType("float"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("FinalContractAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("InstitutionPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("InsuranceJobTitle") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("InsuranceJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgreementNumber") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ListNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("InsuranceWorkshopInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerStr") + .HasColumnType("nvarchar(max)"); + + b.Property("ListNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("int"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.Property("WorkShopStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("WorkShopId"); + + b.ToTable("Insurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("InsuranceEmployeeInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("InsuranceJobItemId") + .HasColumnType("bigint"); + + b.HasKey("JobId", "InsuranceJobItemId"); + + b.HasIndex("InsuranceJobItemId"); + + b.ToTable("InsuranceJobAndJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("PercentageLessThan") + .HasColumnType("float"); + + b.Property("PercentageMoreThan") + .HasColumnType("float"); + + b.Property("SalaeyLessThan") + .HasColumnType("float"); + + b.Property("SalaryMoreThan") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("InsuranceJobId"); + + b.ToTable("InsuranceJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmSentlist") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DifficultJobsInsuranc") + .HasColumnType("float"); + + b.Property("EmployerShare") + .HasColumnType("float"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Included") + .HasColumnType("float"); + + b.Property("IncludedAndNotIncluded") + .HasColumnType("float"); + + b.Property("InsuredShare") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("SumOfBaseYears") + .HasColumnType("float"); + + b.Property("SumOfBenefitsIncluded") + .HasColumnType("float"); + + b.Property("SumOfDailyWage") + .HasColumnType("float"); + + b.Property("SumOfDailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("SumOfEmployees") + .HasColumnType("int"); + + b.Property("SumOfMarriedAllowance") + .HasColumnType("float"); + + b.Property("SumOfSalaries") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("int"); + + b.Property("UnEmploymentInsurance") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("InsuranceLists", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.Property("InsurancListId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("InsurancListId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("InsuranceListWorkshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceYearlySalaryAgg.InsuranceYearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group21") + .HasColumnType("float"); + + b.Property("Group22") + .HasColumnType("float"); + + b.Property("Group23") + .HasColumnType("float"); + + b.Property("Group24") + .HasColumnType("float"); + + b.Property("Group25") + .HasColumnType("float"); + + b.Property("Group26") + .HasColumnType("float"); + + b.Property("Group27") + .HasColumnType("float"); + + b.Property("Group28") + .HasColumnType("float"); + + b.Property("Group29") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group30") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("InsuranceYearlySalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("Jobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeaveAgg.Leave", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Decription") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndLeave") + .HasColumnType("datetime2"); + + b.Property("IsAccepted") + .HasColumnType("bit"); + + b.Property("LeaveHourses") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("PaidLeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("StartLeave") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Leave", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWork", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWorkInsurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("AmountPerMonth") + .HasColumnType("float"); + + b.Property("Count") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GetRounded") + .HasColumnType("bit"); + + b.Property("LoanGrantDate") + .HasColumnType("datetime2"); + + b.Property("StartInstallmentPayment") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Loan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Aban") + .HasColumnType("float"); + + b.Property("AbanFridays") + .HasColumnType("int"); + + b.Property("AbanHolidays") + .HasColumnType("int"); + + b.Property("AbanMonadatoryDays") + .HasColumnType("int"); + + b.Property("Azar") + .HasColumnType("float"); + + b.Property("AzarFridays") + .HasColumnType("int"); + + b.Property("AzarHolidays") + .HasColumnType("int"); + + b.Property("AzarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Bahman") + .HasColumnType("float"); + + b.Property("BahmanFridays") + .HasColumnType("int"); + + b.Property("BahmanHolidays") + .HasColumnType("int"); + + b.Property("BahmanMonadatoryDays") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Dey") + .HasColumnType("float"); + + b.Property("DeyFridays") + .HasColumnType("int"); + + b.Property("DeyHolidays") + .HasColumnType("int"); + + b.Property("DeyMonadatoryDays") + .HasColumnType("int"); + + b.Property("Esfand") + .HasColumnType("float"); + + b.Property("EsfandFridays") + .HasColumnType("int"); + + b.Property("EsfandHolidays") + .HasColumnType("int"); + + b.Property("EsfandMonadatoryDays") + .HasColumnType("int"); + + b.Property("Farvardin") + .HasColumnType("float"); + + b.Property("FarvardinFridays") + .HasColumnType("int"); + + b.Property("FarvardinHolidays") + .HasColumnType("int"); + + b.Property("FarvardinMonadatoryDays") + .HasColumnType("int"); + + b.Property("Khordad") + .HasColumnType("float"); + + b.Property("KhordadFridays") + .HasColumnType("int"); + + b.Property("KhordadHolidays") + .HasColumnType("int"); + + b.Property("KhordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mehr") + .HasColumnType("float"); + + b.Property("MehrFridays") + .HasColumnType("int"); + + b.Property("MehrHolidays") + .HasColumnType("int"); + + b.Property("MehrMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mordad") + .HasColumnType("float"); + + b.Property("MordadFridays") + .HasColumnType("int"); + + b.Property("MordadHolidays") + .HasColumnType("int"); + + b.Property("MordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Ordibehesht") + .HasColumnType("float"); + + b.Property("OrdibeheshtFridays") + .HasColumnType("int"); + + b.Property("OrdibeheshtHolidays") + .HasColumnType("int"); + + b.Property("OrdibeheshtMonadatoryDays") + .HasColumnType("int"); + + b.Property("Shahrivar") + .HasColumnType("float"); + + b.Property("ShahrivarFridays") + .HasColumnType("int"); + + b.Property("ShahrivarHolidays") + .HasColumnType("int"); + + b.Property("ShahrivarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Tir") + .HasColumnType("float"); + + b.Property("TirFridays") + .HasColumnType("int"); + + b.Property("TirHolidays") + .HasColumnType("int"); + + b.Property("TirMonadatoryDays") + .HasColumnType("int"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("MandatoryHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("MasterName") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Master_Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameSubModule") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Module", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.Property("TextManagerId") + .HasColumnType("bigint"); + + b.Property("ModuleId") + .HasColumnType("bigint"); + + b.HasKey("TextManagerId", "ModuleId"); + + b.HasIndex("ModuleId"); + + b.ToTable("TextManager_ModuleTextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("TextManager_OriginalTitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("PaymentToEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankCheckNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CashDescription") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DestinationBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DestinationBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PayDate") + .HasColumnType("datetime2"); + + b.Property("Payment") + .HasColumnType("float"); + + b.Property("PaymentMetod") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("PaymentTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentToEmployeeId") + .HasColumnType("bigint"); + + b.Property("SourceBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SourceBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeDestinationBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeSourceBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("PaymentToEmployeeId"); + + b.ToTable("PaymentToEmployeeItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2(7)"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2(7)"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Percent") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("Percentages", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("PersonnelCodes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("NotificationPetitionDate") + .HasColumnType("datetime2"); + + b.Property("PetitionIssuanceDate") + .HasColumnType("datetime2"); + + b.Property("PetitionNo") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenalty") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenaltyTitles") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Board_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Date") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("Board_Id"); + + b.ToTable("ProceedingSessions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgentPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("RegisterId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.HasKey("id"); + + b.ToTable("Representative", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RewardAgg.Reward", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GrantDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RewardedByAccountId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Rewards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallAgg.RollCall", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("RollCallModifyType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ShiftDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCall", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("HasChangedName") + .HasColumnType("bit"); + + b.Property("HasUploadedImage") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("RollCallEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("RollCallEmployeeId") + .HasColumnType("bigint"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("RollCallEmployeeId"); + + b.ToTable("RollCallEmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.RollCallPlanAgg.RollCallPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseAmont") + .HasColumnType("float"); + + b.Property("FinalAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCallPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutAmount") + .HasColumnType("float"); + + b.Property("CustomizeCheckoutServiceEnd") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutServiceStart") + .HasColumnType("datetime2"); + + b.Property("Duration") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("EndService") + .HasColumnType("datetime2"); + + b.Property("HasCustomizeCheckoutService") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.Property("ServiceType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("StartService") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("AccountId"); + + b.ToTable("RollCallServices", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SalaryAidAgg.SalaryAid", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("SalaryAids", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SmsResultAgg.SmsResult", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPatyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("Mobile") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("Status") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("TypeOfSms") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("SmsResults", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EntitySubtitleid") + .HasColumnType("bigint"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Subtitle") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.HasIndex("EntitySubtitleid"); + + b.HasIndex("OriginalTitle_Id"); + + b.ToTable("TextManager_Subtitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxJobCategoryAgg.TaxJobCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("JobCategoryCode") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("JobCategoryName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("TaxJobCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BudgetLawExceptions") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("Country") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CurrencyType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("EmploymentLocationStatus") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("ExchangeRate") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("InsuranceBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobCategoryCode") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("JobCategoryId") + .HasColumnType("bigint"); + + b.Property("JobTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RetirementDate") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TaxExempt") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfEmployment") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfInsurance") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("TaxLeftWorkCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("TaxLeftWorkCategoryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TaxLeftWorkCategoryId"); + + b.ToTable("TaxLeftWorkItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NoteNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("NumberTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Paragraph") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("TextManager_TextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("NumberOfFriday") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("NumberOfWorkingDays") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverNightWorkH") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverNightWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("OverTimeWorkH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverTimeWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("TotalHoursesH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("TotalHoursesM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WeeklyWorkingTime") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("ContractId"); + + b.ToTable("WorkingHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursId"); + + b.ToTable("WorkingHoursItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkShopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkingHoursTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursTempId"); + + b.ToTable("WorkingHoursTempItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("ContractAndCheckout") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Insurance") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveSting") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Tax") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("WorkshopId", "AccountId"); + + b.ToTable("WorkshopeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgreementNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsClassified") + .HasColumnType("bit"); + + b.Property("IsOldContract") + .HasColumnType("bit"); + + b.Property("Population") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TotalPaymentHide") + .HasColumnType("bit"); + + b.Property("TypeOfContract") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfInsuranceSend") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfOwnership") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopHolidayWorking") + .HasColumnType("bit"); + + b.Property("WorkshopName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopSureName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Workshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployerId"); + + b.HasIndex("EmployerId"); + + b.ToTable("WorkshopeEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Designer") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ExecutionDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkshopPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("WorkshopPlanEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.Property("SubAccountId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("int"); + + b.HasKey("SubAccountId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("WorkshopSubAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConnectionId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("YearlySalariess", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ItemName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ItemValue") + .HasColumnType("float"); + + b.Property("ParentConnectionId") + .HasColumnType("int"); + + b.Property("ValueType") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("YearlyItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlysSalaryTitleAgg.YearlySalaryTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title1") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title10") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title2") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title3") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title4") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title5") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title6") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title7") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title8") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title9") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("YearlySalaryTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ZoneAgg.Zone", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CityId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Zones", (string)null); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployerLName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployerNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsLegal") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("ContractingPartyId"); + + b.ToTable("Employers", (string)null); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.Property("EmployersListid") + .HasColumnType("bigint"); + + b.Property("WorkshopsListid") + .HasColumnType("bigint"); + + b.HasKey("EmployersListid", "WorkshopsListid"); + + b.HasIndex("WorkshopsListid"); + + b.ToTable("EmployerWorkshop"); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("BoardsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("BoardsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", "EntitySubtitle") + .WithMany("Chapters") + .HasForeignKey("Subtitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntitySubtitle"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Checkouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("ContractingParties") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("Contracts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("Contracts") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("ContractsList") + .HasForeignKey("JobTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.MandatoryHoursAgg.MandatoryHours", null) + .WithMany("Contracts") + .HasForeignKey("MandatoryHoursid"); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Contracts2") + .HasForeignKey("WorkshopIds") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("Contracts") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Employer"); + + b.Navigation("Job"); + + b.Navigation("Workshop"); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "PersonalContractingParty") + .WithMany() + .HasForeignKey("PersonalContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalContractingParty"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.HasOne("Company.Domain.CrossJobGuildAgg.CrossJobGuild", "CrossJobGuild") + .WithMany("CrossJobList") + .HasForeignKey("CrossJobGuildId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJobGuild"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.HasOne("Company.Domain.CrossJobAgg.CrossJob", "CrossJob") + .WithMany("CrossJobItemsList") + .HasForeignKey("CrossJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("CrossJobItemsList") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJob"); + + b.Navigation("Job"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("CustomizeCheckouts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("CustomizeCheckouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", "CustomizeWorkshopGroupSettings") + .WithMany("CustomizeWorkshopEmployeeSettingsCollection") + .HasForeignKey("CustomizeWorkshopGroupSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("PreviousShiftThreshold") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopEmployeeSettingsId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopEmployeeSettings") + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + + b1.Navigation("CustomizeWorkshopEmployeeSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopEmployeeSettingsShifts"); + + b.Navigation("CustomizeWorkshopGroupSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "CustomizeWorkshopSettings") + .WithMany("CustomizeWorkshopGroupSettingsCollection") + .HasForeignKey("CustomizeWorkshopSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopGroupSettingsId"); + + b1.ToTable("CustomizeWorkshopGroupSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopGroupSettings") + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + + b1.Navigation("CustomizeWorkshopGroupSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopGroupSettingsShifts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("CustomizeWorkshopSettings") + .HasForeignKey("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopSettingsId"); + + b1.ToTable("CustomizeWorkshopSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopSettings") + .HasForeignKey("CustomizeWorkshopSettingsId"); + + b1.Navigation("CustomizeWorkshopSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("CustomizeWorkshopSettingsShifts"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.HasOne("Company.Domain.DateSalaryAgg.DateSalary", "DateSalary") + .WithMany("DateSalaryItemList") + .HasForeignKey("DateSalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.PercentageAgg.Percentage", "Percentage") + .WithMany("DateSalaryItemList") + .HasForeignKey("PercentageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DateSalary"); + + b.Navigation("Percentage"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeChildrenAgg.EmployeeChildren", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeChildrenList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("EmployeeInsuranceRecords") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany() + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("EvidencesList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("EvidencesList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.HasOne("Company.Domain.Evidence.Evidence", "Evidence") + .WithMany("EvidenceDetailsList") + .HasForeignKey("Evidence_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Evidence"); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.HasOne("Company.Domain.FileState.FileState", "FileState") + .WithMany("FileAlertsList") + .HasForeignKey("FileState_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File") + .WithMany("FileAlertsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File"); + + b.Navigation("FileState"); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.HasOne("Company.Domain.FileEmployerAgg.FileEmployer", "FileEmployer") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileEmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("FileAndFileEmployers") + .HasForeignKey("FileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("File1"); + + b.Navigation("FileEmployer"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployeeList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("FileEmployerList") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.HasOne("Company.Domain.FileTiming.FileTiming", "FileTiming") + .WithMany("FileStates") + .HasForeignKey("FileTiming_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FileTiming"); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.HasOne("Company.Domain.FinancialStatmentAgg.FinancialStatment", "FinancialStatment") + .WithMany("FinancialTransactionList") + .HasForeignKey("FinancialStatementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("FinancialStatment"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("GroupPlans") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.HasOne("Company.Domain.GroupPlanAgg.GroupPlan", "GroupPlan") + .WithMany("GroupPlanJobItems") + .HasForeignKey("GroupPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("GroupPlan"); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.HasOne("Company.Domain.HolidayAgg.Holiday", "Holidayss") + .WithMany("HolidayItems") + .HasForeignKey("HolidayId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Holidayss"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.HasOne("Company.Domain.InstitutionContractAgg.InstitutionContract", "InstitutionContracts") + .WithMany("ContactInfoList") + .HasForeignKey("InstitutionContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InstitutionContracts"); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("InsuranceWorkshopInfo") + .HasForeignKey("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Insurances") + .HasForeignKey("WorkShopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("InsuranceEmployeeInfo") + .HasForeignKey("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.HasOne("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", "InsuranceJobItem") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("InsuranceJobItemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Jobs") + .WithMany("InsuranceJobAndJobs") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJobItem"); + + b.Navigation("Jobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.HasOne("Company.Domain.InsurancJobAgg.InsuranceJob", "InsuranceJob") + .WithMany("InsuranceJobItemList") + .HasForeignKey("InsuranceJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceJob"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.HasOne("Company.Domain.InsuranceListAgg.InsuranceList", "InsuranceList") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("InsurancListId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("InsuranceListWorkshops") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsuranceList"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorks") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorks") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("LeftWorkInsurances") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("LeftWorkInsurances") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.OwnsMany("Company.Domain.LoanAgg.Entities.LoanInstallment", "LoanInstallments", b1 => + { + b1.Property("LoanId") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasColumnType("float"); + + b1.Property("InstallmentDate") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("LoanId", "Id"); + + b1.ToTable("LoanInstallment"); + + b1.WithOwner() + .HasForeignKey("LoanId"); + }); + + b.Navigation("LoanInstallments"); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterPenaltyTitlesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("MasterPetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("MasterPetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.HasOne("Company.Domain.MasterPetition.MasterPetition", "MasterPetition") + .WithMany("MasterWorkHistoriesList") + .HasForeignKey("MasterPetition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("MasterPetition"); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.HasOne("Company.Domain.ModuleAgg.EntityModule", "Module") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("ModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.TextManagerAgg.EntityTextManager", "TextManager") + .WithMany("EntityModuleTextManagers") + .HasForeignKey("TextManagerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Module"); + + b.Navigation("TextManager"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.HasOne("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", "PaymentToEmployee") + .WithMany("PaymentToEmployeeItemList") + .HasForeignKey("PaymentToEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PaymentToEmployee"); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("PenaltyTitlesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("PersonnelCodeList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("PersonnelCodeList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("PetitionsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("PetitionsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.HasOne("Company.Domain.Board.Board", "Board") + .WithMany("ProceedingSessionsList") + .HasForeignKey("Board_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Board"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.HasOne("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", "RollCallEmployee") + .WithMany("EmployeesStatus") + .HasForeignKey("RollCallEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RollCallEmployee"); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("RollCallServicesList") + .HasForeignKey("AccountId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", null) + .WithMany("Subtitles") + .HasForeignKey("EntitySubtitleid"); + + b.HasOne("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", "EntityOriginalTitle") + .WithMany("Subtitles") + .HasForeignKey("OriginalTitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntityOriginalTitle"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("TaxLeftWorkCategoryList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.HasOne("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", "TaxLeftWorkCategory") + .WithMany("TaxLeftWorkItemList") + .HasForeignKey("TaxLeftWorkCategoryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TaxLeftWorkCategory"); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.HasOne("Company.Domain.Petition.Petition", "Petition") + .WithMany("WorkHistoriesList") + .HasForeignKey("Petition_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Petition"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.HasOne("Company.Domain.ContractAgg.Contract", "Contracts") + .WithMany("WorkingHoursList") + .HasForeignKey("ContractId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.HasOne("Company.Domain.WorkingHoursAgg.WorkingHours", "WorkingHourses") + .WithMany("WorkingHoursItemsList") + .HasForeignKey("WorkingHoursId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHourses"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.HasOne("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", "WorkingHoursTemp") + .WithMany("WorkingHoursTempItemList") + .HasForeignKey("WorkingHoursTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkingHoursTemp"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("WorkshopEmployers") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopEmployers") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employer"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.HasOne("Company.Domain.WorkshopPlanAgg.WorkshopPlan", "WorkshopPlan") + .WithMany("WorkshopPlanEmployees") + .HasForeignKey("WorkshopPlanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopPlan"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("WorkshopSubAccounts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("YearlySalaryItemsList") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "ContractingParty") + .WithMany("Employers") + .HasForeignKey("ContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ContractingParty"); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.HasOne("Company.Domain.empolyerAgg.Employer", null) + .WithMany() + .HasForeignKey("EmployersListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", null) + .WithMany() + .HasForeignKey("WorkshopsListid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Navigation("ProceedingSessionsList"); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Navigation("Employers"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Navigation("WorkingHoursList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Navigation("CrossJobItemsList"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Navigation("CrossJobList"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Navigation("CustomizeWorkshopEmployeeSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Navigation("CustomizeWorkshopGroupSettingsCollection"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("EmployeeChildrenList"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceEmployeeInfo"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Navigation("EvidenceDetailsList"); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Navigation("BoardsList"); + + b.Navigation("EvidencesList"); + + b.Navigation("FileAlertsList"); + + b.Navigation("FileAndFileEmployers"); + + b.Navigation("MasterPetitionsList"); + + b.Navigation("PetitionsList"); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Navigation("FileAndFileEmployers"); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Navigation("FileAlertsList"); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Navigation("FileStates"); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Navigation("FinancialTransactionList"); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Navigation("GroupPlanJobItems"); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Navigation("HolidayItems"); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Navigation("ContactInfoList"); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Navigation("InsuranceJobItemList"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Navigation("InsuranceListWorkshops"); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Navigation("ContractsList"); + + b.Navigation("CrossJobItemsList"); + + b.Navigation("InsuranceJobAndJobs"); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Navigation("Contracts"); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Navigation("MasterPenaltyTitlesList"); + + b.Navigation("MasterWorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Navigation("PaymentToEmployeeItemList"); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Navigation("DateSalaryItemList"); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Navigation("PenaltyTitlesList"); + + b.Navigation("WorkHistoriesList"); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Navigation("ContractingParties"); + + b.Navigation("FileEmployeeList"); + + b.Navigation("FileEmployerList"); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Navigation("EmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Navigation("Chapters"); + + b.Navigation("Subtitles"); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Navigation("TaxLeftWorkItemList"); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Navigation("EntityModuleTextManagers"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Navigation("WorkingHoursItemsList"); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Navigation("WorkingHoursTempItemList"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Navigation("Checkouts"); + + b.Navigation("ClientEmployeeWorkshopList"); + + b.Navigation("Contracts2"); + + b.Navigation("CustomizeCheckouts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceListWorkshops"); + + b.Navigation("InsuranceWorkshopInfo"); + + b.Navigation("Insurances"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + + b.Navigation("RollCallServicesList"); + + b.Navigation("TaxLeftWorkCategoryList"); + + b.Navigation("WorkshopEmployers"); + + b.Navigation("WorkshopSubAccounts"); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Navigation("GroupPlans"); + + b.Navigation("WorkshopPlanEmployees"); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Navigation("Contracts"); + + b.Navigation("YearlySalaryItemsList"); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Navigation("Contracts"); + + b.Navigation("WorkshopEmployers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250116224550_AddBaseYearsToInsurance.cs b/CompanyManagment.EFCore/Migrations/20250116224550_AddBaseYearsToInsurance.cs new file mode 100644 index 00000000..e933e854 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250116224550_AddBaseYearsToInsurance.cs @@ -0,0 +1,84 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class AddBaseYearsToInsurance : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "SumOfBaseYears", + table: "InsuranceLists", + type: "float", + nullable: false, + defaultValue: 0.0); + + migrationBuilder.AddColumn( + name: "SumOfDailyWagePlusBaseYears", + table: "InsuranceLists", + type: "float", + nullable: false, + defaultValue: 0.0); + + migrationBuilder.AddColumn( + name: "SumOfMarriedAllowance", + table: "InsuranceLists", + type: "float", + nullable: false, + defaultValue: 0.0); + + migrationBuilder.AddColumn( + name: "BaseYears", + table: "EmployeeInsurancListData", + type: "float", + nullable: false, + defaultValue: 0.0); + + migrationBuilder.AddColumn( + name: "DailyWagePlusBaseYears", + table: "EmployeeInsurancListData", + type: "float", + nullable: false, + defaultValue: 0.0); + + migrationBuilder.AddColumn( + name: "MarriedAllowance", + table: "EmployeeInsurancListData", + type: "float", + nullable: false, + defaultValue: 0.0); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "SumOfBaseYears", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "SumOfDailyWagePlusBaseYears", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "SumOfMarriedAllowance", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "BaseYears", + table: "EmployeeInsurancListData"); + + migrationBuilder.DropColumn( + name: "DailyWagePlusBaseYears", + table: "EmployeeInsurancListData"); + + migrationBuilder.DropColumn( + name: "MarriedAllowance", + table: "EmployeeInsurancListData"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index c3df1811..c90fc187 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -1651,6 +1651,9 @@ namespace CompanyManagment.EFCore.Migrations SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + b.Property("BaseYears") + .HasColumnType("float"); + b.Property("BenefitsIncludedContinuous") .HasColumnType("float"); @@ -1663,6 +1666,9 @@ namespace CompanyManagment.EFCore.Migrations b.Property("DailyWage") .HasColumnType("float"); + b.Property("DailyWagePlusBaseYears") + .HasColumnType("float"); + b.Property("EmployeeId") .HasColumnType("bigint"); @@ -1681,6 +1687,9 @@ namespace CompanyManagment.EFCore.Migrations b.Property("LeftWorkDate") .HasColumnType("datetime2(7)"); + b.Property("MarriedAllowance") + .HasColumnType("float"); + b.Property("MonthlyBenefits") .HasColumnType("float"); @@ -2932,15 +2941,24 @@ namespace CompanyManagment.EFCore.Migrations b.Property("StartDate") .HasColumnType("datetime2"); + b.Property("SumOfBaseYears") + .HasColumnType("float"); + b.Property("SumOfBenefitsIncluded") .HasColumnType("float"); b.Property("SumOfDailyWage") .HasColumnType("float"); + b.Property("SumOfDailyWagePlusBaseYears") + .HasColumnType("float"); + b.Property("SumOfEmployees") .HasColumnType("int"); + b.Property("SumOfMarriedAllowance") + .HasColumnType("float"); + b.Property("SumOfSalaries") .HasColumnType("float"); diff --git a/CompanyManagment.EFCore/Repository/EmployerRepository.cs b/CompanyManagment.EFCore/Repository/EmployerRepository.cs index a5bdf2f6..7ffbe9b5 100644 --- a/CompanyManagment.EFCore/Repository/EmployerRepository.cs +++ b/CompanyManagment.EFCore/Repository/EmployerRepository.cs @@ -136,29 +136,41 @@ public class EmployerRepository : RepositoryBase, IEmployerRepos { - var emps = _context.WorkshopEmployers.Where(x => x.WorkshopId == workshopId) - .Select(x => x.EmployerId).ToList(); - var employerlist = _context.Employers.Where(x => emps.Contains(x.id)).ToList(); - var employers = new List(); - - foreach (var element in employerlist) - { - var employer = new EmprViewModel() + var result = _context.WorkshopEmployers.Where(x => x.WorkshopId == workshopId).Include(x=>x.Employer) + .Select(x=> new EmprViewModel() { - EmployerFullName = element.FName + " " + element.LName, - Id = element.id, - FName = element.FName, - EmployerLName = element.EmployerLName, - IsLegal = element.IsLegal, - LName = element.LName, - IsBlockContractingParty = _context.PersonalContractingParties.FirstOrDefault(x => x.id == element.ContractingPartyId)?.IsBlock, - }; - employers.Add(employer); - } + EmployerFullName = x.Employer.FName + " " + x.Employer.LName, + Id = x.Employer.id, + FName = x.Employer.FName, + EmployerLName = x.Employer.EmployerLName, + IsLegal = x.Employer.IsLegal, + LName = x.Employer.LName, + IsBlockContractingParty = _context.PersonalContractingParties + .Where(p => p.Employers.Any(e => e.id == x.Employer.id)) + .Select(p => p.IsBlock) + .FirstOrDefault(), + }); + //var employerlist = _context.Employers.Where(x => emps.Contains(x.id)).ToList(); + //var employers = new List(); + + //foreach (var element in employerlist) + //{ + // var employer = new EmprViewModel() + // { + // EmployerFullName = element.FName + " " + element.LName, + // Id = element.id, + // FName = element.FName, + // EmployerLName = element.EmployerLName, + // IsLegal = element.IsLegal, + // LName = element.LName, + // IsBlockContractingParty = _context.PersonalContractingParties.FirstOrDefault(x => x.id == element.ContractingPartyId)?.IsBlock, + // }; + // employers.Add(employer); + //} - return employers; + return result.ToList(); } public List GetEmployerByContracrtingPartyID(long contractingPartyId) @@ -712,5 +724,50 @@ public class EmployerRepository : RepositoryBase, IEmployerRepos IsLegal = x.IsLegal, }).ToList(); } - #endregion + #endregion + + #region Insurance + + /// + /// نام کارفرما + /// وضعیت حقیقی حقوقی + /// + /// + /// + public (string employerName, bool isLegal) InsuranceEmployerByWorkshopId(long workshopId) + { + var res = _context.WorkshopEmployers.Where(x => x.WorkshopId == workshopId) + .Include(x => x.Employer).Select(x => new EmprViewModel + { + //EmployerFullName = x.Employer.IsLegal == "حقوقی" ? + // (x.Employer.EmployerLName != "#" ? x.Employer.FName + " " + x.Employer.EmployerLName: x.Employer.LName) : x.Employer.FullName, + FName = x.Employer.FName, + LName = x.Employer.LName, + EmployerLName = x.Employer.EmployerLName, + EmployerFullName = x.Employer.FullName, + IsLegal = x.Employer.IsLegal, + }); + + + string employer = ""; + bool isLegal = res.Any(x=>x.IsLegal == "حقوقی"); + //اگر حقوقی بود نام همان کارفرما کافیست + if (isLegal) + { + var legalEmloyer = res.FirstOrDefault(x => x.IsLegal == "حقوقی"); + employer = legalEmloyer.EmployerLName != "#" ? legalEmloyer.FName + " " + legalEmloyer.EmployerLName : legalEmloyer.LName; + return (employer,true); + } + + //در غیر این صورت رشته ای از نام کارفرماها ساخته می شود + foreach (var item in res) + employer += (item.EmployerFullName + ","); + + + employer = employer.Substring(0, employer.Length - 1); + + return (employer,false); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs b/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs index df569184..c124cb24 100644 --- a/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs +++ b/CompanyManagment.EFCore/Repository/InsuranceListRepository.cs @@ -1,18 +1,23 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; +using System.Text.RegularExpressions; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.EmployeeChildrenAgg; using Company.Domain.EmployeeInsurancListDataAgg; using Company.Domain.InsuranceListAgg; using Company.Domain.InsuranceWorkshopAgg; +using Company.Domain.InsuranceYearlySalaryAgg; using Company.Domain.InsurancWorkshopInfoAgg; using CompanyManagment.App.Contracts.EmployeeInsurancListData; using CompanyManagment.App.Contracts.InsuranceList; using CompanyManagment.App.Contracts.InsuranceWorkshopInfo; using CompanyManagment.App.Contracts.PersonalContractingParty; using Microsoft.EntityFrameworkCore; +using Microsoft.Identity.Client; +using PersianTools.Core; namespace CompanyManagment.EFCore.Repository; @@ -25,7 +30,8 @@ public class InsuranceListRepository : RepositoryBase, IIns private readonly IInsuranceWorkshopInfoRepository _insuranceWorkshopInfoRepository; private readonly IAuthHelper _authHelper; private readonly IPersonalContractingPartyApp _contractingPartyApp; - public InsuranceListRepository(CompanyContext context, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceListWorkshopRepository insuranceListWorkshopRepository , IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository, IAuthHelper authHelper, IPersonalContractingPartyApp contractingPartyApp) : base(context) + private readonly IInsuranceYearlySalaryRepository _insuranceYearlySalaryRepository; + public InsuranceListRepository(CompanyContext context, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceListWorkshopRepository insuranceListWorkshopRepository , IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository, IAuthHelper authHelper, IPersonalContractingPartyApp contractingPartyApp, IInsuranceYearlySalaryRepository insuranceYearlySalaryRepository) : base(context) { _context = context; _employeeInsurancListDataRepository = employeeInsurancListDataRepository; @@ -33,6 +39,7 @@ public class InsuranceListRepository : RepositoryBase, IIns _insuranceWorkshopInfoRepository = insuranceWorkshopInfoRepository; _authHelper = authHelper; _contractingPartyApp = contractingPartyApp; + _insuranceYearlySalaryRepository = insuranceYearlySalaryRepository; } public OperationResult CreateInsuranceListworkshop(long id, List workshopIds) { @@ -60,7 +67,11 @@ public class InsuranceListRepository : RepositoryBase, IIns //} return operation; } - + /// + /// ذخیره اطلاعات کارگاه برای مشاهده در بیمه + /// + /// + /// public OperationResult CreateInsuranceListworkshopInfo(CreateInsuranceWorkshopInfo command) { var operation = new OperationResult(); @@ -92,7 +103,7 @@ public class InsuranceListRepository : RepositoryBase, IIns { var insuranceListObj = Get(command.Id); insuranceListObj.Edit(command.SumOfEmployees,command.SumOfWorkingDays,command.SumOfSalaries,command.SumOfBenefitsIncluded,command.Included,command.IncludedAndNotIncluded,command.InsuredShare, - command.EmployerShare,command.UnEmploymentInsurance,command.DifficultJobsInsuranc,command.StartDate,command.SumOfDailyWage, command.ConfirmSentlist); + command.EmployerShare,command.UnEmploymentInsurance,command.DifficultJobsInsuranc,command.StartDate,command.SumOfDailyWage,command.SumOfBaseYears,command.SumOfMarriedAllowance, command.ConfirmSentlist); var id = insuranceListObj.id; if (command.EmployeeInsurancListDataList != null && command.EmployeeInsurancListDataList.Count > 0) @@ -109,13 +120,14 @@ public class InsuranceListRepository : RepositoryBase, IIns item.BenefitsIncludedContinuous, item.BenefitsIncludedNonContinuous, item.InsuranceShare, item.StartWorkDate, - item.LeftWorkDate, item.JobId,item.IncludeStatus); + item.LeftWorkDate, item.JobId,item.IncludeStatus,item.BaseYears,item.MarriedAllowance); _employeeInsurancListDataRepository.Create(employeeInsurancListData); } else { var employeeInsurancListDataObj = _employeeInsurancListDataRepository.Get(item.EmployeeInsurancListDataId); - employeeInsurancListDataObj.Edit(item.WorkingDays,item.DailyWage,item.MonthlySalary,item.MonthlyBenefits,item .MonthlyBenefitsIncluded,item.BenefitsIncludedContinuous,item.BenefitsIncludedNonContinuous,item.InsuranceShare,item.StartWorkDate,item.LeftWorkDate,item.JobId,item.IncludeStatus); + employeeInsurancListDataObj.Edit(item.WorkingDays,item.DailyWage,item.MonthlySalary,item.MonthlyBenefits,item .MonthlyBenefitsIncluded,item.BenefitsIncludedContinuous, + item.BenefitsIncludedNonContinuous,item.InsuranceShare,item.StartWorkDate,item.LeftWorkDate,item.JobId,item.IncludeStatus,item.BaseYears,item.MarriedAllowance); } } _employeeInsurancListDataRepository.SaveChanges(); @@ -307,8 +319,141 @@ public class InsuranceListRepository : RepositoryBase, IIns return editInsuranceList; } + public List OptimizedSearch(InsuranceListSearchModel searchModel) + { + + var acountId = _authHelper.CurrentAccountId(); + var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); + + #region sample + + //var query = _context.InsuranceListSet + // .Where(x => workshopIds.Contains(x.WorkshopId)) + // .Join(_context.Workshops.Include(x => x.InsuranceWorkshopInfo), + // insurance => insurance.WorkshopId, + // workshop => workshop.id, + // (insurance, workshop) => new { insurance, workshop }) + // .Join(_context.WorkshopEmployers, + // result => result.workshop.id, + // employer => employer.WorkshopId, + // (result, employer) => new InsuranceListViewModel + // { + // Id = result.insurance.id, + // Year = result.insurance.Year, + // MonthNumber = result.insurance.Month, + // Month = result.insurance.Month.GetMonthByNumber(), + // WorkShopId = result.insurance.WorkshopId, + // WorkShopCode = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.InsuranceCode : result.workshop.InsuranceCode, + // WorkShopName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.WorkshopName : result.workshop.WorkshopFullName, + // TypeOfInsuranceSend = result.workshop.TypeOfInsuranceSend == "NormalList" ? "عادی" : + // result.workshop.TypeOfInsuranceSend == "Govermentlist" ? "کمک دولت" : + // result.workshop.TypeOfInsuranceSend == "Familylist" ? "خانوادگی" : "", + // FixedSalary = result.workshop.FixedSalary, + // StrFixedSalary = result.workshop.FixedSalary ? "دارد" : "ندارد", + // EmployerName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.EmployerName : result.workshop.WorkshopFullName, + // Branch = "", + // City = "", + // ConfirmSentlist = result.insurance.ConfirmSentlist, + // IsBlockCantracingParty = "", + // EmployerId = employer.EmployerId, + + // }); + + + #endregion + + var query = _context.InsuranceListSet + .Where(x => workshopIds.Contains(x.WorkshopId)) + .Join(_context.Workshops.Include(x => x.InsuranceWorkshopInfo), + insurance => insurance.WorkshopId, + workshop => workshop.id, + (insurance, workshop) => new { insurance, workshop }) + .Join(_context.WorkshopEmployers, + result => result.workshop.id, + employer => employer.WorkshopId, + (result, employer) => new { result.insurance, result.workshop, employer }) + .Select(result => new InsuranceListViewModel + { + Id = result.insurance.id, + Year = result.insurance.Year, + Month = result.insurance.Month, + MonthNumber = result.insurance.Month, + WorkShopId = result.insurance.WorkshopId, + WorkShopCode = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.InsuranceCode : result.workshop.InsuranceCode, + WorkShopName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.WorkshopName : result.workshop.WorkshopFullName, + TypeOfInsuranceSend = result.workshop.TypeOfInsuranceSend == "NormalList" ? "عادی" : + result.workshop.TypeOfInsuranceSend == "Govermentlist" ? "کمک دولت" : + result.workshop.TypeOfInsuranceSend == "Familylist" ? "خانوادگی" : "", + FixedSalary = result.workshop.FixedSalary, + StrFixedSalary = result.workshop.FixedSalary ? "دارد" : "ندارد", + EmployerName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.EmployerName : result.workshop.WorkshopFullName, + Branch = "", + City = "", + ConfirmSentlist = result.insurance.ConfirmSentlist, + IsBlockCantracingParty = _context.PersonalContractingParties + .Where(p => p.Employers.Any(e => e.id == result.employer.EmployerId)) + .Select(p => p.IsBlock) + .FirstOrDefault(), + EmployerId = result.employer.EmployerId + }); + + + if (!string.IsNullOrEmpty(searchModel.Year) && searchModel.Year != "0" && !string.IsNullOrEmpty(searchModel.Month) && searchModel.Month != "0") + query = query.Where(x => x.Year == searchModel.Year && x.Month == searchModel.Month).OrderByDescending(x => x.Id); + else + { + if (!string.IsNullOrEmpty(searchModel.Month) && searchModel.Month != "0") + query = query.Where(x => x.Month == searchModel.Month).OrderByDescending(x => x.WorkShopName).ThenByDescending(x => x.EmployerName).ThenByDescending(x => x.Year); + + if (!string.IsNullOrEmpty(searchModel.Year) && searchModel.Year != "0") + query = query.Where(x => x.Year == searchModel.Year).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.WorkShopName).ThenByDescending(x => x.Month); + + } + if (!string.IsNullOrEmpty(searchModel.WorkShopCode)) + query = query.Where(x => x.WorkShopCode == searchModel.WorkShopCode).OrderByDescending(x => x.Year).OrderByDescending(x => x.Month).ThenByDescending(x => x.EmployerName); + + if (!string.IsNullOrEmpty(searchModel.WorkShopName)) + query = query.Where(x => x.WorkShopName.Contains(searchModel.WorkShopName)).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.Year).OrderByDescending(x => x.Month); + + + if (searchModel.WorkshopId > 0) + { + var workshopName = query.FirstOrDefault(u => u.WorkShopId == searchModel.WorkshopId)?.WorkShopName; + + query = query.Where(x => x.WorkShopName.Contains(workshopName)).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.Year).OrderByDescending(x => x.Month); + } + + if (searchModel.EmployerId > 0) + { + var employerName = query.FirstOrDefault(u => u.EmployerId == searchModel.EmployerId)?.EmployerName; + query = query.Where(x => x.EmployerName.Contains(employerName)).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.Year).OrderByDescending(x => x.Month); + } + + if (!string.IsNullOrEmpty(searchModel.EmployerName)) + query = query.Where(x => x.EmployerName.Contains(searchModel.EmployerName)).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.Year).OrderByDescending(x => x.Month); + + + if (searchModel.FixedSalary != null) + query = query.Where(x => x.FixedSalary == searchModel.FixedSalary); + + if (!string.IsNullOrEmpty(searchModel.TypeOfInsuranceSend) && searchModel.TypeOfInsuranceSend != "0") + query = query.Where(x => x.TypeOfInsuranceSend == searchModel.TypeOfInsuranceSend); + + if (!string.IsNullOrEmpty(searchModel.City) && searchModel.City != "0") + query = query.Where(x => x.City == searchModel.City); + + if (!string.IsNullOrEmpty(searchModel.Branch)) + query = query.Where(x => x.Branch.Contains(searchModel.Branch)); + + + //var testquery = query.Where(x => x.Year == searchModel.Year).AsEnumerable(); + + return query.ToList(); + } public List Search(InsuranceListSearchModel searchModel) { + var cornometr = new Stopwatch(); + cornometr.Start(); var acountID = _authHelper.CurrentAccountId(); var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountID).Select(x => x.WorkshopId).ToList(); List list = new List(); @@ -411,7 +556,8 @@ public class InsuranceListRepository : RepositoryBase, IIns if (!string.IsNullOrEmpty(searchModel.Branch)) list = list.Where(x => x.Branch.Contains(searchModel.Branch)).ToList(); - + Console.WriteLine("Old Search Time : " + cornometr.Elapsed); + cornometr.Stop(); return list; //.OrderByDescending(x => x.Id).ToList(); } @@ -452,7 +598,11 @@ public class InsuranceListRepository : RepositoryBase, IIns return result; } - + /// + /// ایجاد لیست بیمه + /// + /// + /// public OperationResult CreateInsuranceList(CreateInsuranceList command) { OperationResult result = new OperationResult(); @@ -467,7 +617,7 @@ public class InsuranceListRepository : RepositoryBase, IIns command.InsuredShare, command.EmployerShare, command.UnEmploymentInsurance, command.DifficultJobsInsuranc, command.StartDate, - command.EndDate, command.SumOfDailyWage); + command.EndDate, command.SumOfDailyWage,command.SumOfBaseYears,command.SumOfMarriedAllowance); Create(insuranceListObj); SaveChanges(); var id = insuranceListObj.id; @@ -483,7 +633,7 @@ public class InsuranceListRepository : RepositoryBase, IIns item.BenefitsIncludedContinuous, item.BenefitsIncludedNonContinuous, item.InsuranceShare, item.StartWorkDate, - item.LeftWorkDate, item.JobId,item.IncludeStatus); + item.LeftWorkDate, item.JobId,item.IncludeStatus,item.BaseYears,item.MarriedAllowance); _employeeInsurancListDataRepository.Create(employeeInsurancListData); }_employeeInsurancListDataRepository.SaveChanges(); @@ -523,7 +673,7 @@ public class InsuranceListRepository : RepositoryBase, IIns } return result; } - + //ویرایش public EditInsuranceList GetDetailsForEdit(long id) { var editInsuranceList = new EditInsuranceList(); @@ -838,7 +988,7 @@ public class InsuranceListRepository : RepositoryBase, IIns { var insuranceListObj = Get(id); insuranceListObj.Edit(insuranceListObj.SumOfEmployees, insuranceListObj.SumOfWorkingDays, insuranceListObj.SumOfSalaries, insuranceListObj.SumOfBenefitsIncluded, insuranceListObj.Included, insuranceListObj.IncludedAndNotIncluded, insuranceListObj.InsuredShare, - insuranceListObj.EmployerShare, insuranceListObj.UnEmploymentInsurance, insuranceListObj.DifficultJobsInsuranc, insuranceListObj.StartDate, insuranceListObj.SumOfDailyWage,true); + insuranceListObj.EmployerShare, insuranceListObj.UnEmploymentInsurance, insuranceListObj.DifficultJobsInsuranc, insuranceListObj.StartDate, insuranceListObj.SumOfDailyWage,insuranceListObj.SumOfBaseYears,insuranceListObj.SumOfMarriedAllowance,true); SaveChanges(); @@ -1032,4 +1182,54 @@ public class InsuranceListRepository : RepositoryBase, IIns #endregion + + public (int insuranceHistoryYearsCount, double baseYear) GetEmployeeInsuranceBaseYear(long employeeId, long workshopId, int countWorkingDay,DateTime listStartDate, DateTime listEndDate, DateTime startWorkDate, DateTime leftDate, bool hasLeft) + { + + + var lefts = _context.LeftWorkInsuranceList + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x=> new + { + startWork = x.StartWorkDate, + leftWork = x.LeftWorkDate == null ? listEndDate : x.LeftWorkDate.Value, + }).OrderBy(x=>x.startWork).ToList(); + int countDay = 0; + foreach (var left in lefts) + { + var start = left.startWork.ToPersianDateTime(); + var end = left.leftWork.ToPersianDateTime(); + var count = (int)(end - start).TotalDays +1; + countDay += count; + } + + if (countDay < 365) + return (0, 0); + + //تعداد سال های سابقه بیمه + int yearsCount = countDay / 365; + + //بدست آوردن مزد سنوات بر اساس سابقه به سال + var baseYear = _insuranceYearlySalaryRepository.GetBaseYearByDate(listStartDate, yearsCount); + if(baseYear == 0) + return (0, 0); + + + //اگر ترک کار کرده بود + //یا + //شروع به کارش بعد از یکم ماه بود + if (hasLeft || listStartDate < startWorkDate) + { + //تعداد روزهای ماه در این لیست بیمه + var monthDayCont = (int)(listEndDate - listStartDate).TotalDays + 1; + //پایه سنوات به ازای هر روز + var baseyarPerDay = baseYear / monthDayCont; + // پایه سنوات یک روز ضرب در روزهای کارکرد در ماه + baseYear = baseyarPerDay * countWorkingDay; + + + + } + + return (yearsCount, baseYear); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs b/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs index 522cc889..992ede00 100644 --- a/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs +++ b/CompanyManagment.EFCore/Repository/LeftWorkInsuranceRepository.cs @@ -10,6 +10,7 @@ using Company.Domain.PersonnelCodeAgg; using CompanyManagment.App.Contracts.InsuranceList; using CompanyManagment.App.Contracts.LeftWorkInsurance; using CompanyManagment.App.Contracts.PersonnleCode; +using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; @@ -691,4 +692,67 @@ public class LeftWorkInsuranceRepository : RepositoryBase GetEmployeeInsuranceLeftWorksAndInformation(long workshopId, DateTime startDate, DateTime endDate) + { + if (workshopId == 0) + return []; + var query = _context.LeftWorkInsuranceList.Include(x => x.Employee) + .Where(x => x.WorkshopId == workshopId) + .Where(x => + ((x.LeftWorkDate != null && x.LeftWorkDate != DateTime.MinValue) && + ((DateTime)x.LeftWorkDate >= startDate && + (DateTime)x.LeftWorkDate <= endDate)) || + ((x.LeftWorkDate != null && x.LeftWorkDate != DateTime.MinValue) && + (DateTime)x.LeftWorkDate >= endDate) || + (x.LeftWorkDate == null || x.LeftWorkDate == DateTime.MinValue)) + .Where(x => x.StartWorkDate <= endDate) + .Join(_context.Jobs, + left => left.JobId, + job => job.id, + (left, job) => new { left, job }) + .GroupJoin(_context.InsuranceEmployeeInformationSet.AsSplitQuery(), + result => result.left.EmployeeId, + employeeInfo => employeeInfo.EmployeeId, + (result, employeeInfo) => new + { + result.left, + result.job, + employeeInfo + }) + .SelectMany(x => x.employeeInfo.DefaultIfEmpty(), (x, employeeInfo) => new { x, employeeInfo }) + .Select(result => new EmployeeDetailsForInsuranceListViewModel + { + StartWorkDateGr = result.x.left.StartWorkDate, + LeftWorkDateGr = result.x.left.LeftWorkDate, + IncludeStatus = result.x.left.IncludeStatus, + JobId = result.x.left.JobId, + JobName = result.x.job != null ? result.x.job.JobName : string.Empty, + JobCode = result.x.job != null ? result.x.job.JobCode : string.Empty, + InsuranceEmployeeInformationId = result.employeeInfo != null ? result.employeeInfo.id : 0, + EmployeeId = result.x.left.EmployeeId, + + //اطلاعات هویتی + FName = result.employeeInfo != null ? result.employeeInfo.FName : result.x.left.Employee.FName, + LName = result.employeeInfo != null ? result.employeeInfo.LName : result.x.left.Employee.LName, + FatherName = result.employeeInfo != null ? result.employeeInfo.FatherName : result.x.left.Employee.FatherName, + DateOfBirthGr = result.employeeInfo != null ? result.employeeInfo.DateOfBirth : result.x.left.Employee.DateOfBirth, + DateOfIssueGr = result.employeeInfo != null ? result.employeeInfo.DateOfIssue : result.x.left.Employee.DateOfIssue, + PlaceOfIssue = result.employeeInfo != null ? result.employeeInfo.PlaceOfIssue : result.x.left.Employee.PlaceOfIssue, + IdNumber = result.employeeInfo != null ? result.employeeInfo.IdNumber : result.x.left.Employee.IdNumber, + Gender = result.employeeInfo != null ? result.employeeInfo.Gender : result.x.left.Employee.Gender, + NationalCode = result.x.left.Employee.NationalCode, + Nationality = result.x.left.Employee.Nationality, + InsuranceCode = result.x.left.Employee.InsuranceCode, + MaritalStatus = result.x.left.Employee.MaritalStatus, + IsMaritalStatusSet = !string.IsNullOrWhiteSpace(result.x.left.Employee.MaritalStatus) + }).ToList(); + + + return query; + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs b/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs index 512c30e4..8dac98a2 100644 --- a/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs +++ b/CompanyManagment.EFCore/Repository/PersonalContractingPartyRepository.cs @@ -445,6 +445,18 @@ public class PersonalContractingPartyRepository : RepositoryBase x.WorkshopId == workshopId) + .Include(x => x.Employer) + .ThenInclude(x => x.ContractingParty) + .Select(c => c.Employer.ContractingParty); + return e.Any(x => x.IsBlock == "true"); + } + #endregion + #region ForClients public ContractingPartyAndStatmentIdViewModel GetContractingpartyIdByAccountId(long accountId) diff --git a/CompanyManagment.EFCore/Repository/WorkshopRepository.cs b/CompanyManagment.EFCore/Repository/WorkshopRepository.cs index bdf6910c..7274d640 100644 --- a/CompanyManagment.EFCore/Repository/WorkshopRepository.cs +++ b/CompanyManagment.EFCore/Repository/WorkshopRepository.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Linq; using _0_Framework.Application; @@ -106,17 +107,14 @@ public class WorkshopRepository : RepositoryBase GetWorkshopAccount() { - var AcountID = _authHelper.CurrentAccountId(); - //var workshopAcounts = _context.WorkshopAccounts.Where(x => x.AccountId == AcountID) - // .Select(x => x.WorkshopId).ToList(); - var workshopAcountsList = _context.WorkshopAccounts.Where(x => x.AccountId == AcountID); - //var res = (e => contractData.Contains(e.Id)) - var workshopAcounts = workshopAcountsList.Select(x => x.WorkshopId).ToList(); + var cornometr = new Stopwatch(); + cornometr.Start(); + var acountId = _authHelper.CurrentAccountId(); + var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); + - var work = _context.Workshops - .Include(x => x.WorkshopEmployers).ThenInclude(x=>x.Employer).ToList(); - - var result =work + var result = _context.Workshops.Where(x => workshopIds.Contains(x.id) && x.IsActiveString == "true") + .Include(x => x.WorkshopEmployers).ThenInclude(x=>x.Employer) .Select(x => new WorkshopViewModel { Id = x.id, @@ -146,8 +144,12 @@ public class WorkshopRepository : RepositoryBase new EmployerViewModel() { Id = y.EmployerId, FullName = y.Employer.FullName }).ToList() - }).Where(e => workshopAcounts.Contains(e.Id)).ToList(); - return result.Where(x => x.IsActiveString == "true").ToList(); + }); + + + Console.WriteLine("old list Time : " + cornometr.Elapsed); + cornometr.Stop(); + return result.ToList(); } public EditWorkshop GetDetails(long id) @@ -1066,6 +1068,7 @@ public class WorkshopRepository : RepositoryBase GetWorkshopByWorkshopIds(List workshopIds) @@ -1513,4 +1516,30 @@ public class WorkshopRepository : RepositoryBase GetWorkshopSelectListInsuransce() + { + var cornometr = new Stopwatch(); + cornometr.Start(); + var acountId = _authHelper.CurrentAccountId(); + var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); + + var res = _context.Workshops + .Where(x=> workshopIds.Contains(x.id) && !string.IsNullOrWhiteSpace(x.TypeOfInsuranceSend) && x.TypeOfInsuranceSend != "false" && x.IsActiveString == "true") + .Select(x=> new WorkshopViewModel() + { + Id = x.id, + WorkshopFullName = x.WorkshopFullName, + }); + + + Console.WriteLine("Optimized list Time : " + cornometr.Elapsed); + cornometr.Stop(); + return res.ToList(); + + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs index 04cd0a1d..55877021 100644 --- a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs +++ b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs @@ -3472,5 +3472,27 @@ public class YearlySalaryRepository : RepositoryBase, IYearl #endregion + + + #region Insurance + + public InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year) + { + var query = _context.YearlySalaries + .Where(x => x.StartDate <= startDate && x.EndDate >= endDate && x.Year == year) + .Include(x => x.YearlySalaryItemsList) + .Select(x=> new InsuranceYearlySalaryModel + { + DayliWage = x.YearlySalaryItemsList.FirstOrDefault(item=>item.ItemName == "مزد روزانه").ItemValue, + ConsumableItems = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "کمک هزینه اقلام").ItemValue, + HousingAllowance = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "کمک هزینه مسکن").ItemValue, + MarriedAllowance = x.YearlySalaryItemsList.Any(item => item.ItemName == "حق تاهل")? x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "حق تاهل").ItemValue : 0, + + }).FirstOrDefault(); + + return query; + } + + #endregion } diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Create.cshtml index 9c4e5dcf..c0b1f9f6 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Create.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Create.cshtml @@ -2,7 +2,7 @@ @Html.AntiForgeryToken() @{ - - } @if (Model.EmployeeDetailsForInsuranceList != null) { - var index = 1; + var index = 1; - if (Model.EmployeeDetailsForInsuranceList.Any(x => !x.IsMaritalStatusSet)) - { - - - + $('#maritalStatusErr').val(true); + +
+ - - - - - - - - + + + + + + + - - +

+ ابتدا وضعیت تاهل پرسنل در لیست زیر را مشخص نمایید +

+ + + - - - - + + + + - + - + - - @foreach (var item in Model.EmployeeDetailsForInsuranceList) - { - if (!item.IsMaritalStatusSet) - { - + + @foreach (var item in Model.EmployeeDetailsForInsuranceList) + { + if (!item.IsMaritalStatusSet) + { + - - - - - - index++; - } - } + + + + + + index++; + } + } - -
+
-

- ابتدا وضعیت تاهل پرسنل در لیست زیر را مشخص نمایید -

-
کدملی نام خانوادگی نام # کدملی نام خانوادگی نام #
@item.NationalCode@item.LName@item.FName@index
@item.NationalCode@item.LName@item.FName@index
- } - else - { - - } + $('#maritalStatusErr').val(false); + + } -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ +
+
تاریخ ترک کار تاریخ آغاز بکار شغل حق بیمه سهم بیمه شده حقوق و مزایای ماهیانه مشمول و غیر مشمول حقوق و مزایای ماهیانه مشمول مزایای ماهیانه مشمول حقوق ماهیانه مشمول دستمزد روزانه روزهای کارکرد ش شناسنامه تاریخ تولد محل صدور کدملی نام پدر جنسیت نام خانوادگی نام شماره بیمه #
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @foreach (var item in Model.EmployeeDetailsForInsuranceList) - { - if (item.LeftWorkDate == item.StartMonthCurrent) - { - - + - - - - - - - - - - - - - - - - - - - - - - } - else - { - - + + + + + + + + + + + + + + + + + + + + + + + + } + else + { + + - - - - - - - - - - - - - - - - - - - - - - } - index = index + 1; - } + + + + + + + + + + + + + + + + + + + + + + + + + } - -
تاریخ ترک کار تاریخ آغاز بکار شغل حق بیمه سهم بیمه شده حقوق و مزایای ماهیانه مشمول و غیر مشمول حقوق و مزایای ماهیانه مشمول مزایای ماهیانه مشمول حقوق ماهیانه مشمول حق تاهل پایه سنوات روزانه دستمزد روزانه روزهای کارکرد ش شناسنامه تاریخ تولد محل صدور کدملی نام پدر جنسیت نام خانوادگی نام شماره بیمه #
- - @* + @foreach (var item in Model.EmployeeDetailsForInsuranceList) + { + if (item.LeftWorkDate == item.StartMonthCurrent) + { +
+ + @* *@ - @item.LeftWorkDate@item.StartWorkDate@item.JobName00 0 0 000@item.IdNumber@item.DateOfBirth@item.PlaceOfIssue@item.NationalCode@item.FatherName@item.Gender@item.LName@item.FName@item.InsuranceCode@index
- - @* + @item.LeftWorkDate@item.StartWorkDate@item.JobName00 0 0 00000@item.IdNumber@item.DateOfBirth@item.PlaceOfIssue@item.NationalCode@item.FatherName@item.Gender@item.LName@item.FName@item.InsuranceCode@index
+ + @* *@ - @item.LeftWorkDate@item.StartWorkDate@item.JobName@item.InsuranceShare.ToMoney()@item.IncludedAndNotIncluded.ToMoney() @item.BenefitsIncludedContinuous.ToMoney() @item.MonthlyBenefits.ToMoney() @(item.HasConfilictJobs ? "" : item.MonthlySalary.ToMoney())@(item.HasConfilictJobs ? "" : item.DailyWageStr)@item.WorkingDays@item.IdNumber@item.DateOfBirth@item.PlaceOfIssue@item.NationalCode@item.FatherName@item.Gender@item.LName@item.FName@item.InsuranceCode@index
@item.LeftWorkDate@item.StartWorkDate@item.JobName@item.InsuranceShare.ToMoney()@item.IncludedAndNotIncluded.ToMoney() @item.BenefitsIncludedContinuous.ToMoney() @item.MonthlyBenefits.ToMoney() @(item.HasConfilictJobs ? "" : item.MonthlySalary.ToMoney())@item.MarriedAllowance.ToMoney()@item.BaseYears.ToMoney()@(item.HasConfilictJobs ? "" : item.DailyWageStr)@item.WorkingDays@item.IdNumber@item.DateOfBirth@item.PlaceOfIssue@item.NationalCode@item.FatherName@item.Gender@item.LName@item.FName@item.InsuranceCode@index
+ index = index + 1; + } + + + } @@ -226,14 +234,14 @@ $(document).ready(function(){ - + $(".ring").remove(); - $('#DSKWOR-datatable').dataTable({ - "lengthMenu": [[25, 10, 50, 100, -1], [25, 10, 50, 100, "All"]], - "pageLength": -1, // set the default page length to "All" - "ordering": false - }); + $('#DSKWOR-datatable').dataTable({ + "lengthMenu": [[25, 10, 50, 100, -1], [25, 10, 50, 100, "All"]], + "pageLength": -1, // set the default page length to "All" + "ordering": false + }); if($('#maritalStatusErr').val() == "true") { @@ -268,79 +276,79 @@ }); }); - @if (Model != null && Model.IsBlock) + @if (Model != null && Model.IsBlock) { - - $("#resultExistPersonel").show(); - $("#resultExistPersonel").html(' این کارگاه بلاک شده است '); + + $("#resultExistPersonel").show(); + $("#resultExistPersonel").html(' این کارگاه بلاک شده است '); } - else if (Model != null && Model.IsExist && Model.IsBlock != true) + else if (Model != null && Model.IsExist && Model.IsBlock != true) { - - $("#resultExistPersonel").show(); - $("#Year").addClass("errored"); - $("#ddlMonth").addClass("errored"); - $("#resultExistPersonel").html('برای این کارگاه در ماه و سال انتخاب شده لیست بیمه تنظیم گردیده است، در صورت نیاز به ثبت این لیست،لیست قبلی را حذف نمایید.'); + + $("#resultExistPersonel").show(); + $("#Year").addClass("errored"); + $("#ddlMonth").addClass("errored"); + $("#resultExistPersonel").html('برای این کارگاه در ماه و سال انتخاب شده لیست بیمه تنظیم گردیده است، در صورت نیاز به ثبت این لیست،لیست قبلی را حذف نمایید.'); } - else + else { - - $("#resultExistPersonel").hide(); - $("#Year").removeClass("errored"); - $("#ddlMonth").removeClass("errored"); - $("#resultExistPersonel").html(''); - document.getElementById("btnPrint").onclick = function () { - printElement(document.getElementById("DSKWOR-datatable")); - }; + + $("#resultExistPersonel").hide(); + $("#Year").removeClass("errored"); + $("#ddlMonth").removeClass("errored"); + $("#resultExistPersonel").html(''); + document.getElementById("btnPrint").onclick = function () { + printElement(document.getElementById("DSKWOR-datatable")); + }; - function printElement(elem) { - var domClone = elem.cloneNode(true); + function printElement(elem) { + var domClone = elem.cloneNode(true); - // create a new stylesheet to hide everything except the modal - var style = document.createElement("style"); - style.innerHTML = ` - @@media print { - body * { - visibility: hidden; - } - #printSection, #printSection * { - visibility: visible; - } - #printSection { - position: absolute; - left: 0; - top: 0; - } + // create a new stylesheet to hide everything except the modal + var style = document.createElement("style"); + style.innerHTML = ` + @@media print { + body * { + visibility: hidden; + } + #printSection, #printSection * { + visibility: visible; + } + #printSection { + position: absolute; + left: 0; + top: 0; + } + } + `; + document.head.appendChild(style); + + // create a new section to hold the modal for printing + var $printSection = document.getElementById("printSection"); + if (!$printSection) { + $printSection = document.createElement("div"); + $printSection.id = "printSection"; + document.body.appendChild($printSection); } - `; - document.head.appendChild(style); - // create a new section to hold the modal for printing - var $printSection = document.getElementById("printSection"); - if (!$printSection) { - $printSection = document.createElement("div"); - $printSection.id = "printSection"; - document.body.appendChild($printSection); + $printSection.innerHTML = ""; + $printSection.appendChild(domClone); + + window.print(); + + // remove the new stylesheet after printing + document.head.removeChild(style); } - $printSection.innerHTML = ""; - $printSection.appendChild(domClone); - - window.print(); - - // remove the new stylesheet after printing - document.head.removeChild(style); - } - } var jobName = $('#JobId option:selected').text(); - // console.log($("#EmployeeId").val(),jobName); + //شروع محاسبه کارگاه setDataTable($("#EmployeeId").val(),jobName); //$(function () { diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml index aac56660..3f72bad7 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml @@ -165,7 +165,7 @@