diff --git a/0_Framework/Domain/CustomizeCheckoutShared/Base/BaseCustomizeEntity.cs b/0_Framework/Domain/CustomizeCheckoutShared/Base/BaseCustomizeEntity.cs index f1490e86..2b563221 100644 --- a/0_Framework/Domain/CustomizeCheckoutShared/Base/BaseCustomizeEntity.cs +++ b/0_Framework/Domain/CustomizeCheckoutShared/Base/BaseCustomizeEntity.cs @@ -13,7 +13,7 @@ public class BaseCustomizeEntity : EntityBase public BaseCustomizeEntity(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay, NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit, - FridayWork fridayWork, HolidayWork holidayWork, BreakTime breakTime) + FridayWork fridayWork, HolidayWork holidayWork, BreakTime breakTime,int leavePermittedDays) { FridayPay = fridayPay; @@ -32,6 +32,7 @@ public class BaseCustomizeEntity : EntityBase FridayWork = fridayWork; HolidayWork = holidayWork; BreakTime = breakTime; + LeavePermittedDays = leavePermittedDays; } /// @@ -109,6 +110,11 @@ public class BaseCustomizeEntity : EntityBase /// public HolidayWork HolidayWork { get; protected set; } + /// + /// تعداد روز های مجاز برای مرخصی + /// + public int LeavePermittedDays { get; protected set; } - public BreakTime BreakTime { get; protected set; } + + public BreakTime BreakTime { get; protected set; } } \ No newline at end of file diff --git a/0_Framework/Domain/CustomizeCheckoutShared/Enums/EarlyExitType.cs b/0_Framework/Domain/CustomizeCheckoutShared/Enums/EarlyExitType.cs index 3393e4db..2f6dbf25 100644 --- a/0_Framework/Domain/CustomizeCheckoutShared/Enums/EarlyExitType.cs +++ b/0_Framework/Domain/CustomizeCheckoutShared/Enums/EarlyExitType.cs @@ -2,18 +2,18 @@ public enum EarlyExitType { - /// - /// محاسبه نمیشود - /// - None, + /// + /// محاسبه نمیشود + /// + None, - /// - /// به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از حقوق پرسنل کسر میگردد - /// - Default, + /// + /// به ازای هر دقیقه تعجیل به نسبت حقوق دریافتی از حقوق پرسنل کسر میگردد + /// + Default, - /// - /// در صورت تعجیل به ازای هر دقیقه مبلغی از مزد روزانه کسر میشود - /// - MoneyPerMinute + /// + /// در صورت تعجیل به ازای هر دقیقه مبلغی از مزد روزانه کسر میشود + /// + MoneyPerMinute } \ No newline at end of file diff --git a/0_Framework/Domain/CustomizeCheckoutShared/Enums/FridayPayType.cs b/0_Framework/Domain/CustomizeCheckoutShared/Enums/FridayPayType.cs index 6fc52193..35d64b2e 100644 --- a/0_Framework/Domain/CustomizeCheckoutShared/Enums/FridayPayType.cs +++ b/0_Framework/Domain/CustomizeCheckoutShared/Enums/FridayPayType.cs @@ -6,10 +6,10 @@ public enum FridayPayType ///محاسبه نمیشود /// None, - /// - /// اضافه کار محاسبه میشود - /// - ExtraWorking, + ///// + ///// اضافه کار محاسبه میشود + ///// + //ExtraWorking, /// /// به صورت درصدی از مزد روزانه به ازای هر ساعت کار در جمعه /// diff --git a/0_Framework/Domain/CustomizeCheckoutShared/Enums/LateToWorkType.cs b/0_Framework/Domain/CustomizeCheckoutShared/Enums/LateToWorkType.cs index 15073df7..37f1f026 100644 --- a/0_Framework/Domain/CustomizeCheckoutShared/Enums/LateToWorkType.cs +++ b/0_Framework/Domain/CustomizeCheckoutShared/Enums/LateToWorkType.cs @@ -2,18 +2,18 @@ public enum LateToWorkType { - /// - /// محاسبه نمیشود - /// - None, + /// + /// محاسبه نمیشود + /// + None, - /// - /// به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از حقوق پرسنل کسر میگردد - /// - Default, + /// + /// به ازای هر دقیقه تاخیر به نسبت حقوق دریافتی از حقوق پرسنل کسر میگردد + /// + Default, - /// - /// در صورت تاخیر به ازای هر دقیقه مبلغی از مزد روزانه کسر میشود - /// - MoneyPerMinute + /// + /// در صورت تاخیر به ازای هر دقیقه مبلغی از مزد روزانه کسر میشود + /// + MoneyPerMinute } \ No newline at end of file diff --git a/0_Framework/Domain/CustomizeCheckoutShared/Enums/WorkshopShiftStatus.cs b/0_Framework/Domain/CustomizeCheckoutShared/Enums/WorkshopShiftStatus.cs index a281acc9..6d4e988a 100644 --- a/0_Framework/Domain/CustomizeCheckoutShared/Enums/WorkshopShiftStatus.cs +++ b/0_Framework/Domain/CustomizeCheckoutShared/Enums/WorkshopShiftStatus.cs @@ -10,5 +10,10 @@ public enum WorkshopShiftStatus /// /// نامنظم /// - Irregular + Irregular, + + /// + /// چرخشی + /// + Rotating } \ No newline at end of file diff --git a/0_Framework/Domain/CustomizeCheckoutShared/ValueObjects/CustomizeRotatingShift.cs b/0_Framework/Domain/CustomizeCheckoutShared/ValueObjects/CustomizeRotatingShift.cs new file mode 100644 index 00000000..f6e7ee6e --- /dev/null +++ b/0_Framework/Domain/CustomizeCheckoutShared/ValueObjects/CustomizeRotatingShift.cs @@ -0,0 +1,24 @@ +using System; +using Microsoft.AspNetCore.Authentication; + +namespace _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; + +public record CustomizeRotatingShift +{ + public CustomizeRotatingShift(TimeOnly startTime,TimeOnly endTime) + { + StartTime = startTime; + EndTime = endTime; + } + public TimeOnly StartTime { get; set; } + public TimeOnly EndTime { get; set; } + + public virtual bool Equals(CustomizeRotatingShift other) + { + if (StartTime==other.StartTime && EndTime == other.EndTime) + { + return true; + } + return false; + } +} \ No newline at end of file diff --git a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettings.cs b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettings.cs index df00c49b..26f5063e 100644 --- a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettings.cs +++ b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettings.cs @@ -10,203 +10,214 @@ using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities; using Company.Domain.EmployeeAgg; using Company.Domain.WorkshopAgg; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel; +using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Mvc; namespace Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities; public class CustomizeWorkshopEmployeeSettings : BaseCustomizeEntity { - private CustomizeWorkshopEmployeeSettings() - { + private CustomizeWorkshopEmployeeSettings() + { - } - public CustomizeWorkshopEmployeeSettings(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, - BonusesPay bonusesPay, NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, - FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, - FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit, long employeeId, - long workshopId, double salary, long customizeWorkshopGroupSettingId, - ICollection customizeWorkshopEmployeeSettingsShifts, - FridayWork fridayWork, - HolidayWork holidayWork, IrregularShift irregularShift, WorkshopShiftStatus workshopShiftStatus, BreakTime breakTime) : base(fridayPay, overTimePay, - baseYearsPay, bonusesPay, nightWorkPay, - marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction, lateToWork, - earlyExit, fridayWork, holidayWork, breakTime) - { - CustomizeWorkshopEmployeeSettingsShifts = EmployeeSettingsShiftsConvertor(customizeWorkshopEmployeeSettingsShifts); + } + public CustomizeWorkshopEmployeeSettings(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, + BonusesPay bonusesPay, NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, + FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, + FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit, long employeeId, + long workshopId, double salary, long customizeWorkshopGroupSettingId, + ICollection customizeWorkshopEmployeeSettingsShifts, + FridayWork fridayWork, + HolidayWork holidayWork, IrregularShift irregularShift, WorkshopShiftStatus workshopShiftStatus, BreakTime breakTime, int leavePermittedDays, ICollection rotatingShifts) : + base(fridayPay, overTimePay, + baseYearsPay, bonusesPay, nightWorkPay, + marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction, lateToWork, + earlyExit, fridayWork, holidayWork, breakTime, leavePermittedDays) + { + CustomizeWorkshopGroupSettingId = customizeWorkshopGroupSettingId; + IsSettingChanged = false; + IsShiftChanged = false; + EmployeeId = employeeId; + WorkshopId = workshopId; + Salary = salary; + WorkshopShiftStatus = workshopShiftStatus; - CustomizeWorkshopGroupSettingId = customizeWorkshopGroupSettingId; + CustomizeWorkshopEmployeeSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? EmployeeSettingsShiftsConvertor(customizeWorkshopEmployeeSettingsShifts) : []; - IsSettingChanged = false; - IsShiftChanged = false; - EmployeeId = employeeId; - WorkshopId = workshopId; - Salary = salary; - WorkshopShiftStatus = workshopShiftStatus; - IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? - new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) - : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); - } + CustomizeRotatingShifts = workshopShiftStatus == WorkshopShiftStatus.Rotating ? rotatingShifts : []; - public IrregularShift IrregularShift { get; set; } - public WorkshopShiftStatus WorkshopShiftStatus { get; private set; } - public long EmployeeId { get; private set; } - public long WorkshopId { get; private set; } - public double Salary { get; private set; } - public bool IsShiftChanged { get; private set; } - public bool IsSettingChanged { get; private set; } - public long CustomizeWorkshopGroupSettingId { get; set; } + IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? + new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) + : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); + } - public ICollection CustomizeWorkshopEmployeeSettingsShifts { get; set; } - public CustomizeWorkshopGroupSettings CustomizeWorkshopGroupSettings { get; set; } + public IrregularShift IrregularShift { get; set; } + public WorkshopShiftStatus WorkshopShiftStatus { get; private set; } + public long EmployeeId { get; private set; } + public long WorkshopId { get; private set; } + public double Salary { get; private set; } + public bool IsShiftChanged { get; private set; } + public bool IsSettingChanged { get; private set; } + public long CustomizeWorkshopGroupSettingId { get; set; } + public ICollection CustomizeRotatingShifts { get; set; } + public ICollection CustomizeWorkshopEmployeeSettingsShifts { get; set; } + public CustomizeWorkshopGroupSettings CustomizeWorkshopGroupSettings { get; set; } - /// - /// تغییر مقادیر تنظیمات پرسنل - /// - /// شیفت های کاری پرسنل - /// حقوق ماهیانه اختصاص داده شده - /// جمعه کاری - /// اضافه کاری - /// سنوات - /// عیدی - /// شب کاری - /// حق تاهل - /// نوبت کاری - /// حق اولاد - /// مزد مرخصی - /// حق بیمه - /// جریمه غیبت - /// تاخیر در ورود - /// تعجیل درخروج - /// آیا در روز های جمعه موظف به کار است - /// آیا در تعطیلات رسمی موظف به کار است - /// نوع شیفت کاری - /// آیا شیفت منظم است یا نا منظم - /// - public void EditEmployees(double salary, FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay, - NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, - FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, - FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit, - FridayWork fridayWork, HolidayWork holidayWork, IrregularShift irregularShift, - WorkshopShiftStatus workshopShiftStatus, bool isSettingChange) - { - SetValueObjects(fridayPay, overTimePay, baseYearsPay, bonusesPay - , nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction, - lateToWork, earlyExit); + /// + /// تغییر مقادیر تنظیمات پرسنل + /// + /// شیفت های کاری پرسنل + /// حقوق ماهیانه اختصاص داده شده + /// جمعه کاری + /// اضافه کاری + /// سنوات + /// عیدی + /// شب کاری + /// حق تاهل + /// نوبت کاری + /// حق اولاد + /// مزد مرخصی + /// حق بیمه + /// جریمه غیبت + /// تاخیر در ورود + /// تعجیل درخروج + /// آیا در روز های جمعه موظف به کار است + /// آیا در تعطیلات رسمی موظف به کار است + /// نوع شیفت کاری + /// آیا شیفت منظم است یا نا منظم + /// + public void EditEmployees(double salary, FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay, + NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, + FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, + FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit, + FridayWork fridayWork, HolidayWork holidayWork, IrregularShift irregularShift, + WorkshopShiftStatus workshopShiftStatus, bool isSettingChange, int leavePermittedDays) + { + SetValueObjects(fridayPay, overTimePay, baseYearsPay, bonusesPay + , nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction, + lateToWork, earlyExit); - Salary = salary; - IsSettingChanged = isSettingChange; - FridayWork = fridayWork; - HolidayWork = holidayWork; - IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? - new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) - : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); - WorkshopShiftStatus = workshopShiftStatus; - } + Salary = salary; + IsSettingChanged = isSettingChange; + FridayWork = fridayWork; + HolidayWork = holidayWork; + IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? + new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) + : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); + WorkshopShiftStatus = workshopShiftStatus; + LeavePermittedDays = leavePermittedDays; + } - public void SimpleEdit( - ICollection employeeSettingsShift, - IrregularShift irregularShift, - WorkshopShiftStatus workshopShiftStatus, BreakTime breakTime, bool isShiftChange,HolidayWork holidayWork,FridayWork fridayWork) - { - CustomizeWorkshopEmployeeSettingsShifts = EmployeeSettingsShiftsConvertor(employeeSettingsShift); - BreakTime = new BreakTime(breakTime.HasBreakTimeValue, breakTime.BreakTimeValue); - IsShiftChanged = isShiftChange; - WorkshopShiftStatus = workshopShiftStatus; - HolidayWork = holidayWork; - FridayWork = fridayWork; + public void SimpleEdit( + ICollection employeeSettingsShift, + IrregularShift irregularShift, + WorkshopShiftStatus workshopShiftStatus, BreakTime breakTime, bool isShiftChange, FridayWork fridayWork, HolidayWork holidayWork, + ICollection rotatingShifts) + { + BreakTime = new BreakTime(breakTime.HasBreakTimeValue, breakTime.BreakTimeValue); + IsShiftChanged = isShiftChange; + WorkshopShiftStatus = workshopShiftStatus; - IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? - new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) - : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); - } + CustomizeWorkshopEmployeeSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? EmployeeSettingsShiftsConvertor(employeeSettingsShift) : []; + + IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? + new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) + : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); + + CustomizeRotatingShifts = workshopShiftStatus == WorkshopShiftStatus.Rotating ? rotatingShifts : []; + + FridayWork = fridayWork; + HolidayWork = holidayWork; + } - private List EmployeeSettingsShiftsConvertor( - ICollection employeeSettingsShift) - { - var customizeWorkshopSettingShiftsList = - employeeSettingsShift.ToList(); // Handle the special case where there's only one shift - if (customizeWorkshopSettingShiftsList.Count == 1) - { - var singleShift = customizeWorkshopSettingShiftsList.First(); - return new List - { - new CustomizeWorkshopEmployeeSettingsShift(singleShift.StartTime, singleShift.EndTime, - singleShift.Placement, TimeOnly.MaxValue) - }; - } + private List EmployeeSettingsShiftsConvertor( + ICollection employeeSettingsShift) + { + var customizeWorkshopSettingShiftsList = + employeeSettingsShift.ToList(); + // Handle the special case where there's only one shift + if (customizeWorkshopSettingShiftsList.Count == 1) + { + var singleShift = customizeWorkshopSettingShiftsList.First(); + return new List + { + new CustomizeWorkshopEmployeeSettingsShift(singleShift.StartTime, singleShift.EndTime, + singleShift.Placement, TimeOnly.MaxValue) + }; + } - return customizeWorkshopSettingShiftsList.Select((x, index) => - { + return customizeWorkshopSettingShiftsList.Select((x, index) => + { - if (index == 0) - { - return new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement); + if (index == 0) + { + return new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement); - } + } - // Ensure no more than three shifts - if (index >= 3) - { - throw new InvalidDataException("شیفت های پرسنل نمیتواند بیشتر از سه تا باشد"); - } + // Ensure no more than three shifts + if (index >= 3) + { + throw new InvalidDataException("شیفت های پرسنل نمیتواند بیشتر از سه تا باشد"); + } - var previousShift = customizeWorkshopSettingShiftsList[index - 1]; - var nextStart = new DateTime(DateOnly.MinValue, x.StartTime); - var previousEnd = new DateTime(DateOnly.MinValue, previousShift.EndTime); - if (nextStart < previousEnd) - { - nextStart = nextStart.AddDays(1); - } + var previousShift = customizeWorkshopSettingShiftsList[index - 1]; + var nextStart = new DateTime(DateOnly.MinValue, x.StartTime); + var previousEnd = new DateTime(DateOnly.MinValue, previousShift.EndTime); + if (nextStart < previousEnd) + { + nextStart = nextStart.AddDays(1); + } - var differenceTimeSpan = nextStart - previousEnd; - var oneThirdOfDifference = (differenceTimeSpan / 3) * 2; - var previousTimeThreshold = TimeOnly.FromDateTime(previousEnd.AddTicks(oneThirdOfDifference.Ticks)); - return new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement, - previousTimeThreshold); - }).ToList(); + var differenceTimeSpan = nextStart - previousEnd; + var oneThirdOfDifference = (differenceTimeSpan / 3) * 2; + var previousTimeThreshold = TimeOnly.FromDateTime(previousEnd.AddTicks(oneThirdOfDifference.Ticks)); + return new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement, + previousTimeThreshold); + }).ToList(); - } + } - private void SetValueObjects(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, - BonusesPay bonusesPay - , NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, - FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, - FineAbsenceDeduction fineAbsenceDeduction, - LateToWork lateToWork, EarlyExit earlyExit) - { - FridayPay = new(fridayPay.FridayPayType, fridayPay.Value); - OverTimePay = new(overTimePay.OverTimePayType, overTimePay.Value); - BaseYearsPay = new(baseYearsPay.BaseYearsPayType, baseYearsPay.Value, baseYearsPay.PaymentType); - BonusesPay = new(bonusesPay.BonusesPayType, bonusesPay.Value, bonusesPay.PaymentType); - NightWorkPay = new(nightWorkPay.NightWorkingType, nightWorkPay.Value); - MarriedAllowance = new(marriedAllowance.MarriedAllowanceType, marriedAllowance.Value); - ShiftPay = new(shiftPay.ShiftType, shiftPay.ShiftPayType, shiftPay.Value); - FamilyAllowance = new(familyAllowance.FamilyAllowanceType, familyAllowance.Value); - LeavePay = new(leavePay.LeavePayType, leavePay.Value); - InsuranceDeduction = new(insuranceDeduction.InsuranceDeductionType, insuranceDeduction.Value); - FineAbsenceDeduction = new( - fineAbsenceDeduction.FineAbsenceDeductionType, fineAbsenceDeduction.Value, - fineAbsenceDeduction.FineAbsenceDayOfWeekCollection - .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() - ); - LateToWork = new( - lateToWork.LateToWorkType, - lateToWork.LateToWorkTimeFines.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) - .ToList(), lateToWork.Value - ); - EarlyExit = new(earlyExit.EarlyExitType, - earlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) - .ToList(), earlyExit.Value); - } + private void SetValueObjects(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, + BonusesPay bonusesPay + , NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, + FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, + FineAbsenceDeduction fineAbsenceDeduction, + LateToWork lateToWork, EarlyExit earlyExit) + { + FridayPay = new(fridayPay.FridayPayType, fridayPay.Value); + OverTimePay = new(overTimePay.OverTimePayType, overTimePay.Value); + BaseYearsPay = new(baseYearsPay.BaseYearsPayType, baseYearsPay.Value, baseYearsPay.PaymentType); + BonusesPay = new(bonusesPay.BonusesPayType, bonusesPay.Value, bonusesPay.PaymentType); + NightWorkPay = new(nightWorkPay.NightWorkingType, nightWorkPay.Value); + MarriedAllowance = new(marriedAllowance.MarriedAllowanceType, marriedAllowance.Value); + ShiftPay = new(shiftPay.ShiftType, shiftPay.ShiftPayType, shiftPay.Value); + FamilyAllowance = new(familyAllowance.FamilyAllowanceType, familyAllowance.Value); + LeavePay = new(leavePay.LeavePayType, leavePay.Value); + InsuranceDeduction = new(insuranceDeduction.InsuranceDeductionType, insuranceDeduction.Value); + FineAbsenceDeduction = new( + fineAbsenceDeduction.FineAbsenceDeductionType, fineAbsenceDeduction.Value, + fineAbsenceDeduction.FineAbsenceDayOfWeekCollection + .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() + ); + LateToWork = new( + lateToWork.LateToWorkType, + lateToWork.LateToWorkTimeFines.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) + .ToList(), lateToWork.Value + ); + EarlyExit = new(earlyExit.EarlyExitType, + earlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) + .ToList(), earlyExit.Value); + } } \ No newline at end of file diff --git a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettingsShift.cs b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettingsShift.cs index 00e1fda6..bf3bf7fe 100644 --- a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettingsShift.cs +++ b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/Entities/CustomizeWorkshopEmployeeSettingsShift.cs @@ -1,4 +1,4 @@ - +using _0_Framework.Domain; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; using System; using _0_Framework.Domain.CustomizeCheckoutShared.Base; diff --git a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/ICustomizeWorkshopEmployeeSettingsRepository.cs b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/ICustomizeWorkshopEmployeeSettingsRepository.cs index 624a931f..230c4b1f 100644 --- a/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/ICustomizeWorkshopEmployeeSettingsRepository.cs +++ b/Company.Domain/CustomizeWorkshopEmployeeSettingsAgg/ICustomizeWorkshopEmployeeSettingsRepository.cs @@ -9,9 +9,9 @@ public interface ICustomizeWorkshopEmployeeSettingsRepository : IRepository GetBy(long groupId); List GetEmployeeSettingsByWorkshopId(long workshopId); List GetEmployeeSettingNotInMainGroup(long entityWorkshopId); + } \ No newline at end of file diff --git a/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettings.cs b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettings.cs index 2e66359e..bd48840c 100644 --- a/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettings.cs +++ b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/Entities/CustomizeWorkshopGroupSettings.cs @@ -9,6 +9,7 @@ using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities; using Company.Domain.CustomizeWorkshopSettingsAgg.Entities; using Company.Domain.WorkshopAgg; +using CompanyManagment.App.Contracts.Leave; using Newtonsoft.Json.Serialization; using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; @@ -27,20 +28,25 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity BonusesPay bonusesPay, NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit, FridayWork fridayWork, - HolidayWork holidayWork, BreakTime breakTime, WorkshopShiftStatus workshopShiftStatus, IrregularShift irregularShift) : base(fridayPay, overTimePay, baseYearsPay, bonusesPay, nightWorkPay, + HolidayWork holidayWork, BreakTime breakTime, WorkshopShiftStatus workshopShiftStatus, IrregularShift irregularShift, int leavePermittedDays, ICollection rotatingShifts) : + base(fridayPay, overTimePay, baseYearsPay, bonusesPay, nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction, lateToWork, - earlyExit, fridayWork, holidayWork, breakTime) + earlyExit, fridayWork, holidayWork, breakTime, leavePermittedDays) { GroupName = groupName; Salary = salary; CustomizeWorkshopSettingId = customizeWorkshopSettingId; GuardGroupShifts(customizeWorkshopGroupSettingsShifts); - CustomizeWorkshopGroupSettingsShifts = customizeWorkshopGroupSettingsShifts; WorkshopShiftStatus = workshopShiftStatus; - IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? - new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) - : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); - } + + CustomizeRotatingShifts = workshopShiftStatus == WorkshopShiftStatus.Rotating ? rotatingShifts : []; + + CustomizeWorkshopGroupSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? customizeWorkshopGroupSettingsShifts : []; + + IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? + new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) + : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); + } private void GuardGroupShifts(ICollection customizeWorkshopGroupSettingsShifts) { @@ -60,6 +66,7 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity public IrregularShift IrregularShift { get; set; } public ICollection CustomizeWorkshopGroupSettingsShifts { get; set; } public ICollection CustomizeWorkshopEmployeeSettingsCollection { get; set; } + public ICollection CustomizeRotatingShifts { get; set; } public CustomizeWorkshopSettings CustomizeWorkshopSettings { get; set; } @@ -70,8 +77,8 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity LeavePay leavePay, InsuranceDeduction insuranceDeduction, FineAbsenceDeduction fineAbsenceDeduction, LateToWork lateToWork, EarlyExit earlyExit, ICollection customizeWorkshopGroupSettingsShifts, FridayWork fridayWork, - HolidayWork holidayWork, IrregularShift irregularShift, - WorkshopShiftStatus workshopShiftStatus, long customizeWorkshopSettingId,BreakTime breakTime) + HolidayWork holidayWork, IrregularShift irregularShift, ICollection rotatingShifts, + WorkshopShiftStatus workshopShiftStatus, long customizeWorkshopSettingId, BreakTime breakTime, int leavePermittedDays) { GuardGroupShifts(customizeWorkshopGroupSettingsShifts); GroupName = "اصلی"; @@ -91,11 +98,15 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity EarlyExit = earlyExit; FridayWork = fridayWork; HolidayWork = holidayWork; - CustomizeWorkshopGroupSettingsShifts = customizeWorkshopGroupSettingsShifts; - IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? - new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) - : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); - WorkshopShiftStatus = workshopShiftStatus; + LeavePermittedDays = leavePermittedDays; + CustomizeWorkshopGroupSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? customizeWorkshopGroupSettingsShifts : []; + + CustomizeRotatingShifts = workshopShiftStatus == WorkshopShiftStatus.Rotating ? rotatingShifts : []; + + IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? + new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) + : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); + WorkshopShiftStatus = workshopShiftStatus; CustomizeWorkshopSettingId = customizeWorkshopSettingId; MainGroup = true; BreakTime = breakTime; @@ -112,7 +123,7 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay, ShiftPay shiftPay, NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, FineAbsenceDeduction fineAbsenceDeduction, - LateToWork lateToWork, EarlyExit earlyExit, FridayWork fridayWork, HolidayWork holidayWork, bool isSettingChange) + LateToWork lateToWork, EarlyExit earlyExit, FridayWork fridayWork, HolidayWork holidayWork, bool isSettingChange, int leavePermittedDays) { GroupName = groupName; Salary = salary; @@ -132,6 +143,8 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity FridayWork = fridayWork; HolidayWork = holidayWork; IsSettingChange = isSettingChange; + LeavePermittedDays = leavePermittedDays; + var employeeSettingsShift = CustomizeWorkshopGroupSettingsShifts .Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); @@ -141,7 +154,7 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity { item.EditEmployees(Salary, FridayPay, OverTimePay, BaseYearsPay, BonusesPay , NightWorkPay, MarriedAllowance, ShiftPay, FamilyAllowance, LeavePay, InsuranceDeduction, FineAbsenceDeduction, - LateToWork, EarlyExit, FridayWork, HolidayWork, IrregularShift, WorkshopShiftStatus, false); + LateToWork, EarlyExit, FridayWork, HolidayWork, IrregularShift, WorkshopShiftStatus, false, leavePermittedDays); } } public void EditAndOverwriteOnAllEmployees(string groupName, double salary, @@ -149,26 +162,18 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity OverTimePay overTimePay, BaseYearsPay baseYearsPay, BonusesPay bonusesPay, ShiftPay shiftPay, NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, FineAbsenceDeduction fineAbsenceDeduction, - LateToWork lateToWork, EarlyExit earlyExit, FridayWork fridayWork, HolidayWork holidayWork, bool isSettingChange) + LateToWork lateToWork, EarlyExit earlyExit, FridayWork fridayWork, HolidayWork holidayWork, bool isSettingChange, int leavePermittedDays) { + SetValueObjects(fridayPay, overTimePay, baseYearsPay, bonusesPay + , nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction, + lateToWork, earlyExit); GroupName = groupName; Salary = salary; - FridayPay = fridayPay; - OverTimePay = overTimePay; - BaseYearsPay = baseYearsPay; - BonusesPay = bonusesPay; - NightWorkPay = nightWorkPay; - MarriedAllowance = marriedAllowance; - ShiftPay = shiftPay; - FamilyAllowance = familyAllowance; - LeavePay = leavePay; - InsuranceDeduction = insuranceDeduction; - FineAbsenceDeduction = fineAbsenceDeduction; - LateToWork = lateToWork; - EarlyExit = earlyExit; FridayWork = fridayWork; HolidayWork = holidayWork; IsSettingChange = isSettingChange; + LeavePermittedDays = leavePermittedDays; + var employeeSettingsShift = CustomizeWorkshopGroupSettingsShifts .Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); @@ -177,7 +182,7 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity { item.EditEmployees(Salary, FridayPay, OverTimePay, BaseYearsPay, BonusesPay , NightWorkPay, MarriedAllowance, ShiftPay, FamilyAllowance, LeavePay, InsuranceDeduction, FineAbsenceDeduction, - LateToWork, EarlyExit, FridayWork, HolidayWork, IrregularShift, WorkshopShiftStatus, false); + LateToWork, EarlyExit, FridayWork, HolidayWork, IrregularShift, WorkshopShiftStatus, false, leavePermittedDays); } } @@ -190,18 +195,23 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity public void EditSimpleAndOverwriteOnEmployee(string groupName, IEnumerable employeeIds, ICollection customizeWorkshopGroupSettingsShifts, WorkshopShiftStatus workshopShiftStatus, - IrregularShift irregularShift, BreakTime breakTime, bool isShiftChange,HolidayWork holidayWork , FridayWork fridayWork) + IrregularShift irregularShift, BreakTime breakTime, bool isShiftChange, FridayWork fridayWork, HolidayWork holidayWork, ICollection rotatingShifts) { GroupName = groupName; - CustomizeWorkshopGroupSettingsShifts = customizeWorkshopGroupSettingsShifts; + CustomizeWorkshopGroupSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? customizeWorkshopGroupSettingsShifts : []; WorkshopShiftStatus = workshopShiftStatus; - IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? - new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) - : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); - BreakTime = new BreakTime(breakTime.HasBreakTimeValue, breakTime.BreakTimeValue); + + IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? + new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) + : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); + CustomizeRotatingShifts = workshopShiftStatus == WorkshopShiftStatus.Rotating ? rotatingShifts : []; + + + BreakTime = new BreakTime(breakTime.HasBreakTimeValue, breakTime.BreakTimeValue); IsShiftChange = isShiftChange; FridayWork = fridayWork; HolidayWork = holidayWork; + //var employeeSettingsShift = customizeWorkshopGroupSettingsShifts // .Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); if (isShiftChange) @@ -210,35 +220,49 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity } var permittedToOverWrite = CustomizeWorkshopEmployeeSettingsCollection.Where(x => employeeIds.Contains(x.id)); + foreach (var item in permittedToOverWrite) { + var newRotatingShifts = CustomizeRotatingShifts.Select(x => new CustomizeRotatingShift(x.StartTime, x.EndTime)) + .ToList(); item.SimpleEdit(customizeWorkshopGroupSettingsShifts .Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(), - IrregularShift, WorkshopShiftStatus, BreakTime, false,holidayWork, fridayWork); + IrregularShift, WorkshopShiftStatus, BreakTime, false, FridayWork, HolidayWork, newRotatingShifts); } } public void EditSimpleAndOverwriteOnAllEmployees(string groupName, - ICollection customizeWorkshopGroupSettingsShifts, WorkshopShiftStatus workshopShiftStatus, IrregularShift irregularShift, BreakTime breakTime, bool isShiftChange) + ICollection customizeWorkshopGroupSettingsShifts, + WorkshopShiftStatus workshopShiftStatus, IrregularShift irregularShift, BreakTime breakTime, bool isShiftChange, + FridayWork fridayWork, HolidayWork holidayWork, ICollection rotatingShifts) { GroupName = groupName; - CustomizeWorkshopGroupSettingsShifts = customizeWorkshopGroupSettingsShifts; + CustomizeWorkshopGroupSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? customizeWorkshopGroupSettingsShifts : []; WorkshopShiftStatus = workshopShiftStatus; - IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? - new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) - : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); - BreakTime = new BreakTime(breakTime.HasBreakTimeValue, breakTime.BreakTimeValue); + + IrregularShift = workshopShiftStatus == WorkshopShiftStatus.Regular ? + new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None) + : new IrregularShift(irregularShift.StartTime, irregularShift.EndTime, irregularShift.WorkshopIrregularShifts); + + CustomizeRotatingShifts = workshopShiftStatus == WorkshopShiftStatus.Rotating ? rotatingShifts : []; + + + BreakTime = new BreakTime(breakTime.HasBreakTimeValue, breakTime.BreakTimeValue); IsShiftChange = isShiftChange; + HolidayWork = holidayWork; + FridayWork = fridayWork; //var employeeSettingsShift = customizeWorkshopGroupSettingsShifts // .Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); foreach (var item in CustomizeWorkshopEmployeeSettingsCollection) { + var newRotatingShifts = CustomizeRotatingShifts.Select(x => new CustomizeRotatingShift(x.StartTime, x.EndTime)) + .ToList(); item.SimpleEdit(customizeWorkshopGroupSettingsShifts .Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(), - irregularShift, workshopShiftStatus, breakTime, false,HolidayWork,FridayWork); + irregularShift, workshopShiftStatus, breakTime, false, FridayWork, HolidayWork, newRotatingShifts); } } @@ -275,16 +299,48 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity IrregularShift.WorkshopIrregularShifts); BreakTime breakTime = new(BreakTime.HasBreakTimeValue, BreakTime.BreakTimeValue); + var rotatingShift = CustomizeRotatingShifts.Select(x => new CustomizeRotatingShift(x.StartTime, x.EndTime)).ToList(); + var customizeWorkshopEmployeeSettings = new CustomizeWorkshopEmployeeSettings(fridayPay, overTimePay, baseYearsPay, bonusesPay, nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, insuranceDeduction, fineAbsenceDeduction, lateToWork, earlyExit, employeeId, workshopId, Salary, id, shifts, FridayWork, HolidayWork, irregularShift, - WorkshopShiftStatus, breakTime); + WorkshopShiftStatus, breakTime, LeavePermittedDays, rotatingShift); CustomizeWorkshopEmployeeSettingsCollection.Add(customizeWorkshopEmployeeSettings); } - + private void SetValueObjects(FridayPay fridayPay, OverTimePay overTimePay, BaseYearsPay baseYearsPay, + BonusesPay bonusesPay + , NightWorkPay nightWorkPay, MarriedAllowance marriedAllowance, ShiftPay shiftPay, + FamilyAllowance familyAllowance, LeavePay leavePay, InsuranceDeduction insuranceDeduction, + FineAbsenceDeduction fineAbsenceDeduction, + LateToWork lateToWork, EarlyExit earlyExit) + { + FridayPay = new(fridayPay.FridayPayType, fridayPay.Value); + OverTimePay = new(overTimePay.OverTimePayType, overTimePay.Value); + BaseYearsPay = new(baseYearsPay.BaseYearsPayType, baseYearsPay.Value, baseYearsPay.PaymentType); + BonusesPay = new(bonusesPay.BonusesPayType, bonusesPay.Value, bonusesPay.PaymentType); + NightWorkPay = new(nightWorkPay.NightWorkingType, nightWorkPay.Value); + MarriedAllowance = new(marriedAllowance.MarriedAllowanceType, marriedAllowance.Value); + ShiftPay = new(shiftPay.ShiftType, shiftPay.ShiftPayType, shiftPay.Value); + FamilyAllowance = new(familyAllowance.FamilyAllowanceType, familyAllowance.Value); + LeavePay = new(leavePay.LeavePayType, leavePay.Value); + InsuranceDeduction = new(insuranceDeduction.InsuranceDeductionType, insuranceDeduction.Value); + FineAbsenceDeduction = new( + fineAbsenceDeduction.FineAbsenceDeductionType, fineAbsenceDeduction.Value, + fineAbsenceDeduction.FineAbsenceDayOfWeekCollection + .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() + ); + LateToWork = new( + lateToWork.LateToWorkType, + lateToWork.LateToWorkTimeFines.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) + .ToList(), lateToWork.Value + ); + EarlyExit = new(earlyExit.EarlyExitType, + earlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) + .ToList(), earlyExit.Value); + } //public void OverWriteEmployeesShiftAndSalary(IEnumerable ids,ICollection employeeSettingsShifts,double salary) diff --git a/Company.Domain/CustomizeWorkshopGroupSettingsAgg/ICustomizeWorkshopGroupSettingsRepository.cs b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/ICustomizeWorkshopGroupSettingsRepository.cs index 29f39d5a..3fd22355 100644 --- a/Company.Domain/CustomizeWorkshopGroupSettingsAgg/ICustomizeWorkshopGroupSettingsRepository.cs +++ b/Company.Domain/CustomizeWorkshopGroupSettingsAgg/ICustomizeWorkshopGroupSettingsRepository.cs @@ -10,7 +10,7 @@ public interface ICustomizeWorkshopGroupSettingsRepository : IRepository GetEmployeesWithoutGroup(long workshopId); + List GetEmployeesWithoutGroup(long workshopSettingsId); List GetEmployeesWithoutGroupByWorkshopId(long workshopId); CustomizeWorkshopGroupSettings GetWithEmployees(long groupId); List GetShiftChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId); diff --git a/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettings.cs b/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettings.cs index 0a3e2537..ca3470ee 100644 --- a/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettings.cs +++ b/Company.Domain/CustomizeWorkshopSettingsAgg/Entities/CustomizeWorkshopSettings.cs @@ -17,7 +17,7 @@ public class CustomizeWorkshopSettings : BaseCustomizeEntity public CustomizeWorkshopSettings(long workshopId, ICollection customizeWorkshopSettingsShifts, int leavePermittedDays, - WorkshopShiftStatus workshopShiftStatus) + WorkshopShiftStatus workshopShiftStatus,FridayWork fridayWork,HolidayWork holidayWork) { FridayPay = new FridayPay(FridayPayType.None, 0); OverTimePay = new OverTimePay(OverTimePayType.None, 0); @@ -38,8 +38,8 @@ public class CustomizeWorkshopSettings : BaseCustomizeEntity OverTimeThresholdMinute = 0; Currency = Currency.Rial; MaxMonthDays = MaxMonthDays.Default; - FridayWork = FridayWork.Default; - HolidayWork = HolidayWork.Default; + FridayWork = fridayWork; + HolidayWork = holidayWork; BonusesPaysInEndOfMonth = BonusesPaysInEndOfYear.EndOfYear; WorkshopShiftStatus = workshopShiftStatus; @@ -69,10 +69,7 @@ public class CustomizeWorkshopSettings : BaseCustomizeEntity public MaxMonthDays MaxMonthDays { get; private set; } - /// - /// تعداد روز های مجاز برای مرخصی - /// - public int LeavePermittedDays { get; private set; } + /// /// آیا عیدی همیشه آخر سال تعلق میگیره یا در زمان ترک کار هم تعلق میگیره @@ -129,26 +126,26 @@ public class CustomizeWorkshopSettings : BaseCustomizeEntity Currency = currency; } - public void ChangeWorkshopShifts(ICollection customizeWorkshopSettingsShifts, - WorkshopShiftStatus workshopShiftStatus, FridayWork fridayWork, HolidayWork holidayWork) - { - WorkshopShiftStatus = workshopShiftStatus; + public void ChangeWorkshopShifts(ICollection customizeWorkshopSettingsShifts, + WorkshopShiftStatus workshopShiftStatus,FridayWork fridayWork,HolidayWork holidayWork) + { + WorkshopShiftStatus = workshopShiftStatus; HolidayWork = holidayWork; FridayWork = fridayWork; - CustomizeWorkshopSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? customizeWorkshopSettingsShifts : new List(); - if (workshopShiftStatus == WorkshopShiftStatus.Regular) - { - var date = new DateOnly(); - var firstStartShift = new DateTime(date, CustomizeWorkshopSettingsShifts.MinBy(x => x.Placement).StartTime); - var lastEndShift = new DateTime(date, CustomizeWorkshopSettingsShifts.MaxBy(x => x.Placement).EndTime); - - + CustomizeWorkshopSettingsShifts = workshopShiftStatus == WorkshopShiftStatus.Regular ? customizeWorkshopSettingsShifts : new List(); + if (workshopShiftStatus == WorkshopShiftStatus.Regular) + { + var date = new DateOnly(); + var firstStartShift = new DateTime(date, CustomizeWorkshopSettingsShifts.MinBy(x => x.Placement).StartTime); + var lastEndShift = new DateTime(date, CustomizeWorkshopSettingsShifts.MaxBy(x => x.Placement).EndTime); + + if (lastEndShift > firstStartShift) firstStartShift = firstStartShift.AddDays(1); var offSet = (firstStartShift - lastEndShift).Divide(2); EndTimeOffSet = TimeOnly.FromDateTime(lastEndShift.Add(offSet)); } - } + } } \ No newline at end of file diff --git a/Company.Domain/CustomizeWorkshopSettingsAgg/ICustomizeWorkshopSettingsRepository.cs b/Company.Domain/CustomizeWorkshopSettingsAgg/ICustomizeWorkshopSettingsRepository.cs index 4f912233..20a046dc 100644 --- a/Company.Domain/CustomizeWorkshopSettingsAgg/ICustomizeWorkshopSettingsRepository.cs +++ b/Company.Domain/CustomizeWorkshopSettingsAgg/ICustomizeWorkshopSettingsRepository.cs @@ -1,25 +1,25 @@ -using System.Collections.Generic; -using _0_Framework.Application; +using _0_Framework.Application; using _0_Framework.Domain; using Company.Domain.CustomizeWorkshopSettingsAgg.Entities; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; +using System.Collections.Generic; namespace Company.Domain.CustomizeWorkshopSettingsAgg; public interface ICustomizeWorkshopSettingsRepository : IRepository { - // It will Get the Workshop Settings with its groups and the employees of groups. - CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth); + // It will Get the Workshop Settings with its groups and the employees of groups. + CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth); + CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId); - - CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdGroupSettingsId(long workshopId, - long employeeId); - CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId); - - EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId); + EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId); EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId); List GetShiftChangesGroupAndEmployees(long customizeWorkshopSettingsId); CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId); + #region Pooya + List GetEmployeeSettingsWithMonthlySalary(long workshopId); + List GetEmployeeSettingsByWorkshopId(long workshopId); + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeEmployeeSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeEmployeeSettings.cs index 87fbc6a9..c780fa38 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeEmployeeSettings.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeEmployeeSettings.cs @@ -1,6 +1,7 @@ using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel; using System.Collections.Generic; +using System.Security.AccessControl; using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings; @@ -15,4 +16,5 @@ public class CreateCustomizeEmployeeSettings public WorkshopShiftStatus WorkshopShiftStatus { get; set; } public IrregularShift IrregularShift { get; set; } + public int LeavePermittedDays { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopGroupSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopGroupSettings.cs index 4354f2f4..b80062f9 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopGroupSettings.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopGroupSettings.cs @@ -7,6 +7,7 @@ namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings; public class CreateCustomizeWorkshopGroupSettings { + public string Name { get; set; } public string Salary { get; set; } public long CustomizeWorkshopSettingId { get; set; } @@ -17,4 +18,6 @@ public class CreateCustomizeWorkshopGroupSettings public int LeavePermittedDays { get; set; } public FridayWork FridayWork { get; set; } public HolidayWork HolidayWork { get; set; } + public ICollection CustomizeRotatingShiftsViewModels { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopSettings.cs index 0115e0c7..e40246d5 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopSettings.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CreateCustomizeWorkshopSettings.cs @@ -20,6 +20,17 @@ public class CreateCustomizeWorkshopSettings public BreakTime BreakTime { get; set; } + /// + /// آیا جمعه کار میکند یا نه + /// + public FridayWork FridayWork { get; set; } + + /// + /// آیا در روز های تعطیل کار میکند + /// + public HolidayWork HolidayWork { get; set; } + + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeRotatingShiftsViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeRotatingShiftsViewModel.cs new file mode 100644 index 00000000..ec67d9f4 --- /dev/null +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeRotatingShiftsViewModel.cs @@ -0,0 +1,9 @@ +using System; + +namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings; + +public class CustomizeRotatingShiftsViewModel +{ + public string StartTime{ get; set; } + public string EndTime{ get; set; } +}; \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopEmployeeSettingsViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopEmployeeSettingsViewModel.cs index 015d5438..5c130801 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopEmployeeSettingsViewModel.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopEmployeeSettingsViewModel.cs @@ -1,8 +1,6 @@ using _0_Framework.Domain.CustomizeCheckoutShared.Enums; -using System; -using System.Collections.Generic; -using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; +using System.Collections.Generic; namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings; @@ -24,4 +22,5 @@ public class CustomizeWorkshopEmployeeSettingsViewModel public HolidayWork HolidayWork { get; set; } public FridayWork FridayWork { get; set; } public int LeavePermittedDays { get; set; } + public ICollection CustomizeRotatingShiftsViewModels { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopGroupSettingsViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopGroupSettingsViewModel.cs index cc11e91e..a19afa21 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopGroupSettingsViewModel.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopGroupSettingsViewModel.cs @@ -12,6 +12,10 @@ public class CustomizeWorkshopGroupSettingsViewModel public bool MainGroup { get; set; } public List RollCallWorkshopShifts { get; set; } public List RollCallWorkshopEmployeesSettings { get; set; } + public List CustomizeRotatingShiftsViewModels { get; set; } public WorkshopShiftStatus WorkshopShiftStatus { get; set; } public IrregularShift IrregularShift { get; set; } + public BreakTime BreakTime { get; set; } + public FridayWork FridayWork { get; set; } + public HolidayWork HolidayWork { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopSettingsViewModel.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopSettingsViewModel.cs index 7b34dd6c..7079d21c 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopSettingsViewModel.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/CustomizeWorkshopSettingsViewModel.cs @@ -1,5 +1,5 @@ -using _0_Framework.Domain.CustomizeCheckoutShared.Enums; -using System.Collections.Generic; +using System.Collections.Generic; +using _0_Framework.Domain.CustomizeCheckoutShared.Enums; namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings; @@ -7,6 +7,6 @@ public class CustomizeWorkshopSettingsViewModel { public long Id { get; set; } public string Name { get; set; } - public List GroupSettings { get; set; } public WorkshopShiftStatus WorkshopShiftStatus { get; set; } + public List GroupSettings { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeEmployeeSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeEmployeeSettings.cs index fa50f043..a29d491e 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeEmployeeSettings.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeEmployeeSettings.cs @@ -89,5 +89,6 @@ public class EditCustomizeEmployeeSettings:CreateCustomizeEmployeeSettings public bool IsShiftChanged { get; set; } public bool IsSettingChanged { get; set; } public IEnumerable ShiftViewModel { get; set; } + public ICollection CustomizeRotatingShifts{ get; set; } public BreakTime BreakTime { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopGroupSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopGroupSettings.cs index 37652094..acb4683e 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopGroupSettings.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopGroupSettings.cs @@ -1,90 +1,90 @@ using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel; using System.Collections.Generic; -using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings; public class EditCustomizeWorkshopGroupSettings : CreateCustomizeWorkshopGroupSettings { - public long Id { get; set; } - public List EmployeeIds { get; set; } + public long Id { get; set; } + public List EmployeeIds { get; set; } - /// - /// جمعه کاری - /// - public FridayPayViewModel FridayPay { get; set; } + /// + /// جمعه کاری + /// + public FridayPayViewModel FridayPay { get; set; } - /// - /// اضافه کاری - /// - public OverTimePayViewModel OverTimePay { get; set; } - /// - /// سنوات - /// - public BaseYearsPayViewModel BaseYearsPay { get; set; } + /// + /// اضافه کاری + /// + public OverTimePayViewModel OverTimePay { get; set; } - /// - /// عیدی - /// - public BonusesPayViewModel BonusesPay { get; set; } + /// + /// سنوات + /// + public BaseYearsPayViewModel BaseYearsPay { get; set; } - /// - /// شب کاری - /// - public NightWorkPayViewModel NightWorkPay { get; set; } + /// + /// عیدی + /// + public BonusesPayViewModel BonusesPay { get; set; } - /// - /// حق تاهل - /// - public MarriedAllowanceViewModel MarriedAllowance { get; set; } + /// + /// شب کاری + /// + public NightWorkPayViewModel NightWorkPay { get; set; } - /// - /// نوبت کاری - /// - public ShiftPayViewModel ShiftPay { get; set; } + /// + /// حق تاهل + /// + public MarriedAllowanceViewModel MarriedAllowance { get; set; } - /// - /// حق اولاد(حق فرزند)ء - /// - public FamilyAllowanceViewModel FamilyAllowance { get; set; } + /// + /// نوبت کاری + /// + public ShiftPayViewModel ShiftPay { get; set; } - /// - /// مزد مرخصی - /// - public LeavePayViewModel LeavePay { get; set; } + /// + /// حق اولاد(حق فرزند)ء + /// + public FamilyAllowanceViewModel FamilyAllowance { get; set; } - /// - /// حق بیمه - /// - public InsuranceDeductionViewModel InsuranceDeduction { get; set; } + /// + /// مزد مرخصی + /// + public LeavePayViewModel LeavePay { get; set; } - /// - /// جریمه غیبت - /// - public FineAbsenceDeductionViewModel FineAbsenceDeduction { get; set; } + /// + /// حق بیمه + /// + public InsuranceDeductionViewModel InsuranceDeduction { get; set; } - /// - /// تاخیر در ورود - /// - public LateToWorkViewModel LateToWork { get; set; } + /// + /// جریمه غیبت + /// + public FineAbsenceDeductionViewModel FineAbsenceDeduction { get; set; } - /// - /// نعجیل در خروج - /// - public EarlyExitViewModel EarlyExit { get; set; } + /// + /// تاخیر در ورود + /// + public LateToWorkViewModel LateToWork { get; set; } - /// - /// آیا جمعه کار میکند یا نه - /// - public FridayWork FridayWork { get; set; } + /// + /// نعجیل در خروج + /// + public EarlyExitViewModel EarlyExit { get; set; } - /// - /// آیا در روز های تعطیل کار میکند - /// - public HolidayWork HolidayWork { get; set; } + /// + /// آیا جمعه کار میکند یا نه + /// + public FridayWork FridayWork { get; set; } - public bool IsShiftChanged { get; set; } - public bool IsSettingChanged { get; set; } + /// + /// آیا در روز های تعطیل کار میکند + /// + public HolidayWork HolidayWork { get; set; } + + public bool IsShiftChanged { get; set; } + public bool IsSettingChanged { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopSettings.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopSettings.cs index 1b917a24..ba2c96d3 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopSettings.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/EditCustomizeWorkshopSettings.cs @@ -81,15 +81,6 @@ public class EditCustomizeWorkshopSettings : CreateCustomizeWorkshopSettings public EarlyExitViewModel EarlyExit { get; set; } - /// - /// آیا جمعه کار میکند یا نه - /// - public FridayWork FridayWork { get; set; } - - /// - /// آیا در روز های تعطیل کار میکند - /// - public HolidayWork HolidayWork { get; set; } /// /// آیا عیدی همیشه آخر سال تعلق میگیره یا در زمان ترک کار هم تعلق میگیره diff --git a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs index cb6aef7b..8e051851 100644 --- a/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs +++ b/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs @@ -41,6 +41,8 @@ public interface ICustomizeWorkshopSettingsApplication OperationResult AddEmployeeToMainGroupSettings(long workshopId, long employeeId); + OperationResult CreateEmployeesSettingsAndSetChanges(EditCustomizeEmployeeSettings command); + /// /// این متد تاریخ شیفت تنظیمات کارگاه را تغییر میدهد /// @@ -50,13 +52,11 @@ public interface ICustomizeWorkshopSettingsApplication /// /// OperationResult EditWorkshopSettingShifts(List shiftViewModels, - long customizeWorkshopSettingsId, WorkshopShiftStatus workshopShiftStatus, FridayWork fridayWork, HolidayWork holidayWork); + long customizeWorkshopSettingsId,WorkshopShiftStatus workshopShiftStatus,FridayWork fridayWork,HolidayWork holidayWork); - // It will Get the Workshop Settings with its groups and the employees of groups. - CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth); + // It will Get the Workshop Settings with its groups and the employees of groups. + CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth); - public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByEmployeeIdWorkshopId(long workshopId, - long employeeId); List GetChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId); @@ -65,8 +65,6 @@ public interface ICustomizeWorkshopSettingsApplication CustomizeWorkshopEmployeeSettingsViewModel GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(long workshopId, long employeeId); - CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByEmployeeIdGroupSettingsId(long workshopId, long employeeId); - List GetEmployeeSettingsByGroupSettingsId(long groupSettingsId); EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId); @@ -78,7 +76,9 @@ public interface ICustomizeWorkshopSettingsApplication /// EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId); - EditCustomizeWorkshopGroupSettings GetCustomizeWorkshopGroupSettingsDetails(long groupId); + CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId); + + EditCustomizeWorkshopGroupSettings GetCustomizeWorkshopGroupSettingsDetails(long groupId); EditCustomizeEmployeeSettings GetCustomizeEmployeeSettingsDetails(long customizeEmployeeId); diff --git a/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs index 5360e4f2..aef84929 100644 --- a/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs +++ b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs @@ -1,8 +1,6 @@ using _0_Framework.Application; -using _0_Framework.Domain.CustomizeCheckoutShared.Base; using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; -using AccountManagement.Application.Contracts.Account; using AccountManagement.Application.Contracts.CameraAccount; using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg; using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities; @@ -14,189 +12,340 @@ using Company.Domain.EmployeeAgg; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; using CompanyManagment.App.Contracts.Employee; using CompanyManagment.App.Contracts.RollCallEmployee; -using CompanyManagment.App.Contracts.Workshop; -using CompanyManagment.EFCore.Migrations; using Microsoft.EntityFrameworkCore; using System; -using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Runtime.CompilerServices; -using System.Runtime.ExceptionServices; using System.Transactions; namespace CompanyManagment.Application; public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepository customizeWorkshopSettingsRepository, - IAuthHelper authHelper, IPasswordHasher passwordHasher, ICameraAccountApplication cameraAccountApplication, - ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository, IEmployeeRepository employeeRepository, - ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository, - IRollCallEmployeeApplication rollCallEmployeeApplication) - : ICustomizeWorkshopSettingsApplication + IAuthHelper authHelper, IPasswordHasher passwordHasher, ICameraAccountApplication cameraAccountApplication, + ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository, IEmployeeRepository employeeRepository, + ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository, + IRollCallEmployeeApplication rollCallEmployeeApplication) + : ICustomizeWorkshopSettingsApplication { - private readonly ICustomizeWorkshopSettingsRepository _customizeWorkshopSettingsRepository = customizeWorkshopSettingsRepository; - private readonly ICustomizeWorkshopGroupSettingsRepository _customizeWorkshopGroupSettingsRepository = customizeWorkshopGroupSettingsRepository; - private readonly ICustomizeWorkshopEmployeeSettingsRepository _customizeWorkshopEmployeeSettingsRepository = customizeWorkshopEmployeeSettingsRepository; - private readonly IAuthHelper _authHelper = authHelper; - private readonly IEmployeeRepository _employeeRepository = employeeRepository; - private readonly IPasswordHasher _passwordHasher = passwordHasher; - private readonly ICameraAccountApplication _cameraAccountApplication = cameraAccountApplication; - private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication = rollCallEmployeeApplication; + private readonly ICustomizeWorkshopSettingsRepository _customizeWorkshopSettingsRepository = customizeWorkshopSettingsRepository; + private readonly ICustomizeWorkshopGroupSettingsRepository _customizeWorkshopGroupSettingsRepository = customizeWorkshopGroupSettingsRepository; + private readonly ICustomizeWorkshopEmployeeSettingsRepository _customizeWorkshopEmployeeSettingsRepository = customizeWorkshopEmployeeSettingsRepository; + private readonly IAuthHelper _authHelper = authHelper; + private readonly IEmployeeRepository _employeeRepository = employeeRepository; + private readonly IPasswordHasher _passwordHasher = passwordHasher; + private readonly ICameraAccountApplication _cameraAccountApplication = cameraAccountApplication; + private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication = rollCallEmployeeApplication; - #region RollCallShifts + #region RollCallShifts - //Create workshop settings - public OperationResult CreateWorkshopSettings(CreateCustomizeWorkshopSettings command) - { - OperationResult op = new(); - var workshopId = _passwordHasher.SlugDecrypt(_authHelper.GetWorkshopSlug()); - //تبدیل شیفت های ویو مدل به انتیتی - List shiftCollection = new List(); - if (command.WorkshopShiftStatus == WorkshopShiftStatus.Regular) - { - #region Validation - if (command.ShiftsList.Any(x => string.IsNullOrWhiteSpace(x.StartTime) || string.IsNullOrWhiteSpace(x.EndTime))) - return op.Failed("ساعات کاری شروع و پایان نمیتواند خالی باشد"); - try - { - shiftCollection = - command.ShiftsList.Select(x => - { - var placement = x.Placement switch - { - ShiftPlacement.First => "اول", - ShiftPlacement.Second => "دوم", - ShiftPlacement.Third => "سوم" - }; - if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) - throw new InvalidDataException($"فرمت شروع نوبت{placement}نادرست است"); - if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) - throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); + //Create workshop settings + public OperationResult CreateWorkshopSettings(CreateCustomizeWorkshopSettings command) + { + OperationResult op = new(); + var workshopId = _passwordHasher.SlugDecrypt(_authHelper.GetWorkshopSlug()); + //تبدیل شیفت های ویو مدل به انتیتی + List shiftCollection = new List(); + if (command.WorkshopShiftStatus == WorkshopShiftStatus.Regular) + { + #region Validation + if (command.ShiftsList.Any(x => string.IsNullOrWhiteSpace(x.StartTime) || string.IsNullOrWhiteSpace(x.EndTime))) + return op.Failed("ساعات کاری شروع و پایان نمیتواند خالی باشد"); + try + { + shiftCollection = + command.ShiftsList.Select(x => + { + var placement = x.Placement switch + { + ShiftPlacement.First => "اول", + ShiftPlacement.Second => "دوم", + ShiftPlacement.Third => "سوم" + }; + if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) + throw new InvalidDataException($"فرمت شروع نوبت{placement}نادرست است"); + if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) + throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); - return new CustomizeWorkshopSettingsShift(start, end, x.Placement); + return new CustomizeWorkshopSettingsShift(start, end, x.Placement); - }).ToList(); - } - catch (InvalidDataException e) - { + }).ToList(); + } + catch (InvalidDataException e) + { - return op.Failed(e.Message); - } - if (workshopId < 1) - { - return op.Failed("خطای سیستمی"); - } - DateTime day = DateTime.Now; - DateTime previousEnd = new DateTime(); - var finalShiftList = new List<(DateTime start, DateTime end, ShiftPlacement placement)>(); + return op.Failed(e.Message); + } + if (workshopId < 1) + { + return op.Failed("خطای سیستمی"); + } + DateTime day = DateTime.Now; + DateTime previousEnd = new DateTime(); + var finalShiftList = new List<(DateTime start, DateTime end, ShiftPlacement placement)>(); - shiftCollection = shiftCollection.OrderBy(x => x.Placement).ToList(); + shiftCollection = shiftCollection.OrderBy(x => x.Placement).ToList(); - foreach (var shift in shiftCollection) - { - (DateTime start, DateTime end, ShiftPlacement placement) newShift = - new() - { - placement = shift.Placement, - start = new DateTime(DateOnly.FromDateTime(day), shift.StartTime), - end = new DateTime(DateOnly.FromDateTime(day), shift.EndTime) + foreach (var shift in shiftCollection) + { + (DateTime start, DateTime end, ShiftPlacement placement) newShift = + new() + { + placement = shift.Placement, + start = new DateTime(DateOnly.FromDateTime(day), shift.StartTime), + end = new DateTime(DateOnly.FromDateTime(day), shift.EndTime) - }; + }; - if (previousEnd != new DateTime()) - { - if (newShift.start <= previousEnd) - { - newShift.start = newShift.start.AddDays(1); - } - } - while (newShift.start >= newShift.end) - { - newShift.end = newShift.end.AddDays(1); - } - finalShiftList.Add(newShift); - previousEnd = newShift.end; - } + if (previousEnd != new DateTime()) + { + if (newShift.start <= previousEnd) + { + newShift.start = newShift.start.AddDays(1); + } + } + while (newShift.start >= newShift.end) + { + newShift.end = newShift.end.AddDays(1); + } + finalShiftList.Add(newShift); + previousEnd = newShift.end; + } - var firstShiftStart = finalShiftList.FirstOrDefault(x => x.placement == ShiftPlacement.First).start; - var lastShiftEnd = finalShiftList.OrderByDescending(x => x.placement).FirstOrDefault().end; - if (firstShiftStart.AddDays(1) < lastShiftEnd) - return op.Failed("بازه زمانی کارگاه نامعتبر است"); - var total = finalShiftList.Sum(x => (x.end - x.start).TotalHours); - if (total >= 24) - { - return op.Failed("بازه زمانی کارگاه نمیتواند بیشتر از 24 ساعت باشد"); - } - #endregion - } - else - { - command.ShiftsList = []; - shiftCollection = []; + var firstShiftStart = finalShiftList.FirstOrDefault(x => x.placement == ShiftPlacement.First).start; + var lastShiftEnd = finalShiftList.OrderByDescending(x => x.placement).FirstOrDefault().end; + if (firstShiftStart.AddDays(1) < lastShiftEnd) + return op.Failed("بازه زمانی کارگاه نامعتبر است"); + var total = finalShiftList.Sum(x => (x.end - x.start).TotalHours); + if (total >= 24) + { + return op.Failed("بازه زمانی کارگاه نمیتواند بیشتر از 24 ساعت باشد"); + } + #endregion + } + else + { + command.ShiftsList = []; + shiftCollection = []; - } + } - var record = new CustomizeWorkshopSettings(workshopId, shiftCollection, command.LeavePermittedDays, - command.WorkshopShiftStatus); - using (var transaction = new TransactionScope()) - { + var record = new CustomizeWorkshopSettings(workshopId, shiftCollection, command.LeavePermittedDays, + command.WorkshopShiftStatus, command.FridayWork, command.HolidayWork); + using (var transaction = new TransactionScope()) + { - try - { - _customizeWorkshopSettingsRepository.Create(record); - _customizeWorkshopSettingsRepository.SaveChanges(); + try + { + _customizeWorkshopSettingsRepository.Create(record); + _customizeWorkshopSettingsRepository.SaveChanges(); - OperationResult result = new OperationResult(); + OperationResult result = new OperationResult(); - result = command.WorkshopShiftStatus == WorkshopShiftStatus.Regular ? CreateGeneralGroup(record) : result.Succcedded(); + result = command.WorkshopShiftStatus == WorkshopShiftStatus.Regular ? CreateGeneralGroup(record) : result.Succcedded(); - if (result.IsSuccedded) - { - transaction.Complete(); - } - else - { - op = result; - transaction.Dispose(); - } - } - catch - { - transaction.Dispose(); - // ignored - } - } + if (result.IsSuccedded) + { + transaction.Complete(); + } + else + { + op = result; + transaction.Dispose(); + } + } + catch + { + transaction.Dispose(); + // ignored + } + } - return string.IsNullOrWhiteSpace(op.Message) ? op.Succcedded() : op; + return string.IsNullOrWhiteSpace(op.Message) ? op.Succcedded() : op; - } + } - //create group settings with workshopSettingsId. - public OperationResult CreateGroupSettingsByRollCallWorkshopSettingId(CreateCustomizeWorkshopGroupSettings command) - { - OperationResult op = new(); - CustomizeWorkshopSettings workshopSettings = - _customizeWorkshopSettingsRepository.Get(command.CustomizeWorkshopSettingId); - List shiftCollection = new List(); + //create group settings with workshopSettingsId. + public OperationResult CreateGroupSettingsByRollCallWorkshopSettingId(CreateCustomizeWorkshopGroupSettings command) + { + OperationResult op = new(); + CustomizeWorkshopSettings workshopSettings = + _customizeWorkshopSettingsRepository.Get(command.CustomizeWorkshopSettingId); + List shiftCollection = new List(); + + ICollection customizeRotatingShifts = []; #region validation if (workshopSettings == null) - return op.Failed("خطای سیستمی"); + return op.Failed("خطای سیستمی"); - if (string.IsNullOrWhiteSpace(command.Name)) - return op.Failed("لطفا نام گروه را وارد کنید"); + if (string.IsNullOrWhiteSpace(command.Name)) + return op.Failed("لطفا نام گروه را وارد کنید"); - if (string.IsNullOrWhiteSpace(command.Salary)) - return op.Failed("لطفا حقوق مورد نظر خود را وارد کنید"); + if (string.IsNullOrWhiteSpace(command.Salary)) + return op.Failed("لطفا حقوق مورد نظر خود را وارد کنید"); - if (!_customizeWorkshopSettingsRepository.Exists(x => x.id == command.CustomizeWorkshopSettingId)) - return op.Failed("چنین ساعت کاری برای کارگاهی وجود ندارد"); + if (!_customizeWorkshopSettingsRepository.Exists(x => x.id == command.CustomizeWorkshopSettingId)) + return op.Failed("چنین ساعت کاری برای کارگاهی وجود ندارد"); + + if (command.WorkshopShiftStatus == WorkshopShiftStatus.Regular) + { + if (command.ShiftViewModel.Any(x => string.IsNullOrWhiteSpace(x.StartTime) || string.IsNullOrWhiteSpace(x.EndTime))) + return op.Failed("ساعات کاری شروع و پایان نمیتواند خالی باشد"); + try + { + shiftCollection = + command.ShiftViewModel.Select(x => + { + var placement = x.Placement switch + { + ShiftPlacement.First => "اول", + ShiftPlacement.Second => "دوم", + ShiftPlacement.Third => "سوم" + }; + if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) + throw new InvalidDataException($"فرمت شروع نوبت{placement}نادرست است"); + if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) + throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); + + + return new CustomizeWorkshopGroupSettingsShift(start, end, x.Placement); + + }).ToList(); + } + catch (InvalidDataException e) + { + + return op.Failed(e.Message); + } + DateTime previousEnd = new DateTime(); + var finalShiftList = new List<(DateTime start, DateTime end, ShiftPlacement placement)>(); + + shiftCollection = shiftCollection.OrderBy(x => x.Placement).ToList(); + + foreach (var shift in shiftCollection) + { + (DateTime start, DateTime end, ShiftPlacement placement) newShift = + new() + { + placement = shift.Placement, + start = new DateTime(DateOnly.MinValue, shift.StartTime), + end = new DateTime(DateOnly.MinValue, shift.EndTime) + + + }; + + if (previousEnd != new DateTime()) + { + if (newShift.start <= previousEnd) + { + newShift.start = newShift.start.AddDays(1); + } + } + while (newShift.start >= newShift.end) + { + newShift.end = newShift.end.AddDays(1); + } + finalShiftList.Add(newShift); + previousEnd = newShift.end; + } + //var firstWorkshopTimeShift = workshopSettings.CustomizeWorkshopSettingsShifts.MinBy(x => x.Placement).StartTime; + //var lastWorkshopTimeShift = workshopSettings.CustomizeWorkshopSettingsShifts.MaxBy(x => x.Placement).EndTime; + + //var startDateTime = new DateTime(DateOnly.MinValue, firstWorkshopTimeShift); + //var lastDateTime = new DateTime(DateOnly.MinValue, lastWorkshopTimeShift); + //if (lastDateTime < startDateTime) + //{ + // lastDateTime = lastDateTime.AddDays(1); + //} + + //var lastGroupShift = finalShiftList.MaxBy(x => x.placement).end; + //var firstGroupShift = finalShiftList.MinBy(x => x.placement).start; + //if (lastDateTime < lastGroupShift || firstGroupShift < startDateTime) + //{ + // return op.Failed("ساعت کاری گروه باید بین ساعت کاری کارگاه باشد"); + //} + } + else if (command.WorkshopShiftStatus == WorkshopShiftStatus.Irregular) + { + var irregularShiftStartTime = new DateTime(DateOnly.MinValue, command.IrregularShift.StartTime); + + var irregularShiftEndTime = new DateTime(DateOnly.MinValue, command.IrregularShift.EndTime); + + if (irregularShiftEndTime < irregularShiftStartTime) + { + irregularShiftEndTime = irregularShiftEndTime.AddDays(1); + } + + switch (command.IrregularShift.WorkshopIrregularShifts) + { + case WorkshopIrregularShifts.TwelveThirtySix: + + if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) + { + return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); + } + break; + case WorkshopIrregularShifts.TwelveTwentyFour: + if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) + { + return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); + } + break; + } + } + else + { + + customizeRotatingShifts = command.CustomizeRotatingShiftsViewModels.Select(x=> new CustomizeRotatingShift(TimeOnly.Parse( x.StartTime), TimeOnly.Parse(x.EndTime))).ToList(); + } + + #endregion + + var breakTime = new BreakTime(command.BreakTime.HasBreakTimeValue, command.BreakTime.BreakTimeValue); + + double salary = command.Salary.MoneyToDouble(); + + + var entity = new CustomizeWorkshopGroupSettings(command.Name, salary, command.CustomizeWorkshopSettingId, shiftCollection, workshopSettings.FridayPay, workshopSettings.OverTimePay, + workshopSettings.BaseYearsPay, workshopSettings.BonusesPay, workshopSettings.NightWorkPay, workshopSettings.MarriedAllowance, + workshopSettings.ShiftPay, workshopSettings.FamilyAllowance, workshopSettings.LeavePay, workshopSettings.InsuranceDeduction, workshopSettings.FineAbsenceDeduction, + workshopSettings.LateToWork, workshopSettings.EarlyExit, command.FridayWork, + command.HolidayWork, breakTime, command.WorkshopShiftStatus, command.IrregularShift, command.LeavePermittedDays,customizeRotatingShifts); + + _customizeWorkshopGroupSettingsRepository.Create(entity); + + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + return op.Succcedded(); + } + + //Create Employee Settings with Group data. It will Replace the Group data (such as salary, shifts and ...) on Employee settings On creation. + public OperationResult CreateEmployeesSettingsAndSetChanges(EditCustomizeEmployeeSettings command) + { + var op = new OperationResult(); + var customizeWorkshopGroupSettings = _customizeWorkshopGroupSettingsRepository.Get(command.GroupId); + if (customizeWorkshopGroupSettings ==null) + { + return op.Failed("گروه انتخاب شده نا معتبر است"); + } + + if (customizeWorkshopGroupSettings.MainGroup) + { + var createDefaultEmployee = CreateEmployeeSettings(command); + return createDefaultEmployee; + } + + + List shiftCollection = new List(); + + var isChanged = false; + #region validation + if (command.WorkshopShiftStatus == WorkshopShiftStatus.Regular) { @@ -219,7 +368,7 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); - return new CustomizeWorkshopGroupSettingsShift(start, end, x.Placement); + return new CustomizeWorkshopEmployeeSettingsShift(start, end, x.Placement); }).ToList(); } @@ -275,6 +424,19 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo //{ // return op.Failed("ساعت کاری گروه باید بین ساعت کاری کارگاه باشد"); //} + + + if (shiftCollection.All(x => customizeWorkshopGroupSettings.CustomizeWorkshopGroupSettingsShifts.Any(y => x.Equals(y))) + && command.WorkshopShiftStatus == customizeWorkshopGroupSettings.WorkshopShiftStatus && command.FridayWork == customizeWorkshopGroupSettings.FridayWork && + command.HolidayWork == customizeWorkshopGroupSettings.HolidayWork && command.BreakTime == customizeWorkshopGroupSettings.BreakTime) + { + isChanged = false; + } + + else + { + isChanged = true; + } } else { @@ -303,6 +465,16 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo } break; } + if (command.WorkshopShiftStatus == customizeWorkshopGroupSettings.WorkshopShiftStatus && command.BreakTime == customizeWorkshopGroupSettings.BreakTime && + command.IrregularShift == customizeWorkshopGroupSettings.IrregularShift && command.FridayWork == customizeWorkshopGroupSettings.FridayWork && + command.HolidayWork == customizeWorkshopGroupSettings.HolidayWork) + { + isChanged = false; + } + else + { + isChanged = true; + } } #endregion @@ -313,204 +485,227 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo - var entity = new CustomizeWorkshopGroupSettings(command.Name, salary, command.CustomizeWorkshopSettingId, shiftCollection, workshopSettings.FridayPay, workshopSettings.OverTimePay, - workshopSettings.BaseYearsPay, workshopSettings.BonusesPay, workshopSettings.NightWorkPay, workshopSettings.MarriedAllowance, - workshopSettings.ShiftPay, workshopSettings.FamilyAllowance, workshopSettings.LeavePay, workshopSettings.InsuranceDeduction, workshopSettings.FineAbsenceDeduction, - workshopSettings.LateToWork, workshopSettings.EarlyExit, workshopSettings.FridayWork, - workshopSettings.HolidayWork, breakTime, command.WorkshopShiftStatus, command.IrregularShift); + //var entity = new CustomizeWorkshopEmployeeSettings(customizeWorkshopGroupSettings.FridayPay, customizeWorkshopGroupSettings.OverTimePay, + // customizeWorkshopGroupSettings.BaseYearsPay, customizeWorkshopGroupSettings.BonusesPay, customizeWorkshopGroupSettings.NightWorkPay, customizeWorkshopGroupSettings.MarriedAllowance, + // customizeWorkshopGroupSettings.ShiftPay, customizeWorkshopGroupSettings.FamilyAllowance, customizeWorkshopGroupSettings.LeavePay, customizeWorkshopGroupSettings.InsuranceDeduction, customizeWorkshopGroupSettings.FineAbsenceDeduction, + // customizeWorkshopGroupSettings.LateToWork, customizeWorkshopGroupSettings.EarlyExit, command.EmployeeIds.First(),command.WorkshopId, salary, command.GroupId, + // shiftCollection, command.FridayWork, command.HolidayWork, command.IrregularShift, command.WorkshopShiftStatus, breakTime, command.LeavePermittedDays); - _customizeWorkshopGroupSettingsRepository.Create(entity); + //_customizeWorkshopEmployeeSettingsRepository.Create(entity); + + //entity.SimpleEdit(shiftCollection,command.IrregularShift,command.WorkshopShiftStatus,command.BreakTime,isChanged,command.FridayWork,command.HolidayWork); _customizeWorkshopGroupSettingsRepository.SaveChanges(); return op.Succcedded(); + + + } - //Create Employee Settings with Group data. It will Replace the Group data (such as salary, shifts and ...) on Employee settings On creation. public OperationResult EditWorkshopSettingShifts(List shiftViewModels, long customizeWorkshopSettingsId, - WorkshopShiftStatus workshopShiftStatus, FridayWork fridayWork, HolidayWork holidayWork) - { - OperationResult op = new OperationResult(); - var entity = _customizeWorkshopSettingsRepository.Get(customizeWorkshopSettingsId); - if (entity == null) - return op.Failed("چنین آیتمی وجود ندارد"); + WorkshopShiftStatus workshopShiftStatus, FridayWork fridayWork, HolidayWork holidayWork) + { + OperationResult op = new OperationResult(); + var entity = _customizeWorkshopSettingsRepository.Get(customizeWorkshopSettingsId); + if (entity == null) + return op.Failed("چنین آیتمی وجود ندارد"); - //تبدیل شیفت های ویو مدل به انتیتی - List shiftCollection = []; + //تبدیل شیفت های ویو مدل به انتیتی + List shiftCollection = []; - #region Validation - if (workshopShiftStatus == WorkshopShiftStatus.Regular) - { - try - { - shiftCollection = - shiftViewModels.Select(x => - { - var placement = x.Placement switch - { - ShiftPlacement.First => "اول", - ShiftPlacement.Second => "دوم", - ShiftPlacement.Third => "سوم", - _ => throw new ArgumentOutOfRangeException() - }; - if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) - throw new InvalidDataException($"فرمت شروع نوبت{placement}نادرست است"); - if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) - throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); + #region Validation + if (workshopShiftStatus == WorkshopShiftStatus.Regular) + { + try + { + shiftCollection = + shiftViewModels.Select(x => + { + var placement = x.Placement switch + { + ShiftPlacement.First => "اول", + ShiftPlacement.Second => "دوم", + ShiftPlacement.Third => "سوم", + _ => throw new ArgumentOutOfRangeException() + }; + if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) + throw new InvalidDataException($"فرمت شروع نوبت{placement}نادرست است"); + if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) + throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); - return new CustomizeWorkshopSettingsShift(start, end, x.Placement); + return new CustomizeWorkshopSettingsShift(start, end, x.Placement); - }).ToList(); - } - catch (InvalidDataException e) - { + }).ToList(); + } + catch (InvalidDataException e) + { - return op.Failed(e.Message); - } + return op.Failed(e.Message); + } - DateTime day = DateTime.Now; - DateTime previousEnd = new DateTime(); - var finalShiftList = new List<(DateTime start, DateTime end, ShiftPlacement placement)>(); + DateTime day = DateTime.Now; + DateTime previousEnd = new DateTime(); + var finalShiftList = new List<(DateTime start, DateTime end, ShiftPlacement placement)>(); - shiftCollection = shiftCollection.OrderBy(x => x.Placement).ToList(); + shiftCollection = shiftCollection.OrderBy(x => x.Placement).ToList(); - foreach (var shift in shiftCollection) - { - (DateTime start, DateTime end, ShiftPlacement placement) newShift = - new() - { - placement = shift.Placement, - start = new DateTime(DateOnly.FromDateTime(day), shift.StartTime), - end = new DateTime(DateOnly.FromDateTime(day), shift.EndTime) + foreach (var shift in shiftCollection) + { + (DateTime start, DateTime end, ShiftPlacement placement) newShift = + new() + { + placement = shift.Placement, + start = new DateTime(DateOnly.FromDateTime(day), shift.StartTime), + end = new DateTime(DateOnly.FromDateTime(day), shift.EndTime) - }; + }; - if (previousEnd != new DateTime()) - { - if (newShift.start <= previousEnd) - { - newShift.start = newShift.start.AddDays(1); - } - } - while (newShift.start >= newShift.end) - { - newShift.end = newShift.end.AddDays(1); - } - finalShiftList.Add(newShift); - previousEnd = newShift.end; - } + if (previousEnd != new DateTime()) + { + if (newShift.start <= previousEnd) + { + newShift.start = newShift.start.AddDays(1); + } + } + while (newShift.start >= newShift.end) + { + newShift.end = newShift.end.AddDays(1); + } + finalShiftList.Add(newShift); + previousEnd = newShift.end; + } - var firstShiftStart = finalShiftList.FirstOrDefault(x => x.placement == ShiftPlacement.First).start; - var lastShiftEnd = finalShiftList.OrderByDescending(x => x.placement).FirstOrDefault().end; - if (firstShiftStart.AddDays(1) < lastShiftEnd) - return op.Failed("بازه زمانی کارگاه نامعتبر است"); - var total = finalShiftList.Sum(x => (x.end - x.start).TotalHours); - if (total >= 24) - { - return op.Failed("بازه زمانی کارگاه نمیتواند بیشتر از 24 ساعت باشد"); - } - } + var firstShiftStart = finalShiftList.FirstOrDefault(x => x.placement == ShiftPlacement.First).start; + var lastShiftEnd = finalShiftList.OrderByDescending(x => x.placement).FirstOrDefault().end; + if (firstShiftStart.AddDays(1) < lastShiftEnd) + return op.Failed("بازه زمانی کارگاه نامعتبر است"); + var total = finalShiftList.Sum(x => (x.end - x.start).TotalHours); + if (total >= 24) + { + return op.Failed("بازه زمانی کارگاه نمیتواند بیشتر از 24 ساعت باشد"); + } + } - #endregion + #endregion - using var transActionScope = new TransactionScope(); - entity.ChangeWorkshopShifts(shiftCollection, workshopShiftStatus, fridayWork, holidayWork); + using var transActionScope = new TransactionScope(); + entity.ChangeWorkshopShifts(shiftCollection, workshopShiftStatus, fridayWork, holidayWork); - //op = ChangeAllGroupsShiftsWithEmployees(entity, replaceChangedGroups); - //if (!op.IsSuccedded) - //{ - // return op; - //} - _customizeWorkshopSettingsRepository.SaveChanges(); + //op = ChangeAllGroupsShiftsWithEmployees(entity, replaceChangedGroups); + //if (!op.IsSuccedded) + //{ + // return op; + //} + _customizeWorkshopSettingsRepository.SaveChanges(); - if (!(_customizeWorkshopGroupSettingsRepository.Exists(x => x.CustomizeWorkshopSettingId == entity.id && x.MainGroup)) && entity.WorkshopShiftStatus == WorkshopShiftStatus.Regular) - { - var operationResult = CreateGeneralGroup(entity); - if (!operationResult.IsSuccedded) - return operationResult; - } - transActionScope.Complete(); - return op.Succcedded(); - } - public OperationResult EditSimpleRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command) - { - OperationResult op = new(); + if (!(_customizeWorkshopGroupSettingsRepository.Exists(x => x.CustomizeWorkshopSettingId == entity.id && x.MainGroup)) && entity.WorkshopShiftStatus == WorkshopShiftStatus.Regular) + { + var operationResult = CreateGeneralGroup(entity); + if (!operationResult.IsSuccedded) + return operationResult; + } + transActionScope.Complete(); + return op.Succcedded(); + } + public OperationResult EditSimpleRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command) + { + OperationResult op = new(); - #region Validation + #region Validation - if (string.IsNullOrWhiteSpace(command.Name)) - return op.Failed("لطفا نام گروه را وارد کنید"); + if (string.IsNullOrWhiteSpace(command.Name)) + return op.Failed("لطفا نام گروه را وارد کنید"); - if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.Id)) - return op.Failed("چنین ساعت کاری برای گروه وجود ندارد"); + if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.Id)) + return op.Failed("چنین ساعت کاری برای گروه وجود ندارد"); - #endregion + #endregion - var entity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(command.Id); + var entity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(command.Id); - var workshopSettings = _customizeWorkshopSettingsRepository.Get(entity.CustomizeWorkshopSettingId); + var workshopSettings = _customizeWorkshopSettingsRepository.Get(entity.CustomizeWorkshopSettingId); - var employeeIds = command.IsShiftChanged ? entity.CustomizeWorkshopEmployeeSettingsCollection - .Select(x => x.id).ToList() : entity.CustomizeWorkshopEmployeeSettingsCollection.Where(x => !x.IsShiftChanged) - .Select(x => x.id).ToList(); - var groupSettingsShifts = new List(); - bool isChanged; - if (command.WorkshopShiftStatus == WorkshopShiftStatus.Regular) - { + var employeeIds = command.IsShiftChanged ? entity.CustomizeWorkshopEmployeeSettingsCollection + .Select(x => x.id).ToList() : entity.CustomizeWorkshopEmployeeSettingsCollection.Where(x => !x.IsShiftChanged) + .Select(x => x.id).ToList(); + var groupSettingsShifts = new List(); + ICollection rotatingShift = []; + bool isChanged; + if (command.WorkshopShiftStatus == WorkshopShiftStatus.Regular) + { - groupSettingsShifts = command.ShiftViewModel.Select(x => - { - if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) - throw new InvalidDataException(); - if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) - throw new InvalidDataException(); + groupSettingsShifts = command.ShiftViewModel.Select(x => + { + if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) + throw new InvalidDataException(); + if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) + throw new InvalidDataException(); - return new CustomizeWorkshopGroupSettingsShift(start, end, x.Placement); + return new CustomizeWorkshopGroupSettingsShift(start, end, x.Placement); - }).ToList(); - ; - if (groupSettingsShifts.All(x => workshopSettings.CustomizeWorkshopSettingsShifts.Any(y => x.Equals(y))) - && command.WorkshopShiftStatus == workshopSettings.WorkshopShiftStatus && - command.BreakTime == workshopSettings.BreakTime) - { - isChanged = false; - } - else - { - isChanged = true; - } - } + }).ToList(); + ; + if (groupSettingsShifts.All(x => workshopSettings.CustomizeWorkshopSettingsShifts.Any(y => x.Equals(y))) + && command.WorkshopShiftStatus == workshopSettings.WorkshopShiftStatus && command.FridayWork == workshopSettings.FridayWork && + command.HolidayWork == workshopSettings.HolidayWork&& + command.BreakTime == workshopSettings.BreakTime) + { + isChanged = false; + } + else + { + isChanged = true; + } + } + else if (command.WorkshopShiftStatus == WorkshopShiftStatus.Irregular) + { + var irregularShiftStartTime = new DateTime(DateOnly.MinValue, command.IrregularShift.StartTime); + + var irregularShiftEndTime = new DateTime(DateOnly.MinValue, command.IrregularShift.EndTime); + + if (irregularShiftEndTime < irregularShiftStartTime) + { + irregularShiftEndTime = irregularShiftEndTime.AddDays(1); + } + + switch (command.IrregularShift.WorkshopIrregularShifts) + { + case WorkshopIrregularShifts.TwelveThirtySix: + + if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) + { + return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); + } + break; + case WorkshopIrregularShifts.TwelveTwentyFour: + if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) + { + return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); + } + break; + } + if (command.WorkshopShiftStatus == workshopSettings.WorkshopShiftStatus && command.BreakTime == workshopSettings.BreakTime + && command.FridayWork == workshopSettings.FridayWork && + command.HolidayWork == workshopSettings.HolidayWork) + { + isChanged = false; + } + else + { + isChanged = true; + } + } else { - var irregularShiftStartTime = new DateTime(DateOnly.MinValue, command.IrregularShift.StartTime); - - var irregularShiftEndTime = new DateTime(DateOnly.MinValue, command.IrregularShift.EndTime); - - if (irregularShiftEndTime < irregularShiftStartTime) - { - irregularShiftEndTime = irregularShiftEndTime.AddDays(1); - } - - switch (command.IrregularShift.WorkshopIrregularShifts) - { - case WorkshopIrregularShifts.TwelveThirtySix: - - if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) - { - return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); - } - break; - case WorkshopIrregularShifts.TwelveTwentyFour: - if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) - { - return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); - } - break; - } - if (command.WorkshopShiftStatus == workshopSettings.WorkshopShiftStatus && command.BreakTime == workshopSettings.BreakTime) + rotatingShift = command.CustomizeRotatingShiftsViewModels + .Select(x => new CustomizeRotatingShift(TimeOnly.Parse(x.StartTime), TimeOnly.Parse(x.EndTime))).ToList(); + if (command.WorkshopShiftStatus == workshopSettings.WorkshopShiftStatus && command.BreakTime == workshopSettings.BreakTime + && command.FridayWork == workshopSettings.FridayWork && + command.HolidayWork == workshopSettings.HolidayWork) { isChanged = false; } @@ -520,119 +715,118 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo } } - var breakTime = new BreakTime(command.BreakTime.HasBreakTimeValue, command.BreakTime.BreakTimeValue); + var breakTime = new BreakTime(command.BreakTime.HasBreakTimeValue, command.BreakTime.BreakTimeValue); - entity.EditSimpleAndOverwriteOnEmployee(command.Name, employeeIds, groupSettingsShifts, command.WorkshopShiftStatus, - command.IrregularShift, breakTime, isChanged,command.HolidayWork,command.FridayWork); + entity.EditSimpleAndOverwriteOnEmployee(command.Name, employeeIds, groupSettingsShifts, command.WorkshopShiftStatus, + command.IrregularShift, breakTime, isChanged, command.FridayWork, command.HolidayWork,rotatingShift); - _customizeWorkshopGroupSettingsRepository.SaveChanges(); - return op.Succcedded(); - } - public OperationResult EditSimpleRollCallEmployeeSetting(EditCustomizeEmployeeSettings command) - { - OperationResult op = new(); + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + return op.Succcedded(); + } + public OperationResult EditSimpleRollCallEmployeeSetting(EditCustomizeEmployeeSettings command) + { + OperationResult op = new(); - var entity = _customizeWorkshopEmployeeSettingsRepository.Get(command.Id); + var entity = _customizeWorkshopEmployeeSettingsRepository.Get(command.Id); - #region Validation + #region Validation - if (entity == null) - return op.Failed("چنین پرسنلی وجود ندارد"); + if (entity == null) + return op.Failed("چنین پرسنلی وجود ندارد"); #endregion var groupSettings = _customizeWorkshopGroupSettingsRepository.GetIncludeWorkshopSettings( entity.CustomizeWorkshopGroupSettingId); - - List employeesShifts = new(); + List employeesShifts = []; + ICollection rotatingShift = []; bool isChanged = false; - - if (command.WorkshopShiftStatus == WorkshopShiftStatus.Regular) - { + { - #region Validation - if (command.ShiftViewModel.Any(x => string.IsNullOrWhiteSpace(x.StartTime) || string.IsNullOrWhiteSpace(x.EndTime))) - return op.Failed("ساعات کاری شروع و پایان نمیتواند خالی باشد"); - try - { - employeesShifts = - command.ShiftViewModel.Select(x => - { - var placement = x.Placement switch - { - ShiftPlacement.First => "اول", - ShiftPlacement.Second => "دوم", - ShiftPlacement.Third => "سوم" - }; - if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) - throw new InvalidDataException($"فرمت شروع نوبت{placement}نادرست است"); - if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) - throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); + #region Validation + if (command.ShiftViewModel.Any(x => string.IsNullOrWhiteSpace(x.StartTime) || string.IsNullOrWhiteSpace(x.EndTime))) + return op.Failed("ساعات کاری شروع و پایان نمیتواند خالی باشد"); + try + { + employeesShifts = + command.ShiftViewModel.Select(x => + { + var placement = x.Placement switch + { + ShiftPlacement.First => "اول", + ShiftPlacement.Second => "دوم", + ShiftPlacement.Third => "سوم" + }; + if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) + throw new InvalidDataException($"فرمت شروع نوبت{placement}نادرست است"); + if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) + throw new InvalidDataException($"فرمت پایان نوبت{placement}نادرست است"); - return new CustomizeWorkshopEmployeeSettingsShift(start, end, x.Placement); + return new CustomizeWorkshopEmployeeSettingsShift(start, end, x.Placement); - }).ToList(); - } - catch (InvalidDataException e) - { + }).ToList(); + } + catch (InvalidDataException e) + { - return op.Failed(e.Message); - } - if (command.WorkshopId < 1) - { - return op.Failed("خطای سیستمی"); - } - DateTime day = DateTime.Now; - DateTime previousEnd = new DateTime(); - var finalShiftList = new List<(DateTime start, DateTime end, ShiftPlacement placement)>(); + return op.Failed(e.Message); + } + if (command.WorkshopId < 1) + { + return op.Failed("خطای سیستمی"); + } + DateTime day = DateTime.Now; + DateTime previousEnd = new DateTime(); + var finalShiftList = new List<(DateTime start, DateTime end, ShiftPlacement placement)>(); - employeesShifts = employeesShifts.OrderBy(x => x.Placement).ToList(); + employeesShifts = employeesShifts.OrderBy(x => x.Placement).ToList(); - foreach (var shift in employeesShifts) - { - (DateTime start, DateTime end, ShiftPlacement placement) newShift = - new() - { - placement = shift.Placement, - start = new DateTime(DateOnly.FromDateTime(day), shift.StartTime), - end = new DateTime(DateOnly.FromDateTime(day), shift.EndTime) + foreach (var shift in employeesShifts) + { + (DateTime start, DateTime end, ShiftPlacement placement) newShift = + new() + { + placement = shift.Placement, + start = new DateTime(DateOnly.FromDateTime(day), shift.StartTime), + end = new DateTime(DateOnly.FromDateTime(day), shift.EndTime) - }; + }; - if (previousEnd != new DateTime()) - { - if (newShift.start <= previousEnd) - { - newShift.start = newShift.start.AddDays(1); - } - } - while (newShift.start >= newShift.end) - { - newShift.end = newShift.end.AddDays(1); - } - finalShiftList.Add(newShift); - previousEnd = newShift.end; - } + if (previousEnd != new DateTime()) + { + if (newShift.start <= previousEnd) + { + newShift.start = newShift.start.AddDays(1); + } + } + while (newShift.start >= newShift.end) + { + newShift.end = newShift.end.AddDays(1); + } + finalShiftList.Add(newShift); + previousEnd = newShift.end; + } - var firstShiftStart = finalShiftList.FirstOrDefault(x => x.placement == ShiftPlacement.First).start; - var lastShiftEnd = finalShiftList.OrderByDescending(x => x.placement).FirstOrDefault().end; - if (firstShiftStart.AddDays(1) < lastShiftEnd) - return op.Failed("بازه زمانی کارگاه نامعتبر است"); - var total = finalShiftList.Sum(x => (x.end - x.start).TotalHours); - if (total >= 24) - { - return op.Failed("بازه زمانی کارگاه نمیتواند بیشتر از 24 ساعت باشد"); - } + var firstShiftStart = finalShiftList.FirstOrDefault(x => x.placement == ShiftPlacement.First).start; + var lastShiftEnd = finalShiftList.OrderByDescending(x => x.placement).FirstOrDefault().end; + if (firstShiftStart.AddDays(1) < lastShiftEnd) + return op.Failed("بازه زمانی کارگاه نامعتبر است"); + var total = finalShiftList.Sum(x => (x.end - x.start).TotalHours); + if (total >= 24) + { + return op.Failed("بازه زمانی کارگاه نمیتواند بیشتر از 24 ساعت باشد"); + } #endregion + if (employeesShifts.All(x => groupSettings.CustomizeWorkshopGroupSettingsShifts.Any(y => x.Equals(y))) - && command.WorkshopShiftStatus == groupSettings.WorkshopShiftStatus && command.FridayWork == groupSettings.FridayWork && - command.HolidayWork == groupSettings.HolidayWork && command.BreakTime == groupSettings.BreakTime) - { + && command.WorkshopShiftStatus == groupSettings.WorkshopShiftStatus && command.FridayWork == groupSettings.FridayWork && + command.HolidayWork == groupSettings.HolidayWork &&command.BreakTime == groupSettings.BreakTime) + { isChanged = false; } @@ -641,122 +835,142 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo isChanged = true; } } + else if (command.WorkshopShiftStatus == WorkshopShiftStatus.Irregular) + { + var irregularShiftStartTime = new DateTime(DateOnly.MinValue, command.IrregularShift.StartTime); + + var irregularShiftEndTime = new DateTime(DateOnly.MinValue, command.IrregularShift.EndTime); + + if (irregularShiftEndTime < irregularShiftStartTime) + { + irregularShiftEndTime = irregularShiftEndTime.AddDays(1); + } + + switch (command.IrregularShift.WorkshopIrregularShifts) + { + case WorkshopIrregularShifts.TwelveThirtySix: + + if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) + { + return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); + } + break; + case WorkshopIrregularShifts.TwelveTwentyFour: + if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) + { + return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); + } + break; + } + + if (command.WorkshopShiftStatus == groupSettings.WorkshopShiftStatus && command.BreakTime == groupSettings.BreakTime && + command.IrregularShift == groupSettings.IrregularShift && command.FridayWork == groupSettings.FridayWork && + command.HolidayWork == groupSettings.HolidayWork) + { + isChanged = false; + } + else + { + isChanged = true; + } + } else { - var irregularShiftStartTime = new DateTime(DateOnly.MinValue, command.IrregularShift.StartTime); + rotatingShift = command.CustomizeRotatingShifts + .Select(x => new CustomizeRotatingShift(TimeOnly.Parse( x.StartTime), TimeOnly.Parse(x.EndTime))).ToList(); - var irregularShiftEndTime = new DateTime(DateOnly.MinValue, command.IrregularShift.EndTime); - - if (irregularShiftEndTime < irregularShiftStartTime) - { - irregularShiftEndTime = irregularShiftEndTime.AddDays(1); - } - - switch (command.IrregularShift.WorkshopIrregularShifts) - { - case WorkshopIrregularShifts.TwelveThirtySix: - - if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) - { - return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); - } - break; - case WorkshopIrregularShifts.TwelveTwentyFour: - if ((irregularShiftEndTime - irregularShiftStartTime).TotalHours > 12) - { - return op.Failed("ساعت کاری شما نمیتواند بیشتر از 12 ساعت باشد"); - } - break; - } - - if (command.WorkshopShiftStatus == groupSettings.WorkshopShiftStatus && command.BreakTime == groupSettings.BreakTime && - command.IrregularShift == groupSettings.IrregularShift && command.FridayWork == groupSettings.FridayWork && - command.HolidayWork == groupSettings.HolidayWork) + if (rotatingShift.All(x => groupSettings.CustomizeRotatingShifts.Any(y => x.Equals(y))) + && command.WorkshopShiftStatus == groupSettings.WorkshopShiftStatus && command.FridayWork == groupSettings.FridayWork && + command.HolidayWork == groupSettings.HolidayWork && command.BreakTime == groupSettings.BreakTime) { isChanged = false; } + else { isChanged = true; } + } - entity.SimpleEdit(employeesShifts, command.IrregularShift, command.WorkshopShiftStatus, command.BreakTime, isChanged,command.HolidayWork,command.FridayWork); - _customizeWorkshopGroupSettingsRepository.SaveChanges(); - return op.Succcedded(); - } + entity.SimpleEdit(employeesShifts, command.IrregularShift, command.WorkshopShiftStatus, command.BreakTime, + isChanged, command.FridayWork, command.HolidayWork,rotatingShift); - //Remove the Employee From the Group Settings - public OperationResult RemoveEmployeeFromRollCallWorkshopGroup(long employeeId, long groupId, long workshopId) - { - OperationResult op = new(); - var groupEntity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(groupId); + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + return op.Succcedded(); + } - #region Validation + //Remove the Employee From the Group Settings + public OperationResult RemoveEmployeeFromRollCallWorkshopGroup(long employeeId, long groupId, long workshopId) + { + OperationResult op = new(); + var groupEntity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(groupId); - if (groupEntity == null) - { - return op.Failed("چنین گروهی وجود ندارد"); - } + #region Validation - #endregion + if (groupEntity == null) + { + return op.Failed("چنین گروهی وجود ندارد"); + } - using var transaction = new TransactionScope(); - groupEntity.RemoveEmployeeFromGroup(employeeId); - _customizeWorkshopGroupSettingsRepository.SaveChanges(); - var res = AddEmployeeToMainGroupSettings(workshopId, employeeId); - if (res.IsSuccedded) - { - transaction.Complete(); - return op.Succcedded(); + #endregion - } + using var transaction = new TransactionScope(); + groupEntity.RemoveEmployeeFromGroup(employeeId); + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + var res = AddEmployeeToMainGroupSettings(workshopId, employeeId); + if (res.IsSuccedded) + { + transaction.Complete(); + return op.Succcedded(); - return res; + } - } + return res; - public OperationResult AddEmployeeToMainGroupSettings(long workshopId, long employeeId) - { - var op = new OperationResult(); + } - var mainGroup = _customizeWorkshopGroupSettingsRepository.GetWorkshopMainGroup(workshopId); - if(mainGroup == null) - return op.Succcedded(); + public OperationResult AddEmployeeToMainGroupSettings(long workshopId, long employeeId) + { + var op = new OperationResult(); - mainGroup.AddEmployeeSettingToGroupWithGroupData(employeeId, workshopId); + var mainGroup = _customizeWorkshopGroupSettingsRepository.GetWorkshopMainGroup(workshopId); + if (mainGroup == null) + return op.Succcedded(); + mainGroup.AddEmployeeSettingToGroupWithGroupData(employeeId, workshopId); - _customizeWorkshopEmployeeSettingsRepository.SaveChanges(); + _customizeWorkshopEmployeeSettingsRepository.SaveChanges(); - return op.Succcedded(); - } + return op.Succcedded(); + } - #endregion + #endregion - #region CustomizeCheckoutSettings - public OperationResult CreateEmployeeSettings(CreateCustomizeEmployeeSettings command) - { - OperationResult op = new(); - CustomizeWorkshopGroupSettings mainGroup = new CustomizeWorkshopGroupSettings(); + #region CustomizeCheckoutSettings + public OperationResult CreateEmployeeSettings(CreateCustomizeEmployeeSettings command) + { + OperationResult op = new(); + CustomizeWorkshopGroupSettings mainGroup = new CustomizeWorkshopGroupSettings(); - #region Validation + #region Validation - //if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.GroupId)) - // return op.Failed("چنین گروهی وجود ندارد"); + //if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.GroupId)) + // return op.Failed("چنین گروهی وجود ندارد"); - if (!_employeeRepository.Exists(x => command.EmployeeIds.Any(y => x.id == y))) - return op.Failed("چنین پرسنلی وجود ندارد"); + if (!_employeeRepository.Exists(x => command.EmployeeIds.Any(y => x.id == y))) + return op.Failed("چنین پرسنلی وجود ندارد"); - #endregion - var groupData = _customizeWorkshopGroupSettingsRepository.GetIncludeWorkshopSettings(command.GroupId); - if (groupData == null) - return op.Failed("خطای سیستمی"); - var workshopSettings = _customizeWorkshopSettingsRepository.Get(groupData.CustomizeWorkshopSettingId); - var employeesInMainGroup = new List(); + #endregion - mainGroup = _customizeWorkshopGroupSettingsRepository.GetWorkshopMainGroup(command.WorkshopId); + var groupData = _customizeWorkshopGroupSettingsRepository.GetIncludeWorkshopSettings(command.GroupId); + if (groupData == null) + return op.Failed("خطای سیستمی"); + var workshopSettings = _customizeWorkshopSettingsRepository.Get(groupData.CustomizeWorkshopSettingId); + var employeesInMainGroup = new List(); + + mainGroup = _customizeWorkshopGroupSettingsRepository.GetWorkshopMainGroup(command.WorkshopId); if (workshopSettings.WorkshopShiftStatus == WorkshopShiftStatus.Regular) { @@ -765,7 +979,7 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo employeesInMainGroup = _customizeWorkshopEmployeeSettingsRepository.GetBy(mainGroup.id); if (_customizeWorkshopEmployeeSettingsRepository.Exists(x => x.WorkshopId == command.WorkshopId - && command.EmployeeIds.Contains(x.EmployeeId) && x.CustomizeWorkshopGroupSettingId != mainGroup.id)) + && command.EmployeeIds.Contains(x.EmployeeId) && x.CustomizeWorkshopGroupSettingId != mainGroup.id)) { return op.Failed("این پرسنل در گروه دیگری وجود دارد"); } @@ -773,35 +987,35 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo else { if (_customizeWorkshopEmployeeSettingsRepository.Exists(x => x.WorkshopId == command.WorkshopId - && command.EmployeeIds.Contains(x.EmployeeId))) + && command.EmployeeIds.Contains(x.EmployeeId))) { return op.Failed("این پرسنل در گروه دیگری وجود دارد"); } } } else - { - if (mainGroup != null) - { - employeesInMainGroup = _customizeWorkshopEmployeeSettingsRepository.GetBy(mainGroup.id); + { + if (mainGroup != null) + { + employeesInMainGroup = _customizeWorkshopEmployeeSettingsRepository.GetBy(mainGroup.id); if (_customizeWorkshopEmployeeSettingsRepository.Exists(x => x.WorkshopId == command.WorkshopId - && command.EmployeeIds.Contains( - x.EmployeeId) && - x.CustomizeWorkshopGroupSettingId != - mainGroup.id)) - { - return op.Failed("این پرسنل در گروه دیگری وجود دارد"); - } - } - else - { - if (_customizeWorkshopEmployeeSettingsRepository.Exists(x => x.WorkshopId == command.WorkshopId - && command.EmployeeIds.Contains(x.EmployeeId))) + && command.EmployeeIds.Contains( + x.EmployeeId) && + x.CustomizeWorkshopGroupSettingId != + mainGroup.id)) { return op.Failed("این پرسنل در گروه دیگری وجود دارد"); } } - } + else + { + if (_customizeWorkshopEmployeeSettingsRepository.Exists(x => x.WorkshopId == command.WorkshopId + && command.EmployeeIds.Contains(x.EmployeeId))) + { + return op.Failed("این پرسنل در گروه دیگری وجود دارد"); + } + } + } @@ -809,564 +1023,546 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo .Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); - foreach (var id in command.EmployeeIds) - { - var employeeSettings = employeesInMainGroup.FirstOrDefault(x => x.EmployeeId == id); - if (employeeSettings != null) - { - _customizeWorkshopEmployeeSettingsRepository.Remove(employeeSettings.id); - } - var entity = new CustomizeWorkshopEmployeeSettings( - new(groupData.FridayPay.FridayPayType, groupData.FridayPay.Value), - new(groupData.OverTimePay.OverTimePayType, groupData.OverTimePay.Value), - new(groupData.BaseYearsPay.BaseYearsPayType, groupData.BaseYearsPay.Value, groupData.BaseYearsPay.PaymentType), - new(groupData.BonusesPay.BonusesPayType, groupData.BonusesPay.Value, groupData.BonusesPay.PaymentType), - new(groupData.NightWorkPay.NightWorkingType, groupData.NightWorkPay.Value), - new(groupData.MarriedAllowance.MarriedAllowanceType, groupData.MarriedAllowance.Value), - new(groupData.ShiftPay.ShiftType, groupData.ShiftPay.ShiftPayType, groupData.ShiftPay.Value), - new(groupData.FamilyAllowance.FamilyAllowanceType, groupData.FamilyAllowance.Value), - new(groupData.LeavePay.LeavePayType, groupData.LeavePay.Value), - new(groupData.InsuranceDeduction.InsuranceDeductionType, groupData.InsuranceDeduction.Value), - new(groupData.FineAbsenceDeduction.FineAbsenceDeductionType, groupData.FineAbsenceDeduction.Value, - groupData.FineAbsenceDeduction.FineAbsenceDayOfWeekCollection - .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList()), - new(groupData.LateToWork.LateToWorkType, - groupData.LateToWork.LateToWorkTimeFines.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) - .ToList(), groupData.LateToWork.Value), - new(groupData.EarlyExit.EarlyExitType, - groupData.EarlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) - .ToList(), groupData.EarlyExit.Value), - id, - groupData.CustomizeWorkshopSettings.WorkshopId, - groupData.Salary, - groupData.id, - shifts.Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)) - .ToList(), - groupData.FridayWork, - groupData.HolidayWork, - groupData.IrregularShift, - groupData.WorkshopShiftStatus, - new(groupData.BreakTime.HasBreakTimeValue, groupData.BreakTime.BreakTimeValue) + foreach (var id in command.EmployeeIds) + { + var employeeSettings = employeesInMainGroup.FirstOrDefault(x => x.EmployeeId == id); + if (employeeSettings != null) + { + _customizeWorkshopEmployeeSettingsRepository.Remove(employeeSettings.id); + } + var entity = new CustomizeWorkshopEmployeeSettings( + new(groupData.FridayPay.FridayPayType, groupData.FridayPay.Value), + new(groupData.OverTimePay.OverTimePayType, groupData.OverTimePay.Value), + new(groupData.BaseYearsPay.BaseYearsPayType, groupData.BaseYearsPay.Value, groupData.BaseYearsPay.PaymentType), + new(groupData.BonusesPay.BonusesPayType, groupData.BonusesPay.Value, groupData.BonusesPay.PaymentType), + new(groupData.NightWorkPay.NightWorkingType, groupData.NightWorkPay.Value), + new(groupData.MarriedAllowance.MarriedAllowanceType, groupData.MarriedAllowance.Value), + new(groupData.ShiftPay.ShiftType, groupData.ShiftPay.ShiftPayType, groupData.ShiftPay.Value), + new(groupData.FamilyAllowance.FamilyAllowanceType, groupData.FamilyAllowance.Value), + new(groupData.LeavePay.LeavePayType, groupData.LeavePay.Value), + new(groupData.InsuranceDeduction.InsuranceDeductionType, groupData.InsuranceDeduction.Value), + new(groupData.FineAbsenceDeduction.FineAbsenceDeductionType, groupData.FineAbsenceDeduction.Value, + groupData.FineAbsenceDeduction.FineAbsenceDayOfWeekCollection + .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList()), + new(groupData.LateToWork.LateToWorkType, + groupData.LateToWork.LateToWorkTimeFines.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) + .ToList(), groupData.LateToWork.Value), + new(groupData.EarlyExit.EarlyExitType, + groupData.EarlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) + .ToList(), groupData.EarlyExit.Value), + id, + groupData.CustomizeWorkshopSettings.WorkshopId, + groupData.Salary, + groupData.id, + shifts.Select(x => new CustomizeWorkshopEmployeeSettingsShift(x.StartTime, x.EndTime, x.Placement)) + .ToList(), + groupData.FridayWork, + groupData.HolidayWork, + groupData.IrregularShift, + groupData.WorkshopShiftStatus, + new(groupData.BreakTime.HasBreakTimeValue, groupData.BreakTime.BreakTimeValue), + command.LeavePermittedDays, + groupData.CustomizeRotatingShifts.Select(x=> new CustomizeRotatingShift(x.StartTime,x.EndTime)).ToList() ); - _customizeWorkshopEmployeeSettingsRepository.Create(entity); - - } - _customizeWorkshopEmployeeSettingsRepository.SaveChanges(); - - - return op.Succcedded(); - } + _customizeWorkshopEmployeeSettingsRepository.Create(entity); + + } + _customizeWorkshopEmployeeSettingsRepository.SaveChanges(); + + + return op.Succcedded(); + } - //Edit the Workshop Settings Data - public OperationResult EditWorkshopSetting(EditCustomizeWorkshopSettings command, bool replaceInAllGroups) - { - OperationResult op = new(); + //Edit the Workshop Settings Data + public OperationResult EditWorkshopSetting(EditCustomizeWorkshopSettings command, bool replaceInAllGroups) + { + OperationResult op = new(); - #region Validation + #region Validation - if (!_customizeWorkshopSettingsRepository.Exists(x => x.id == command.Id)) - return op.Failed("خطای سیستمی"); + if (!_customizeWorkshopSettingsRepository.Exists(x => x.id == command.Id)) + return op.Failed("خطای سیستمی"); - #endregion + #endregion - var entity = _customizeWorkshopSettingsRepository.Get(command.Id); - if (entity == null) - return op.Failed("چنین آیتمی وجود ندارد"); + var entity = _customizeWorkshopSettingsRepository.Get(command.Id); + if (entity == null) + return op.Failed("چنین آیتمی وجود ندارد"); - FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value); - OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value); - BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType, command.BaseYearsPay.Value, command.BaseYearsPay.PaymentType); - BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Value, command.BonusesPay.PaymentType); - NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value); - MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value); - ShiftPay shiftPay = new(ShiftType.None, ShiftPayType.None, 0); - FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value); - LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value); - InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value); - FineAbsenceDeduction fineAbsenceDeduction = new( - command.FineAbsenceDeduction.FineAbsenceDeductionType, - command.FineAbsenceDeduction.Value, - command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels?.Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() ?? new List() - ); - LateToWork lateToWork = new( - command.LateToWork.LateToWorkType, - command.LateToWork.LateToWorkTimeFinesVewModels?.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) - .ToList() ?? new List() - , command.LateToWork.Value - ); - - EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType, - command.EarlyExit.EarlyExitTimeFinesViewModels?.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)).ToList() ?? new List() - , command.EarlyExit.Value); - - - var groups = _customizeWorkshopGroupSettingsRepository.GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(entity.id); - - using (var transaction = new TransactionScope()) - { - - try - { - entity.Edit(fridayPay, overTimePay, baseYearsPay, bonusesPay, nightWorkPay, marriedAllowance, shiftPay, - familyAllowance, leavePay, insuranceDeduction, - fineAbsenceDeduction, lateToWork, earlyExit, command.FridayWork, command.HolidayWork, - command.BonusesPaysInEndOfMonth, command.LeavePermittedDays, command.BaseYearsPayInEndOfYear, - command.OverTimeThresholdMinute); - - _customizeWorkshopSettingsRepository.SaveChanges(); - var editViewModel = new EditCustomizeWorkshopGroupSettings() - { - - }; - OperationResult result = new OperationResult(); - if (entity.WorkshopShiftStatus == WorkshopShiftStatus.Regular) - { - //foreach (var group in groups) - //{ - // var employeeIds = group.CustomizeWorkshopEmployeeSettingsCollection.Select(x => x.EmployeeId) - // .ToList(); - // group.EditAndOverwriteOnEmployees(group.GroupName,group.Salary,employeeIds,group.FridayPay,group.OverTimePay,group.BaseYearsPay,group.BonusesPay, - // group.ShiftPay,group.NightWorkPay,group.MarriedAllowance,group.FamilyAllowance,group.LeavePay,group.InsuranceDeduction, - // group.FineAbsenceDeduction,); - //} - } - else - { - result = result.Succcedded(); - } - - ChangeAllSettingsGroups(entity, replaceInAllGroups); - - result.Succcedded(); - - - transaction.Complete(); - - } - catch - { - // ignored - } - } - - return string.IsNullOrWhiteSpace(op.Message) ? op.Succcedded() : op; - } - - - - //Edit the Group Settings Data - public OperationResult EditRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command) - { - OperationResult op = new(); - - #region Validation - - if (string.IsNullOrWhiteSpace(command.Name)) - return op.Failed("لطفا نام گروه را وارد کنید"); - - if (string.IsNullOrWhiteSpace(command.Salary)) - return op.Failed("لطفا حقوق مورد نظر خود را وارد کنید"); - - if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.Id)) - return op.Failed("چنین ساعت کاری برای گروه وجود ندارد"); - - #endregion - - - var entity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(command.Id); - - FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value); - OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value); - BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType, command.BaseYearsPay.Value, command.BaseYearsPay.PaymentType); - BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Value, command.BonusesPay.PaymentType); - NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value); - MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value); - //ShiftPay shiftPay = new(command.ShiftPay.ShiftType, command.ShiftPay.ShiftPayType, command.ShiftPay.Value); - ShiftPay shiftPay = new(ShiftType.None, ShiftPayType.None, 0); - FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value); - LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value); - InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value); - FineAbsenceDeduction fineAbsenceDeduction = new( - command.FineAbsenceDeduction.FineAbsenceDeductionType, command.FineAbsenceDeduction.Value, - command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels - .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() - ); - LateToWork lateToWork = new( - command.LateToWork.LateToWorkType, - command.LateToWork.LateToWorkTimeFinesVewModels.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) - .ToList(), command.LateToWork.Value - ); - EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType, - command.EarlyExit.EarlyExitTimeFinesViewModels.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) - .ToList(), command.EarlyExit.Value); - - double salary = command.Salary.MoneyToDouble(); - - - bool isChanged; - if (fridayPay == entity.FridayPay && overTimePay == entity.OverTimePay && baseYearsPay == entity.BaseYearsPay && bonusesPay == entity.BonusesPay - && shiftPay == entity.ShiftPay && nightWorkPay == entity.NightWorkPay && marriedAllowance == entity.MarriedAllowance - && familyAllowance == entity.FamilyAllowance && leavePay == entity.LeavePay && insuranceDeduction == entity.InsuranceDeduction - && fineAbsenceDeduction == entity.FineAbsenceDeduction && lateToWork == entity.LateToWork && earlyExit == entity.EarlyExit && command.FridayWork == entity.FridayWork - && command.HolidayWork == entity.HolidayWork && command.IrregularShift == entity.IrregularShift && command.WorkshopShiftStatus == entity.WorkshopShiftStatus) - { - isChanged = false; - } - else - { - isChanged = true; - } - entity.EditAndOverwriteOnEmployees(command.Name, salary, command.EmployeeIds, fridayPay, overTimePay, - baseYearsPay, bonusesPay, shiftPay, nightWorkPay, marriedAllowance, familyAllowance, - leavePay, insuranceDeduction, fineAbsenceDeduction, lateToWork, earlyExit, - command.FridayWork, command.HolidayWork, isChanged); - - _customizeWorkshopGroupSettingsRepository.SaveChanges(); - - return op.Succcedded(); - } - - //Edit the Employee settings and change the 'IsChanged' bool to true. - public OperationResult EditRollCallEmployeeSettings(EditCustomizeEmployeeSettings command) - { - OperationResult op = new(); - var entity = _customizeWorkshopEmployeeSettingsRepository.Get(command.Id); - - #region Validation - - if (entity == null) - return op.Failed("چنین پرسنلی وجود ندارد"); - - #endregion - - FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value); - OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value); - BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType, command.BaseYearsPay.Value, command.BaseYearsPay.PaymentType); - BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Value, command.BonusesPay.PaymentType); - NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value); - MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value); - // ShiftPay shiftPay = new(command.ShiftPay.ShiftType, command.ShiftPay.ShiftPayType, command.ShiftPay.Value); - ShiftPay shiftPay = new(ShiftType.None, ShiftPayType.None, 0); - FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value); - LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value); - InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value); - FineAbsenceDeduction fineAbsenceDeduction = new( - command.FineAbsenceDeduction.FineAbsenceDeductionType, command.FineAbsenceDeduction.Value, - command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels - .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() - ); - LateToWork lateToWork = new( - command.LateToWork.LateToWorkType, - command.LateToWork.LateToWorkTimeFinesVewModels.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) - .ToList(), command.LateToWork.Value - ); - EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType, - command.EarlyExit.EarlyExitTimeFinesViewModels.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) - .ToList(), command.EarlyExit.Value); - - - double salary = command.Salary.MoneyToDouble(); - - var employeesShifts = - command.ShiftViewModel.Select(x => - { - if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) - throw new InvalidDataException(); - if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) - throw new InvalidDataException(); - - return new CustomizeWorkshopEmployeeSettingsShift(start, end, x.Placement); - - }).ToList(); - - bool isChanged; - if (fridayPay == entity.FridayPay && overTimePay == entity.OverTimePay && baseYearsPay == entity.BaseYearsPay && bonusesPay == entity.BonusesPay - && shiftPay == entity.ShiftPay && nightWorkPay == entity.NightWorkPay && marriedAllowance == entity.MarriedAllowance - && familyAllowance == entity.FamilyAllowance && leavePay == entity.LeavePay && insuranceDeduction == entity.InsuranceDeduction - && fineAbsenceDeduction == entity.FineAbsenceDeduction && lateToWork == entity.LateToWork && earlyExit == entity.EarlyExit && command.FridayWork == entity.FridayWork - && command.HolidayWork == entity.HolidayWork && command.IrregularShift == entity.IrregularShift && command.WorkshopShiftStatus == entity.WorkshopShiftStatus) - { - isChanged = false; - } - else - { - isChanged = true; - } - - //change employee data manually. It changes the 'IsChanged' property to true. - entity.EditEmployees(salary, fridayPay, overTimePay, baseYearsPay, - bonusesPay, nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, - insuranceDeduction, fineAbsenceDeduction, lateToWork, earlyExit, command.FridayWork, command.HolidayWork, command.IrregularShift, - command.WorkshopShiftStatus, isChanged); - - - _customizeWorkshopEmployeeSettingsRepository.SaveChanges(); - return op.Succcedded(); - } - - public OperationResult RemoveGroupSettings(long groupSettingsId) - { - OperationResult op = new OperationResult(); - var entity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(groupSettingsId); - if (entity.CustomizeWorkshopEmployeeSettingsCollection.Any()) - return op.Failed("نمیتونید گروهی که پرسنل در آن وجود دارد را حذف کنید"); - - _customizeWorkshopGroupSettingsRepository.Remove(entity.id); - return op.Succcedded(); - } - #endregion - - #region Queries - - public List GetChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId) - { - return _customizeWorkshopGroupSettingsRepository.GetShiftChangedEmployeeSettingsByGroupSettingsId( - groupSettingsId); - } - - - // It will Get the Workshop Settings with its groups and the employees of groups. - public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth) - { - - - #region Validation - - if (workshopId is < 1) - return new(); - - #endregion - - var record = _customizeWorkshopSettingsRepository.GetWorkshopSettingsByWorkshopId(workshopId, auth); - - return record; - } - - public CustomizeWorkshopEmployeeSettingsViewModel GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(long workshopId, - long employeeId) - { - var entity = - _customizeWorkshopEmployeeSettingsRepository.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(workshopId, employeeId); - if (entity == null) - return new(); - - string employeeFullName = _employeeRepository.Get(entity.EmployeeId).FullName; - return new CustomizeWorkshopEmployeeSettingsViewModel() - { - EmployeeId = entity.EmployeeId, - Id = entity.id, - IsSettingChanged = entity.IsSettingChanged, - IsShiftChanged = entity.IsShiftChanged, - Name = entity.CustomizeWorkshopGroupSettings.GroupName, - EmployeeFullName = employeeFullName, - Salary = entity.Salary, - BreakTime = entity.BreakTime, - WorkshopShiftStatus = entity.WorkshopShiftStatus, - IrregularShift = entity.IrregularShift, - RollCallWorkshopShifts = entity.CustomizeWorkshopEmployeeSettingsShifts.Select(x => - new CustomizeWorkshopShiftViewModel() - { - EndTime = x.EndTime.ToString("HH:mm"), - Placement = x.Placement, - StartTime = x.StartTime.ToString("HH:mm") - }).ToList(), - FridayWork = entity.FridayWork, - HolidayWork = entity.HolidayWork - }; - } - - public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByEmployeeIdGroupSettingsId(long workshopId, long employeeId) - { - var entity = - _customizeWorkshopEmployeeSettingsRepository.GetByEmployeeIdGroupSettingsId(workshopId, employeeId); - if (entity == null) - return new(); - - string employeeFullName = _employeeRepository.Get(entity.EmployeeId).FullName; - return new CustomizeWorkshopEmployeeSettingsViewModel() - { - EmployeeId = entity.EmployeeId, - Id = entity.id, - IsSettingChanged = entity.IsSettingChanged, - IsShiftChanged = entity.IsShiftChanged, - Name = entity.CustomizeWorkshopGroupSettings.GroupName, - EmployeeFullName = employeeFullName, - Salary = entity.Salary, - BreakTime = entity.BreakTime, - WorkshopShiftStatus = entity.WorkshopShiftStatus, - IrregularShift = entity.IrregularShift, - RollCallWorkshopShifts = entity.CustomizeWorkshopEmployeeSettingsShifts.Select(x => - new CustomizeWorkshopShiftViewModel() - { - EndTime = x.EndTime.ToString("HH:mm"), - Placement = x.Placement, - StartTime = x.StartTime.ToString("HH:mm") - }).ToList() - }; - } - - public List GetEmployeeSettingsByGroupSettingsId(long groupSettingsId) - { - - List result = _customizeWorkshopGroupSettingsRepository.GetEmployeeSettingsByGroupSettingsId(groupSettingsId); - - if (result == null) - return new(); - - return result; - - } - - - - public List GetEmployeesWithoutGroup(long rollCallWorkshopSettingId) - { - return _customizeWorkshopGroupSettingsRepository.GetEmployeesWithoutGroup(rollCallWorkshopSettingId); - } - - public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByEmployeeIdWorkshopId(long workshopId, long employeeId) - { - return _customizeWorkshopSettingsRepository.GetEmployeeSettingsByWorkshopIdGroupSettingsId(workshopId, employeeId); - } - - public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId) - { - return _customizeWorkshopSettingsRepository.GetWorkshopSettingsByWorkshopIdForAdmin(workshopId); - - } - public EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId) - { - return _customizeWorkshopSettingsRepository.GetWorkshopSettingsDetails(workshopId); - } - - public EditCustomizeWorkshopGroupSettings GetCustomizeWorkshopGroupSettingsDetails(long groupId) - { - return _customizeWorkshopGroupSettingsRepository.GetCustomizeWorkshopGroupSettingsDetails(groupId); - } - - public EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId) - { - return _customizeWorkshopSettingsRepository.GetSimpleWorkshopSettings(workshopId); - } - - public EditCustomizeEmployeeSettings GetCustomizeEmployeeSettingsDetails(long customizeEmployeeId) - { - return _customizeWorkshopEmployeeSettingsRepository.GetCustomizeEmployeeSettingsDetails(customizeEmployeeId); - } - - public List GetEmployeesWithoutGroupByWorkshopId(long workshopId) - { - return _customizeWorkshopGroupSettingsRepository.GetEmployeesWithoutGroupByWorkshopId(workshopId); - } - - public List GetShiftChangesGroupAndEmployees(long customizeWorkshopSettingsId) - { - return _customizeWorkshopSettingsRepository.GetShiftChangesGroupAndEmployees(customizeWorkshopSettingsId); - } - - public List GetEmployeeSettingsByWorkshopId(long workshopId) - { - return _customizeWorkshopEmployeeSettingsRepository.GetEmployeeSettingsByWorkshopId(workshopId); - } - - private OperationResult CreateGeneralGroup(CustomizeWorkshopSettings entity) - { - var op = new OperationResult(); - - if (_customizeWorkshopGroupSettingsRepository.Exists(x => x.CustomizeWorkshopSettingId == entity.id && x.MainGroup)) - { - return op.Succcedded(); - } - - try - { - var shifts = - entity.CustomizeWorkshopSettingsShifts.Select(x => - new CustomizeWorkshopGroupSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); - var irregularShift = new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None); - - var customizeWorkshopGroupSettings = new CustomizeWorkshopGroupSettings().CreateMainGroup(entity.FridayPay, entity.OverTimePay, - entity.BaseYearsPay, entity.BonusesPay, entity.ShiftPay, entity.NightWorkPay, entity.MarriedAllowance, - entity.FamilyAllowance, entity.LeavePay, entity.InsuranceDeduction, entity.FineAbsenceDeduction, - entity.LateToWork, entity.EarlyExit, shifts, entity.FridayWork, entity.HolidayWork, - irregularShift, entity.WorkshopShiftStatus, entity.id,new BreakTime(false,new TimeOnly())); - - _customizeWorkshopGroupSettingsRepository.Create(customizeWorkshopGroupSettings); - - _customizeWorkshopGroupSettingsRepository.SaveChanges(); - - var employeesHasSettings = _customizeWorkshopEmployeeSettingsRepository - .GetEmployeeSettingNotInMainGroup(entity.WorkshopId).Select(x => x.EmployeeId); - - var rollCallEmployeeViewModels = _rollCallEmployeeApplication.GetByWorkshopId(entity.WorkshopId).Where(x => !employeesHasSettings.Contains(x.EmployeeId)); - - foreach (var rollCallEmployeeViewModel in rollCallEmployeeViewModels) - { - customizeWorkshopGroupSettings.AddEmployeeSettingToGroupWithGroupData( - rollCallEmployeeViewModel.EmployeeId, entity.WorkshopId); - } - _customizeWorkshopGroupSettingsRepository.SaveChanges(); - return op.Succcedded(); - } - catch (Exception e) - { - return op.Failed(e.Message); - } - - - } - - private OperationResult ChangeAllGroupsShiftsWithEmployees(CustomizeWorkshopSettings entity, bool replaceChangedGroups) - { - var op = new OperationResult(); - var groupSettings = _customizeWorkshopGroupSettingsRepository.GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(entity.id); - - if (!replaceChangedGroups) - { - groupSettings = groupSettings.Where(x => !x.IsShiftChange).ToList(); - } - - var groupShifts = entity.CustomizeWorkshopSettingsShifts - .Select(x => new CustomizeWorkshopGroupSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); - - var irregularShift = new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None); - foreach (var customizeWorkshopGroupSettings in groupSettings) - { - customizeWorkshopGroupSettings.EditSimpleAndOverwriteOnAllEmployees(customizeWorkshopGroupSettings.GroupName, - groupShifts, WorkshopShiftStatus.Regular, irregularShift, new BreakTime(false, new TimeOnly()), false); - } - _customizeWorkshopGroupSettingsRepository.SaveChanges(); - return op.Succcedded(); - } - private void ChangeAllSettingsGroups(CustomizeWorkshopSettings customizeWorkshopSettings, bool replaceInAllGroups) - { - var op = new OperationResult(); - var groupSettings = _customizeWorkshopGroupSettingsRepository.GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(customizeWorkshopSettings.id); - - if (!replaceInAllGroups) - { - groupSettings = groupSettings.Where(x => !x.IsSettingChange).ToList(); - } - - - - foreach (var groupSetting in groupSettings) - { - groupSetting.EditAndOverwriteOnAllEmployees(groupSetting.GroupName, groupSetting.Salary, - customizeWorkshopSettings.FridayPay, - customizeWorkshopSettings.OverTimePay, customizeWorkshopSettings.BaseYearsPay, - customizeWorkshopSettings.BonusesPay, customizeWorkshopSettings.ShiftPay, - customizeWorkshopSettings.NightWorkPay, customizeWorkshopSettings.MarriedAllowance, - customizeWorkshopSettings.FamilyAllowance, customizeWorkshopSettings.LeavePay, - customizeWorkshopSettings.InsuranceDeduction, customizeWorkshopSettings.FineAbsenceDeduction, - customizeWorkshopSettings.LateToWork, customizeWorkshopSettings.EarlyExit, - customizeWorkshopSettings.FridayWork, customizeWorkshopSettings.HolidayWork, replaceInAllGroups); - } - _customizeWorkshopSettingsRepository.SaveChanges(); - } - - #endregion + FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value); + OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value); + BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType, command.BaseYearsPay.Value, command.BaseYearsPay.PaymentType); + BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Value, command.BonusesPay.PaymentType); + NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value); + MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value); + ShiftPay shiftPay = new(ShiftType.None, ShiftPayType.None, 0); + FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value); + LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value); + InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value); + FineAbsenceDeduction fineAbsenceDeduction = new( + command.FineAbsenceDeduction.FineAbsenceDeductionType, + command.FineAbsenceDeduction.Value, + command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels?.Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() ?? new List() + ); + LateToWork lateToWork = new( + command.LateToWork.LateToWorkType, + command.LateToWork.LateToWorkTimeFinesVewModels?.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) + .ToList() ?? new List() + , command.LateToWork.Value + ); + + EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType, + command.EarlyExit.EarlyExitTimeFinesViewModels?.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)).ToList() ?? new List() + , command.EarlyExit.Value); + + + var groups = _customizeWorkshopGroupSettingsRepository.GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(entity.id); + + using (var transaction = new TransactionScope()) + { + + try + { + entity.Edit(fridayPay, overTimePay, baseYearsPay, bonusesPay, nightWorkPay, marriedAllowance, shiftPay, + familyAllowance, leavePay, insuranceDeduction, + fineAbsenceDeduction, lateToWork, earlyExit, command.FridayWork, command.HolidayWork, + command.BonusesPaysInEndOfMonth, command.LeavePermittedDays, command.BaseYearsPayInEndOfYear, + command.OverTimeThresholdMinute); + + _customizeWorkshopSettingsRepository.SaveChanges(); + var editViewModel = new EditCustomizeWorkshopGroupSettings() + { + + }; + OperationResult result = new OperationResult(); + if (entity.WorkshopShiftStatus == WorkshopShiftStatus.Regular) + { + //foreach (var group in groups) + //{ + // var employeeIds = group.CustomizeWorkshopEmployeeSettingsCollection.Select(x => x.EmployeeId) + // .ToList(); + // group.EditAndOverwriteOnEmployees(group.GroupName,group.Salary,employeeIds,group.FridayPay,group.OverTimePay,group.BaseYearsPay,group.BonusesPay, + // group.ShiftPay,group.NightWorkPay,group.MarriedAllowance,group.FamilyAllowance,group.LeavePay,group.InsuranceDeduction, + // group.FineAbsenceDeduction,); + //} + } + else + { + result = result.Succcedded(); + } + + ChangeAllSettingsGroups(entity, replaceInAllGroups); + + result.Succcedded(); + + + transaction.Complete(); + + } + catch + { + // ignored + } + } + + return string.IsNullOrWhiteSpace(op.Message) ? op.Succcedded() : op; + } + + + + //Edit the Group Settings Data + public OperationResult EditRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command) + { + OperationResult op = new(); + + #region Validation + + if (string.IsNullOrWhiteSpace(command.Name)) + return op.Failed("لطفا نام گروه را وارد کنید"); + + if (string.IsNullOrWhiteSpace(command.Salary)) + return op.Failed("لطفا حقوق مورد نظر خود را وارد کنید"); + + if (!_customizeWorkshopGroupSettingsRepository.Exists(x => x.id == command.Id)) + return op.Failed("چنین ساعت کاری برای گروه وجود ندارد"); + + #endregion + + + var entity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(command.Id); + + FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value); + OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value); + BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType, command.BaseYearsPay.Value, command.BaseYearsPay.PaymentType); + BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Value, command.BonusesPay.PaymentType); + NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value); + MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value); + //ShiftPay shiftPay = new(command.ShiftPay.ShiftType, command.ShiftPay.ShiftPayType, command.ShiftPay.Value); + ShiftPay shiftPay = new(ShiftType.None, ShiftPayType.None, 0); + FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value); + LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value); + InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value); + FineAbsenceDeduction fineAbsenceDeduction = new( + command.FineAbsenceDeduction.FineAbsenceDeductionType, command.FineAbsenceDeduction.Value, + command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels + .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() + ); + LateToWork lateToWork = new( + command.LateToWork.LateToWorkType, + command.LateToWork.LateToWorkTimeFinesVewModels.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) + .ToList(), command.LateToWork.Value + ); + EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType, + command.EarlyExit.EarlyExitTimeFinesViewModels.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) + .ToList(), command.EarlyExit.Value); + + double salary = command.Salary.MoneyToDouble(); + + + bool isChanged; + if (fridayPay == entity.FridayPay && overTimePay == entity.OverTimePay && baseYearsPay == entity.BaseYearsPay && bonusesPay == entity.BonusesPay + && shiftPay == entity.ShiftPay && nightWorkPay == entity.NightWorkPay && marriedAllowance == entity.MarriedAllowance + && familyAllowance == entity.FamilyAllowance && leavePay == entity.LeavePay && insuranceDeduction == entity.InsuranceDeduction + && fineAbsenceDeduction == entity.FineAbsenceDeduction && lateToWork == entity.LateToWork && earlyExit == entity.EarlyExit && command.FridayWork == entity.FridayWork + && command.HolidayWork == entity.HolidayWork && command.IrregularShift == entity.IrregularShift && command.WorkshopShiftStatus == entity.WorkshopShiftStatus) + { + isChanged = false; + } + else + { + isChanged = true; + } + entity.EditAndOverwriteOnEmployees(command.Name, salary, command.EmployeeIds, fridayPay, overTimePay, + baseYearsPay, bonusesPay, shiftPay, nightWorkPay, marriedAllowance, familyAllowance, + leavePay, insuranceDeduction, fineAbsenceDeduction, lateToWork, earlyExit, + command.FridayWork, command.HolidayWork, isChanged, command.LeavePermittedDays); + + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + + return op.Succcedded(); + } + + //Edit the Employee settings and change the 'IsChanged' bool to true. + public OperationResult EditRollCallEmployeeSettings(EditCustomizeEmployeeSettings command) + { + OperationResult op = new(); + var entity = _customizeWorkshopEmployeeSettingsRepository.Get(command.Id); + + #region Validation + + if (entity == null) + return op.Failed("چنین پرسنلی وجود ندارد"); + + #endregion + + FridayPay fridayPay = new(command.FridayPay.FridayPayType, command.FridayPay.Value); + OverTimePay overTimePay = new(command.OverTimePay.OverTimePayType, command.OverTimePay.Value); + BaseYearsPay baseYearsPay = new(command.BaseYearsPay.BaseYearsPayType, command.BaseYearsPay.Value, command.BaseYearsPay.PaymentType); + BonusesPay bonusesPay = new(command.BonusesPay.BonusesPayType, command.BonusesPay.Value, command.BonusesPay.PaymentType); + NightWorkPay nightWorkPay = new(command.NightWorkPay.NightWorkingType, command.NightWorkPay.Value); + MarriedAllowance marriedAllowance = new(command.MarriedAllowance.MarriedAllowanceType, command.MarriedAllowance.Value); + // ShiftPay shiftPay = new(command.ShiftPay.ShiftType, command.ShiftPay.ShiftPayType, command.ShiftPay.Value); + ShiftPay shiftPay = new(ShiftType.None, ShiftPayType.None, 0); + FamilyAllowance familyAllowance = new(command.FamilyAllowance.FamilyAllowanceType, command.FamilyAllowance.Value); + LeavePay leavePay = new(command.LeavePay.LeavePayType, command.LeavePay.Value); + InsuranceDeduction insuranceDeduction = new(command.InsuranceDeduction.InsuranceDeductionType, command.InsuranceDeduction.Value); + FineAbsenceDeduction fineAbsenceDeduction = new( + command.FineAbsenceDeduction.FineAbsenceDeductionType, command.FineAbsenceDeduction.Value, + command.FineAbsenceDeduction.FineAbsenceDayOfWeekViewModels + .Select(x => new FineAbsenceDayOfWeek(x.DayOfWeek)).ToList() + ); + LateToWork lateToWork = new( + command.LateToWork.LateToWorkType, + command.LateToWork.LateToWorkTimeFinesVewModels.Select(x => new LateToWorkTimeFine(x.Minute, x.FineMoney)) + .ToList(), command.LateToWork.Value + ); + EarlyExit earlyExit = new(command.EarlyExit.EarlyExitType, + command.EarlyExit.EarlyExitTimeFinesViewModels.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) + .ToList(), command.EarlyExit.Value); + + + double salary = command.Salary.MoneyToDouble(); + + var employeesShifts = + command.ShiftViewModel.Select(x => + { + if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start)) + throw new InvalidDataException(); + if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end)) + throw new InvalidDataException(); + + return new CustomizeWorkshopEmployeeSettingsShift(start, end, x.Placement); + + }).ToList(); + + bool isChanged; + if (fridayPay == entity.FridayPay && overTimePay == entity.OverTimePay && baseYearsPay == entity.BaseYearsPay && bonusesPay == entity.BonusesPay + && shiftPay == entity.ShiftPay && nightWorkPay == entity.NightWorkPay && marriedAllowance == entity.MarriedAllowance + && familyAllowance == entity.FamilyAllowance && leavePay == entity.LeavePay && insuranceDeduction == entity.InsuranceDeduction + && fineAbsenceDeduction == entity.FineAbsenceDeduction && lateToWork == entity.LateToWork && earlyExit == entity.EarlyExit && command.FridayWork == entity.FridayWork + && command.HolidayWork == entity.HolidayWork && command.IrregularShift == entity.IrregularShift && command.WorkshopShiftStatus == entity.WorkshopShiftStatus) + { + isChanged = false; + } + else + { + isChanged = true; + } + + //change employee data manually. It changes the 'IsChanged' property to true. + entity.EditEmployees(salary, fridayPay, overTimePay, baseYearsPay, + bonusesPay, nightWorkPay, marriedAllowance, shiftPay, familyAllowance, leavePay, + insuranceDeduction, fineAbsenceDeduction, lateToWork, earlyExit, command.FridayWork, command.HolidayWork, command.IrregularShift, + command.WorkshopShiftStatus, isChanged, command.LeavePermittedDays); + + + _customizeWorkshopEmployeeSettingsRepository.SaveChanges(); + return op.Succcedded(); + } + + public OperationResult RemoveGroupSettings(long groupSettingsId) + { + OperationResult op = new OperationResult(); + var entity = _customizeWorkshopGroupSettingsRepository.GetWithEmployees(groupSettingsId); + if (entity.CustomizeWorkshopEmployeeSettingsCollection.Any()) + return op.Failed("نمیتوانید گروهی که پرسنل در آن وجود دارد را حذف کنید"); + + _customizeWorkshopGroupSettingsRepository.Remove(entity.id); + return op.Succcedded(); + } + #endregion + + #region Queries + + + public List GetChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId) + { + return _customizeWorkshopGroupSettingsRepository.GetShiftChangedEmployeeSettingsByGroupSettingsId( + groupSettingsId); + } + + + // It will Get the Workshop Settings with its groups and the employees of groups. + public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth) + { + + + #region Validation + + if (workshopId is < 1) + return new(); + + #endregion + + var record = _customizeWorkshopSettingsRepository.GetWorkshopSettingsByWorkshopId(workshopId, auth); + + return record; + } + + public CustomizeWorkshopEmployeeSettingsViewModel GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(long workshopId, long employeeId) + { + var entity = + _customizeWorkshopEmployeeSettingsRepository.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(workshopId, employeeId); + if (entity == null) + return new(); + + string employeeFullName = _employeeRepository.Get(entity.EmployeeId).FullName; + return new CustomizeWorkshopEmployeeSettingsViewModel() + { + EmployeeId = entity.EmployeeId, + Id = entity.id, + IsSettingChanged = entity.IsSettingChanged, + IsShiftChanged = entity.IsShiftChanged, + Name = entity.CustomizeWorkshopGroupSettings.GroupName, + EmployeeFullName = employeeFullName, + Salary = entity.Salary, + BreakTime = entity.BreakTime, + WorkshopShiftStatus = entity.WorkshopShiftStatus, + IrregularShift = entity.IrregularShift, + RollCallWorkshopShifts = entity.CustomizeWorkshopEmployeeSettingsShifts.Select(x => + new CustomizeWorkshopShiftViewModel() + { + EndTime = x.EndTime.ToString("HH:mm"), + Placement = x.Placement, + StartTime = x.StartTime.ToString("HH:mm") + }).ToList(), + FridayWork = entity.FridayWork, + HolidayWork = entity.HolidayWork, + CustomizeRotatingShiftsViewModels = entity.CustomizeRotatingShifts.Select(x=>new CustomizeRotatingShiftsViewModel() + { + StartTime = x.StartTime.ToString("HH:mm"), + EndTime = x.EndTime.ToString("HH:mm") + }).ToList() + + }; + } + + public List GetEmployeeSettingsByGroupSettingsId(long groupSettingsId) + { + + List result = _customizeWorkshopGroupSettingsRepository.GetEmployeeSettingsByGroupSettingsId(groupSettingsId); + + if (result == null) + return new(); + + return result; + + } + + public CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId) + { + return _customizeWorkshopSettingsRepository.GetWorkshopIncludeGroupsByWorkshopId(workshopId); + } + + + public List GetEmployeesWithoutGroup(long rollCallWorkshopSettingId) + { + return _customizeWorkshopGroupSettingsRepository.GetEmployeesWithoutGroup(rollCallWorkshopSettingId); + } + public List GetEmployeesWithoutGroupByWorkshopId(long workshopId) + { + return _customizeWorkshopGroupSettingsRepository.GetEmployeesWithoutGroupByWorkshopId(workshopId); + } + + + + public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId) + { + return _customizeWorkshopSettingsRepository.GetWorkshopSettingsByWorkshopIdForAdmin(workshopId); + + } + public EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId) + { + return _customizeWorkshopSettingsRepository.GetWorkshopSettingsDetails(workshopId); + } + + public EditCustomizeWorkshopGroupSettings GetCustomizeWorkshopGroupSettingsDetails(long groupId) + { + return _customizeWorkshopGroupSettingsRepository.GetCustomizeWorkshopGroupSettingsDetails(groupId); + } + + public EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId) + { + return _customizeWorkshopSettingsRepository.GetSimpleWorkshopSettings(workshopId); + } + + public EditCustomizeEmployeeSettings GetCustomizeEmployeeSettingsDetails(long customizeEmployeeId) + { + return _customizeWorkshopEmployeeSettingsRepository.GetCustomizeEmployeeSettingsDetails(customizeEmployeeId); + } + + public List GetShiftChangesGroupAndEmployees(long customizeWorkshopSettingsId) + { + return _customizeWorkshopSettingsRepository.GetShiftChangesGroupAndEmployees(customizeWorkshopSettingsId); + } + + public List GetEmployeeSettingsByWorkshopId(long workshopId) + { + return _customizeWorkshopEmployeeSettingsRepository.GetEmployeeSettingsByWorkshopId(workshopId); + } + + private OperationResult CreateGeneralGroup(CustomizeWorkshopSettings entity) + { + var op = new OperationResult(); + + if (_customizeWorkshopGroupSettingsRepository.Exists(x => x.CustomizeWorkshopSettingId == entity.id && x.MainGroup)) + { + return op.Succcedded(); + } + + try + { + var shifts = + entity.CustomizeWorkshopSettingsShifts.Select(x => + new CustomizeWorkshopGroupSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); + var irregularShift = new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None); + + var customizeWorkshopGroupSettings = new CustomizeWorkshopGroupSettings().CreateMainGroup(entity.FridayPay, entity.OverTimePay, + entity.BaseYearsPay, entity.BonusesPay, entity.ShiftPay, entity.NightWorkPay, entity.MarriedAllowance, + entity.FamilyAllowance, entity.LeavePay, entity.InsuranceDeduction, entity.FineAbsenceDeduction, + entity.LateToWork, entity.EarlyExit, shifts, entity.FridayWork, entity.HolidayWork, + irregularShift, [] , entity.WorkshopShiftStatus, entity.id, new BreakTime(false, new TimeOnly()), entity.LeavePermittedDays); + + _customizeWorkshopGroupSettingsRepository.Create(customizeWorkshopGroupSettings); + + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + + var employeesHasSettings = _customizeWorkshopEmployeeSettingsRepository + .GetEmployeeSettingNotInMainGroup(entity.WorkshopId).Select(x => x.EmployeeId); + + var rollCallEmployeeViewModels = _rollCallEmployeeApplication.GetByWorkshopId(entity.WorkshopId).Where(x => !employeesHasSettings.Contains(x.EmployeeId)); + + foreach (var rollCallEmployeeViewModel in rollCallEmployeeViewModels) + { + customizeWorkshopGroupSettings.AddEmployeeSettingToGroupWithGroupData( + rollCallEmployeeViewModel.EmployeeId, entity.WorkshopId); + } + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + return op.Succcedded(); + } + catch (Exception e) + { + return op.Failed(e.Message); + } + + + } + + private OperationResult ChangeAllGroupsShiftsWithEmployees(CustomizeWorkshopSettings entity, bool replaceChangedGroups) + { + var op = new OperationResult(); + var groupSettings = _customizeWorkshopGroupSettingsRepository.GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(entity.id); + + if (!replaceChangedGroups) + { + groupSettings = groupSettings.Where(x => !x.IsShiftChange).ToList(); + } + + var groupShifts = entity.CustomizeWorkshopSettingsShifts + .Select(x => new CustomizeWorkshopGroupSettingsShift(x.StartTime, x.EndTime, x.Placement)).ToList(); + + + + var irregularShift = new IrregularShift(new TimeOnly(), new TimeOnly(), WorkshopIrregularShifts.None); + foreach (var customizeWorkshopGroupSettings in groupSettings) + { + customizeWorkshopGroupSettings.EditSimpleAndOverwriteOnAllEmployees(customizeWorkshopGroupSettings.GroupName, + groupShifts, entity.WorkshopShiftStatus, irregularShift, new BreakTime(false, new TimeOnly()), + false, entity.FridayWork, entity.HolidayWork, []); + } + _customizeWorkshopGroupSettingsRepository.SaveChanges(); + return op.Succcedded(); + } + private void ChangeAllSettingsGroups(CustomizeWorkshopSettings customizeWorkshopSettings, bool replaceInAllGroups) + { + var op = new OperationResult(); + var groupSettings = _customizeWorkshopGroupSettingsRepository.GetAllGroupsIncludeEmployeeSettingsByWorkshopSettingsId(customizeWorkshopSettings.id); + + if (!replaceInAllGroups) + { + groupSettings = groupSettings.Where(x => !x.IsSettingChange).ToList(); + } + + + + foreach (var groupSetting in groupSettings) + { + groupSetting.EditAndOverwriteOnAllEmployees(groupSetting.GroupName, groupSetting.Salary, + customizeWorkshopSettings.FridayPay, + customizeWorkshopSettings.OverTimePay, customizeWorkshopSettings.BaseYearsPay, + customizeWorkshopSettings.BonusesPay, customizeWorkshopSettings.ShiftPay, + customizeWorkshopSettings.NightWorkPay, customizeWorkshopSettings.MarriedAllowance, + customizeWorkshopSettings.FamilyAllowance, customizeWorkshopSettings.LeavePay, + customizeWorkshopSettings.InsuranceDeduction, customizeWorkshopSettings.FineAbsenceDeduction, + customizeWorkshopSettings.LateToWork, customizeWorkshopSettings.EarlyExit, + customizeWorkshopSettings.FridayWork, customizeWorkshopSettings.HolidayWork, replaceInAllGroups, + customizeWorkshopSettings.LeavePermittedDays); + } + _customizeWorkshopSettingsRepository.SaveChanges(); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/CustomizeWorkshopEmployeeSettingsMapping.cs b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopEmployeeSettingsMapping.cs index d55aa642..f296640c 100644 --- a/CompanyManagment.EFCore/Mapping/CustomizeWorkshopEmployeeSettingsMapping.cs +++ b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopEmployeeSettingsMapping.cs @@ -228,5 +228,7 @@ public class CustomizeWorkshopEmployeeSettingsMapping : IEntityTypeConfiguration }); + builder.OwnsMany(x => x.CustomizeRotatingShifts); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/CustomizeWorkshopGroupSettingsMapping.cs b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopGroupSettingsMapping.cs index d16c54e3..830224f7 100644 --- a/CompanyManagment.EFCore/Mapping/CustomizeWorkshopGroupSettingsMapping.cs +++ b/CompanyManagment.EFCore/Mapping/CustomizeWorkshopGroupSettingsMapping.cs @@ -227,6 +227,9 @@ public class CustomizeWorkshopGroupSettingsMapping : IEntityTypeConfiguration x.CustomizeRotatingShifts); + + builder.HasOne(x => x.CustomizeWorkshopSettings).WithMany(x => x.CustomizeWorkshopGroupSettingsCollection) .HasForeignKey(x => x.CustomizeWorkshopSettingId); diff --git a/CompanyManagment.EFCore/Migrations/20250104151137_CWS_Daltons.Designer.cs b/CompanyManagment.EFCore/Migrations/20250104151137_CWS_Daltons.Designer.cs new file mode 100644 index 00000000..f6f5a15b --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250104151137_CWS_Daltons.Designer.cs @@ -0,0 +1,7901 @@ +// +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("20250104151137_CWS_Daltons")] + partial class CWS_Daltons + { + /// + 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(1) + .HasColumnType("nvarchar(1)"); + + 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("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + 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("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("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.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("BenefitsIncludedContinuous") + .HasColumnType("float"); + + b.Property("BenefitsIncludedNonContinuous") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .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("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(1) + .HasColumnType("nvarchar(1)"); + + 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("SumOfBenefitsIncluded") + .HasColumnType("float"); + + b.Property("SumOfDailyWage") + .HasColumnType("float"); + + b.Property("SumOfEmployees") + .HasColumnType("int"); + + 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(1) + .HasColumnType("nvarchar(1)"); + + 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("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.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(1) + .HasColumnType("nvarchar(1)"); + + 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/20250104151137_CWS_Daltons.cs b/CompanyManagment.EFCore/Migrations/20250104151137_CWS_Daltons.cs new file mode 100644 index 00000000..8c72e707 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250104151137_CWS_Daltons.cs @@ -0,0 +1,89 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class CWS_Daltons : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "LeavePermittedDays", + table: "CustomizeWorkshopGroupSettings", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "LeavePermittedDays", + table: "CustomizeWorkshopEmployeeSettings", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.CreateTable( + name: "CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts", + columns: table => new + { + CustomizeWorkshopEmployeeSettingsid = table.Column(type: "bigint", nullable: false), + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + StartTime = table.Column(type: "time", nullable: false), + EndTime = table.Column(type: "time", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts", x => new { x.CustomizeWorkshopEmployeeSettingsid, x.Id }); + table.ForeignKey( + name: "FK_CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts_CustomizeWorkshopEmployeeSettings_CustomizeWorkshopEmployeeSetting~", + column: x => x.CustomizeWorkshopEmployeeSettingsid, + principalTable: "CustomizeWorkshopEmployeeSettings", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "CustomizeWorkshopGroupSettings_CustomizeRotatingShifts", + columns: table => new + { + CustomizeWorkshopGroupSettingsid = table.Column(type: "bigint", nullable: false), + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + StartTime = table.Column(type: "time", nullable: false), + EndTime = table.Column(type: "time", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_CustomizeWorkshopGroupSettings_CustomizeRotatingShifts", x => new { x.CustomizeWorkshopGroupSettingsid, x.Id }); + table.ForeignKey( + name: "FK_CustomizeWorkshopGroupSettings_CustomizeRotatingShifts_CustomizeWorkshopGroupSettings_CustomizeWorkshopGroupSettingsid", + column: x => x.CustomizeWorkshopGroupSettingsid, + principalTable: "CustomizeWorkshopGroupSettings", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + + migrationBuilder.DropTable( + name: "CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + + migrationBuilder.DropColumn( + name: "LeavePermittedDays", + table: "CustomizeWorkshopGroupSettings"); + + migrationBuilder.DropColumn( + name: "LeavePermittedDays", + table: "CustomizeWorkshopEmployeeSettings"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index 52474dde..f9d0bd31 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -989,6 +989,9 @@ namespace CompanyManagment.EFCore.Migrations b.Property("IsShiftChanged") .HasColumnType("bit"); + b.Property("LeavePermittedDays") + .HasColumnType("int"); + b.Property("Salary") .HasColumnType("float"); @@ -1041,6 +1044,9 @@ namespace CompanyManagment.EFCore.Migrations b.Property("IsShiftChange") .HasColumnType("bit"); + b.Property("LeavePermittedDays") + .HasColumnType("int"); + b.Property("MainGroup") .HasColumnType("bit"); @@ -5419,6 +5425,31 @@ namespace CompanyManagment.EFCore.Migrations .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") @@ -5794,6 +5825,8 @@ namespace CompanyManagment.EFCore.Migrations b.Navigation("BreakTime"); + b.Navigation("CustomizeRotatingShifts"); + b.Navigation("CustomizeWorkshopEmployeeSettingsShifts"); b.Navigation("CustomizeWorkshopGroupSettings"); @@ -5950,6 +5983,31 @@ namespace CompanyManagment.EFCore.Migrations .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") @@ -6325,6 +6383,8 @@ namespace CompanyManagment.EFCore.Migrations b.Navigation("BreakTime"); + b.Navigation("CustomizeRotatingShifts"); + b.Navigation("CustomizeWorkshopGroupSettingsShifts"); b.Navigation("CustomizeWorkshopSettings"); diff --git a/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs index 53d04704..40ec0411 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeWorkshopEmployeeSettingsRepository.cs @@ -74,7 +74,8 @@ public class CustomizeWorkshopEmployeeSettingsRepository(CompanyContext companyC BaseYearsPayType = entity.BaseYearsPay.BaseYearsPayType, Value = entity.BaseYearsPay.Value }, - NightWorkPay = new() { NightWorkingType = entity.NightWorkPay.NightWorkingType, Value = entity.NightWorkPay.Value }, + NightWorkPay = new() + { NightWorkingType = entity.NightWorkPay.NightWorkingType, Value = entity.NightWorkPay.Value }, LeavePay = new() { Value = entity.LeavePay.Value, LeavePayType = entity.LeavePay.LeavePayType }, MarriedAllowance = new() { @@ -90,12 +91,18 @@ public class CustomizeWorkshopEmployeeSettingsRepository(CompanyContext companyC Salary = entity.Salary.ToMoney(), ShiftViewModel = entity.CustomizeWorkshopEmployeeSettingsShifts.Select(x => new CustomizeWorkshopShiftViewModel() - { EndTime = x.EndTime.ToString("HH:mm"), Placement = x.Placement, StartTime = x.StartTime.ToString("HH:mm") }).ToList(), + { + EndTime = x.EndTime.ToString("HH:mm"), Placement = x.Placement, + StartTime = x.StartTime.ToString("HH:mm") + }).ToList(), WorkshopId = entity.WorkshopId, EmployeeFullName = _companyContext.Employees.Find(entity.EmployeeId)?.FullName, GroupId = entity.CustomizeWorkshopGroupSettingId, IsSettingChanged = entity.IsSettingChanged, - IsShiftChanged = entity.IsShiftChanged + IsShiftChanged = entity.IsShiftChanged, + LeavePermittedDays = entity.LeavePermittedDays, + CustomizeRotatingShifts = entity.CustomizeRotatingShifts.Select(x => new CustomizeRotatingShiftsViewModel() + { StartTime = x.StartTime.ToString("HH:mm"), EndTime = x.EndTime.ToString("HH:mm") }).ToList() }; @@ -107,12 +114,6 @@ public class CustomizeWorkshopEmployeeSettingsRepository(CompanyContext companyC x.WorkshopId == workshopId && x.EmployeeId == employeeId); } - public CustomizeWorkshopEmployeeSettings GetByEmployeeIdGroupSettingsId(long workshopId, long employeeId) - { - return _companyContext.CustomizeWorkshopEmployeeSettings.AsSplitQuery().Include(x => x.CustomizeWorkshopGroupSettings).FirstOrDefault(x => - x.WorkshopId == workshopId && x.EmployeeId == employeeId); - } - public void Remove(long id) { var entity = Get(id); diff --git a/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs index aa2b4d1c..a28bf9e6 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeWorkshopGroupSettingsRepository.cs @@ -7,6 +7,7 @@ using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.CustomizeWorkshopGroupSettingsAgg; using Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities; +using Company.Domain.CustomizeWorkshopSettingsAgg.Entities; using Company.Domain.RollCallEmployeeAgg; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel; @@ -72,7 +73,7 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont public List GetEmployeesWithoutGroupByWorkshopId(long workshopId) { - var workshopSettings = _companyContext.CustomizeWorkshopSettings.Where(x => x.WorkshopId == workshopId); + var workshopSettings = _companyContext.CustomizeWorkshopSettings.Where(x=>x.WorkshopId==workshopId); if (workshopSettings == null) return new(); @@ -198,7 +199,11 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont Placement = z.Placement }).ToList(), IrregularShift = x.IrregularShift, - WorkshopShiftStatus = x.WorkshopShiftStatus + WorkshopShiftStatus = x.WorkshopShiftStatus, + LeavePermittedDays = x.LeavePermittedDays, + CustomizeRotatingShiftsViewModels = x.CustomizeRotatingShifts + .Select(r=> new CustomizeRotatingShiftsViewModel(){StartTime = r.StartTime.ToString("HH:mm") , EndTime =r.EndTime.ToString("HH:mm") }).ToList() + }); return joinedList.ToList(); } @@ -277,7 +282,12 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont ShiftViewModel = entity.CustomizeWorkshopGroupSettingsShifts.Select(x => new CustomizeWorkshopShiftViewModel() { EndTime = x.EndTime.ToString("HH:mm"), Placement = x.Placement, StartTime = x.StartTime.ToString("HH:mm") }).ToList(), - + LeavePermittedDays = entity.LeavePermittedDays, + CustomizeRotatingShiftsViewModels = entity.CustomizeRotatingShifts.Select(x=> new CustomizeRotatingShiftsViewModel() + { + EndTime = x.EndTime.ToString("HH:mm"), + StartTime = x.StartTime.ToString("HH:mm") + }).ToList() }; diff --git a/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs index 250644a6..df4877dc 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeWorkshopSettingsRepository.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using _0_Framework.Application; +using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.CustomizeWorkshopSettingsAgg; using Company.Domain.CustomizeWorkshopSettingsAgg.Entities; @@ -10,6 +6,8 @@ using Company.Domain.EmployeeAgg; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewModel; using Microsoft.EntityFrameworkCore; +using System.Collections.Generic; +using System.Linq; namespace CompanyManagment.EFCore.Repository { @@ -20,7 +18,7 @@ namespace CompanyManagment.EFCore.Repository private readonly IAuthHelper _authHelper = authHelper; private readonly IEmployeeRepository _employeeRepository = employeeRepository; - public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId,AuthViewModel auth) + public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth) { var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId) .Include(x => x.CustomizeWorkshopGroupSettingsCollection) @@ -29,12 +27,12 @@ namespace CompanyManagment.EFCore.Repository if (entity == null) return new(); - var employeeIds = entity.CustomizeWorkshopGroupSettingsCollection - .SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection) - .Select(y => y.EmployeeId) - .ToList(); - var employees = _employeeRepository.GetBy(employeeIds); - return new CustomizeWorkshopSettingsViewModel() + var employeeIds = entity.CustomizeWorkshopGroupSettingsCollection + .SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection) + .Select(y => y.EmployeeId) + .ToList(); + var employees = _employeeRepository.GetBy(employeeIds); + return new CustomizeWorkshopSettingsViewModel() { Id = entity.id, Name = auth.WorkshopList.FirstOrDefault(w => w.Id == entity.WorkshopId)?.Name, @@ -76,68 +74,66 @@ namespace CompanyManagment.EFCore.Repository }).ToList(), MainGroup = x.MainGroup, - + CustomizeRotatingShiftsViewModels = x.CustomizeRotatingShifts. + Select(r=>new CustomizeRotatingShiftsViewModel(){StartTime = r.StartTime.ToString("HH:mm"), EndTime = r.EndTime.ToString("HH:mm")}).ToList() }).ToList(), }; } - public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId) - { - var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId) - .Include(x => x.CustomizeWorkshopGroupSettingsCollection) - .ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery() - .FirstOrDefault(); - if (entity == null) - return new(); - - return new CustomizeWorkshopSettingsViewModel() - { - Id = entity.id, - GroupSettings = entity.CustomizeWorkshopGroupSettingsCollection.Where(x => !x.MainGroup).Select(x => - new CustomizeWorkshopGroupSettingsViewModel() - { - Id = x.id, - GroupName = x.GroupName, - RollCallWorkshopEmployeesSettings = x.CustomizeWorkshopEmployeeSettingsCollection.Select(y => - { - var employee = _employeeRepository.Get(y.EmployeeId); - return new CustomizeWorkshopEmployeeSettingsViewModel() - { - Id = y.id, - EmployeeId = y.EmployeeId, - IsSettingChanged = y.IsSettingChanged, - IsShiftChanged = y.IsShiftChanged, - Name = $"{employee.FName} {employee.LName}", - RollCallWorkshopShifts = y.CustomizeWorkshopEmployeeSettingsShifts.Select(s => - new CustomizeWorkshopShiftViewModel() - { - EndTime = s.EndTime.ToString("HH:mm"), - Placement = s.Placement, - StartTime = s.StartTime.ToString("HH:mm") - }).ToList(), - Salary = y.Salary, - - }; - }).ToList(), - Salary = x.Salary, - RollCallWorkshopShifts = x.CustomizeWorkshopGroupSettingsShifts.Select(s => - new CustomizeWorkshopShiftViewModel() - { - EndTime = s.EndTime.ToString("HH:mm"), - Placement = s.Placement, - StartTime = s.StartTime.ToString("HH:mm") - - }).ToList(), - MainGroup = x.MainGroup - - }).ToList(), - }; - } - public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdGroupSettingsId(long workshopId, long employeeId) + public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId) { - throw new NotImplementedException(); + var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId) + .Include(x => x.CustomizeWorkshopGroupSettingsCollection) + .ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery() + .FirstOrDefault(); + if (entity == null) + return new(); + + return new CustomizeWorkshopSettingsViewModel() + { + Id = entity.id, + GroupSettings = entity.CustomizeWorkshopGroupSettingsCollection.Where(x => !x.MainGroup).Select(x => + new CustomizeWorkshopGroupSettingsViewModel() + { + Id = x.id, + GroupName = x.GroupName, + RollCallWorkshopEmployeesSettings = x.CustomizeWorkshopEmployeeSettingsCollection.Select(y => + { + var employee = _employeeRepository.Get(y.EmployeeId); + return new CustomizeWorkshopEmployeeSettingsViewModel() + { + Id = y.id, + EmployeeId = y.EmployeeId, + IsSettingChanged = y.IsSettingChanged, + IsShiftChanged = y.IsShiftChanged, + Name = $"{employee.FName} {employee.LName}", + RollCallWorkshopShifts = y.CustomizeWorkshopEmployeeSettingsShifts.Select(s => + new CustomizeWorkshopShiftViewModel() + { + EndTime = s.EndTime.ToString("HH:mm"), + Placement = s.Placement, + StartTime = s.StartTime.ToString("HH:mm") + }).ToList(), + Salary = y.Salary, + + }; + }).ToList(), + Salary = x.Salary, + RollCallWorkshopShifts = x.CustomizeWorkshopGroupSettingsShifts.Select(s => + new CustomizeWorkshopShiftViewModel() + { + EndTime = s.EndTime.ToString("HH:mm"), + Placement = s.Placement, + StartTime = s.StartTime.ToString("HH:mm") + + }).ToList(), + MainGroup = x.MainGroup + + }).ToList(), + }; } + public EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId) { @@ -228,6 +224,7 @@ namespace CompanyManagment.EFCore.Repository } + public EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId) { var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().FirstOrDefault(x => x.WorkshopId == workshopId); @@ -276,7 +273,7 @@ namespace CompanyManagment.EFCore.Repository public CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId) { var customizeWorkshopSettings = _companyContext.CustomizeWorkshopSettings - .AsSplitQuery().Where(x => x.WorkshopId == workshopId) + .AsNoTracking().AsSplitQuery().Where(x => x.WorkshopId == workshopId) .Include(x => x.CustomizeWorkshopGroupSettingsCollection) .Select(x => new CustomizeWorkshopSettingsViewModel() { @@ -296,9 +293,14 @@ namespace CompanyManagment.EFCore.Repository StartTime = s.StartTime.ToString("HH:mm"), EndTime = s.EndTime.ToString("HH:mm"), Placement = s.Placement, - }).ToList() + }).ToList(), + BreakTime = g.BreakTime, + HolidayWork = g.HolidayWork, + FridayWork = g.FridayWork + }).ToList(), + }).FirstOrDefault(); return customizeWorkshopSettings; @@ -334,5 +336,41 @@ namespace CompanyManagment.EFCore.Repository Salary = employee.Salary }; } + + #region Pooya + public List GetEmployeeSettingsWithMonthlySalary(long workshopId) + { + var query = _companyContext.CustomizeWorkshopGroupSettings.Where(x => x.MainGroup == false).Include(x => x) + .Include(x => x.CustomizeWorkshopEmployeeSettingsCollection).Where(x => x.CustomizeWorkshopEmployeeSettingsCollection.Any(y => + y.WorkshopId == workshopId)).SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection) + .Where(x => x.Salary > 0).Select(x => + new CustomizeWorkshopEmployeeSettingsViewModel() + { + WorkshopShiftStatus = x.WorkshopShiftStatus, + Salary = x.Salary, + Id = x.id, + EmployeeId = x.EmployeeId, + BreakTime = x.BreakTime + }); + return query.ToList(); + } + + public List GetEmployeeSettingsByWorkshopId(long workshopId) + { + return _companyContext.CustomizeWorkshopSettings.AsNoTracking().Where(x => x.WorkshopId == workshopId).Include(x => x.CustomizeWorkshopGroupSettingsCollection) + .ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).SelectMany(x => x.CustomizeWorkshopGroupSettingsCollection + .SelectMany(y => y.CustomizeWorkshopEmployeeSettingsCollection)) + .Select(x => new CustomizeWorkshopEmployeeSettingsViewModel + { + BreakTime = x.BreakTime, + IsShiftChanged = x.IsShiftChanged, + IsSettingChanged = x.IsSettingChanged, + EmployeeId = x.EmployeeId, + Id = x.id, + Salary = x.Salary, + GroupSettingsId = x.CustomizeWorkshopGroupSettingId + }).ToList(); + } + #endregion } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs index 83024352..9cf98366 100644 --- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs @@ -1443,13 +1443,13 @@ CreateWorkingHoursTemp command, long leavId) fridayPayAmount = percentageAmount * workedFridaysHours; break; } - case (FridayPayType.ExtraWorking): - { - var fridayOvertimeTimeSpan = CalculateFridayWorkingTimeSpanWithoutOvertime(rollCallResult, shiftSettings); - overtimePayAmount += CalculateOvertimePay(fridayOvertimeTimeSpan, customizeWorkshopEmployeeSettings.OverTimePay, dailyWage); - return overtimePayAmount; - break; - } + //case (FridayPayType.ExtraWorking): + // { + // var fridayOvertimeTimeSpan = CalculateFridayWorkingTimeSpanWithoutOvertime(rollCallResult, shiftSettings); + // overtimePayAmount += CalculateOvertimePay(fridayOvertimeTimeSpan, customizeWorkshopEmployeeSettings.OverTimePay, dailyWage); + // return overtimePayAmount; + // break; + // } default: break; } diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml.cs index ba025db6..fddae673 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml.cs @@ -11,10 +11,12 @@ using System.Text.RegularExpressions; using Microsoft.AspNetCore.Mvc.Formatters; using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; using _0_Framework.Domain.CustomizeCheckoutShared.Enums; +using _0_Framework.Infrastructure; namespace ServiceHost.Areas.Client.Pages.Company.RollCall { [Authorize] + [NeedsPermission(SubAccountPermissionHelper.GroupingOperationsPermissionCode)] public class GroupingModel : PageModel { private readonly IPasswordHasher _passwordHasher; @@ -218,6 +220,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall IrregularShift = employee.IrregularShift, FridayWork = employee.FridayWork, HolidayWork = employee.HolidayWork, + CustomizeRotatingShifts = employee.CustomizeRotatingShiftsViewModels }; return Partial("ModalEditEmployeeFromGroup", command); } diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml b/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml index a150d9c8..7f40f891 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml @@ -1,4 +1,6 @@ @page +@using _0_Framework.Application +@using Microsoft.AspNetCore.Mvc.TagHelpers @model ServiceHost.Areas.Client.Pages.Company.RollCall.IndexModel @{ @@ -183,7 +185,7 @@
-
+
@* asp-page="/Company/RollCall/Plans" *@ -
+
-
+
-
+
-
+
-
+
@@ -278,7 +280,7 @@
-
+ + + + - + + + + + +
@@ -317,7 +441,9 @@ var antiForgeryToken = $('@Html.AntiForgeryToken()').val(); var ajaxPostChangeEditEmployee = `@Url.Page("./Grouping", "ChangeEditEmployee")`; var indexShiftViewModel = Number(@iteration); + var indexShiftViewModelRS = Number(@iterationRS); + + var IsRegularWorkshop = @(Model.WorkshopShiftStatus == WorkshopShiftStatus.Regular ? 0 : Model.WorkshopShiftStatus == WorkshopShiftStatus.Irregular ? 1 : 2); - var IsRegularWorkshop = @(Model.WorkshopShiftStatus == WorkshopShiftStatus.Regular ? "true" : "false"); \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalEditGroup.cshtml b/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalEditGroup.cshtml index 23eceec3..fa054093 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalEditGroup.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalEditGroup.cshtml @@ -4,6 +4,7 @@ @{ string clientVersion = _0_Framework.Application.Version.StyleVersion; int indexShiftViewModel = 0; + int indexShiftViewModelRS = 0; } @@ -34,6 +35,9 @@
+ + + @@ -155,6 +159,133 @@

+ + + + + + + + + + + +
@@ -332,8 +463,11 @@ var ajaxEditGroupSave = `@Url.Page("./Grouping", "EditGroup")`; var indexShiftViewModel = Number(@indexShiftViewModel); + var indexShiftViewModelRS = Number(@indexShiftViewModel); + var groupId = Number(@Model.Id); - var IsRegularWorkshop = @(Model.WorkshopShiftStatus == WorkshopShiftStatus.Regular ? "true" : "false"); + var IsRegularWorkshop = @(Model.WorkshopShiftStatus == WorkshopShiftStatus.Regular ? 0 : Model.WorkshopShiftStatus == WorkshopShiftStatus.Irregular ? 1 : 2); + \ No newline at end of file diff --git a/ServiceHost/ServiceHost.csproj b/ServiceHost/ServiceHost.csproj index f242f4f8..f1508ee7 100644 --- a/ServiceHost/ServiceHost.csproj +++ b/ServiceHost/ServiceHost.csproj @@ -18,6 +18,7 @@ + @@ -25,6 +26,7 @@ + @@ -32,6 +34,7 @@ + @@ -39,6 +42,7 @@ + diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalCreateGroup.css b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalCreateGroup.css index 32cd66a2..708a82ed 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalCreateGroup.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalCreateGroup.css @@ -6,7 +6,7 @@ } .modal-dialog, .modal-content { - height: 700px; + height: 750px; } .groupWorkModal-width { @@ -24,7 +24,8 @@ background-color: #ffffff !important; } -.groupBox { +.groupBox, +.groupBoxRS { background-color: #F5F5F5; border-radius: 10px; border: 1px solid #E7E7E7; @@ -32,18 +33,21 @@ margin: 6px 3px; } -.groupBox .form-control { +.groupBox .form-control, +.groupBoxRS .form-control { background-color: #ffffff; } -.groupBox .form-control::placeholder { - color: #bfbfbf; - opacity: 1; /* Firefox */ -} + .groupBox .form-control::placeholder, + .groupBoxRS .form-control::placeholder { + color: #bfbfbf; + opacity: 1; /* Firefox */ + } -.groupBox .form-control::-ms-input-placeholder { /* Edge 12-18 */ - color: #bfbfbf; -} + .groupBox .form-control::-ms-input-placeholder, + .groupBoxRS .form-control::-ms-input-placeholder { /* Edge 12-18 */ + color: #bfbfbf; + } .groupBoxIrregular { background-color: #F5F5F5; @@ -66,7 +70,8 @@ color: #bfbfbf; } -.btnAddTimeWork { +.btnAddTimeWork, +.btnAddTimeWorkRS { display: flex; align-items: center; justify-content: center; @@ -78,7 +83,8 @@ padding: 4px 8px; } -.btnRemoveTimeWork { +.btnRemoveTimeWork, +.btnRemoveTimeWorkRS { display: flex; align-items: center; justify-content: center; diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditEmployeeFromGroup.css b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditEmployeeFromGroup.css index d1829993..29389478 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditEmployeeFromGroup.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditEmployeeFromGroup.css @@ -6,7 +6,7 @@ } .modal-dialog, .modal-content { - height: 700px; + height: 750px; } .groupWorkModal-width { @@ -24,7 +24,8 @@ background-color: #ffffff !important; } -.groupBox { +.groupBox, +.groupBoxRS { background-color: #F5F5F5; border-radius: 10px; border: 1px solid #E7E7E7; @@ -32,16 +33,19 @@ margin: 6px 3px; } - .groupBox .form-control { + .groupBox .form-control, + .groupBoxRS .form-control { background-color: #ffffff; } - .groupBox .form-control::placeholder { + .groupBox .form-control::placeholder, + .groupBoxRS .form-control::placeholder { color: #bfbfbf; opacity: 1; /* Firefox */ } - .groupBox .form-control::-ms-input-placeholder { /* Edge 12-18 */ + .groupBox .form-control::-ms-input-placeholder, + .groupBoxRS .form-control::-ms-input-placeholder { /* Edge 12-18 */ color: #bfbfbf; } @@ -66,7 +70,8 @@ color: #bfbfbf; } -.btnAddTimeWork { +.btnAddTimeWork, +.btnAddTimeWorkRS { display: flex; align-items: center; justify-content: center; @@ -78,7 +83,8 @@ padding: 4px 8px; } -.btnRemoveTimeWork { +.btnRemoveTimeWork, +.btnRemoveTimeWorkRS { display: flex; align-items: center; justify-content: center; diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditGroup.css b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditGroup.css index d1829993..29389478 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditGroup.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/css/ModalEditGroup.css @@ -6,7 +6,7 @@ } .modal-dialog, .modal-content { - height: 700px; + height: 750px; } .groupWorkModal-width { @@ -24,7 +24,8 @@ background-color: #ffffff !important; } -.groupBox { +.groupBox, +.groupBoxRS { background-color: #F5F5F5; border-radius: 10px; border: 1px solid #E7E7E7; @@ -32,16 +33,19 @@ margin: 6px 3px; } - .groupBox .form-control { + .groupBox .form-control, + .groupBoxRS .form-control { background-color: #ffffff; } - .groupBox .form-control::placeholder { + .groupBox .form-control::placeholder, + .groupBoxRS .form-control::placeholder { color: #bfbfbf; opacity: 1; /* Firefox */ } - .groupBox .form-control::-ms-input-placeholder { /* Edge 12-18 */ + .groupBox .form-control::-ms-input-placeholder, + .groupBoxRS .form-control::-ms-input-placeholder { /* Edge 12-18 */ color: #bfbfbf; } @@ -66,7 +70,8 @@ color: #bfbfbf; } -.btnAddTimeWork { +.btnAddTimeWork, +.btnAddTimeWorkRS { display: flex; align-items: center; justify-content: center; @@ -78,7 +83,8 @@ padding: 4px 8px; } -.btnRemoveTimeWork { +.btnRemoveTimeWork, +.btnRemoveTimeWorkRS { display: flex; align-items: center; justify-content: center; diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/Grouping.js b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/Grouping.js index 752d709c..effd01cd 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/Grouping.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/Grouping.js @@ -52,6 +52,8 @@ function loadDataAjax() {
`; + console.log('--------------------------------------------------------'); + console.log(item); if (item.workshopShiftStatus === 0) { item.rollCallWorkshopShifts.forEach(function (itemShifts) { @@ -63,7 +65,7 @@ function loadDataAjax() {

`; }); - } else { + } else if (item.workshopShiftStatus === 1) { html += `

`; if (item.irregularShift.workshopIrregularShifts === 1) { html += `12-24`; @@ -76,6 +78,16 @@ function loadDataAjax() { } html += `

`; + } else { + item.customizeRotatingShiftsViewModels.forEach(function (itemRotatingShifts) { + html += ` +

+ ${itemRotatingShifts.startTime} + الی + ${itemRotatingShifts.endTime} +

+ `; + }); } html += `
@@ -204,7 +216,7 @@ function loadEmployeeAjax(groupSettingId) { ${itemEmployeeShifts.endTime}

`; }); - } else { + } else if (itemEmployee.workshopShiftStatus === 1) { htmlEmployee += `

`; if (itemEmployee.irregularShift.workshopIrregularShifts === 1) { htmlEmployee += `12-24`; @@ -217,6 +229,16 @@ function loadEmployeeAjax(groupSettingId) { } htmlEmployee += `

`; + } else { + itemEmployee.customizeRotatingShiftsViewModels.forEach(function (itemRotatingShifts) { + htmlEmployee += ` +

+ ${itemRotatingShifts.startTime} + الی + ${itemRotatingShifts.endTime} +

+ `; + }); } htmlEmployee += `
diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditEmployeeGroup.js b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditEmployeeGroup.js index f1ef5722..409d1424 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditEmployeeGroup.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditEmployeeGroup.js @@ -31,6 +31,20 @@ }); }); + $(".dateTimeRS").each(function () { + let element = $(this); + + element.on('input', function () { + let value = convertPersianNumbersToEnglish(element.val()); + element.val(value); + }); + + new Cleave(this, { + time: true, + timePattern: ['h', 'm'] + }); + }); + $(".dateTimeIrregular").each(function () { let element = $(this); @@ -47,14 +61,13 @@ $("#organized").on("click", function () { $('#step_workTimeOption').show(); + $('#step_workTimeOptionRotatingShift').hide(); $('#step_workTimeOptionIrregular').hide(); if ($('#step_workTimeOption').is(':visible')) { + var currentCount = $('.groupBox').length; $('.dateTime').each(function () { - if ($(this).val() === '') { - var currentCount = $('.groupBox').length; - updateAddButtonText(currentCount); - } + updateAddButtonText(currentCount); }); } @@ -63,35 +76,79 @@ $('.dateTimeIrregular').val(''); }); - $("#disorganized").on("click", function () { + $("#rotating_shift").on("click", function () { $('#step_workTimeOption').hide(); - $('#step_workTimeOptionIrregular').show(); - }); - - if (IsRegularWorkshop) { - $("#organized").prop('checked', true); - $("#disorganized").prop('checked', false); - $('#step_workTimeOption').show(); + $('#step_workTimeOptionRotatingShift').show(); $('#step_workTimeOptionIrregular').hide(); - // این مرحله هنگام چک کردن تعداد نوبت هستش - updateAddButtonText(indexShiftViewModel); - } else { - $("#organized").prop('checked', false); - $("#disorganized").prop('checked', true); - $('#step_workTimeOption').hide(); - $('#step_workTimeOptionIrregular').show(); - if ($("#hour").val() === "0" && $("#min").val() === "00") { - $('#computeTimeText').text(''); - } else { - $('#computeTimeText').text($("#hour").val() + ' ساعت ' + $("#min").val() + ' دقیقه '); + if ($('#step_workTimeOptionRotatingShift').is(':visible')) { + var currentCountRS = $('.groupBoxRS').length; + $('.dateTimeRS').each(function () { + updateAddButtonTextRS(currentCountRS); + }); } + $('input[name="IrregularShift.WorkshopIrregularShifts"]').prop('checked', false); + $('#irregularShiftsDateTime').addClass('disable'); + $('.dateTimeIrregular').val(''); + }); - updateIrregularButton(); + $("#disorganized").on("click", function () { + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').hide(); + $('#step_workTimeOptionIrregular').show(); + }); + + + switch (IsRegularWorkshop) { + case 0: + //radio btn + $("#organized").prop('checked', true); + $("#rotating_shift").prop('checked', false); + $("#disorganized").prop('checked', false); + //form + $('#step_workTimeOption').show(); + $('#step_workTimeOptionRotatingShift').hide(); + $('#step_workTimeOptionIrregular').hide(); + // این مرحله هنگام چک کردن تعداد نوبت هستش + updateAddButtonText(indexShiftViewModel); + break; + + case 1: + //radio btn + $("#organized").prop('checked', false); + $("#rotating_shift").prop('checked', false); + $("#disorganized").prop('checked', true); + //form + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').hide(); + $('#step_workTimeOptionIrregular').show(); + // این مرحله هنگام چک کردن وضعیت نامنظم بودن ساعت هستش + if ($("#hour").val() === "0" && $("#min").val() === "00") { + $('#computeTimeText').text(''); + } else { + $('#computeTimeText').text($("#hour").val() + ' ساعت ' + $("#min").val() + ' دقیقه '); + } + updateIrregularButton(); + break; + + case 2: + //radio btn + $("#organized").prop('checked', false); + $("#rotating_shift").prop('checked', true); + $("#disorganized").prop('checked', false); + //form + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').show(); + $('#step_workTimeOptionIrregular').hide(); + // این مرحله هنگام چک کردن تعداد نوبت هستش + updateAddButtonTextRS(indexShiftViewModelRS); + break; + + default: + alert("بروز خطا هنگام لود شدن"); } - $('input[name="Command.IrregularShift.WorkshopIrregularShifts"]').on('change', function () { if ($('input[name="Command.IrregularShift.WorkshopIrregularShifts"]:checked').length > 0) { $('#irregularShiftsDateTime').removeClass('disable'); @@ -109,7 +166,13 @@ $('#BreakTime, #BreakTimeFirst').not(this).prop('checked', false); - var currentCount = $('.groupBox').length; + if ($("#organized").is(":Checked")) { + var currentCount = $('.groupBox').length; + + } else if ($("#rotating_shift").is(":Checked")) { + var currentCount = $('.groupBoxRS').length; + } + if (currentCount >= 2) { showAlert('به دلیل داشتن 2 یا 3 نوبت، امکان فعال سازی ساعت استراحت ندارید', $(this)); $(this).prop('checked', false); @@ -245,17 +308,7 @@ time: true, timePattern: ['h', 'm'] }); - - //new Cleave(`input[name="Command.ShiftViewModel[${currentCount}].StartTime"]`, { - // time: true, - // timePattern: ['h', 'm'] - //}); - - //new Cleave(`input[name="Command.ShiftViewModel[${currentCount}].EndTime"]`, { - // time: true, - // timePattern: ['h', 'm'] - //}); - + updateAddButtonText(currentCount + 1); if (currentCount + 1 === 3) { @@ -267,6 +320,127 @@ } }); + + $(".btnAddTimeWorkRS").on("click", function () { + var currentCount = $('.groupBoxRS').length; + var $inputs = $('.dateTimeRS'); + var allFilled = true; + + if ($("#BreakTime").is(':Checked') && parseInt($("#hour").val(), 10) === 3) { + showAlert('به دلیل داشتن 3 ساعت استراحت، بیشتر از نوبت اول نمیتوانید ایجاد نمائید.', $(this)); + return false; + } + + $inputs.each(function () { + if ($(this).val() === '') { + allFilled = false; + showAlert('ابتدا ساعت شروع و پایان را وارد نمائید.', $(this)); + } + }); + + if (!allFilled) { + return false; + } + + if (currentCount >= 1) { + $('#BreakTime').prop('checked', false); + $('#BreakTimeFirst').prop('checked', false); + $('#computeTimeText').text(''); + $("#hour").val("0"); + $("#min").val("00"); + $('#computeTime').addClass('disable'); + $("#TimeOnly").val(''); + } else { + $('#computeTime').removeClass('disable'); + } + + + if (currentCount < 5) { + var namePlacement = ""; + var namePlacementPersian = ""; + + switch (currentCount + 1) { + case 2: + namePlacement = "Second"; + namePlacementPersian = "دوم"; + break; + case 3: + namePlacement = "Third"; + namePlacementPersian = "سوم"; + break; + case 4: + namePlacement = "Third"; + namePlacementPersian = "چهارم"; + break; + case 5: + namePlacement = "Third"; + namePlacementPersian = "پنجم"; + break; + default: + } + + var timeWorkHtml = ` +
+
+
+
نوبت ${namePlacementPersian}
+
+
+
از
+ +
+
+
الی
+ +
+
+ +
+
+
`; + + $('#appendChildTimeWorkHtmlRS').append(timeWorkHtml); + + const newStartTimeInput = $(`input[name="Command.CustomizeRotatingShifts[${currentCount}].StartTime"]`); + const newEndTimeInput = $(`input[name="Command.CustomizeRotatingShifts[${currentCount}].EndTime"]`); + + newStartTimeInput.on('input', function () { + const value = convertPersianNumbersToEnglish($(this).val()); + $(this).val(value); + }); + + newEndTimeInput.on('input', function () { + const value = convertPersianNumbersToEnglish($(this).val()); + $(this).val(value); + }); + + new Cleave(newStartTimeInput[0], { + time: true, + timePattern: ['h', 'm'] + }); + + new Cleave(newEndTimeInput[0], { + time: true, + timePattern: ['h', 'm'] + }); + + + updateAddButtonTextRS(currentCount + 1); + + if (currentCount + 1 === 4) { + $(".btnAddTimeWorkRS").hide(); + } + + // Update Remove button enable/disable state + updateRemoveButtonsRS(); + } + }); + $(document).on("click", ".btnRemoveTimeWork", function () { $(".btnAddTimeWork").removeClass('d-none'); $(this).closest(".groupBox").remove(); @@ -281,6 +455,20 @@ // Update Remove button enable/disable state updateRemoveButtons(); }); + + $(document).on("click", ".btnRemoveTimeWorkRS", function () { + $(this).closest(".groupBoxRS").remove(); + var currentCount = $('.groupBoxRS').length; + + updateAddButtonTextRS(currentCount); + + if (currentCount < 4) { + $(".btnAddTimeWorkRS").show(); + } + + // Update Remove button enable/disable state + updateRemoveButtonsRS(); + }); }); @@ -288,9 +476,11 @@ function updateRemoveButtons() { $(".btnRemoveTimeWork").addClass("disable"); $(".btnRemoveTimeWork").last().removeClass("disable"); } +function updateRemoveButtonsRS() { + $(".btnRemoveTimeWorkRS").addClass("disable"); + $(".btnRemoveTimeWorkRS").last().removeClass("disable"); +} - -updateAddButtonText(indexShiftViewModel); function updateAddButtonText(currentCount) { if (currentCount === 1) { $('.btnAppendChildTimeWork').text('افزودن نوبت دوم'); @@ -314,6 +504,33 @@ function updateAddButtonText(currentCount) { } } +function updateAddButtonTextRS(currentCount) { + if (currentCount === 1) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت دوم'); + } else if (currentCount === 2) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت سوم'); + } else if (currentCount === 3) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت چهارم'); + } else if (currentCount === 4) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت پنجم'); + } + + let allFilled = true; + $('.dateTimeRS').each(function () { + const value = $(this).val().trim(); + if (value === "" || !timeValidCheck(value)) { + allFilled = false; + return false; + } + }); + + if (allFilled) { + $('.btn-register').removeClass('disable'); + } else { + $('.btn-register').addClass('disable'); + } +} + function updateIrregularButton() { let allFilled = true; $('.dateTimeIrregular').each(function () { @@ -332,12 +549,6 @@ function updateIrregularButton() { } //******************** برای نوشتن تاریخ ******************** - -//$(document).on('input', ".dateTime", function () { -// var value = $(this).val(); -// $(this).val(convertPersianNumbersToEnglish(value)).mask("00:00"); -//}); - $(document).on('keyup', ".dateTime", function () { let $input = $(this); let value = $input.val(); @@ -350,16 +561,32 @@ $(document).on('keyup', ".dateTime", function () { updateAddButtonText(currentCount); } else { clearAlert($input); - // validateAllTimes(); updateAddButtonText(currentCount); - - //focusNextTimeInput($input); } } else { updateAddButtonText(currentCount); } }); +$(document).on("keyup", ".dateTimeRS", function () { + let $input = $(this); + let value = $input.val(); + let lengthValue = value.length; + let currentCount = $('.groupBoxRS').length; + + if (lengthValue >= 5) { + if (!timeValidCheck(value)) { + showAlert('ساعت را به درستی وارد نمائید', $input); + updateAddButtonTextRS(currentCount); + } else { + clearAlert($input); + updateAddButtonTextRS(currentCount); + } + } else { + updateAddButtonTextRS(currentCount); + } +}); + $(document).on("keyup", ".dateTimeIrregular", function () { let $input = $(this); let value = $input.val(); @@ -482,54 +709,6 @@ function timeValidCheck(value) { const timePattern = /^([01]\d|2[0-3]):([0-5]\d)$/; // Validates HH:mm format return timePattern.test(value); } - -//function validateAllTimes() { -// let timeRanges = []; - -// $(".groupBox").each(function () { -// let startTime = $(this).find('input[name*="StartTime"]').val(); -// let endTime = $(this).find('input[name*="EndTime"]').val(); - -// if (startTime.length === 5 && endTime.length === 5) { -// let startParts = startTime.split(':'); -// let endParts = endTime.split(':'); -// let startInMinutes = parseInt(startParts[0]) * 60 + parseInt(startParts[1]); -// let endInMinutes = parseInt(endParts[0]) * 60 + parseInt(endParts[1]); -// timeRanges.push({ start: startInMinutes, end: endInMinutes }); -// } -// }); - -// // Check for conflicts and order -// for (let i = 0; i < timeRanges.length; i++) { -// for (let j = 0; j < i; j++) { -// if (timeRanges[i].start >= timeRanges[i].end) { -// showAlert('زمان شروع باید قبل از زمان پایان باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } - -// // Check for overlap with previous entries -// if (timeRanges[i].start < timeRanges[j].end && timeRanges[i].end > timeRanges[j].start) { -// showAlert('زمان‌ها نباید تداخل داشته باشند', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } -// // Check if the current start time is before the previous start time -// if (i > 0 && timeRanges[i].start < timeRanges[i - 1].start) { -// showAlert('ساعت جدید نباید کوچکتر از ساعت‌های قبلی باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } -// } -// } -//} - -//function focusNextTimeInput(currentInput) { -// var inputs = $(".dateTime"); -// var currentIndex = inputs.index(currentInput); - -// if (currentIndex !== -1 && currentIndex < inputs.length - 1) { -// $(inputs[currentIndex + 1]).focus(); -// } -//} - //******************** برای نوشتن تاریخ ******************** function ajaxEditEmployeeSaveData() { diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditGroup.js b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditGroup.js index 27dea52e..ee0312f6 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditGroup.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalEditGroup.js @@ -31,6 +31,20 @@ }); }); + $(".dateTimeRS").each(function () { + let element = $(this); + + element.on('input', function () { + let value = convertPersianNumbersToEnglish(element.val()); + element.val(value); + }); + + new Cleave(this, { + time: true, + timePattern: ['h', 'm'] + }); + }); + $(".dateTimeIrregular").each(function () { let element = $(this); @@ -52,48 +66,90 @@ $("#organized").on("click", function () { $('#step_workTimeOption').show(); + $('#step_workTimeOptionRotatingShift').hide(); $('#step_workTimeOptionIrregular').hide(); if ($('#step_workTimeOption').is(':visible')) { + var currentCount = $('.groupBox').length; $('.dateTime').each(function () { - if ($(this).val() === '') { - var currentCount = $('.groupBox').length; - updateAddButtonText(currentCount); - } + updateAddButtonText(currentCount); }); } - $('input[name="IrregularShift.WorkshopIrregularShifts"]').prop('checked', false); $('#irregularShiftsDateTime').addClass('disable'); $('.dateTimeIrregular').val(''); }); + $("#rotating_shift").on("click", function () { + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').show(); + $('#step_workTimeOptionIrregular').hide(); + + if ($('#step_workTimeOptionRotatingShift').is(':visible')) { + var currentCountRS = $('.groupBoxRS').length; + $('.dateTimeRS').each(function () { + updateAddButtonTextRS(currentCountRS); + }); + } + $('input[name="IrregularShift.WorkshopIrregularShifts"]').prop('checked', false); + $('#irregularShiftsDateTime').addClass('disable'); + $('.dateTimeIrregular').val(''); + }); + $("#disorganized").on("click", function () { $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').hide(); $('#step_workTimeOptionIrregular').show(); }); + console.log(IsRegularWorkshop); + switch (IsRegularWorkshop) { + case 0: + //radio btn + $("#organized").prop('checked', true); + $("#rotating_shift").prop('checked', false); + $("#disorganized").prop('checked', false); + //form + $('#step_workTimeOption').show(); + $('#step_workTimeOptionRotatingShift').hide(); + $('#step_workTimeOptionIrregular').hide(); + // این مرحله هنگام چک کردن تعداد نوبت هستش + updateAddButtonText(indexShiftViewModel); + break; + + case 1: + //radio btn + $("#organized").prop('checked', false); + $("#rotating_shift").prop('checked', false); + $("#disorganized").prop('checked', true); + //form + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').hide(); + $('#step_workTimeOptionIrregular').show(); + // این مرحله هنگام چک کردن وضعیت نامنظم بودن ساعت هستش + if ($("#hour").val() === "0" && $("#min").val() === "00") { + $('#computeTimeText').text(''); + } else { + $('#computeTimeText').text($("#hour").val() + ' ساعت ' + $("#min").val() + ' دقیقه '); + } + updateIrregularButton(); + break; - if (IsRegularWorkshop) { - $("#organized").prop('checked', true); - $("#disorganized").prop('checked', false); - $('#step_workTimeOption').show(); - $('#step_workTimeOptionIrregular').hide(); + case 2: + //radio btn + $("#organized").prop('checked', false); + $("#rotating_shift").prop('checked', true); + $("#disorganized").prop('checked', false); + //form + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').show(); + $('#step_workTimeOptionIrregular').hide(); + // این مرحله هنگام چک کردن تعداد نوبت هستش + updateAddButtonTextRS(indexShiftViewModelRS); + break; - // این مرحله هنگام چک کردن تعداد نوبت هستش - updateAddButtonText(indexShiftViewModel); - } else { - $("#organized").prop('checked', false); - $("#disorganized").prop('checked', true); - $('#step_workTimeOption').hide(); - $('#step_workTimeOptionIrregular').show(); - if ($("#hour").val() === "0" && $("#min").val() === "00") { - $('#computeTimeText').text(''); - } else { - $('#computeTimeText').text($("#hour").val() + ' ساعت ' + $("#min").val() + ' دقیقه '); - } - - updateIrregularButton(); + default: + alert("بروز خطا هنگام لود شدن"); } @@ -115,7 +171,13 @@ $('#BreakTime, #BreakTimeFirst').not(this).prop('checked', false); - var currentCount = $('.groupBox').length; + if ($("#organized").is(":Checked")) { + var currentCount = $('.groupBox').length; + + } else if ($("#rotating_shift").is(":Checked")) { + var currentCount = $('.groupBoxRS').length; + } + if (currentCount >= 2) { showAlert('به دلیل داشتن 2 یا 3 نوبت، امکان فعال سازی ساعت استراحت ندارید', $(this)); $(this).prop('checked', false); @@ -255,16 +317,6 @@ timePattern: ['h', 'm'] }); - //new Cleave(`input[name="ShiftViewModel[${currentCount}].StartTime"]`, { - // time: true, - // timePattern: ['h', 'm'] - //}); - - //new Cleave(`input[name="ShiftViewModel[${currentCount}].EndTime"]`, { - // time: true, - // timePattern: ['h', 'm'] - //}); - updateAddButtonText(currentCount + 1); if (currentCount + 1 === 3) { @@ -275,6 +327,127 @@ updateRemoveButtons(); } }); + + $(".btnAddTimeWorkRS").on("click", function () { + var currentCount = $('.groupBoxRS').length; + var $inputs = $('.dateTimeRS'); + var allFilled = true; + + if ($("#BreakTime").is(':Checked') && parseInt($("#hour").val(), 10) === 3) { + showAlert('به دلیل داشتن 3 ساعت استراحت، بیشتر از نوبت اول نمیتوانید ایجاد نمائید.', $(this)); + return false; + } + + $inputs.each(function () { + if ($(this).val() === '') { + allFilled = false; + showAlert('ابتدا ساعت شروع و پایان را وارد نمائید.', $(this)); + } + }); + + if (!allFilled) { + return false; + } + + if (currentCount >= 1) { + $('#BreakTime').prop('checked', false); + $('#BreakTimeFirst').prop('checked', false); + $('#computeTimeText').text(''); + $("#hour").val("0"); + $("#min").val("00"); + $('#computeTime').addClass('disable'); + $("#TimeOnly").val(''); + } else { + $('#computeTime').removeClass('disable'); + } + + + if (currentCount < 5) { + var namePlacement = ""; + var namePlacementPersian = ""; + + switch (currentCount + 1) { + case 2: + namePlacement = "Second"; + namePlacementPersian = "دوم"; + break; + case 3: + namePlacement = "Third"; + namePlacementPersian = "سوم"; + break; + case 4: + namePlacement = "Third"; + namePlacementPersian = "چهارم"; + break; + case 5: + namePlacement = "Third"; + namePlacementPersian = "پنجم"; + break; + default: + } + + var timeWorkHtml = ` +
+
+
+
نوبت ${namePlacementPersian}
+
+
+
از
+ +
+
+
الی
+ +
+
+ +
+
+
`; + + $('#appendChildTimeWorkHtmlRS').append(timeWorkHtml); + + const newStartTimeInput = $(`input[name="CustomizeRotatingShiftsViewModels[${currentCount}].StartTime"]`); + const newEndTimeInput = $(`input[name="CustomizeRotatingShiftsViewModels[${currentCount}].EndTime"]`); + + newStartTimeInput.on('input', function () { + const value = convertPersianNumbersToEnglish($(this).val()); + $(this).val(value); + }); + + newEndTimeInput.on('input', function () { + const value = convertPersianNumbersToEnglish($(this).val()); + $(this).val(value); + }); + + new Cleave(newStartTimeInput[0], { + time: true, + timePattern: ['h', 'm'] + }); + + new Cleave(newEndTimeInput[0], { + time: true, + timePattern: ['h', 'm'] + }); + + + updateAddButtonTextRS(currentCount + 1); + + if (currentCount + 1 === 4) { + $(".btnAddTimeWorkRS").hide(); + } + + // Update Remove button enable/disable state + updateRemoveButtonsRS(); + } + }); + $(document).on("click", ".btnRemoveTimeWork", function () { $(".btnAddTimeWork").removeClass('d-none'); @@ -290,12 +463,30 @@ // Update Remove button enable/disable state updateRemoveButtons(); }); + + $(document).on("click", ".btnRemoveTimeWorkRS", function () { + $(this).closest(".groupBoxRS").remove(); + var currentCount = $('.groupBoxRS').length; + + updateAddButtonTextRS(currentCount); + + if (currentCount < 4) { + $(".btnAddTimeWorkRS").show(); + } + + // Update Remove button enable/disable state + updateRemoveButtonsRS(); + }); }); function updateRemoveButtons() { $(".btnRemoveTimeWork").addClass("disable"); $(".btnRemoveTimeWork").last().removeClass("disable"); } +function updateRemoveButtonsRS() { + $(".btnRemoveTimeWorkRS").addClass("disable"); + $(".btnRemoveTimeWorkRS").last().removeClass("disable"); +} function updateAddButtonText(currentCount) { if (currentCount === 1) { @@ -320,6 +511,33 @@ function updateAddButtonText(currentCount) { } } +function updateAddButtonTextRS(currentCount) { + if (currentCount === 1) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت دوم'); + } else if (currentCount === 2) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت سوم'); + } else if (currentCount === 3) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت چهارم'); + } else if (currentCount === 4) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت پنجم'); + } + + let allFilled = true; + $('.dateTimeRS').each(function () { + const value = $(this).val().trim(); + if (value === "" || !timeValidCheck(value)) { + allFilled = false; + return false; + } + }); + + if (allFilled) { + $('.btn-register').removeClass('disable'); + } else { + $('.btn-register').addClass('disable'); + } +} + function updateIrregularButton() { let allFilled = true; $('.dateTimeIrregular').each(function () { @@ -338,12 +556,6 @@ function updateIrregularButton() { } //******************** برای نوشتن تاریخ ******************** - -//$(document).on('input', ".dateTime", function () { -// var value = $(this).val(); -// $(this).val(convertPersianNumbersToEnglish(value)).mask("00:00"); -//}); - $(document).on('keyup', ".dateTime", function () { let $input = $(this); let value = $input.val(); @@ -356,16 +568,32 @@ $(document).on('keyup', ".dateTime", function () { updateAddButtonText(currentCount); } else { clearAlert($input); - // validateAllTimes(); updateAddButtonText(currentCount); - - //focusNextTimeInput($input); } } else { updateAddButtonText(currentCount); } }); +$(document).on("keyup", ".dateTimeRS", function () { + let $input = $(this); + let value = $input.val(); + let lengthValue = value.length; + let currentCount = $('.groupBoxRS').length; + + if (lengthValue >= 5) { + if (!timeValidCheck(value)) { + showAlert('ساعت را به درستی وارد نمائید', $input); + updateAddButtonTextRS(currentCount); + } else { + clearAlert($input); + updateAddButtonTextRS(currentCount); + } + } else { + updateAddButtonTextRS(currentCount); + } +}); + $(document).on("keyup", ".dateTimeIrregular", function () { let $input = $(this); let value = $input.val(); @@ -488,54 +716,6 @@ function timeValidCheck(value) { const timePattern = /^([01]\d|2[0-3]):([0-5]\d)$/; // Validates HH:mm format return timePattern.test(value); } - -//function validateAllTimes() { -// let timeRanges = []; - -// $(".groupBox").each(function () { -// let startTime = $(this).find('input[name*="StartTime"]').val(); -// let endTime = $(this).find('input[name*="EndTime"]').val(); - -// if (startTime.length === 5 && endTime.length === 5) { -// let startParts = startTime.split(':'); -// let endParts = endTime.split(':'); -// let startInMinutes = parseInt(startParts[0]) * 60 + parseInt(startParts[1]); -// let endInMinutes = parseInt(endParts[0]) * 60 + parseInt(endParts[1]); -// timeRanges.push({ start: startInMinutes, end: endInMinutes }); -// } -// }); - -// // Check for conflicts and order -// for (let i = 0; i < timeRanges.length; i++) { -// for (let j = 0; j < i; j++) { -// if (timeRanges[i].start >= timeRanges[i].end) { -// showAlert('زمان شروع باید قبل از زمان پایان باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } - -// // Check for overlap with previous entries -// if (timeRanges[i].start < timeRanges[j].end && timeRanges[i].end > timeRanges[j].start) { -// showAlert('زمان‌ها نباید تداخل داشته باشند', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } -// // Check if the current start time is before the previous start time -// if (i > 0 && timeRanges[i].start < timeRanges[i - 1].start) { -// showAlert('ساعت جدید نباید کوچکتر از ساعت‌های قبلی باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } -// } -// } -//} - -//function focusNextTimeInput(currentInput) { -// var inputs = $(".dateTime"); -// var currentIndex = inputs.index(currentInput); -// -// if (currentIndex !== -1 && currentIndex < inputs.length - 1) { -// $(inputs[currentIndex + 1]).focus(); -// } -//} - //******************** برای نوشتن تاریخ ******************** diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/modalcreategroup.js b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/modalcreategroup.js index 046e64d5..155cd3e3 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/modalcreategroup.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/modalcreategroup.js @@ -1,12 +1,4 @@ $(document).ready(function () { - //$('.money').simpleMoneyFormat(); - //$('.money').on('input', function() { - // var value = $(this).val(); - // value = value.replace(/[^0-9]/g, ''); - // $(this).val(value); - //}); - - $(document).on("click", ".btn-cancel2", function () { $('#MainModal').modal('toggle'); }); @@ -39,6 +31,20 @@ }); }); + $(".dateTimeRS").each(function () { + let element = $(this); + + element.on('input', function () { + let value = convertPersianNumbersToEnglish(element.val()); + element.val(value); + }); + + new Cleave(this, { + time: true, + timePattern: ['h', 'm'] + }); + }); + $(".dateTimeIrregular").each(function () { let element = $(this); @@ -55,14 +61,29 @@ $("#organized").on("click", function () { $('#step_workTimeOption').show(); + $('#step_workTimeOptionRotatingShift').hide(); $('#step_workTimeOptionIrregular').hide(); if ($('#step_workTimeOption').is(':visible')) { + var currentCount = $('.groupBox').length; $('.dateTime').each(function () { - if ($(this).val() === '') { - var currentCount = $('.groupBox').length; - updateAddButtonText(currentCount); - } + updateAddButtonText(currentCount); + }); + } + $('input[name="IrregularShift.WorkshopIrregularShifts"]').prop('checked', false); + $('#irregularShiftsDateTime').addClass('disable'); + $('.dateTimeIrregular').val(''); + }); + + $("#rotating_shift").on("click", function () { + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').show(); + $('#step_workTimeOptionIrregular').hide(); + + if ($('#step_workTimeOptionRotatingShift').is(':visible')) { + var currentCountRS = $('.groupBoxRS').length; + $('.dateTimeRS').each(function () { + updateAddButtonTextRS(currentCountRS); }); } $('input[name="IrregularShift.WorkshopIrregularShifts"]').prop('checked', false); @@ -72,6 +93,7 @@ $("#disorganized").on("click", function () { $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').hide(); $('#step_workTimeOptionIrregular').show(); }); @@ -92,7 +114,13 @@ $('#BreakTime, #BreakTimeFirst').not(this).prop('checked', false); - var currentCount = $('.groupBox').length; + if ($("#organized").is(":Checked")) { + var currentCount = $('.groupBox').length; + + } else if ($("#rotating_shift").is(":Checked")) { + var currentCount = $('.groupBoxRS').length; + } + if (currentCount >= 2) { showAlert('به دلیل داشتن 2 یا 3 نوبت، امکان فعال سازی ساعت استراحت ندارید', $(this)); $(this).prop('checked', false); @@ -227,15 +255,6 @@ timePattern: ['h', 'm'] }); - //new Cleave(`input[name="ShiftViewModel[${currentCount}].StartTime"]`, { - // time: true, - // timePattern: ['h', 'm'] - //}); - - //new Cleave(`input[name="ShiftViewModel[${currentCount}].EndTime"]`, { - // time: true, - // timePattern: ['h', 'm'] - //}); updateAddButtonText(currentCount + 1); @@ -248,28 +267,127 @@ } }); - //$(document).on("keyup", ".dateTime", function () { - // let $input = $(this); - // let value = $input.val(); - // let lengthValue = value.length; - // let currentCount = $('.groupBox').length; - // if (lengthValue >= 5) { - // if (!timeValidCheck(value)) { - // showAlert('ساعت را به درستی وارد نمائید', $input); - // updateAddButtonText(currentCount); - // } else { - // clearAlert($input); - // // validateAllTimes(); - // updateAddButtonText(currentCount); - // //focusNextTimeInput($input); - // } - // } else { - // updateAddButtonText(currentCount); - // } - //}); + $(".btnAddTimeWorkRS").on("click", function () { + var currentCount = $('.groupBoxRS').length; + var $inputs = $('.dateTimeRS'); + var allFilled = true; + if ($("#BreakTime").is(':Checked') && parseInt($("#hour").val(), 10) === 3) { + showAlert('به دلیل داشتن 3 ساعت استراحت، بیشتر از نوبت اول نمیتوانید ایجاد نمائید.', $(this)); + return false; + } + + $inputs.each(function () { + if ($(this).val() === '') { + allFilled = false; + showAlert('ابتدا ساعت شروع و پایان را وارد نمائید.', $(this)); + } + }); + + if (!allFilled) { + return false; + } + + if (currentCount >= 1) { + $('#BreakTime').prop('checked', false); + $('#BreakTimeFirst').prop('checked', false); + $('#computeTimeText').text(''); + $("#hour").val("0"); + $("#min").val("00"); + $('#computeTime').addClass('disable'); + $("#TimeOnly").val(''); + } else { + $('#computeTime').removeClass('disable'); + } + + + if (currentCount < 5) { + var namePlacement = ""; + var namePlacementPersian = ""; + + switch (currentCount + 1) { + case 2: + namePlacement = "Second"; + namePlacementPersian = "دوم"; + break; + case 3: + namePlacement = "Third"; + namePlacementPersian = "سوم"; + break; + case 4: + namePlacement = "Third"; + namePlacementPersian = "چهارم"; + break; + case 5: + namePlacement = "Third"; + namePlacementPersian = "پنجم"; + break; + default: + } + + var timeWorkHtml = ` +
+
+
+
نوبت ${namePlacementPersian}
+
+
+
از
+ +
+
+
الی
+ +
+
+ +
+
+
`; + + $('#appendChildTimeWorkHtmlRS').append(timeWorkHtml); + + const newStartTimeInput = $(`input[name="CustomizeRotatingShiftsViewModels[${currentCount}].StartTime"]`); + const newEndTimeInput = $(`input[name="CustomizeRotatingShiftsViewModels[${currentCount}].EndTime"]`); + + newStartTimeInput.on('input', function () { + const value = convertPersianNumbersToEnglish($(this).val()); + $(this).val(value); + }); + + newEndTimeInput.on('input', function () { + const value = convertPersianNumbersToEnglish($(this).val()); + $(this).val(value); + }); + + new Cleave(newStartTimeInput[0], { + time: true, + timePattern: ['h', 'm'] + }); + + new Cleave(newEndTimeInput[0], { + time: true, + timePattern: ['h', 'm'] + }); + + + updateAddButtonTextRS(currentCount + 1); + + if (currentCount + 1 === 4) { + $(".btnAddTimeWorkRS").hide(); + } + + // Update Remove button enable/disable state + updateRemoveButtonsRS(); + } + }); $(document).on("click", ".btnRemoveTimeWork", function () { @@ -285,6 +403,21 @@ // Update Remove button enable/disable state updateRemoveButtons(); }); + + + $(document).on("click", ".btnRemoveTimeWorkRS", function () { + $(this).closest(".groupBoxRS").remove(); + var currentCount = $('.groupBoxRS').length; + + updateAddButtonTextRS(currentCount); + + if (currentCount < 4) { + $(".btnAddTimeWorkRS").show(); + } + + // Update Remove button enable/disable state + updateRemoveButtonsRS(); + }); }); function updateRemoveButtons() { @@ -292,6 +425,11 @@ function updateRemoveButtons() { $(".btnRemoveTimeWork").last().removeClass("disable"); } +function updateRemoveButtonsRS() { + $(".btnRemoveTimeWorkRS").addClass("disable"); + $(".btnRemoveTimeWorkRS").last().removeClass("disable"); +} + updateAddButtonText(1); function updateAddButtonText(currentCount) { @@ -317,6 +455,33 @@ function updateAddButtonText(currentCount) { } } +function updateAddButtonTextRS(currentCount) { + if (currentCount === 1) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت دوم'); + } else if (currentCount === 2) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت سوم'); + } else if (currentCount === 3) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت چهارم'); + } else if (currentCount === 4) { + $('.btnAppendChildTimeWorkRS').text('افزودن نوبت پنجم'); + } + + let allFilled = true; + $('.dateTimeRS').each(function () { + const value = $(this).val().trim(); + if (value === "" || !timeValidCheck(value)) { + allFilled = false; + return false; + } + }); + + if (allFilled) { + $('.btn-register').removeClass('disable'); + } else { + $('.btn-register').addClass('disable'); + } +} + function updateIrregularButton() { let allFilled = true; $('.dateTimeIrregular').each(function () { @@ -335,12 +500,6 @@ function updateIrregularButton() { } //******************** برای نوشتن تاریخ ******************** - -//$(document).on('input', ".dateTime", function () { -// var value = $(this).val(); -// $(this).val(convertPersianNumbersToEnglish(value)).mask("00:00"); -//}); - $(document).on("keyup", ".dateTime", function () { let $input = $(this); let value = $input.val(); @@ -353,16 +512,32 @@ $(document).on("keyup", ".dateTime", function () { updateAddButtonText(currentCount); } else { clearAlert($input); - // validateAllTimes(); updateAddButtonText(currentCount); - - //focusNextTimeInput($input); } } else { updateAddButtonText(currentCount); } }); +$(document).on("keyup", ".dateTimeRS", function () { + let $input = $(this); + let value = $input.val(); + let lengthValue = value.length; + let currentCount = $('.groupBoxRS').length; + + if (lengthValue >= 5) { + if (!timeValidCheck(value)) { + showAlert('ساعت را به درستی وارد نمائید', $input); + updateAddButtonTextRS(currentCount); + } else { + clearAlert($input); + updateAddButtonTextRS(currentCount); + } + } else { + updateAddButtonTextRS(currentCount); + } +}); + $(document).on("keyup", ".dateTimeIrregular", function () { let $input = $(this); let value = $input.val(); @@ -377,6 +552,7 @@ $(document).on("keyup", ".dateTimeIrregular", function () { } updateIrregularButton(); }); + $(document).on("keyup", "#irregularShiftsStartDateTime", function () { let $input = $(this); let value = $input.val(); @@ -485,59 +661,6 @@ function timeValidCheck(value) { const timePattern = /^([01]\d|2[0-3]):([0-5]\d)$/; // Validates HH:mm format return timePattern.test(value); } - -//function validateAllTimes() { -// let timeRanges = []; - -// $(".groupBox").each(function () { -// let startTime = $(this).find('input[name*="StartTime"]').val(); -// let endTime = $(this).find('input[name*="EndTime"]').val(); - -// if (startTime.length === 5 && endTime.length === 5) { -// let startParts = startTime.split(':'); -// let endParts = endTime.split(':'); -// let startInMinutes = parseInt(startParts[0]) * 60 + parseInt(startParts[1]); -// let endInMinutes = parseInt(endParts[0]) * 60 + parseInt(endParts[1]); -// timeRanges.push({ start: startInMinutes, end: endInMinutes }); -// } -// }); - -// // Check for conflicts and order -// for (let i = 0; i < timeRanges.length; i++) { -// for (let j = 0; j < i; j++) { -// if (timeRanges[i].start >= timeRanges[i].end) { -// showAlert('زمان شروع باید قبل از زمان پایان باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } - -// // Check for overlap with previous entries -// if (timeRanges[i].start < timeRanges[j].end && timeRanges[i].end > timeRanges[j].start) { -// showAlert('زمان‌ها نباید تداخل داشته باشند', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } - -// // Check if the current shift is earlier than the previous one -// if (i === 1 && timeRanges[i].start < timeRanges[0].end) { -// showAlert('نوبت دوم نباید قبل از نوبت اول باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } -// if (i === 2 && timeRanges[i].start < timeRanges[1].end) { -// showAlert('نوبت سوم نباید قبل از نوبت دوم باشد', $(".groupBox").eq(i).find('input[name*="StartTime"]')); -// return; -// } -// } -// } -//} - -function focusNextTimeInput(currentInput) { - var inputs = $(".dateTime"); - var currentIndex = inputs.index(currentInput); - - if (currentIndex !== -1 && currentIndex < inputs.length - 1) { - $(inputs[currentIndex + 1]).focus(); - } -} - //******************** برای نوشتن تاریخ ******************** function ajaxSaveData() {