From 89a01b594880a313e79d0e41b4b642dcd5930b1f Mon Sep 17 00:00:00 2001 From: MahanCh Date: Sat, 8 Mar 2025 21:49:34 +0330 Subject: [PATCH 01/51] add employee by client to orginal part 1 --- Company.Domain/EmployeeAgg/Employee.cs | 32 +- .../EmployeeAgg/IEmployeeRepository.cs | 13 + .../EmployeeClientTemp.cs | 31 + .../IEmployeeClientTempRepository.cs | 11 + .../IEmployeeDocumentsRepository.cs | 6 +- .../LeftWorkAgg/ILeftWorkRepository.cs | 2 + .../ILeftWorkTempRepository.cs | 17 + .../LeftWorkTempAgg/LeftWorkTemp.cs | 65 ++ .../IPersonnelCodeRepository.cs | 7 + .../IRollCallEmployeeRepository.cs | 2 + .../Employee/CreateEmployeeByClient.cs | 44 ++ .../DTO/ClientLeftWorkWorkEmployeesDto.cs | 12 + .../DTO/ClientStartedWorkEmployeesDto.cs | 18 + .../EditEmployeeInEmployeeDocument.cs | 17 + ...ployeeByNationalCodeInWorkshopViewModel.cs | 55 ++ ...EditEmployeeInEmployeeDocumentViewModel.cs | 17 + .../CreateEmployeeClientTemp.cs | 15 + .../IEmployeeClientTempApplication.cs | 26 + .../IEmployeeDocumentsApplication.cs | 6 +- .../LeftWorkTemp/CreateLeftWorkTemp.cs | 12 + .../CreateLeftWorkTempSingleViewModel.cs | 9 + .../LeftWorkTemp/ILeftWorkTempApplication.cs | 71 +++ .../LeftWorkTemp/LeftWorkTempType.cs | 14 + .../CustomizeWorkshopSettingsApplication.cs | 7 +- .../EmployeeAplication.cs | 586 +++++++++++++++++- .../EmployeeClientTempApplication.cs | 32 + .../EmployeeDocumentsApplication.cs | 13 +- .../LeftWorkTempApplication.cs | 215 +++++++ .../RollCallEmployeeStatusApplication.cs | 25 +- CompanyManagment.EFCore/CompanyContext.cs | 5 + .../Repository/EmployeeDocumentsRepository.cs | 169 +++-- .../Repository/EmployeeRepository .cs | 91 +++ .../Repository/LeftWorkRepository.cs | 8 + .../Repository/PersonnelCodeRepository.cs | 8 + .../Repository/RollCallEmployeeRepository.cs | 92 +-- .../IAdminWorkFlowApplication.cs | 38 +- .../WorkFlow.Application.Contracts.csproj | 1 + .../AdminWorkFlowApplication.cs | 79 ++- .../IWorkFlowEmployeeDocumentsACL.cs | 23 +- 39 files changed, 1698 insertions(+), 196 deletions(-) create mode 100644 Company.Domain/EmployeeClientTempAgg/EmployeeClientTemp.cs create mode 100644 Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs create mode 100644 Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs create mode 100644 Company.Domain/LeftWorkTempAgg/LeftWorkTemp.cs create mode 100644 CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs create mode 100644 CompanyManagment.App.Contracts/Employee/DTO/ClientLeftWorkWorkEmployeesDto.cs create mode 100644 CompanyManagment.App.Contracts/Employee/DTO/ClientStartedWorkEmployeesDto.cs create mode 100644 CompanyManagment.App.Contracts/Employee/EditEmployeeInEmployeeDocument.cs create mode 100644 CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs create mode 100644 CompanyManagment.App.Contracts/Employee/GetEditEmployeeInEmployeeDocumentViewModel.cs create mode 100644 CompanyManagment.App.Contracts/EmployeeClientTemp/CreateEmployeeClientTemp.cs create mode 100644 CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs create mode 100644 CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTemp.cs create mode 100644 CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTempSingleViewModel.cs create mode 100644 CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs create mode 100644 CompanyManagment.App.Contracts/LeftWorkTemp/LeftWorkTempType.cs create mode 100644 CompanyManagment.Application/EmployeeClientTempApplication.cs create mode 100644 CompanyManagment.Application/LeftWorkTempApplication.cs diff --git a/Company.Domain/EmployeeAgg/Employee.cs b/Company.Domain/EmployeeAgg/Employee.cs index cd3bfc05..dc45b29b 100644 --- a/Company.Domain/EmployeeAgg/Employee.cs +++ b/Company.Domain/EmployeeAgg/Employee.cs @@ -21,11 +21,13 @@ public class Employee : EntityBase public Employee(string fName, string lName, string fatherName, DateTime dateOfBirth, DateTime dateOfIssue, string placeOfIssue, string nationalCode, string idNumber, string gender, string nationality, - string phone, string address, string state, string city, - string maritalStatus, string militaryService, string levelOfEducation, string fieldOfStudy, - string bankCardNumber, string bankBranch, string insuranceCode, string insuranceHistoryByYear, - string insuranceHistoryByMonth, string numberOfChildren,string officePhone, - string mclsUserName, string mclsPassword, string eserviceUserName, string eservicePassword, string taxOfficeUserName, string taxOfficepassword, string sanaUserName, string sanaPassword) + string phone = null, string address = null, string state = null, string city = null, + string maritalStatus = null, string militaryService = null, string levelOfEducation = null, string fieldOfStudy = null, + string bankCardNumber = null, string bankBranch = null, string insuranceCode = null, string insuranceHistoryByYear = null, + string insuranceHistoryByMonth = null, string numberOfChildren = null, string officePhone = null, + string mclsUserName = null, string mclsPassword = null, + string eserviceUserName = null, string eservicePassword = null, + string taxOfficeUserName = null, string taxOfficepassword = null, string sanaUserName = null, string sanaPassword = null) { FName = fName; LName = lName; @@ -135,7 +137,16 @@ public class Employee : EntityBase #region Pooya public List EmployeeDocuments { get; set; } public EmployeeDocumentsAdminSelection EmployeeDocumentsAdminSelection { get; set; } - public List EmployeeBankInformationList { get; set; } + public List EmployeeBankInformationList { get; set; } + #endregion + + #region Mahan + + /// + /// آیا پرسنل احراز هویت شده است + /// + public bool IsAuthorized { get; set; } + #endregion //public List Checkouts { get; set; } @@ -211,4 +222,13 @@ public class Employee : EntityBase this.IsActive = false; this.IsActiveString = "false"; } + + #region Mahan + + public void Authorized() + { + IsAuthorized = true; + } + + #endregion } \ No newline at end of file diff --git a/Company.Domain/EmployeeAgg/IEmployeeRepository.cs b/Company.Domain/EmployeeAgg/IEmployeeRepository.cs index eb58c559..aabcd453 100644 --- a/Company.Domain/EmployeeAgg/IEmployeeRepository.cs +++ b/Company.Domain/EmployeeAgg/IEmployeeRepository.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using _0_Framework.Domain; using Company.Domain.EmployeeInsuranceRecordAgg; using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.Employee.DTO; using CompanyManagment.App.Contracts.EmployeeInsuranceRecord; namespace Company.Domain.EmployeeAgg; @@ -47,6 +48,14 @@ public interface IEmployeeRepository : IRepository Employee GetByNationalCode(string nationalCode); List GetBy(List employeeIds); + Employee GetByNationalCodeIgnoreQueryFilter(string nationalCode); + Task> GetClientEmployeesStartWork(long workshopId); + Task> GetEmployeesForLeftWorkTemp(long workshopId); + + Employee GetIgnoreQueryFilter(long id); + + + #endregion #region Pooya @@ -55,6 +64,10 @@ public interface IEmployeeRepository : IRepository List GetWorkingEmployeesByWorkshopId(long workshopId); List<(long Id, string Name)> SimpleGetRangeByIds(IEnumerable newEmployeeIds); + Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, + long workshopId); + #endregion + } \ No newline at end of file diff --git a/Company.Domain/EmployeeClientTempAgg/EmployeeClientTemp.cs b/Company.Domain/EmployeeClientTempAgg/EmployeeClientTemp.cs new file mode 100644 index 00000000..d2e5c400 --- /dev/null +++ b/Company.Domain/EmployeeClientTempAgg/EmployeeClientTemp.cs @@ -0,0 +1,31 @@ +using System; +using _0_Framework.Domain; +using Company.Domain.EmployeeAgg; + +namespace Company.Domain.EmployeeClientTempAgg; + +public class EmployeeClientTemp : EntityBase +{ + public EmployeeClientTemp(long workshopId, DateTime startWorkDate, long employeeId, string maritalStatus, + string employeeFullName) + { + StartWorkDate = startWorkDate; + WorkshopId = workshopId; + EmployeeId = employeeId; + MaritalStatus = maritalStatus; + EmployeeFullName = employeeFullName; + } + + public string EmployeeFullName { get; private set; } + public long WorkshopId { get; private set; } + public long EmployeeId { get; private set; } + public DateTime StartWorkDate { get; private set; } + + public string MaritalStatus { get; private set; } + + public void Edit(string maritalStatus) + { + + MaritalStatus = maritalStatus; + } +} \ No newline at end of file diff --git a/Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs b/Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs new file mode 100644 index 00000000..34d4477d --- /dev/null +++ b/Company.Domain/EmployeeClientTempAgg/IEmployeeClientTempRepository.cs @@ -0,0 +1,11 @@ +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.EmployeeClientTemp; + +namespace Company.Domain.EmployeeClientTempAgg; + +public interface IEmployeeClientTempRepository : IRepository +{ + EmployeeClientTemp GetByEmployeeIdAndWorkshopId(long employeeId, long commandWorkshopId); + EmployeeClientTempGetDetailsViewModel GetDetails(long employeeId, long workshopId); + void Remove(EmployeeClientTemp entity); +} \ No newline at end of file diff --git a/Company.Domain/EmployeeDocumentsAgg/IEmployeeDocumentsRepository.cs b/Company.Domain/EmployeeDocumentsAgg/IEmployeeDocumentsRepository.cs index e77b749c..edd7afaa 100644 --- a/Company.Domain/EmployeeDocumentsAgg/IEmployeeDocumentsRepository.cs +++ b/Company.Domain/EmployeeDocumentsAgg/IEmployeeDocumentsRepository.cs @@ -26,9 +26,9 @@ namespace Company.Domain.EmployeeDocumentsAgg List GetWorkshopsWithDocumentsAwaitingReviewForAdminWorkFlow(List workshops); List GetByWorkshopIdWithItemsForAdminWorkFlow(long workshopId); - int GetCheckerWorkFlowCount(); - //int GetAdminWorkFlowCountForNewEmployees(List workshopIds); - int GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds); + Task GetCheckerWorkFlowCount(); + Task GetAdminWorkFlowCountForNewEmployees(List workshopIds); + Task GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds); List GetDocumentsAwaitingReviewByWorkshopIdForCheckerWorkFlow(long workshopId); } } diff --git a/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs b/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs index 4a1f37eb..c9cc1026 100644 --- a/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs +++ b/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs @@ -26,6 +26,8 @@ public interface ILeftWorkRepository : IRepository /// یک کلاس از جنس اطلاعات ترک کار LeftWorkViewModel GetByDateAndWorkshopIdAndEmployeeId(long workshopId, long employeeId, DateTime dateTime); List GetAllEmployeeIdsInWorkshop(long workshopId); + LeftWork GetLastLeftWorkByEmployeeIdAndWorkshopId(long workshopId, long employeeId); + #endregion List GetLeftPersonelByWorkshopId(List workshopIds); diff --git a/Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs b/Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs new file mode 100644 index 00000000..500ba1f2 --- /dev/null +++ b/Company.Domain/LeftWorkTempAgg/ILeftWorkTempRepository.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.LeftWorkTemp; + +namespace Company.Domain.LeftWorkTempAgg; + +public interface ILeftWorkTempRepository:IRepository +{ + /// + /// گرفتن اطلاعات برای مودال جزئیات شروع به کار موقت یا ترک کار موقت + /// + /// + /// + /// + Task GetStartAndLeftWorkDetails(long employeeId, long workshopId); + void Remove(LeftWorkTemp entity); +} \ No newline at end of file diff --git a/Company.Domain/LeftWorkTempAgg/LeftWorkTemp.cs b/Company.Domain/LeftWorkTempAgg/LeftWorkTemp.cs new file mode 100644 index 00000000..91e7b3e1 --- /dev/null +++ b/Company.Domain/LeftWorkTempAgg/LeftWorkTemp.cs @@ -0,0 +1,65 @@ +using System; +using _0_Framework.Domain; +using Company.Domain.LeftWorkAgg; +using CompanyManagment.App.Contracts.LeftWorkTemp; + +namespace Company.Domain.LeftWorkTempAgg; + +public class LeftWorkTemp:EntityBase +{ + private LeftWorkTemp() + { + + } + + /// + /// برای ایجاد ترک کار موقت + /// + /// + /// + /// + /// + /// + /// + /// + public static LeftWorkTemp CreateLeftWork(long leftWorkId, DateTime startWorkDate, DateTime leftWork, DateTime lastDayStanding, long workshopId, long employeeId,long jobId) + { + var leftWorkTemp = new LeftWorkTemp + { + LeftWorkId = leftWorkId, + LeftWork = leftWork, + LastDayStanding = lastDayStanding, + WorkshopId = workshopId, + EmployeeId = employeeId, + StartWork = startWorkDate, + LeftWorkType = LeftWorkTempType.LeftWork, + JobId = jobId + }; + + return leftWorkTemp; + } + + + public static LeftWorkTemp CreateStartWork(long workshopId, long employeeId, DateTime startDate,long jobId) + { + var leftWorkTemp = new LeftWorkTemp + { + StartWork = startDate, + WorkshopId = workshopId, + EmployeeId = employeeId, + JobId = jobId, + LeftWorkType = LeftWorkTempType.StartWork + }; + return leftWorkTemp; + } + + public long LeftWorkId { get; private set; } + public DateTime StartWork { get; private set; } + public DateTime LeftWork { get; private set; } + public DateTime LastDayStanding { get; private set; } + public long WorkshopId { get; private set; } + public long EmployeeId { get; private set; } + public long JobId { get; private set; } + public LeftWorkTempType LeftWorkType { get; private set; } +} + diff --git a/Company.Domain/PersonnelCodeAgg/IPersonnelCodeRepository.cs b/Company.Domain/PersonnelCodeAgg/IPersonnelCodeRepository.cs index 2123c95b..442e6f9c 100644 --- a/Company.Domain/PersonnelCodeAgg/IPersonnelCodeRepository.cs +++ b/Company.Domain/PersonnelCodeAgg/IPersonnelCodeRepository.cs @@ -18,4 +18,11 @@ public interface IPersonnelCodeRepository : IRepository EmployeeBankInfos { get; set; } + public bool HasBankInformation { get; set; } + public string PersonnelCode { get; set; } + public long JobId { get; set; } + public List EmployeeDocumentItems { get; set; } + public bool HasEmployeeDocument { get; set; } + + + +} + + + +public record RollCallUploadEmployeePicture +{ + public string Picture1 { get; set; } + public string Picture2 { get; set; } + public string EmployeeFullName { get; set; } + public string IsActiveString { get; set; } + public string HasUploadedImage { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/DTO/ClientLeftWorkWorkEmployeesDto.cs b/CompanyManagment.App.Contracts/Employee/DTO/ClientLeftWorkWorkEmployeesDto.cs new file mode 100644 index 00000000..224a60cd --- /dev/null +++ b/CompanyManagment.App.Contracts/Employee/DTO/ClientLeftWorkWorkEmployeesDto.cs @@ -0,0 +1,12 @@ +namespace CompanyManagment.App.Contracts.Employee; + +public class ClientLeftWorkWorkEmployeesDto +{ + public long EmployeeId { get; set; } + + public long WorkshopId { get; set; } + + public string EmployeeName { get; set; } = string.Empty; + + public string LeftWorkDateTime { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/DTO/ClientStartedWorkEmployeesDto.cs b/CompanyManagment.App.Contracts/Employee/DTO/ClientStartedWorkEmployeesDto.cs new file mode 100644 index 00000000..61f97c72 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employee/DTO/ClientStartedWorkEmployeesDto.cs @@ -0,0 +1,18 @@ +namespace CompanyManagment.App.Contracts.Employee.DTO; + +/// +/// پرسنل هایی که درسمت ادمین شروع به کار کرده اند +/// +public class ClientStartedWorkEmployeesDto +{ + public long EmployeeId { get; set; } + + public long WorkshopId { get; set; } + + public string EmployeeName { get; set; } = string.Empty; + + /// + /// آیا آپلود مدارک اصلی رو انجام داده یا نه + /// + public bool HasCompleteEmployeeDocument { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/EditEmployeeInEmployeeDocument.cs b/CompanyManagment.App.Contracts/Employee/EditEmployeeInEmployeeDocument.cs new file mode 100644 index 00000000..6dfbda13 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employee/EditEmployeeInEmployeeDocument.cs @@ -0,0 +1,17 @@ +namespace CompanyManagment.App.Contracts.Employee; + +public class EditEmployeeInEmployeeDocument +{ + public long EmployeeId { get; set; } + public long WorkshopId { get; set; } + public string FName { get; set; } = string.Empty; + public string LName { get; set; } = string.Empty; + public string NationalCode { get; set; } = string.Empty; + public string IdNumber { get; set; } = string.Empty; + public string FatherName { get; set; } = string.Empty; + public string BirthDate { get; set; } = string.Empty; + public string MaritalStatus { get; set; } = string.Empty; + public string MilitaryService { get; set; } = string.Empty; + public string Nationality { get; set; } = string.Empty; + public string Gender { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs b/CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs new file mode 100644 index 00000000..3e4c10e6 --- /dev/null +++ b/CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using System.Security.Cryptography; +using CompanyManagment.App.Contracts.EmployeeDocuments; + +namespace CompanyManagment.App.Contracts.Employee; + +public record EmployeeByNationalCodeInWorkshopViewModel +{ + public string EmployeeFName { get; set; } + public string EmployeeLName { get; set; } + public string Nationality { get; set; } + public string Gender { get; set; } + public string MaritalStatus { get; set; } + public long EmployeeId { get; set; } + public string Picture1 { get; set; } + public string Picture2 { get; set; } + public long PersonnelCode { get; set; } + public List EmployeeBankInfos { get; set; } + public EmployeeByNationalCodeEmployeeDocumentViewModel EmployeeDocument { get; set; } + +} + +public class EmployeeByNationalCodeEmployeeDocumentViewModel +{ + //عکس پرسنل + public EmployeeDocumentItemViewModel EmployeePicture { get; set; } + + //شناسنامه + public EmployeeDocumentItemViewModel IdCardPage1 { get; set; } + public EmployeeDocumentItemViewModel IdCardPage2 { get; set; } + public EmployeeDocumentItemViewModel IdCardPage3 { get; set; } + public EmployeeDocumentItemViewModel IdCardPage4 { get; set; } + + //کارت ملی + public EmployeeDocumentItemViewModel NationalCardFront { get; set; } + + public EmployeeDocumentItemViewModel NationalCardRear { get; set; } + //مدرک تحصیلی + public EmployeeDocumentItemViewModel EducationalDegree { get; set; } + + //کارت پایان خدمت + public EmployeeDocumentItemViewModel MilitaryServiceCard { get; set; } +} + +public class EmployeeByNationalCodeEmployeeBankInfoViewModel +{ + public string BankName { get; set; } + public string BankLogoPath { get; set; } + public string CardNumber { get; set; } + public string ShebaNumber { get; set; } + public string BankAccountNumber { get; set; } + public bool IsDefault { get; set; } + public long BankId { get; set; } + public long BankLogoMediaId { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/GetEditEmployeeInEmployeeDocumentViewModel.cs b/CompanyManagment.App.Contracts/Employee/GetEditEmployeeInEmployeeDocumentViewModel.cs new file mode 100644 index 00000000..2017623b --- /dev/null +++ b/CompanyManagment.App.Contracts/Employee/GetEditEmployeeInEmployeeDocumentViewModel.cs @@ -0,0 +1,17 @@ +namespace CompanyManagment.App.Contracts.Employee; + +public class GetEditEmployeeInEmployeeDocumentViewModel +{ + public long EmployeeId { get; set; } + public string FName { get; set; } = string.Empty; + public string LName { get; set; } = string.Empty; + public string NationalCode { get; set; } = string.Empty; + public string IdNumber { get; set; } = string.Empty; + public string FatherName { get; set; } = string.Empty; + public string BirthDate { get; set; } = string.Empty; + public string MaritalStatus { get; set; } = string.Empty; + public string MilitaryService { get; set; } = string.Empty; + public string Nationality { get; set; } = string.Empty; + public string Gender { get; set; } = string.Empty; + public bool IsAuthorized { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/EmployeeClientTemp/CreateEmployeeClientTemp.cs b/CompanyManagment.App.Contracts/EmployeeClientTemp/CreateEmployeeClientTemp.cs new file mode 100644 index 00000000..e2614c1e --- /dev/null +++ b/CompanyManagment.App.Contracts/EmployeeClientTemp/CreateEmployeeClientTemp.cs @@ -0,0 +1,15 @@ +using System; + +namespace CompanyManagment.App.Contracts.EmployeeClientTemp; + +public class CreateEmployeeClientTemp +{ + public string FName { get; set; } + public string LName { get; set; } + public string NationalCode { get; set; } + public string Nationality { get; set; } + public string MaritalStatus { get; set; } + public long WorkshopId { get; set; } + public long EmployeeId { get; set; } + public DateTime StartWorkTime { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs b/CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs new file mode 100644 index 00000000..cc34e161 --- /dev/null +++ b/CompanyManagment.App.Contracts/EmployeeClientTemp/IEmployeeClientTempApplication.cs @@ -0,0 +1,26 @@ +using System; +using _0_Framework_b.Application; + +namespace CompanyManagment.App.Contracts.EmployeeClientTemp; + +public interface IEmployeeClientTempApplication +{ + OperationResult Create(CreateEmployeeClientTemp command); + + EmployeeClientTempGetDetailsViewModel GetDetails(long employeeId, long workshopId); + +} + +public class EmployeeClientTempGetDetailsViewModel +{ + public long WorkshopId { get; set; } + public long EmployeeId { get; set; } + public string StartWorkDate { get; set; } + public string FName { get; set; } + public string LName { get; set; } + + public string FullName => $"{FName} {LName}"; + public string NationalCode { get; set; } + public string Nationality { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/EmployeeDocuments/IEmployeeDocumentsApplication.cs b/CompanyManagment.App.Contracts/EmployeeDocuments/IEmployeeDocumentsApplication.cs index 2b14209e..42bcdbde 100644 --- a/CompanyManagment.App.Contracts/EmployeeDocuments/IEmployeeDocumentsApplication.cs +++ b/CompanyManagment.App.Contracts/EmployeeDocuments/IEmployeeDocumentsApplication.cs @@ -49,10 +49,10 @@ namespace CompanyManagment.App.Contracts.EmployeeDocuments List GetByWorkshopIdWithItemsForAdminWorkFlow(long workshopId); List GetDocumentsAwaitingReviewByWorkshopIdForCheckerWorkFlow(long workshopId); - int GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds); - //int GetAdminWorkFlowCountForNewEmployees(List workshopIds); + Task GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds); + Task GetAdminWorkFlowCountForNewEmployees(List workshopIds); OperationResult RemoveByAdmin(long documentItemId); - int GetCheckerWorkFlowCount(); + Task GetCheckerWorkFlowCount(); } } diff --git a/CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTemp.cs b/CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTemp.cs new file mode 100644 index 00000000..3e0caf08 --- /dev/null +++ b/CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTemp.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.LeftWorkTemp; + +public class CreateLeftWorkTemp +{ + public List EmployeeIds { get; set; } + public long WorkshopId { get; set; } + public string LeftWorkTime { get; set; } + public string LastDayStanding { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTempSingleViewModel.cs b/CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTempSingleViewModel.cs new file mode 100644 index 00000000..5fb889ec --- /dev/null +++ b/CompanyManagment.App.Contracts/LeftWorkTemp/CreateLeftWorkTempSingleViewModel.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.LeftWorkTemp; + +public class CreateLeftWorkTempSingleViewModel +{ + public string EmployeeFullName { get; set; } + public List EmployeeIds { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs b/CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs new file mode 100644 index 00000000..a6e27982 --- /dev/null +++ b/CompanyManagment.App.Contracts/LeftWorkTemp/ILeftWorkTempApplication.cs @@ -0,0 +1,71 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using _0_Framework.Application; +using CompanyManagment.App.Contracts.LeftWork; + +namespace CompanyManagment.App.Contracts.LeftWorkTemp; + +public interface ILeftWorkTempApplication +{ + Task Create(CreateLeftWorkTemp command); + + /// + /// گرفتن اطلاعات برای مودال جزئیات شروع به کار موقت یا ترک کار موقت + /// + /// + /// + /// + Task GetStartAndLeftWorkDetails(long employeeId,long workshopId); + + /// + /// تایید شروع به کار موقت + /// + /// + /// + Task AcceptStartWork(AcceptStartWorkTemp command); + + /// + /// تایید ترک کار موقت + /// + /// + /// + Task AcceptLeftWork(AcceptLeftWorkTemp command); +} + +public class AcceptLeftWorkTemp +{ + public long LeftWorkTempId { get; set; } + public string LeftWorkTime { get; set; } + public string LastDayStanding { get; set; } +} + +public class AcceptStartWorkTemp +{ + public long LeftWorkTempId { get; set; } + public string StartDateTime { get; set; } + public long JobId { get; set; } +} + + + + +public class GetStartWorkTempDetails +{ + public LeftWorkTempDetailsViewModel LeftWorkTemp { get; set; } + public List PreviousLeftWorks { get; set; } + public long JobId { get; set; } + public string JobName { get; set; } + public long WorkshopId { get; set; } + public string WorkshopFullName { get; set; } + public string EmployeeFullName { get; set; } + public long EmployeeId { get; set; } + public long PersonnelCode { get; set; } +} + +public class LeftWorkTempDetailsViewModel +{ + public long Id { get; set; } + public string StartWork { get; set; } + public string LeftWork { get; set; } + public string LastDayStanding { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/LeftWorkTemp/LeftWorkTempType.cs b/CompanyManagment.App.Contracts/LeftWorkTemp/LeftWorkTempType.cs new file mode 100644 index 00000000..3cb198e2 --- /dev/null +++ b/CompanyManagment.App.Contracts/LeftWorkTemp/LeftWorkTempType.cs @@ -0,0 +1,14 @@ +namespace CompanyManagment.App.Contracts.LeftWorkTemp; + +public enum LeftWorkTempType +{ + /// + /// شروع به کار کرده + /// + StartWork, + + /// + /// ترک کار کرده + /// + LeftWork +} \ No newline at end of file diff --git a/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs index 66a1590b..1e420fa3 100644 --- a/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs +++ b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs @@ -396,7 +396,12 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo if (previousEnd != new DateTime()) { - if (newShift.start <= previousEnd) + if (newShift.start == previousEnd) + { + return op.Failed("در شیفت منظم پایان شیفت نمیتواند با شروع شیفت بعدی برابر باشد"); + } + + if (newShift.start <= previousEnd) { newShift.start = newShift.start.AddDays(1); } diff --git a/CompanyManagment.Application/EmployeeAplication.cs b/CompanyManagment.Application/EmployeeAplication.cs index 034df39d..283f745a 100644 --- a/CompanyManagment.Application/EmployeeAplication.cs +++ b/CompanyManagment.Application/EmployeeAplication.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Collections.Generic; using _0_Framework.InfraStructure; using Company.Domain.EmployeeAgg; @@ -10,6 +11,24 @@ using Company.Domain.EmployeeInsuranceRecordAgg; using Company.Domain.WorkshopAgg; using System.Linq; using System.Threading.Tasks; +using Company.Domain.PersonnelCodeAgg; +using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; +using CompanyManagment.App.Contracts.EmployeeBankInformation; +using CompanyManagment.App.Contracts.EmployeeDocuments; +using CompanyManagment.App.Contracts.RollCallEmployeeStatus; +using Microsoft.AspNetCore.Hosting; +using System.IO; +using System.Transactions; +using Company.Domain.EmployeeClientTempAgg; +using Company.Domain.LeftWorkTempAgg; +using CompanyManagment.App.Contracts.LeftWorkTemp; +using _0_Framework.Application.UID; +using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg; +using Company.Domain.EmployeeDocumentsAgg; +using Company.Domain.RollCallEmployeeAgg; +using Company.Domain.CustomizeWorkshopGroupSettingsAgg; +using Company.Domain.LeftWorkAgg; +using CompanyManagment.App.Contracts.Employee.DTO; namespace CompanyManagment.Application; @@ -25,11 +44,39 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli public bool StatCity = true; public bool city = true; public bool address = true; + private readonly IWebHostEnvironment _webHostEnvironment; + private readonly IRollCallEmployeeStatusApplication _rollCallEmployeeStatusApplication; + private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository; + private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication; + private readonly IEmployeeDocumentsApplication _employeeDocumentsApplication; + private readonly IEmployeeDocumentsRepository _employeeDocumentsRepository; + private readonly IEmployeeBankInformationApplication _employeeBankInformationApplication; + private readonly ILeftWorkTempRepository _leftWorkTempRepository; + private readonly IUidService _uidService; + private readonly ICustomizeWorkshopEmployeeSettingsRepository _customizeWorkshopEmployeeSettingsRepository; + private readonly ILeftWorkRepository _leftWorkRepository; + private readonly IPersonnelCodeRepository _personnelCodeRepository; + private readonly IEmployeeClientTempRepository _employeeClientTempRepository; + private readonly ICustomizeWorkshopGroupSettingsRepository _customizeWorkshopGroupSettingsRepository; - public EmployeeAplication(IEmployeeRepository employeeRepository, CompanyContext context, IWorkshopRepository workShopRepository) : base(context) + public EmployeeAplication(IEmployeeRepository employeeRepository, CompanyContext context, IWorkshopRepository workShopRepository, IWebHostEnvironment webHostEnvironment, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication, IRollCallEmployeeRepository rollCallEmployeeRepository, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IEmployeeDocumentsApplication employeeDocumentsApplication, IEmployeeDocumentsRepository employeeDocumentsRepository, IEmployeeBankInformationApplication employeeBankInformationApplication, ILeftWorkTempRepository leftWorkTempRepository, IUidService uidService, ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository, IPersonnelCodeRepository personnelCodeRepository, IEmployeeClientTempRepository employeeClientTempRepository, ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository, ILeftWorkRepository leftWorkRepository) : base(context) { _context = context; _WorkShopRepository = workShopRepository; + _webHostEnvironment = webHostEnvironment; + _rollCallEmployeeStatusApplication = rollCallEmployeeStatusApplication; + _rollCallEmployeeRepository = rollCallEmployeeRepository; + _customizeWorkshopSettingsApplication = customizeWorkshopSettingsApplication; + _employeeDocumentsApplication = employeeDocumentsApplication; + _employeeDocumentsRepository = employeeDocumentsRepository; + _employeeBankInformationApplication = employeeBankInformationApplication; + _leftWorkTempRepository = leftWorkTempRepository; + _uidService = uidService; + _customizeWorkshopEmployeeSettingsRepository = customizeWorkshopEmployeeSettingsRepository; + _personnelCodeRepository = personnelCodeRepository; + _employeeClientTempRepository = employeeClientTempRepository; + _customizeWorkshopGroupSettingsRepository = customizeWorkshopGroupSettingsRepository; + _leftWorkRepository = leftWorkRepository; _EmployeeRepository = employeeRepository; } @@ -902,4 +949,541 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli } #endregion + + #region Mahan + public OperationResult CreateEmployeeByClient(CreateEmployeeByClient command) + { + OperationResult op = new(); + + if (command.Gender != "مرد" && command.Gender != "زن") + return op.Failed("جنسیت را انتخاب کنید"); + + if (string.IsNullOrWhiteSpace(command.FirstName) || string.IsNullOrWhiteSpace(command.LastName)) + return op.Failed("نام نمی تواند خالی باشد"); + + if (command.MaritalStatus != "مجرد" && command.MaritalStatus != "متاهل") + return op.Failed("وضعیت تاهل نمی تواند خالی باشد"); + + bool isNationalCardValid = command.NationalCode?.NationalCodeValid() == "valid"; + if (isNationalCardValid == false) + return op.Failed("کد ملی وارد شده معتبر نمی باشد"); + + if (command.Nationality != "ایرانی") + return op.Failed("خطای سیستمی"); + + if (!_WorkShopRepository.Exists(x => x.id == command.WorkshopId)) + { + return op.Failed("کارگاه نامعتبر است"); + } + + using var transaction = new TransactionScope(); + + //if (_EmployeeRepository.ExistsIgnoreQueryFilter(x => x.NationalCode == command.NationalCode && x.EmployeeType == EmployeeType.CreatedByClient)) + //{ + // return op.Failed("این پرسنل قبلا افزوده شده است و در انتظار تایید میباشد"); + //} + + var employee = _EmployeeRepository.GetByNationalCodeIgnoreQueryFilter(command.NationalCode); + var workshop = _WorkShopRepository.GetDetails(command.WorkshopId); + if (employee == null) + { + return op.Failed("خطای سیستمی. لطفا دوباره تلاش کنید . درصورت تکرار این مشکل با تیم پشتیبان تماس بگیرید"); + } + + if (_leftWorkTempRepository.Exists(x => + x.EmployeeId == employee.id && x.WorkshopId == command.WorkshopId && x.LeftWorkType == LeftWorkTempType.StartWork)) + { + return op.Failed("این پرسنل در کارگاه شما قبلا افزوده شده است و در انتظار تایید میباشد"); + } + + var startLeftWork = command.StartLeftWork.ToGeorgianDateTime(); + + var leftWorkViewModel = _leftWorkRepository.GetLastLeftWorkByEmployeeIdAndWorkshopId(command.WorkshopId, employee.id); + PersonnelCodeDomain personnelCode = null; + if (leftWorkViewModel != null) + { + if (leftWorkViewModel.HasLeft == false && leftWorkViewModel.LeftWorkDate > DateTime.Now) + { + return op.Failed("شما نمیتوانید پرسنلی که در کارگاه شما در حال کار است را ایجاد کنید"); + } + + if (leftWorkViewModel.LeftWorkDate > startLeftWork) + { + return op.Failed("شما نمیتوانید قبل از بازه ترک کار قبلی پرسنل شروع به کاری ثبت کنید"); + } + } + else + { + var lastPersonnelCodeByWorkshop = _personnelCodeRepository.GetLastPersonnelCodeByWorkshop(command.WorkshopId); + + personnelCode = new PersonnelCodeDomain(command.WorkshopId, + employee.id, lastPersonnelCodeByWorkshop + 1); + } + + var leftWorkTemp = LeftWorkTemp.CreateStartWork(command.WorkshopId, employee.id, startLeftWork, command.JobId); + _leftWorkTempRepository.Create(leftWorkTemp); + _leftWorkTempRepository.SaveChanges(); + + + if (personnelCode != null) + { + _personnelCodeRepository.Create(personnelCode); + _personnelCodeRepository.SaveChanges(); + } + + + if (string.IsNullOrWhiteSpace(command.RollCallUploadEmployeePicture?.Picture1) == false && + string.IsNullOrWhiteSpace(command.RollCallUploadEmployeePicture?.Picture2) == false) + { + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{command.WorkshopId}\\{employee.id}"; + if (!Directory.Exists(directoryPath)) + Directory.CreateDirectory(directoryPath); + + var filePath1 = Path.Combine(directoryPath) + $@"\1.jpg"; + if (System.IO.File.Exists(filePath1)) + { + CreateImageFromBase64(command.RollCallUploadEmployeePicture.Picture1, filePath1); + } + + var filePath2 = Path.Combine(directoryPath) + $@"\2.jpg"; + if (System.IO.File.Exists(filePath2)) + { + CreateImageFromBase64(command.RollCallUploadEmployeePicture.Picture2, filePath2); + } + + + var rollCallEmployee = + _rollCallEmployeeRepository.GetBy(employee.id, command.WorkshopId); + + if (rollCallEmployee == null) + { + if (_employeeClientTempRepository.Exists(x => + x.EmployeeId == employee.id && x.WorkshopId == command.WorkshopId)) + { + //var employeeTemp = + // _employeeClientTempRepository.GetByEmployeeIdAndWorkshopId(employee.id, command.WorkshopId); + + rollCallEmployee = new RollCallEmployee(command.WorkshopId, employee.id, employee.FName, + employee.LName); + } + else + { + rollCallEmployee = + new RollCallEmployee(command.WorkshopId, employee.id, employee.FName, employee.LName); + } + + rollCallEmployee.HasImage(); + _rollCallEmployeeRepository.Create(rollCallEmployee); + _rollCallEmployeeRepository.SaveChanges(); + + } + + var rollCallEmployeeStatusResult = _rollCallEmployeeStatusApplication.Create( + new CreateRollCallEmployeeStatus() { RollCallEmployeeId = rollCallEmployee.id }); + + if (rollCallEmployeeStatusResult.IsSuccedded == false) + { + return rollCallEmployeeStatusResult; + } + + if (command.CreateCustomizeEmployeeSettings.GroupId > 0) + { + if (_customizeWorkshopEmployeeSettingsRepository + .Exists(x => x.WorkshopId == workshop.Id && x.EmployeeId == employee.id) == false) + { + command.CreateCustomizeEmployeeSettings.EmployeeIds = [employee.id]; + command.CreateCustomizeEmployeeSettings.WorkshopId = command.WorkshopId; + var resultCreateEmployeeSettings = + _customizeWorkshopSettingsApplication.CreateEmployeesSettingsAndSetChanges( + command.CreateCustomizeEmployeeSettings); + if (resultCreateEmployeeSettings.IsSuccedded == false) + { + return resultCreateEmployeeSettings; + } + } + } + } + else if (command.CreateCustomizeEmployeeSettings.GroupId > 0) + { + if (_customizeWorkshopEmployeeSettingsRepository + .Exists(x => x.WorkshopId == workshop.Id && x.EmployeeId == employee.id) == false) + { + command.CreateCustomizeEmployeeSettings.EmployeeIds = [employee.id]; + command.CreateCustomizeEmployeeSettings.WorkshopId = command.WorkshopId; + var resultCreateEmployeeSettings = + _customizeWorkshopSettingsApplication.CreateEmployeesSettingsAndSetChanges( + command.CreateCustomizeEmployeeSettings); + if (resultCreateEmployeeSettings.IsSuccedded == false) + { + return resultCreateEmployeeSettings; + } + } + + var rollCallEmployee = + _rollCallEmployeeRepository.GetBy(employee.id, command.WorkshopId); + + if (rollCallEmployee == null) + { + if (_employeeClientTempRepository.Exists(x => + x.EmployeeId == employee.id && x.WorkshopId == command.WorkshopId)) + { + + rollCallEmployee = new RollCallEmployee(command.WorkshopId, employee.id, employee.FName, + employee.LName); + } + else + { + rollCallEmployee = + new RollCallEmployee(command.WorkshopId, employee.id, employee.FName, employee.LName); + } + _rollCallEmployeeRepository.Create(rollCallEmployee); + _rollCallEmployeeRepository.SaveChanges(); + + } + } + + + command.EmployeeDocumentItems = command.EmployeeDocumentItems ?? []; + + var employeeDocumentResult = _employeeDocumentsApplication.AddRangeEmployeeDocumentItems(command.WorkshopId, + employee.id, command.EmployeeDocumentItems); + + if (employeeDocumentResult.IsSuccedded == false) + { + return employeeDocumentResult; + } + + + var employeeTemp = new EmployeeClientTemp(command.WorkshopId, startLeftWork, employee.id, + command.MaritalStatus, employee.FullName); + + _employeeClientTempRepository.Create(employeeTemp); + _employeeClientTempRepository.SaveChanges(); + + if (command.HasBankInformation) + { + + var employeeBankInfos = command.EmployeeBankInfos.Select(x => new CreateEmployeeInformation + { + WorkshopId = command.WorkshopId, + BankAccountNumber = x.BankAccountNumber, + BankId = x.BankId, + CardNumber = x.CardNumber, + EmployeeId = employee.id, + EmployeeName = employee.FullName, + ShebaNumber = x.ShebaNumber + }).ToList(); + + var employeeBankInformationResult = + _employeeBankInformationApplication.GroupCreate(command.WorkshopId, employeeBankInfos); + + if (employeeBankInformationResult.IsSuccedded == false) + { + return employeeBankInformationResult; + } + + } + + + transaction.Complete(); + return op.Succcedded(employee.id); + } + + private void CreateImageFromBase64(string picture, string filePath) + { + var subBase64 = picture.Substring(picture.LastIndexOf(',') + 1); + byte[] bytes = Convert.FromBase64String(subBase64); + System.IO.File.WriteAllBytes(filePath, bytes); + } + + public async Task> + ValidateCreateEmployeeClientByNationalCodeAndWorkshopId(string nationalCode, string birthDate, long workshopId) + { + var op = new OperationResult(); + + if (nationalCode.NationalCodeValid() != "valid") + { + return op.Failed("کد ملی معتبر نمیباشد"); + } + + if (birthDate.TryToGeorgianDateTime(out _) == false) + { + return op.Failed("تاریخ تولد معتبر نمیباشد"); + } + + var employee = _EmployeeRepository.GetByNationalCodeIgnoreQueryFilter(nationalCode); + + if (employee == null) + { + var personalInfo = await _uidService.GetPersonalInfo(nationalCode, birthDate); + if (personalInfo.ResponseContext.Status.Code != 0) + { + return op.Failed("کد ملی و تاریخ تولد با هم همخانی ندارند"); + } + + var basicInfo = personalInfo.BasicInformation; + var identityInfo = personalInfo.IdentificationInformation; + DateTime apiBirthDate = identityInfo.BirthDate.ToGeorgianDateTime(); + + var dateOfIssue = new DateTime(1922, 1, 1); + + var gender = basicInfo.GenderEnum switch + { + Gender.Female => "زن", + Gender.Male => "مرد", + _ => throw new AggregateException() + }; + + var idNumber = identityInfo.ShenasnamehNumber == "0" ? identityInfo.NationalId : identityInfo.ShenasnamehNumber; + + var newEmployee = new Employee(basicInfo.FirstName, basicInfo.LastName, basicInfo.FatherName, apiBirthDate, + dateOfIssue, null, identityInfo.NationalId, idNumber, gender, "ایرانی"); + newEmployee.Authorized(); + await _EmployeeRepository.CreateAsync(newEmployee); + await _context.SaveChangesAsync(); + + return op.Succcedded(new EmployeeByNationalCodeInWorkshopViewModel() + { + EmployeeId = newEmployee.id, + EmployeeFName = newEmployee.FName, + Gender = newEmployee.Gender, + Nationality = newEmployee.Nationality, + EmployeeLName = newEmployee.LName + }); + } + + if (_leftWorkTempRepository.ExistsIgnoreQueryFilter(x => + x.EmployeeId == employee.id && x.WorkshopId == workshopId && x.LeftWorkType == LeftWorkTempType.StartWork)) + { + return op.Failed("این پرسنل در کارگاه شما قبلا افزوده شده است و در انتظار تایید میباشد"); + } + + if (employee.IsAuthorized == false) + { + var personalInfoResponse = await _uidService.GetPersonalInfo(nationalCode, birthDate); + + if (personalInfoResponse.ResponseContext.Status.Code == 0) + { + var basicInfo = personalInfoResponse.BasicInformation; + var identityInfo = personalInfoResponse.IdentificationInformation; + var apiBirthDate = identityInfo.BirthDate.ToGeorgianDateTime(); + + var dateOfIssue = new DateTime(1922, 1, 1); + + var gender = basicInfo.GenderEnum switch + { + Gender.Female => "زن", + Gender.Male => "مرد", + _ => throw new AggregateException() + }; + + var idNumber = identityInfo.ShenasnamehNumber == "0" ? identityInfo.NationalId : identityInfo.ShenasnamehNumber; + + + employee.Edit(basicInfo.FirstName, basicInfo.LastName, basicInfo.FatherName, apiBirthDate, + dateOfIssue, employee.PlaceOfIssue, identityInfo.NationalId, idNumber, + gender, "ایرانی", employee.Phone, employee.Address, employee.State, employee.City, + employee.MaritalStatus, employee.MilitaryService, employee.LevelOfEducation, + employee.FieldOfStudy, employee.BankCardNumber, employee.BankBranch, employee.InsuranceCode, employee.InsuranceHistoryByYear, + employee.InsuranceHistoryByMonth, employee.NumberOfChildren, + employee.OfficePhone, employee.MclsUserName, employee.MclsPassword, + employee.EserviceUserName, employee.EservicePassword, employee.TaxOfficeUserName, + employee.TaxOfficepassword, employee.SanaUserName, employee.SanaPassword); + + employee.Authorized(); + + await _EmployeeRepository.SaveChangesAsync(); + + } + else + { + return op.Failed("کد ملی با تاریخ تولد وارد شده مطابقت ندارد"); + } + } + + var leftWorkViewModel = _leftWorkRepository.GetLastLeftWorkByEmployeeIdAndWorkshopId(workshopId, employee.id); + if (leftWorkViewModel == null) + { + return op.Succcedded(new EmployeeByNationalCodeInWorkshopViewModel() + { + EmployeeId = employee.id, + EmployeeFName = employee.FName, + Gender = employee.Gender, + Nationality = employee.Nationality, + EmployeeLName = employee.LName + }); ; + } + + if (leftWorkViewModel.LeftWorkDate >= DateTime.Now || !leftWorkViewModel.HasLeft) + return op.Failed("این پرسنل در کارگاه شما در حال کار است"); + + var rollCallEmployee = _rollCallEmployeeRepository.GetBy(employee.id, workshopId); + + string picture1 = string.Empty; + string picture2 = string.Empty; + + if (rollCallEmployee != null) + { + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employee.id}"; + if (Directory.Exists(directoryPath)) + { + var filePath1 = Path.Combine(directoryPath, @"1.jpg"); + var filePath2 = Path.Combine(directoryPath, @"2.jpg"); + + if (System.IO.File.Exists(filePath1)) + { + byte[] imageBytes1 = await System.IO.File.ReadAllBytesAsync(filePath1); + picture1 = Convert.ToBase64String(imageBytes1); + } + + if (System.IO.File.Exists(filePath2)) + { + byte[] imageBytes2 = await System.IO.File.ReadAllBytesAsync(filePath2); + picture2 = Convert.ToBase64String(imageBytes2); + } + } + + } + + var personnelCode = _personnelCodeRepository.GetPSCodeByWorkshopIdAndEmployeeId(workshopId, employee.id); + + var bankInformationViewModel = _employeeBankInformationApplication.GetByEmployeeId(workshopId, employee.id); + + var employeeDocumentsViewModel = _employeeDocumentsApplication.GetDetailsForClient(employee.id, workshopId); + + + return op.Succcedded(new EmployeeByNationalCodeInWorkshopViewModel + { + EmployeeId = employee.id, + EmployeeFName = employee.FName, + EmployeeLName = employee.LName, + Nationality = employee.Nationality, + MaritalStatus = employee.MaritalStatus, + Gender = employee.Gender, + Picture1 = picture1, + Picture2 = picture2, + PersonnelCode = personnelCode, + EmployeeBankInfos = bankInformationViewModel.BankInformation.Select(x => new EmployeeByNationalCodeEmployeeBankInfoViewModel + { + ShebaNumber = x.ShebaNumber, + IsDefault = x.IsDefault, + CardNumber = x.CardNumber, + BankAccountNumber = x.BankAccountNumber, + BankId = x.BankId, + BankLogoMediaId = x.BankLogoMediaId, + BankLogoPath = x.BankLogoPath, + BankName = x.BankName + }).ToList(), + EmployeeDocument = new EmployeeByNationalCodeEmployeeDocumentViewModel + { + EducationalDegree = employeeDocumentsViewModel.EducationalDegree, + EmployeePicture = employeeDocumentsViewModel.EmployeePicture, + IdCardPage1 = employeeDocumentsViewModel.IdCardPage1, + IdCardPage2 = employeeDocumentsViewModel.IdCardPage2, + IdCardPage3 = employeeDocumentsViewModel.IdCardPage3, + IdCardPage4 = employeeDocumentsViewModel.IdCardPage4, + MilitaryServiceCard = employeeDocumentsViewModel.MilitaryServiceCard, + NationalCardFront = employeeDocumentsViewModel.NationalCardFront, + NationalCardRear = employeeDocumentsViewModel.NationalCardRear + } + }); + } + + public async Task> GetClientEmployeesStartWork(long workshopId) + { + return await _EmployeeRepository.GetClientEmployeesStartWork(workshopId); + } + + public async Task> GetEmployeesForLeftWorkTemp(long workshopId) + { + return await _EmployeeRepository.GetEmployeesForLeftWorkTemp(workshopId); + } + + public async Task GetEmployeeEditInEmployeeDocumentWorkFlow( + long employeeId, + long workshopId) + { + return await _EmployeeRepository.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId); + } + + public async Task EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command) + { + var op = new OperationResult(); + + if (command.MaritalStatus is not ("مجرد" or "متاهل")) + { + return op.Failed("وضعیت تاهل وارد شده نامعتبر میباشد"); + } + + var employee = _EmployeeRepository.Get(command.EmployeeId); + if (employee == null) + { + return op.Failed("پرسنل مورد نظر یافت نشد"); + } + + if (!employee.IsAuthorized) + { + if (command.Gender is not ("مرد" or "زن")) + { + return op.Failed("جنسیت وارد شده نامعتبر است"); + } + if (command.BirthDate.TryToGeorgianDateTime(out var birthDateGr) == false) + { + return op.Failed("تاریخ تولد وارد شده نامعتبر است"); + } + + if (command.Nationality is not ("غیر ایرانی" or "ایرانی")) + { + return op.Failed("ملیت وارد شده نامعتبر است"); + } + + if (string.IsNullOrWhiteSpace(command.FName)) + { + return op.Failed("لطفا نام پرسنل را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.LName)) + { + return op.Failed("لطفا نام خانوادگی پرسنل را وارد کنید"); + } + + if (command.NationalCode.NationalCodeValid() != "valid") + { + return op.Failed("کد ملی وارد شده نامعتبر است"); + } + + if (string.IsNullOrWhiteSpace(command.IdNumber)) + { + return op.Failed("لطفا شماره شناسنامه را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.FatherName)) + { + return op.Failed("لطفا نام پدر را وارد کنید"); + } + } + + var employeeClientTemp = _employeeClientTempRepository.GetByEmployeeIdAndWorkshopId(command.EmployeeId, command.WorkshopId); + + employeeClientTemp?.Edit(command.MaritalStatus); + + if (!employee.IsAuthorized) + { + employee.Edit(command.FName, command.LName, command.FatherName, command.BirthDate.ToGeorgianDateTime(), + employee.DateOfIssue, employee.PlaceOfIssue, command.NationalCode, command.IdNumber, command.Gender, + command.Nationality, + employee.Phone, employee.Address, employee.State, employee.City, employee.MaritalStatus, + employee.MilitaryService, + employee.LevelOfEducation, employee.FieldOfStudy, employee.BankCardNumber, employee.BankBranch, + employee.InsuranceCode, employee.InsuranceHistoryByYear, employee.InsuranceHistoryByMonth, + employee.NumberOfChildren, employee.OfficePhone, employee.MclsUserName, employee.MclsPassword, + employee.EserviceUserName, employee.EservicePassword, employee.TaxOfficeUserName, + employee.TaxOfficepassword, employee.SanaUserName, employee.SanaPassword); + } + await _EmployeeRepository.SaveChangesAsync(); + + return op.Succcedded(); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/EmployeeClientTempApplication.cs b/CompanyManagment.Application/EmployeeClientTempApplication.cs new file mode 100644 index 00000000..a8d04b8c --- /dev/null +++ b/CompanyManagment.Application/EmployeeClientTempApplication.cs @@ -0,0 +1,32 @@ +using _0_Framework_b.Application; +using Company.Domain.EmployeeClientTempAgg; +using CompanyManagment.App.Contracts.EmployeeClientTemp; + +namespace CompanyManagment.Application; + +public class EmployeeClientTempApplication : IEmployeeClientTempApplication +{ + private readonly IEmployeeClientTempRepository _employeeClientTempRepository; + + public EmployeeClientTempApplication(IEmployeeClientTempRepository employeeClientTempRepository) + { + _employeeClientTempRepository = employeeClientTempRepository; + } + + public OperationResult Create(CreateEmployeeClientTemp command) + { + var op = new OperationResult(); + var fullName = $"{command.FName} {command.LName}"; + var employeeClientTemp = new EmployeeClientTemp(command.WorkshopId, command.StartWorkTime, command.EmployeeId, command.MaritalStatus, fullName); + + _employeeClientTempRepository.Create(employeeClientTemp); + _employeeClientTempRepository.SaveChanges(); + + return op.Succcedded(); + } + + public EmployeeClientTempGetDetailsViewModel GetDetails(long employeeId, long workshopId) + { + return _employeeClientTempRepository.GetDetails(employeeId, workshopId); + } +} \ No newline at end of file diff --git a/CompanyManagment.Application/EmployeeDocumentsApplication.cs b/CompanyManagment.Application/EmployeeDocumentsApplication.cs index 1f803326..5594e0e3 100644 --- a/CompanyManagment.Application/EmployeeDocumentsApplication.cs +++ b/CompanyManagment.Application/EmployeeDocumentsApplication.cs @@ -1152,12 +1152,15 @@ namespace CompanyManagment.Application return op.Succcedded(); } - public int GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds) + public async Task GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds) { - return _employeeDocumentsRepository.GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(workshopIds); + return await _employeeDocumentsRepository.GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(workshopIds); + } + public async Task GetAdminWorkFlowCountForNewEmployees(List workshopIds) + { + return await _employeeDocumentsRepository.GetAdminWorkFlowCountForNewEmployees(workshopIds); } - #endregion #region Checker Only Methods @@ -1360,9 +1363,9 @@ namespace CompanyManagment.Application return result; } - public int GetCheckerWorkFlowCount() + public async Task GetCheckerWorkFlowCount() { - return _employeeDocumentsRepository.GetCheckerWorkFlowCount(); + return await _employeeDocumentsRepository.GetCheckerWorkFlowCount(); } #endregion diff --git a/CompanyManagment.Application/LeftWorkTempApplication.cs b/CompanyManagment.Application/LeftWorkTempApplication.cs new file mode 100644 index 00000000..bec162c7 --- /dev/null +++ b/CompanyManagment.Application/LeftWorkTempApplication.cs @@ -0,0 +1,215 @@ +using System; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework_b.Application; +using Company.Domain.CheckoutAgg; +using Company.Domain.ContractAgg; +using Company.Domain.EmployeeAgg; +using Company.Domain.JobAgg; +using Company.Domain.LeftWorkAgg; +using Company.Domain.LeftWorkTempAgg; +using Company.Domain.WorkshopAgg; +using CompanyManagment.App.Contracts.Checkout; +using CompanyManagment.App.Contracts.Contract; +using CompanyManagment.App.Contracts.LeftWork; +using CompanyManagment.App.Contracts.LeftWorkTemp; +using CompanyManagment.App.Contracts.ReportClient; +using OperationResult = _0_Framework.Application.OperationResult; +using Tools = _0_Framework.Application.Tools; + +namespace CompanyManagment.Application; + +public class LeftWorkTempApplication : ILeftWorkTempApplication +{ + private readonly ILeftWorkTempRepository _leftWorkTempRepository; + private readonly ILeftWorkRepository _leftWorkRepository; + private readonly IWorkshopRepository _workshopRepository; + private readonly IEmployeeRepository _employeeRepository; + private readonly IJobRepository _jobRepository; + private readonly ICheckoutRepository _checkoutRepository; + private readonly IContractRepository _contractRepository; + + + public LeftWorkTempApplication(ILeftWorkTempRepository leftWorkTempRepository, ILeftWorkRepository leftWorkRepository, IWorkshopRepository workshopRepository, IEmployeeRepository employeeRepository, IJobRepository jobRepository, ICheckoutRepository checkoutRepository, IContractRepository contractRepository) + { + _leftWorkTempRepository = leftWorkTempRepository; + _leftWorkRepository = leftWorkRepository; + _workshopRepository = workshopRepository; + _employeeRepository = employeeRepository; + _jobRepository = jobRepository; + _checkoutRepository = checkoutRepository; + _contractRepository = contractRepository; + } + + public async Task Create(CreateLeftWorkTemp command) + { + var op = new OperationResult(); + + foreach (var employee in command.EmployeeIds) + { + var leftWork = _leftWorkRepository.GetByDateAndWorkshopIdAndEmployeeId(command.WorkshopId, employee, Tools.ToGeorgianDateTime(command.LastDayStanding)); + #region Validation + + if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false) + { + return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است"); + } + if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false) + { + return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است"); + } + + if (lastDayStandingDateGr.AddDays(1).Date != leftWorkDateGr) + { + return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند"); + } + + if (leftWork == null) + { + return op.Failed("شروع به کار پرسنل یافت نشد"); + } + + if (leftWork.WorkshopId != command.WorkshopId || leftWork.EmployeeId != employee) + { + return op.Failed("اطلاعات وارد شده نامعتبر است"); + } + + + + //if (leftWork.StartWorkDate >= leftWorkDateGr) + //{ + // return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد"); + //} + + //if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId && + // x.WorkshopId == leftWorkTemp.WorkshopId && + // x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr)) + //{ + // return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای فیش حقوقی میباشد. ابتدا فیش حقوقی پرسنل را حذف کنید "); + //} + + //if (_contractRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId && + // x.WorkshopIds == leftWorkTemp.WorkshopId && + // x.ContarctStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr)) + //{ + // return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای قرارداد میباشد"); + //} + + + #endregion + + var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.Id, leftWork.StartWorkDateGr, leftWorkDateGr, lastDayStandingDateGr, + command.WorkshopId, employee, leftWork.JobId); + + await _leftWorkTempRepository.CreateAsync(leftWorkTemp); + } + + await _leftWorkTempRepository.SaveChangesAsync(); + return op.Succcedded(); + } + + public Task GetStartAndLeftWorkDetails(long employeeId, long workshopId) + { + return _leftWorkTempRepository.GetStartAndLeftWorkDetails(employeeId, workshopId); + } + + public async Task AcceptStartWork(AcceptStartWorkTemp command) + { + var op = new OperationResult(); + if (command.StartDateTime.TryToGeorgianDateTime(out var startDateGr) == false) + { + return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است"); + } + + var leftWorkTemp = _leftWorkTempRepository.Get(command.LeftWorkTempId); + + if (leftWorkTemp.LeftWorkType != LeftWorkTempType.StartWork) + { + return op.Failed("اطلاعات وارد شده نامعتبر است"); + } + + if (_leftWorkRepository.Exists(x => x.WorkshopId == leftWorkTemp.WorkshopId && x.EmployeeId == leftWorkTemp.EmployeeId && x.LeftWorkDate >= startDateGr)) + { + return op.Failed("شروع به کار وارد شده با ترک کار های قبلی تداخل دارد"); + } + + + if (_jobRepository.Exists(x => x.id == command.JobId) == false) + { + return op.Failed("سمت وارد شده نامعتبر است"); + } + + var defaultTime = new DateTime(2121, 03, 21); + + var workshop = _workshopRepository.Get(leftWorkTemp.WorkshopId); + var employee = _employeeRepository.Get(leftWorkTemp.EmployeeId); + + var newLeftWork = new LeftWork(defaultTime, startDateGr, leftWorkTemp.WorkshopId, leftWorkTemp.EmployeeId, + employee.FullName, workshop.WorkshopFullName, command.JobId, false, false, false, false, "", ""); + + await _leftWorkRepository.CreateAsync(newLeftWork); + _leftWorkTempRepository.Remove(leftWorkTemp); + await _leftWorkRepository.SaveChangesAsync(); + await _leftWorkTempRepository.SaveChangesAsync(); + return op.Succcedded(); + } + + public async Task AcceptLeftWork(AcceptLeftWorkTemp command) + { + var op = new OperationResult(); + if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false) + { + return op.Failed("تاریخ ترک کار وارد شده نامعتبر است"); + } + + if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingGr) == false) + { + return op.Failed("تاریخ آخرین روز کاری وارد شده نامعتبر است"); + } + + if (lastDayStandingGr.AddDays(1).Date != leftWorkDateGr) + { + return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند"); + } + + var leftWorkTemp = _leftWorkTempRepository.Get(command.LeftWorkTempId); + + if (leftWorkTemp == null) + { + return op.Failed("ترک کار وارد شده یافت نشد"); + } + + + if (leftWorkTemp.LeftWorkType != LeftWorkTempType.LeftWork) + { + return op.Failed("اطلاعات وارد شده نامعتبر است"); + } + + var leftWork = _leftWorkRepository.Get(leftWorkTemp.LeftWorkId); + + + if (leftWork == null) + return op.Failed("شروع به کار پرسنل یافت نشد"); + + if (leftWork.StartWorkDate >= leftWorkDateGr) + { + return op.Failed("ترک کار نمیتواند کوچک تر یا مساوی شروع به کار باشد"); + } + + if (_checkoutRepository.Exists(x => x.EmployeeId == leftWorkTemp.EmployeeId && + x.WorkshopId == leftWorkTemp.WorkshopId && + x.ContractStart <= lastDayStandingGr && x.ContractEnd >= lastDayStandingGr)) + { + return op.Failed("این پرسنل در تاریخ ترک کار وارد شده دارای فیش حقوقی میباشد. ابتدا فیش حقوقی پرسنل را حذف کنید "); + } + + leftWork.Edit(leftWorkDateGr, leftWork.StartWorkDate, leftWork.WorkshopId, leftWork.EmployeeId, leftWork.JobId, + leftWork.IncludeStatus, leftWork.AddBonusesPay, leftWork.AddYearsPay, leftWork.AddLeavePay); + + _leftWorkTempRepository.Remove(leftWorkTemp); + await _leftWorkRepository.SaveChangesAsync(); + await _leftWorkTempRepository.SaveChangesAsync(); + + return op.Succcedded(); + } +} \ No newline at end of file diff --git a/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs b/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs index 236ded26..7dd5fdaf 100644 --- a/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs +++ b/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs @@ -7,6 +7,9 @@ using System; using System.Collections.Generic; using System.Linq; using Company.Domain.RollCallServiceAgg; +using Company.Domain.LeftWorkTempAgg; +using Company.Domain.LeftWorkInsuranceAgg; +using CompanyManagment.App.Contracts.LeftWorkTemp; namespace CompanyManagment.Application @@ -17,14 +20,19 @@ namespace CompanyManagment.Application private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository; private readonly ILeftWorkRepository _leftWorkRepository; private readonly IRollCallServiceRepository _rollCallServiceRepository; + private readonly ILeftWorkTempRepository _leftWorkTempRepository; + private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository; - public RollCallEmployeeStatusApplication(IRollCallEmployeeStatusRepository employeeStatusRepository, IRollCallEmployeeRepository rollCallEmployeeRepository, ILeftWorkRepository leftWorkRepository, IRollCallServiceRepository rollCallServiceRepository) + + public RollCallEmployeeStatusApplication(IRollCallEmployeeStatusRepository employeeStatusRepository, IRollCallEmployeeRepository rollCallEmployeeRepository, ILeftWorkRepository leftWorkRepository, IRollCallServiceRepository rollCallServiceRepository, ILeftWorkTempRepository leftWorkTempRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository) { _employeeRollCallStatusRepository = employeeStatusRepository; _rollCallEmployeeRepository = rollCallEmployeeRepository; _leftWorkRepository = leftWorkRepository; _rollCallServiceRepository = rollCallServiceRepository; + _leftWorkTempRepository = leftWorkTempRepository; + _leftWorkInsuranceRepository = leftWorkInsuranceRepository; } public OperationResult Create(CreateRollCallEmployeeStatus cmd) @@ -34,9 +42,18 @@ namespace CompanyManagment.Application if (rollCallEmployee == null) return op.Failed("کارمند مجاز نیست"); - if (!_leftWorkRepository.Exists(x => x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && - x.LeftWorkDate.Date > DateTime.Now.Date && x.StartWorkDate.Date <= DateTime.Now.Date)) - return op.Failed("کارمند در کارگاه شروع به کار نکرده است"); + if (!_leftWorkRepository.Exists(x => + x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && + x.StartWorkDate <= DateTime.Now && x.LeftWorkDate > DateTime.Now) && + !_leftWorkInsuranceRepository.Exists(x => + x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && + x.StartWorkDate <= DateTime.Now && (x.LeftWorkDate > DateTime.Now || x.LeftWorkDate == null)) && + !_leftWorkTempRepository.Exists(x => + x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && + x.LeftWorkType == LeftWorkTempType.StartWork)) + { + return op.Failed("کارمند شروع به کار ندارد"); + } if (_employeeRollCallStatusRepository.Exists(y => rollCallEmployee.id == y.RollCallEmployeeId && y.EndDate.Date > DateTime.Now.Date)) diff --git a/CompanyManagment.EFCore/CompanyContext.cs b/CompanyManagment.EFCore/CompanyContext.cs index 2b767eda..7389d18a 100644 --- a/CompanyManagment.EFCore/CompanyContext.cs +++ b/CompanyManagment.EFCore/CompanyContext.cs @@ -25,6 +25,7 @@ using Company.Domain.EmployeeAccountAgg; using Company.Domain.EmployeeAgg; using Company.Domain.EmployeeBankInformationAgg; using Company.Domain.EmployeeChildrenAgg; +using Company.Domain.EmployeeClientTempAgg; using Company.Domain.EmployeeComputeOptionsAgg; using Company.Domain.EmployeeDocumentItemAgg; using Company.Domain.EmployeeDocumentsAgg; @@ -63,6 +64,7 @@ using Company.Domain.JobAgg; using Company.Domain.LeaveAgg; using Company.Domain.LeftWorkAgg; using Company.Domain.LeftWorkInsuranceAgg; +using Company.Domain.LeftWorkTempAgg; using Company.Domain.LoanAgg.Entities; using Company.Domain.MandatoryHoursAgg; using Company.Domain.MasterPenaltyTitle; @@ -168,6 +170,9 @@ public class CompanyContext : DbContext public DbSet AndroidApkVersions { get; set; } + public DbSet EmployeeClientTemps { get; set; } + public DbSet LeftWorkTemps { get; set; } + #endregion #region Pooya diff --git a/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs b/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs index 354c105e..9192848c 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs +++ b/CompanyManagment.EFCore/Repository/EmployeeDocumentsRepository.cs @@ -394,17 +394,19 @@ public class EmployeeDocumentsRepository : RepositoryBase workshops.Contains(x.WorkshopId) && x.LeftWorkDate.AddDays(-1) >= DateTime.Now) - .Select(x=>new{x.WorkshopId,x.EmployeeId}); + .Select(x => new { x.WorkshopId, x.EmployeeId }); + var employeeClientTemp = _companyContext.EmployeeClientTemps.Where(x => workshops.Contains(x.WorkshopId)); var query = _companyContext.EmployeeDocuments - .Where(x=> workshops.Contains(x.WorkshopId) && - activeEmployees.Any(y=>y.WorkshopId == x.WorkshopId && y.EmployeeId==x.EmployeeId)) - .Include(x=>x.Workshop).Include(x => x.EmployeeDocumentItemCollection) - .Where(x=> x.IsSentToChecker == false && - (x.EmployeeDocumentItemCollection.Any(y => - y.DocumentStatus == DocumentStatus.SubmittedByClient)) || x.HasRejectedItems) - .GroupBy(x=>x.WorkshopId).Select(x => new WorkshopWithEmployeeDocumentsViewModel() + .Where(x => workshops.Contains(x.WorkshopId) && + (activeEmployees.Any(y => y.WorkshopId == x.WorkshopId && y.EmployeeId == x.EmployeeId) || + employeeClientTemp.Any(temp => x.EmployeeId == temp.EmployeeId && temp.WorkshopId == x.WorkshopId)) && x.IsConfirmed == false) + .Include(x => x.Workshop).Include(x => x.EmployeeDocumentItemCollection) + .Where(x => x.IsSentToChecker == false && + (x.EmployeeDocumentItemCollection.Any(y => + y.DocumentStatus == DocumentStatus.SubmittedByClient) || employeeClientTemp.Any(temp => x.EmployeeId == temp.EmployeeId && temp.WorkshopId == x.WorkshopId) || x.HasRejectedItems)) + .GroupBy(x => x.WorkshopId).Select(x => new WorkshopWithEmployeeDocumentsViewModel() { WorkshopId = x.Key, WorkshopFullName = x.FirstOrDefault().Workshop.WorkshopName, @@ -414,7 +416,7 @@ public class EmployeeDocumentsRepository : RepositoryBase x.Employer) - .Where(x => query.Any(y=>y.WorkshopId==x.WorkshopId)) + .Where(x => query.Any(y => y.WorkshopId == x.WorkshopId)) .GroupBy(x => x.WorkshopId).Select(x => x.FirstOrDefault()).ToList(); @@ -422,24 +424,27 @@ public class EmployeeDocumentsRepository : RepositoryBase { var employer = workshopEmployers.FirstOrDefault(y => y.WorkshopId == x.WorkshopId)?.Employer; x.EmployerName = employer.FullName; - + //x.SubmittedItems.ForEach(y=>y.PicturePath= medias.FirstOrDefault(z=>z.id == y.MediaId)?.Path ?? ""); }); - return result.Where(x=>x.EmployeesWithoutDocumentCount > 0).OrderByDescending(x => x.EmployeesWithoutDocumentCount).ToList(); + return result.Where(x => x.EmployeesWithoutDocumentCount > 0).OrderByDescending(x => x.EmployeesWithoutDocumentCount).ToList(); } + + + //ToDo آپلود مدارک و افزودن پرسنل //public List GetWorkshopsWithNewEmployeesWithoutDocuments(List workshops) //{ // var newEmployees = _companyContext.LeftWorkTemps.Where(x => workshops.Contains(x.WorkshopId)) // .Select(x => new { x.WorkshopId, x.EmployeeId }); - + // var query = _companyContext.EmployeeDocuments // .Where(x => workshops.Contains(x.WorkshopId) && // newEmployees.Any(y => y.WorkshopId == x.WorkshopId && y.EmployeeId == x.EmployeeId)) @@ -472,62 +477,88 @@ public class EmployeeDocumentsRepository : RepositoryBase workshopId == x.WorkshopId && x.LeftWorkDate.AddDays(-1) >= DateTime.Today) - .Include(x=>x.Employee).ThenInclude(x=>x.EmployeeDocuments) - .Select(x => new {x.EmployeeId ,FullName= x.Employee.FName +" " +x.Employee.LName,x.Employee.Gender}); + .Include(x => x.Employee).ThenInclude(x => x.EmployeeDocuments) + .Select(x => new { x.EmployeeId, FullName = x.Employee.FName + " " + x.Employee.LName, x.Employee.Gender }); + + var EDItemsList = _companyContext.EmployeeDocumentItems .Where(x => x.WorkshopId == workshopId && x.DocumentStatus != DocumentStatus.Unsubmitted && activeEmployeesInWorkshop.Any(y => y.EmployeeId == x.EmployeeId)) - .Include(x => x.EmployeeDocuments).Where(x=> x.EmployeeDocuments.IsSentToChecker == false && - ( (x.DocumentStatus == DocumentStatus.SubmittedByClient) || x.EmployeeDocuments.HasRejectedItems) ) + .Include(x => x.EmployeeDocuments) + .Where(x => x.EmployeeDocuments.IsSentToChecker == false && + ((x.DocumentStatus == DocumentStatus.SubmittedByClient) || + x.EmployeeDocuments.HasRejectedItems)) .GroupBy(x => new { x.EmployeeId, x.DocumentLabel }) .Select(x => x.Select(y => new - { - y.EmployeeDocumentId, - Id = y.id, - y.EmployeeDocuments.Gender, - y.DocumentLabel, - y.DocumentStatus, - y.MediaId, - y.RejectionReason, - y.EmployeeId, - y.CreationDate, - IsSentToChecker = y.EmployeeDocuments.IsSentToChecker, - y.EmployeeDocuments.IsConfirmed - }) - .OrderByDescending(y => y.CreationDate).First()) + { + y.EmployeeDocumentId, + Id = y.id, + y.EmployeeDocuments.Gender, + y.DocumentLabel, + y.DocumentStatus, + y.MediaId, + y.RejectionReason, + y.EmployeeId, + y.CreationDate, + IsSentToChecker = y.EmployeeDocuments.IsSentToChecker, + y.EmployeeDocuments.IsConfirmed + }).OrderByDescending(y => y.CreationDate).First()).ToList(); + var employeeClientTemp = _companyContext.EmployeeClientTemps.Where(x => x.WorkshopId == workshopId); + var tempEmployees = _companyContext.Employees.Where(x => employeeClientTemp.Any(a => a.EmployeeId == x.id)) + .Select(x => new { EmployeeId = x.id, FullName = x.FName + " " + x.LName, x.Gender }).ToList(); + + var tempEmployeeDocuments = _companyContext.EmployeeDocuments + .Where(x => x.WorkshopId == workshopId && employeeClientTemp.Any(e => e.EmployeeId == x.EmployeeId) && + x.IsSentToChecker == false && x.IsConfirmed == false) + .SelectMany(x => x.EmployeeDocumentItemCollection.DefaultIfEmpty(), // اگر خالی بود، مقدار پیش‌فرض ایجاد کن + (documents, y) => new + { + EmployeeDocumentId = documents.id, // اگر null بود مقدار نداشته باشد + Id = y != null ? y.id : 0, + documents.Gender, + DocumentLabel = y != null ? y.DocumentLabel : default, + DocumentStatus = y != null ? y.DocumentStatus : default, + MediaId = y != null ? y.MediaId : 0, + RejectionReason = y != null ? y.RejectionReason : default, + EmployeeId = y != null ? y.EmployeeId : documents.EmployeeId, // اگر مقدار نداشت از EmployeeDocuments پر کن + CreationDate = y != null ? y.CreationDate : documents.CreationDate, + IsSentToChecker = documents.IsSentToChecker, + IsConfirmed = documents.IsConfirmed + }) .ToList(); - var activeEmployeesInWorkshopList = activeEmployeesInWorkshop.ToList(); + var enumerable = EDItemsList.Concat(tempEmployeeDocuments); + var activeEmployeesInWorkshopList = activeEmployeesInWorkshop.ToList().Concat(tempEmployees); //get medias for current documents of employees - var mediaIds = EDItemsList.Select(x => x.MediaId).ToList(); + var mediaIds = enumerable.Select(x => x.MediaId).ToList(); var mediasList = _accountContext.Medias.Where(x => mediaIds.Contains(x.id)) - .Select(x => new MediaViewModel() { Id= x.id, Path = x.Path }).ToList(); + .Select(x => new MediaViewModel() { Id = x.id, Path = x.Path }).ToList(); - return EDItemsList.GroupBy(x=>x.EmployeeId) + var result = enumerable.GroupBy(x => x.EmployeeId) .Select(x => { //var requiredDocs = EmployeeDocumentRequiredItems.GetByGender(x.Gender); var employeeLatestConfirmedDocuments = x - - .Where(y => y.EmployeeId == x.Key &&(y.DocumentStatus == DocumentStatus.SubmittedByClient || y.DocumentStatus == DocumentStatus.SubmittedByAdmin || y.DocumentStatus == DocumentStatus.Rejected)) - .Select(y=>new EmployeeDocumentItemViewModel() - { - Status = y.DocumentStatus, - MediaId = y.MediaId, - DocumentItemLabel = y.DocumentLabel, - Id = y.Id, - RejectionMessage = y.RejectionReason, - StatusString = y.DocumentStatus.ToString() - }).ToList(); + + .Where(y => y.EmployeeId == x.Key && (y.DocumentStatus == DocumentStatus.SubmittedByClient || y.DocumentStatus == DocumentStatus.SubmittedByAdmin || y.DocumentStatus == DocumentStatus.Rejected)) + .Select(y => new EmployeeDocumentItemViewModel() + { + Status = y.DocumentStatus, + MediaId = y.MediaId, + DocumentItemLabel = y.DocumentLabel, + Id = y.Id, + RejectionMessage = y.RejectionReason, + StatusString = y.DocumentStatus.ToString() + }).ToList(); //var requiredItemsUploaded = employeeLatestConfirmedDocuments @@ -542,7 +573,7 @@ public class EmployeeDocumentsRepository : RepositoryBasey.EmployeeId==x.Key).FullName, + EmployeeFullName = activeEmployeesInWorkshopList.First(y => y.EmployeeId == x.Key).FullName, NationalCardFront = GetByLabelAndLoadMedia(employeeLatestConfirmedDocuments, mediasList, DocumentItemLabel.NationalCardFront), NationalCardRear = GetByLabelAndLoadMedia(employeeLatestConfirmedDocuments, mediasList, DocumentItemLabel.NationalCardRear), MilitaryServiceCard = GetByLabelAndLoadMedia(employeeLatestConfirmedDocuments, mediasList, DocumentItemLabel.MilitaryServiceCard), @@ -552,6 +583,8 @@ public class EmployeeDocumentsRepository : RepositoryBase GetCheckerWorkFlowCount() { - return _companyContext.EmployeeDocumentItems.Include(x => x.EmployeeDocuments) - .Count(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin); + return await _companyContext.EmployeeDocumentItems.Include(x => x.EmployeeDocuments) + .CountAsync(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin); } - //ToDo آپلود مدارک و افزدن پرسنل - //public int GetAdminWorkFlowCountForNewEmployees(List workshopIds) - //{ - // //New employees created by client should have their documents uploaded or confirmed - // var newEmployeesInWorkshop = _companyContext.LeftWorkTemps.Where(x => workshopIds.Contains(x.WorkshopId)); - // var duty = _companyContext.EmployeeDocuments - // .Count(x => workshopIds.Contains(x.WorkshopId) && - // newEmployeesInWorkshop.Any(y => - // y.EmployeeId == x.EmployeeId) - // && x.IsSentToChecker == false && x.IsConfirmed == false); + public async Task GetAdminWorkFlowCountForNewEmployees(List workshopIds) + { + //New employees created by client should have their documents uploaded or confirmed + var newEmployeesInWorkshop = _companyContext.EmployeeClientTemps.Where(x => workshopIds.Contains(x.WorkshopId)); + + var duty = _companyContext.EmployeeDocuments + .CountAsync(x => workshopIds.Contains(x.WorkshopId) && + newEmployeesInWorkshop.Any(y => + y.EmployeeId == x.EmployeeId) + && x.IsSentToChecker == false && x.IsConfirmed == false); - // return duty; - //} + return await duty; + } - public int GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds) + public async Task GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(List workshopIds) { @@ -748,12 +781,12 @@ public class EmployeeDocumentsRepository : RepositoryBase workshopIds.Contains(x.WorkshopId) && x.LeftWorkDate.AddDays(-1) >= DateTime.Today); var dutyCount = _companyContext.EmployeeDocuments - .Count(x => workshopIds.Contains(x.WorkshopId) && - activeEmployeesInWorkshop.Any(y => y.EmployeeId == x.EmployeeId) && - x.IsSentToChecker == false && - (x.EmployeeDocumentItemCollection.Any(y => y.DocumentStatus == DocumentStatus.SubmittedByClient) || x.HasRejectedItems)); + .CountAsync(x => workshopIds.Contains(x.WorkshopId) && + activeEmployeesInWorkshop.Any(y => y.EmployeeId == x.EmployeeId) && + x.IsSentToChecker == false && + (x.EmployeeDocumentItemCollection.Any(y => y.DocumentStatus == DocumentStatus.SubmittedByClient) || x.HasRejectedItems)); - return dutyCount; + return await dutyCount; } public List GetDocumentsAwaitingReviewByWorkshopIdForCheckerWorkFlow(long workshopId) diff --git a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs index c1b63abc..f767456f 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs +++ b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs @@ -14,6 +14,8 @@ using CompanyManagment.App.Contracts.EmployeeInsuranceRecord; using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; +using CompanyManagment.App.Contracts.Employee.DTO; +using CompanyManagment.App.Contracts.LeftWorkTemp; namespace CompanyManagment.EFCore.Repository; @@ -742,6 +744,64 @@ public class EmployeeRepository : RepositoryBase, IEmployeeRepos EmployeeFullName = x.FullName }).ToList(); } + public Employee GetByNationalCodeIgnoreQueryFilter(string nationalCode) + { + return _context.Employees.IgnoreQueryFilters().FirstOrDefault(x => x.NationalCode == nationalCode); + } + + public async Task> GetClientEmployeesStartWork(long workshopId) + { + var res = await _context.Employees + .GroupJoin(_context.LeftWorkTemps.Where(x => x.WorkshopId == workshopId && x.LeftWorkType == LeftWorkTempType.StartWork), + employees => employees.id, + leftWorkTemp => leftWorkTemp.EmployeeId, + (employee, leftWorkTemps) => new { employee, leftWorkTemps }) + .GroupJoin(_context.EmployeeDocuments.Where(x => x.WorkshopId == workshopId), + (query) => query.employee.id, + (employeeDoc) => employeeDoc.EmployeeId, + (query, employeeDoc) => new + { query, employeeDoc }).SelectMany(x => x.employeeDoc.DefaultIfEmpty(), + (q, doc) => new + { + q.query, + EmployeeDoc = doc + }).Where(x => x.query.leftWorkTemps.Any(l => l.WorkshopId == workshopId && l.LeftWorkType == LeftWorkTempType.StartWork)).Select( + x => new ClientStartedWorkEmployeesDto() + { + WorkshopId = workshopId, + EmployeeId = x.query.employee.id, + EmployeeName = x.query.employee.FName + " " + x.query.employee.LName, + // ReSharper disable once SimplifyConditionalTernaryExpression + HasCompleteEmployeeDocument = x.EmployeeDoc == null ? false : x.EmployeeDoc.IsConfirmed + }).ToListAsync(); + + return res; + } + + public async Task> GetEmployeesForLeftWorkTemp(long workshopId) + { + var res = await _context.Employees + .Join(_context.LeftWorkTemps.Where(x => x.WorkshopId == workshopId && x.LeftWorkType == LeftWorkTempType.LeftWork), + employees => employees.id, + leftWorkTemp => leftWorkTemp.EmployeeId, + (employee, leftWorkTemps) => new { employee, leftWorkTemps }) + .Select( + x => new ClientLeftWorkWorkEmployeesDto() + { + WorkshopId = workshopId, + EmployeeId = x.employee.id, + EmployeeName = x.employee.FName + " " + x.employee.LName, + LeftWorkDateTime = x.leftWorkTemps.LeftWork.ToFarsi() + }).ToListAsync(); + + + return res; + } + + public Employee GetIgnoreQueryFilter(long id) + { + return _context.Employees.IgnoreQueryFilters().FirstOrDefault(x => x.id == id); + } #endregion #region Pooya @@ -776,6 +836,37 @@ public class EmployeeRepository : RepositoryBase, IEmployeeRepos }).ToList(); } + public async Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId) + { + var employee = await _context.Employees.Where(x => x.id == employeeId).Select(x => new GetEditEmployeeInEmployeeDocumentViewModel() + { + EmployeeId = x.id, + LName = x.LName, + BirthDate = x.DateOfBirth.ToFarsi(), + FName = x.FName, + FatherName = x.FatherName, + MaritalStatus = x.MaritalStatus, + MilitaryService = x.MilitaryService, + NationalCode = x.NationalCode, + IdNumber = x.IdNumber, + Nationality = x.Nationality, + Gender = x.Gender, + IsAuthorized = x.IsAuthorized + }).FirstOrDefaultAsync(); + + var employeeClientTemp = + await _context.EmployeeClientTemps.FirstOrDefaultAsync(x => + x.EmployeeId == employeeId && x.WorkshopId == workshopId); + + if (employeeClientTemp != null) + { + employee.MaritalStatus = employeeClientTemp.MaritalStatus; + } + + return employee; + } + + public List<(long Id, string Name)> SimpleGetRangeByIds(IEnumerable newEmployeeIds) { return _context.Employees.Where(x => newEmployeeIds.Contains(x.id)).Select(x => new diff --git a/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs b/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs index 86d00b13..d1c5a6b0 100644 --- a/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs +++ b/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs @@ -207,6 +207,8 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos return leftWorks.Concat(insuranceLeftWork).Distinct().ToList(); } + + public List GetLeftPersonelByWorkshopId(List workshopIds) { return _context.LeftWorkList.Select(x => new LeftWorkViewModel() @@ -626,6 +628,12 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos HasLeft = entity.HasLeft }; } + public LeftWork GetLastLeftWorkByEmployeeIdAndWorkshopId(long workshopId, long employeeId) + { + return _context.LeftWorkList.Where(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId) + .OrderByDescending(x => x.StartWorkDate).FirstOrDefault(); + } + private bool HasActiveRollCallStatus(long workshopId, long employeeId) { diff --git a/CompanyManagment.EFCore/Repository/PersonnelCodeRepository.cs b/CompanyManagment.EFCore/Repository/PersonnelCodeRepository.cs index 30465658..48adbbe5 100644 --- a/CompanyManagment.EFCore/Repository/PersonnelCodeRepository.cs +++ b/CompanyManagment.EFCore/Repository/PersonnelCodeRepository.cs @@ -90,4 +90,12 @@ public class PersonnelCodeRepository : RepositoryBase return res.EmployeeId; return 0; } + + #region Mahan + public long GetLastPersonnelCodeByWorkshop(long workshopId) + { + return _context.PersonnelCodeSet.Where(x => x.WorkshopId == workshopId).Max(x => x.PersonnelCode); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs index eb736e7d..d97eb316 100644 --- a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs @@ -244,19 +244,6 @@ public class RollCallEmployeeRepository : RepositoryBase ; } - public bool HasEmployees(long workshopId) - { - var dateNow = DateTime.Now; - return _context.Employees.Include(x => x.LeftWorks).Include(x => x.LeftWorkInsurances) - .Any(x => x.LeftWorks.Any(y => - y.WorkshopId == workshopId && y.StartWorkDate <= dateNow && - y.LeftWorkDate > dateNow) || - x.LeftWorkInsurances.Any(y => - y.WorkshopId == workshopId && y.StartWorkDate <= dateNow && - (y.LeftWorkDate > dateNow || y.LeftWorkDate == null))); - - } - public List GetActivePersonnelByWorkshopId(long workshopId) { var dateNow = DateTime.Now.Date; @@ -333,46 +320,14 @@ public class RollCallEmployeeRepository : RepositoryBase return new(); } + #endregion + + #region Farokhi&Mahan + public (int activeEmployees, int deActiveEmployees) GetActiveAndDeActiveRollCallEmployees(long workshopId) { var dateNow = DateTime.Now; - //var employeeQuery = _context.Employees.AsQueryable(); - - //var rawQuery = employeeQuery.Include(x => x.LeftWorks).Include(x => x.LeftWorkInsurances) - // .Where(x => x.LeftWorks.Any(y => - // y.WorkshopId == command.WorkshopId && y.StartWorkDate <= dateNow && - // y.LeftWorkDate > dateNow) || - // x.LeftWorkInsurances.Any(y => - // y.WorkshopId == command.WorkshopId && y.StartWorkDate <= dateNow && - // (y.LeftWorkDate > dateNow || y.LeftWorkDate == null))).OrderByDescending(x => x.id) - // .Select(x => new - // { - // Id = x.id, - // x.FullName, - // x.NationalCode, - - // }).AsSplitQuery(); - - - - //var rollCallEmployees = _context.RollCallEmployees.Where(x => x.WorkshopId == command.WorkshopId); - - - //var joinedQuery = from employee in rawQuery - // join rollCallEmployee in rollCallEmployees - // on employee.Id equals rollCallEmployee.EmployeeId into grp - // from joinedRollCall in grp.DefaultIfEmpty() - // select new RollCallEmployeeViewModel() - // { - // WorkshopId = command.WorkshopId, - // EmployeeId = employee.Id, - // Id = joinedRollCall == null ? 0 : joinedRollCall.id, - // EmployeeFullName = joinedRollCall == null ? employee.FullName : joinedRollCall.EmployeeFullName, - // NationalCode = employee.NationalCode, - // IsActiveString = joinedRollCall == null ? "false" : joinedRollCall.IsActiveString, - // HasUploadedImage = joinedRollCall == null ? "false" : joinedRollCall.HasUploadedImage - // }; var rawQuery = _context.Employees.Include(x => x.LeftWorks).Include(x => x.LeftWorkInsurances) .Where(x => x.LeftWorks.Any(y => y.WorkshopId == workshopId && y.StartWorkDate <= dateNow && @@ -385,20 +340,41 @@ public class RollCallEmployeeRepository : RepositoryBase Id = x.id, }).Distinct(); - var rollCallEmployees = _context.RollCallEmployees.Where(x => x.WorkshopId == workshopId); + var rollCallEmployees = _context.RollCallEmployees.Include(x => x.EmployeesStatus).Where(x => x.WorkshopId == workshopId); var joinedQuery = from employee in rawQuery - join rollCallEmployee in rollCallEmployees - on employee.Id equals rollCallEmployee.EmployeeId into grp - from joinedRollCall in grp.DefaultIfEmpty() - select new RollCallEmployeeViewModel() - { - IsActiveString = joinedRollCall == null ? "false" : joinedRollCall.IsActiveString, - }; + join rollCallEmployee in rollCallEmployees + on employee.Id equals rollCallEmployee.EmployeeId into grp + from joinedRollCall in grp.DefaultIfEmpty() + select new RollCallEmployeeViewModel() + { + IsActiveString = joinedRollCall.EmployeesStatus.Any(y => y.StartDate.Date <= dateNow.Date && y.EndDate.Date > dateNow.Date) ? "true" : "false", + + }; var deActiveCount = joinedQuery.Count(x => x.IsActiveString == "false"); var ActiveCount = joinedQuery.Count(x => x.IsActiveString == "true"); return (ActiveCount, deActiveCount); - #endregion } + + public bool HasEmployees(long workshopId) + { + var dateNow = DateTime.Now; + return _context.Employees.Include(x => x.LeftWorks).Include(x => x.LeftWorkInsurances) + .Any(x => x.LeftWorks.Any(y => + y.WorkshopId == workshopId && y.StartWorkDate <= dateNow && + y.LeftWorkDate > dateNow) || + x.LeftWorkInsurances.Any(y => + y.WorkshopId == workshopId && y.StartWorkDate <= dateNow && + (y.LeftWorkDate > dateNow || y.LeftWorkDate == null))); + + } + + public RollCallEmployee GetBy(long employeeId, long workshopId) + { + return _context.RollCallEmployees.FirstOrDefault(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId); + } + + #endregion + } \ No newline at end of file diff --git a/WorkFlow/Application/WorkFlow.Application.Contracts/AdminWorkFlow/IAdminWorkFlowApplication.cs b/WorkFlow/Application/WorkFlow.Application.Contracts/AdminWorkFlow/IAdminWorkFlowApplication.cs index 01a3a408..3dc06f8f 100644 --- a/WorkFlow/Application/WorkFlow.Application.Contracts/AdminWorkFlow/IAdminWorkFlowApplication.cs +++ b/WorkFlow/Application/WorkFlow.Application.Contracts/AdminWorkFlow/IAdminWorkFlowApplication.cs @@ -3,6 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using _0_Framework.Application; +using CompanyManagment.App.Contracts.Employee; + namespace WorkFlow.Application.Contracts.AdminWorkFlow; public interface IAdminWorkFlowApplication @@ -25,19 +28,39 @@ public interface IAdminWorkFlowApplication /// /// /// - // Task> GetWorkshopsForEmployeeStartWork(long accountId); + Task> GetWorkshopsForEmployeeStartWork(long accountId); + + /// + /// تعداد کارگاه هایی که از کلاینت پرسنلی را شروع به کار زدند + /// + /// + /// + Task GetWorkshopsForEmployeeStartWorkCount(long accountId); + /// /// لیست پرسنل هایی که از سمت کلاینت شروع به کار خوردند /// /// /// - //Task> GetClientEmployeesStartWork(long workshopId); + Task> GetClientEmployeesStartWork(long workshopId); + + /// + /// اطلاعات پرسنل برای ویرایش در مودال ادمین آپلود مدارک در هنگام رد شدن مدرک توسط ناظر + /// + /// + /// + /// + Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, + long workshopId); + + Task EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command); #endregion - AdminWorkFlowNumbersViewModel GetWorkFlowCountsForAdmin(List workshopIds); - int GetWorkFlowCountForChecker(); + Task GetEmployeeDocumentWorkFlowCountsForAdmin(List workshopIds); + Task GetWorkFlowCountsForAdmin(List workshopIds, long accountId); + Task GetWorkFlowCountForChecker(); #region ترک کار موقت @@ -47,7 +70,7 @@ public interface IAdminWorkFlowApplication /// /// /// - //Task> GetWorkshopsForLeftWorkTemp(long accountId); + Task> GetWorkshopsForLeftWorkTemp(long accountId); @@ -56,11 +79,12 @@ public interface IAdminWorkFlowApplication /// /// /// - // Task> GetEmployeesForLeftWorkTemp(long workshopId); + Task> GetEmployeesForLeftWorkTemp(long workshopId); + + Task GetWorkshopsForLeftWorkTempCount(long accountId); #endregion - } /// diff --git a/WorkFlow/Application/WorkFlow.Application.Contracts/WorkFlow.Application.Contracts.csproj b/WorkFlow/Application/WorkFlow.Application.Contracts/WorkFlow.Application.Contracts.csproj index 6cfa8378..62f2add8 100644 --- a/WorkFlow/Application/WorkFlow.Application.Contracts/WorkFlow.Application.Contracts.csproj +++ b/WorkFlow/Application/WorkFlow.Application.Contracts/WorkFlow.Application.Contracts.csproj @@ -8,6 +8,7 @@ + diff --git a/WorkFlow/Application/WorkFlow.Application/AdminWorkFlowApplication.cs b/WorkFlow/Application/WorkFlow.Application/AdminWorkFlowApplication.cs index 4d9209da..891db672 100644 --- a/WorkFlow/Application/WorkFlow.Application/AdminWorkFlowApplication.cs +++ b/WorkFlow/Application/WorkFlow.Application/AdminWorkFlowApplication.cs @@ -1,4 +1,5 @@ -using WorkFlow.Application.Contracts.AdminWorkFlow; +using CompanyManagment.App.Contracts.Employee; +using WorkFlow.Application.Contracts.AdminWorkFlow; using WorkFlow.Infrastructure.ACL.EmployeeDocuments; @@ -26,26 +27,22 @@ namespace WorkFlow.Application return _workFlowEmployeeDocumentsACL.GetWorkshopDocumentsAwaitingReviewForChecker(workshops); } - public AdminWorkFlowNumbersViewModel GetWorkFlowCountsForAdmin(List workshopIds) + public async Task GetEmployeeDocumentWorkFlowCountsForAdmin(List workshopIds) { - var submittedDocumentsByClient = _workFlowEmployeeDocumentsACL.GetAdminWorkFlowCountForSubmittedDocuments(workshopIds); + var submittedDocumentsByClient = await _workFlowEmployeeDocumentsACL.GetAdminWorkFlowCountForSubmittedDocuments(workshopIds); - //var newEmployees = _workFlowEmployeeDocumentsACL.GetAdminWorkFlowCountForNewEmployees(workshopIds); + var newEmployees = await _workFlowEmployeeDocumentsACL.GetAdminWorkFlowCountForNewEmployees(workshopIds); - return new AdminWorkFlowNumbersViewModel() - { - EmployeeDocumentsAwaitingSubmit = submittedDocumentsByClient, - //NewEmployeesAwaitingUpload = newEmployees - }; + + return submittedDocumentsByClient + newEmployees; } - - public int GetWorkFlowCountForChecker() + public async Task GetWorkFlowCountForChecker() { - return _workFlowEmployeeDocumentsACL.GetCheckerWorkFlowCount(); + return await _workFlowEmployeeDocumentsACL.GetCheckerWorkFlowCount(); } - + public List GetWorkshopsWithDocumentsAwaitingUploadForAdmin(List workshops) { @@ -57,28 +54,52 @@ namespace WorkFlow.Application #region Mahan #region شروع به کار پرسنل افزوده شده - //public async Task> GetWorkshopsForEmployeeStartWork(long accountId) - //{ - // return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWork(accountId); - //} + public async Task> GetWorkshopsForEmployeeStartWork(long accountId) + { + return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWork(accountId); + } + + public async Task GetWorkshopsForEmployeeStartWorkCount(long accountId) + { + return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWorkCount(accountId); + } + + + + + public async Task> GetClientEmployeesStartWork(long workshopId) + { + return await _workFlowEmployeeACL.GetClientEmployeesStartWork(workshopId); + } + + public async Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId) + { + return await _workFlowEmployeeACL.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId); + } + + public async Task EditEmployeeInEmployeeDocumentWorkFlow( + EditEmployeeInEmployeeDocument command) + { + return await _workFlowEmployeeACL.EditEmployeeInEmployeeDocumentWorkFlow(command); + } - //public async Task> GetClientEmployeesStartWork(long workshopId) - //{ - // return await _workFlowEmployeeACL.GetClientEmployeesStartWork(workshopId); - //} #endregion #region ترک کار موقت - //public async Task> GetWorkshopsForLeftWorkTemp(long accountId) - //{ - // return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTemp(accountId); - //} + public async Task> GetWorkshopsForLeftWorkTemp(long accountId) + { + return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTemp(accountId); + } + public async Task GetWorkshopsForLeftWorkTempCount(long accountId) + { + return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTempCount(accountId); + } - //public async Task> GetEmployeesForLeftWorkTemp(long workshopId) - //{ - // return await _workFlowEmployeeACL.GetEmployeesForLeftWorkTemp(workshopId); - //} + public async Task> GetEmployeesForLeftWorkTemp(long workshopId) + { + return await _workFlowEmployeeACL.GetEmployeesForLeftWorkTemp(workshopId); + } #endregion diff --git a/WorkFlow/Infrastructure/WorkFlow.Infrastructure.ACL/EmployeeDocuments/IWorkFlowEmployeeDocumentsACL.cs b/WorkFlow/Infrastructure/WorkFlow.Infrastructure.ACL/EmployeeDocuments/IWorkFlowEmployeeDocumentsACL.cs index c82f70bb..26071c07 100644 --- a/WorkFlow/Infrastructure/WorkFlow.Infrastructure.ACL/EmployeeDocuments/IWorkFlowEmployeeDocumentsACL.cs +++ b/WorkFlow/Infrastructure/WorkFlow.Infrastructure.ACL/EmployeeDocuments/IWorkFlowEmployeeDocumentsACL.cs @@ -8,9 +8,10 @@ namespace WorkFlow.Infrastructure.ACL.EmployeeDocuments List GetWorkshopDocumentsAwaitingReviewForChecker(List workshops); List GetWorkshopsWithDocumentsAwaitingUploadForAdmin(List workshops); - int GetAdminWorkFlowCountForSubmittedDocuments(List workshopIds); - //int GetAdminWorkFlowCountForNewEmployees(List workshopIds); - int GetCheckerWorkFlowCount(); + + Task GetAdminWorkFlowCountForSubmittedDocuments(List workshopIds); + Task GetAdminWorkFlowCountForNewEmployees(List workshopIds); + Task GetCheckerWorkFlowCount(); } public class WorkFlowEmployeeDocumentsACL : IWorkFlowEmployeeDocumentsACL @@ -34,17 +35,17 @@ namespace WorkFlow.Infrastructure.ACL.EmployeeDocuments }).ToList(); } - public int GetAdminWorkFlowCountForSubmittedDocuments(List workshopIds) + public async Task GetAdminWorkFlowCountForSubmittedDocuments(List workshopIds) { - return _employeeDocumentsApplication.GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(workshopIds); + return await _employeeDocumentsApplication.GetAdminWorkFlowCountForSubmittedAndRejectedDocuments(workshopIds); } - //public int GetAdminWorkFlowCountForNewEmployees(List workshopIds) - //{ - // return _employeeDocumentsApplication.GetAdminWorkFlowCountForNewEmployees(workshopIds); - //} - public int GetCheckerWorkFlowCount() + public async Task GetAdminWorkFlowCountForNewEmployees(List workshopIds) { - return _employeeDocumentsApplication.GetCheckerWorkFlowCount(); + return await _employeeDocumentsApplication.GetAdminWorkFlowCountForNewEmployees(workshopIds); + } + public async Task GetCheckerWorkFlowCount() + { + return await _employeeDocumentsApplication.GetCheckerWorkFlowCount(); } public List GetWorkshopDocumentsAwaitingReviewForChecker(List workshops) From d7d938dfccb12eec6f02389f1ddc92c41faed3ba Mon Sep 17 00:00:00 2001 From: MahanCh Date: Sun, 9 Mar 2025 21:52:06 +0330 Subject: [PATCH 02/51] Add employee by client part 2 --- Company.Domain/EmployeeAgg/Employee.cs | 4 + .../EmployeeAgg/IEmployeeRepository.cs | 3 + .../IRollCallServiceRepository.cs | 1 + .../WorkshopAgg/IWorkshopRepository.cs | 30 +- .../Employee/CreateEmployeeByClient.cs | 4 +- .../Employee/IEmployeeApplication.cs | 28 + .../IPersonnelCodeApplication.cs | 2 + .../RollCallEmployeeViewModel.cs | 1 + .../IRollCallServiceApplication.cs | 1 + .../WorkshopWithLeftWorkTempEmployeesDto.cs | 24 + .../DTOs/WorkshopWithStartedEmployeesDTO.cs | 27 + .../Workshop/IWorkshopApplication.cs | 18 +- .../Workshop/PersonnelInfoViewModel.cs | 2 + .../EmployeeAplication.cs | 7 + .../EmployeeDocumentsApplication.cs | 153 +- .../PersonnelCodeApplication.cs | 5 + .../RollCallServiceApplication.cs | 5 + .../WorkshopAppliction.cs | 110 +- ..._add employee by client tables.Designer.cs | 8885 +++++++++++++++++ ...309154800_add employee by client tables.cs | 75 + .../Migrations/CompanyContextModelSnapshot.cs | 74 + .../EmployeeClientTempRepository.cs | 35 + .../Repository/EmployeeRepository .cs | 14 + .../Repository/JobRepository.cs | 10 +- .../Repository/LeftWorkTempRepository.cs | 82 + .../Repository/RollCallEmployeeRepository.cs | 69 +- .../Repository/RollCallServiceRepository.cs | 5 + .../Repository/WorkshopRepository.cs | 873 +- .../PersonalBootstrapper.cs | 10 + .../Pages/Company/Checker/Index.cshtml.cs | 5 +- .../WorkFlow/EmployeesDocuments.cshtml | 2 +- .../WorkFlow/EmployeesDocuments.cshtml.cs | 21 +- .../Company/WorkFlow/EmployeesLeftWork.cshtml | 135 + .../WorkFlow/EmployeesLeftWork.cshtml.cs | 105 + .../Company/WorkFlow/EmployeesNew.cshtml | 135 + .../Company/WorkFlow/EmployeesNew.cshtml.cs | 97 + .../Pages/Company/WorkFlow/Index.cshtml | 96 +- .../Pages/Company/WorkFlow/Index.cshtml.cs | 19 +- .../ModalEmployeeEdit.cshtml | 187 + .../ModalUploadDocument.cshtml | 859 +- .../_ModalEmployeeLeftWork/LeftWork.cshtml | 316 + .../_ModalEmployeeNew/StartWork.cshtml | 300 + .../Areas/AdminNew/Pages/Index.cshtml.cs | 8 +- .../Employees/CreateEmployeeModal.cshtml | 286 + .../Company/Employees/EmployeeList.cshtml | 687 +- .../Company/Employees/EmployeeList.cshtml.cs | 334 + .../Pages/Company/Employees/Index.cshtml | 151 +- .../ModalCreateLeftWorkEmployee.cshtml | 78 + .../ModalCreateLeftWorkSingleEmployee.cshtml | 79 + .../_Partials/CreateBankInfoModal.cshtml | 88 + .../_Partials/CreateEmployeeForm.cshtml | 154 + .../_Partials/IdentityInformationForm.cshtml | 62 + .../_Partials/ModalUploadDocument.cshtml | 246 + .../ModalUploadImagePersonnel.cshtml | 119 + .../_Partials/WorkshopSettingGrouping.cshtml | 272 + .../RollCall/EmployeeUploadPicture.cshtml | 129 +- .../RollCall/EmployeeUploadPicture.cshtml.cs | 1342 +-- .../Pages/Company/Workshop/Employees.cshtml | 483 - .../Company/Workshop/Employees.cshtml.cs | 75 - .../Pages/Company/Workshop/Index.cshtml | 14 - ServiceHost/Areas/Client/Pages/Index.cshtml | 31 +- ServiceHost/ServiceHost.csproj | 2 - .../css/ModalUploadDocument.css | 46 +- .../WorkFlow/css/EmployeesLeftWork.css | 634 ++ .../WorkFlow/css/ModalEmployeeEdit.css | 275 + .../WorkFlow/css/start-left-work.css | 19 +- .../WorkFlow/js/EmployeesLeftWork.js | 354 + .../WorkFlow/js/EmployeesNew.js | 97 +- .../WorkFlow/js/ModalEmployeeEdit.js | 147 + .../WorkFlow/js/ModalUploadDocument.js | 29 + .../js/_ModalEmployeeLeftWork/LeftWork.js | 211 + .../js/_ModalEmployeeNew/StartWork.js | 145 + .../AssetsAdminNew/css/customModal.css | 51 + .../wwwroot/AssetsAdminNew/js/customModal.js | 21 + .../AssetsClient/Workshop/js/employees.js | 2 - .../Employees/css/CreateBankInfoModal.css | 89 + .../Employees/css/CreateEmployeeModal.css | 655 ++ .../css/ModalCreateLeftWorkEmployee.css | 134 + .../pages/Employees/css/ModalTakeImages.css | 494 + .../Employees/css/ModalUploadDocument.css | 246 + .../pages/Employees/js/CreateBankInfoModal.js | 468 + .../pages/Employees/js/CreateEmployeeForm.js | 115 + .../pages/Employees/js/CreateEmployeeModal.js | 492 + .../pages/Employees/js/EmployeeList.js | 305 + .../Employees/js/IdentityInformationModal.js | 205 + .../js/ModalCreateLeftWorkEmployee.js | 300 + .../pages/Employees/js/ModalUploadDocument.js | 308 + .../Employees/js/WorkshopSettingGrouping.js | 1408 +++ .../Employees/js/modaluploadimagepersonnel.js | 485 + .../RollCall/js/EmployeeUploadPicture.js | 28 +- .../AdminWorkFlowApplication.cs | 29 +- .../Employee/IWorkFlowEmployeeACL.cs | 61 + .../Workshop/IWorkFlowWorkshopACL.cs | 60 + .../WorkFlowBootstrapper.cs | 8 +- 94 files changed, 22779 insertions(+), 2616 deletions(-) create mode 100644 CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithLeftWorkTempEmployeesDto.cs create mode 100644 CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithStartedEmployeesDTO.cs create mode 100644 CompanyManagment.EFCore/Migrations/20250309154800_add employee by client tables.Designer.cs create mode 100644 CompanyManagment.EFCore/Migrations/20250309154800_add employee by client tables.cs create mode 100644 CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs create mode 100644 CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs create mode 100644 ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesLeftWork.cshtml create mode 100644 ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesLeftWork.cshtml.cs create mode 100644 ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesNew.cshtml create mode 100644 ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesNew.cshtml.cs create mode 100644 ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalEmployeeEdit.cshtml create mode 100644 ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeLeftWork/LeftWork.cshtml create mode 100644 ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/CreateEmployeeModal.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/EmployeeList.cshtml.cs create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/ModalCreateLeftWorkEmployee.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/ModalCreateLeftWorkSingleEmployee.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/CreateBankInfoModal.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/CreateEmployeeForm.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadDocument.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadImagePersonnel.cshtml create mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/WorkshopSettingGrouping.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml.cs create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/css/EmployeesLeftWork.css create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/css/ModalEmployeeEdit.css create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/EmployeesLeftWork.js create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeLeftWork/LeftWork.js create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeNew/StartWork.js create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/css/customModal.css create mode 100644 ServiceHost/wwwroot/AssetsAdminNew/js/customModal.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/css/CreateBankInfoModal.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/css/CreateEmployeeModal.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/css/ModalCreateLeftWorkEmployee.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/css/ModalTakeImages.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/css/ModalUploadDocument.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateBankInfoModal.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeForm.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/CreateEmployeeModal.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/EmployeeList.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/IdentityInformationModal.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/ModalCreateLeftWorkEmployee.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/ModalUploadDocument.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/WorkshopSettingGrouping.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Employees/js/modaluploadimagepersonnel.js create mode 100644 WorkFlow/Infrastructure/WorkFlow.Infrastructure.ACL/Employee/IWorkFlowEmployeeACL.cs create mode 100644 WorkFlow/Infrastructure/WorkFlow.Infrastructure.ACL/Workshop/IWorkFlowWorkshopACL.cs diff --git a/Company.Domain/EmployeeAgg/Employee.cs b/Company.Domain/EmployeeAgg/Employee.cs index dc45b29b..c8836b47 100644 --- a/Company.Domain/EmployeeAgg/Employee.cs +++ b/Company.Domain/EmployeeAgg/Employee.cs @@ -224,6 +224,10 @@ public class Employee : EntityBase } #region Mahan + public void EditFromEmployeeClientTemp(string maritalStatus) + { + MaritalStatus = maritalStatus; + } public void Authorized() { diff --git a/Company.Domain/EmployeeAgg/IEmployeeRepository.cs b/Company.Domain/EmployeeAgg/IEmployeeRepository.cs index aabcd453..6a49fd7e 100644 --- a/Company.Domain/EmployeeAgg/IEmployeeRepository.cs +++ b/Company.Domain/EmployeeAgg/IEmployeeRepository.cs @@ -63,6 +63,9 @@ public interface IEmployeeRepository : IRepository List GetWorkingEmployeesByWorkshopIdsAndNationalCodeAndDate(List workshopIds, string nationalCode, DateTime date); List GetWorkingEmployeesByWorkshopId(long workshopId); + List GetWorkedEmployeesByWorkshopIdsAndNationalCodeAndDate(List workshopIds, + string nationalCode, DateTime date); + List<(long Id, string Name)> SimpleGetRangeByIds(IEnumerable newEmployeeIds); Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId); diff --git a/Company.Domain/RollCallServiceAgg/IRollCallServiceRepository.cs b/Company.Domain/RollCallServiceAgg/IRollCallServiceRepository.cs index 95b9ffd9..06dd39ed 100644 --- a/Company.Domain/RollCallServiceAgg/IRollCallServiceRepository.cs +++ b/Company.Domain/RollCallServiceAgg/IRollCallServiceRepository.cs @@ -17,4 +17,5 @@ public interface IRollCallServiceRepository : IRepository List GetAllServiceByAccountId(long accountId); + bool IsExistActiveServiceByWorkshopId(long workshopId); } \ No newline at end of file diff --git a/Company.Domain/WorkshopAgg/IWorkshopRepository.cs b/Company.Domain/WorkshopAgg/IWorkshopRepository.cs index 1a9cc9c4..732d453c 100644 --- a/Company.Domain/WorkshopAgg/IWorkshopRepository.cs +++ b/Company.Domain/WorkshopAgg/IWorkshopRepository.cs @@ -1,9 +1,11 @@ using System.Collections.Generic; +using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.Domain; using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.PersonalContractingParty; using CompanyManagment.App.Contracts.Workshop; +using CompanyManagment.App.Contracts.Workshop.DTOs; namespace Company.Domain.WorkshopAgg; @@ -59,18 +61,23 @@ public interface IWorkshopRepository : IRepository List PrintWorkshopList(WorkshopSearchModel searchModel); #endregion + #region Mahan PersonalContractingPartyViewModel GetPersonalContractingPartyByWorkshopId(long workshopId); List GetWorkshopsByClientAccountId(long clientAccountId); + Task> GetWorkshopsForEmployeeStartWork(long accountId); + Task GetWorkshopsForEmployeeStartWorkCount(long accountId); + Task> GetWorkshopsForLeftWorkTemp(long accountId); + Task GetWorkshopsForLeftWorkTempCount(long accountId); - #endregion + #endregion - #region Insurance - /// - /// لیست انتخاب کارگاه در مودال ایجاد بیمه - /// - /// - List GetWorkshopSelectListInsuransce(); + #region Insurance + /// + /// لیست انتخاب کارگاه در مودال ایجاد بیمه + /// + /// + List GetWorkshopSelectListInsuransce(); #endregion /// @@ -87,4 +94,13 @@ public interface IWorkshopRepository : IRepository /// /// OperationResult EditAccountLeftWorkAndWorkshopAccounts(List accountIds, long workshopId); + + + #region Pooya + + List GetPersonnelInfoRemastered(long searchModelWorkshopId); + + + #endregion + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs b/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs index 9ff2fc8c..29f9346c 100644 --- a/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs +++ b/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs @@ -27,9 +27,7 @@ public class CreateEmployeeByClient public long JobId { get; set; } public List EmployeeDocumentItems { get; set; } public bool HasEmployeeDocument { get; set; } - - - + public bool HasRollCallService { get; set; } } diff --git a/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs b/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs index cc493a21..4ec027f8 100644 --- a/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs +++ b/CompanyManagment.App.Contracts/Employee/IEmployeeApplication.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using _0_Framework.Application; +using CompanyManagment.App.Contracts.Employee.DTO; using CompanyManagment.App.Contracts.EmployeeInsuranceRecord; namespace CompanyManagment.App.Contracts.Employee; @@ -44,6 +45,33 @@ public interface IEmployeeApplication List GetWorkingEmployeesByWorkshopId(long workshopId); + EmployeeViewModel GetEmployeeByNationalCodeIfHasLeftWork(string nationalCode, List workshopIds); + #endregion + + #region Mahan + OperationResult CreateEmployeeByClient(CreateEmployeeByClient command); + + /// + /// اطلاعات پرسنل با کد ملی در کارگاه. اگر در کارگاه کار نکرده باشه وجود نداشته باشه اطلاعات خالی داده میشه + /// + /// + /// + /// + /// + Task> + ValidateCreateEmployeeClientByNationalCodeAndWorkshopId(string nationalCode, + string birthDate, long workshopId); + + /// + /// پرسنل هایی که در کارگاهی از سمت ادمین شروع به کار کرده اند + /// + /// + /// + Task> GetClientEmployeesStartWork(long workshopId); + Task> GetEmployeesForLeftWorkTemp(long workshopId); + Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, + long workshopId); + Task EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command); #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/PersonnleCode/IPersonnelCodeApplication.cs b/CompanyManagment.App.Contracts/PersonnleCode/IPersonnelCodeApplication.cs index 3fbd286b..b7c08647 100644 --- a/CompanyManagment.App.Contracts/PersonnleCode/IPersonnelCodeApplication.cs +++ b/CompanyManagment.App.Contracts/PersonnleCode/IPersonnelCodeApplication.cs @@ -16,5 +16,7 @@ public interface IPersonnelCodeApplication List Search(PersonnelCodeSearchModel searchModel); PersonnelCodeViewModel GetPersonnelCodeViewModel(PersonnelCodeSearchModel searchModel); long GetEmployeeIdByPersonelCode(long personleCode, long workshopId); + long GetLastPersonnelCodeByWorkshop(long workshopId); + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/RollCallEmployee/RollCallEmployeeViewModel.cs b/CompanyManagment.App.Contracts/RollCallEmployee/RollCallEmployeeViewModel.cs index 58a9f016..90ef6c02 100644 --- a/CompanyManagment.App.Contracts/RollCallEmployee/RollCallEmployeeViewModel.cs +++ b/CompanyManagment.App.Contracts/RollCallEmployee/RollCallEmployeeViewModel.cs @@ -35,4 +35,5 @@ public class RollCallEmployeeViewModel : EditRollCallEmployee public string EmployeeLName { get; set; } public string EmployeeFName { get; set; } public long RollCallEmployeeId { get; set; } + public bool CreatedByClient { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/RollCallService/IRollCallServiceApplication.cs b/CompanyManagment.App.Contracts/RollCallService/IRollCallServiceApplication.cs index 535d0912..6fbdb409 100644 --- a/CompanyManagment.App.Contracts/RollCallService/IRollCallServiceApplication.cs +++ b/CompanyManagment.App.Contracts/RollCallService/IRollCallServiceApplication.cs @@ -19,4 +19,5 @@ public interface IRollCallServiceApplication List GetActiveServiceByAccountId(long accountId); List GetAllServiceByAccountId(long accountId); + bool IsExistActiveServiceByWorkshopId(long workshopId); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithLeftWorkTempEmployeesDto.cs b/CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithLeftWorkTempEmployeesDto.cs new file mode 100644 index 00000000..f57e2abc --- /dev/null +++ b/CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithLeftWorkTempEmployeesDto.cs @@ -0,0 +1,24 @@ +namespace CompanyManagment.App.Contracts.Workshop; + +public class WorkshopWithLeftWorkTempEmployeesDto +{ + /// + /// آیدی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// نام کارگاه + /// + public string WorkshopName { get; set; } = string.Empty; + + /// + /// نام کارفرما + /// + public string EmployerName { get; set; } = string.Empty; + + /// + /// تعداد پرسنل ترک کار کرده + /// + public int LeftWorkEmployees { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithStartedEmployeesDTO.cs b/CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithStartedEmployeesDTO.cs new file mode 100644 index 00000000..60e2ae2d --- /dev/null +++ b/CompanyManagment.App.Contracts/Workshop/DTOs/WorkshopWithStartedEmployeesDTO.cs @@ -0,0 +1,27 @@ +namespace CompanyManagment.App.Contracts.Workshop.DTOs; + +/// +/// کارگاه هایی که از کلاینت، پرسنلی را شروع به کار زدند +/// +public class WorkshopWithStartedEmployeesDto +{ + /// + /// آیدی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// نام کارگاه + /// + public string WorkshopName { get; set; } = string.Empty; + + /// + /// نام کارفرما + /// + public string EmployerName { get; set; } = string.Empty; + + /// + /// تعداد پرسنل اضافه شده + /// + public int AddedEmployeesCount { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs b/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs index 73d34584..d30257e3 100644 --- a/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs +++ b/CompanyManagment.App.Contracts/Workshop/IWorkshopApplication.cs @@ -1,7 +1,9 @@ using System.Collections.Generic; using System.Runtime.InteropServices; +using System.Threading.Tasks; using _0_Framework.Application; using AccountManagement.Application.Contracts.Account; +using CompanyManagment.App.Contracts.Workshop.DTOs; namespace CompanyManagment.App.Contracts.Workshop; @@ -54,6 +56,11 @@ public interface IWorkshopApplication #endregion + #region Pooya + + List GetPersonnelInfoRemastered(PersonnelInfoSearchModel searchModel); + #endregion + #region Vafa List PrintWorkshopList(WorkshopSearchModel searchModel); @@ -70,5 +77,14 @@ public interface IWorkshopApplication /// List GetWorkshopSelectListInsuransce(); - #endregion + #endregion + + #region Mahan + Task> GetWorkshopsForEmployeeStartWork(long accountId); + Task GetWorkshopsForEmployeeStartWorkCount(long accountId); + + Task> GetWorkshopsForLeftWorkTemp(long accountId); + Task GetWorkshopsForLeftWorkTempCount(long accountId); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/PersonnelInfoViewModel.cs b/CompanyManagment.App.Contracts/Workshop/PersonnelInfoViewModel.cs index 42c32f31..5ad7473f 100644 --- a/CompanyManagment.App.Contracts/Workshop/PersonnelInfoViewModel.cs +++ b/CompanyManagment.App.Contracts/Workshop/PersonnelInfoViewModel.cs @@ -43,4 +43,6 @@ public class PersonnelInfoViewModel public bool Black { get; set; } public DateTime StartWork { get; set; } public DateTime LeftWork { get; set; } + public bool CreatedByClient { get; set; } + public bool LefWorkTemp { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.Application/EmployeeAplication.cs b/CompanyManagment.Application/EmployeeAplication.cs index 283f745a..a27dad5a 100644 --- a/CompanyManagment.Application/EmployeeAplication.cs +++ b/CompanyManagment.Application/EmployeeAplication.cs @@ -908,6 +908,13 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli return workshopEmployeesWithLeftWork.FirstOrDefault(); } + public EmployeeViewModel GetEmployeeByNationalCodeIfHasLeftWork(string nationalCode, List workshopIds) + { + if (nationalCode.NationalCodeValid() != "valid") + return new(); + var workshopEmployeesWithLeftWork = _EmployeeRepository.GetWorkedEmployeesByWorkshopIdsAndNationalCodeAndDate(workshopIds, nationalCode, DateTime.Now.Date); + return workshopEmployeesWithLeftWork.FirstOrDefault(); + } public List GetWorkingEmployeesByWorkshopId(long workshopId) { return _EmployeeRepository.GetWorkingEmployeesByWorkshopId(workshopId); diff --git a/CompanyManagment.Application/EmployeeDocumentsApplication.cs b/CompanyManagment.Application/EmployeeDocumentsApplication.cs index 5594e0e3..b74ca52c 100644 --- a/CompanyManagment.Application/EmployeeDocumentsApplication.cs +++ b/CompanyManagment.Application/EmployeeDocumentsApplication.cs @@ -22,6 +22,7 @@ using Microsoft.AspNetCore.Mvc; using CompanyManagment.App.Contracts.SmsResult; using Microsoft.Identity.Client; using static Microsoft.QualityTools.Testing.Fakes.FakesDelegates; +using Company.Domain.EmployeeClientTempAgg; namespace CompanyManagment.Application { @@ -35,15 +36,17 @@ namespace CompanyManagment.Application private readonly ILeftWorkRepository _leftWorkRepository; private readonly IEmployeeDocumentItemRepository _employeeDocumentItemRepository; private readonly IAuthHelper _authHelper; + private readonly IEmployeeClientTempRepository _employeeClientTempRepository; - private readonly string _basePath; + + private readonly string _basePath; public EmployeeDocumentsApplication(IEmployeeDocumentsRepository employeeDocumentsRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workshopRepository, IWebHostEnvironment webHostEnvironment, IMediaRepository mediaRepository, ILeftWorkRepository leftWorkRepository, - IEmployeeDocumentItemRepository employeeDocumentItemRepository, IAuthHelper authHelper) + IEmployeeDocumentItemRepository employeeDocumentItemRepository, IAuthHelper authHelper, IEmployeeClientTempRepository employeeClientTempRepository) { _employeeDocumentsRepository = employeeDocumentsRepository; _employeeRepository = employeeRepository; @@ -53,7 +56,8 @@ namespace CompanyManagment.Application _leftWorkRepository = leftWorkRepository; _employeeDocumentItemRepository = employeeDocumentItemRepository; _authHelper = authHelper; - _basePath = Path.Combine(_webHostEnvironment.ContentRootPath, "Storage", "EmployeeDocuments"); + _employeeClientTempRepository = employeeClientTempRepository; + _basePath = Path.Combine(_webHostEnvironment.ContentRootPath, "Storage", "EmployeeDocuments"); } /// @@ -1213,6 +1217,19 @@ namespace CompanyManagment.Application } entity.UpdateIsConfirmed(); entity.UpdateIsSentToChecker(); + + if (entity.IsConfirmed) + { + var clientTemp = _employeeClientTempRepository.GetByEmployeeIdAndWorkshopId(entity.EmployeeId, entity.WorkshopId); + var employee = _employeeRepository.Get(entity.EmployeeId); + + if (clientTemp != null) + { + employee.EditFromEmployeeClientTemp(clientTemp.MaritalStatus); + _employeeClientTempRepository.Remove(clientTemp); + } + + } _employeeDocumentsRepository.SaveChanges(); return op.Succcedded(); } @@ -1222,91 +1239,93 @@ namespace CompanyManagment.Application /// برای تایید یا رد توسط چکر ،unsubmitted دریافت جزییات مدارک پرسنل، بدون مدارک /// public EmployeeDocumentsViewModel GetDetailsForChecker(long employeeId, long workshopId) - { - var entity = _employeeDocumentsRepository.GetByEmployeeIdWorkshopIdWithItems(employeeId, workshopId); + { + var entity = _employeeDocumentsRepository.GetByEmployeeIdWorkshopIdWithItems(employeeId, workshopId); - if (!_employeeRepository.Exists(x => x.id == employeeId)) - return new(); - if (!_workshopRepository.Exists(x => x.id == workshopId)) - return new(); + if (!_employeeRepository.Exists(x => x.id == employeeId)) + return new(); + if (!_workshopRepository.Exists(x => x.id == workshopId)) + return new(); - //if entity is null but employee exists, make a new empty entity for it - if (entity == null) - { - var opCreate = - Create(new CreateEmployeeDocuments() { EmployeeId = employeeId, WorkshopId = workshopId }); - if (opCreate.IsSuccedded == false) return new(); + //if entity is null but employee exists, make a new empty entity for it + if (entity == null) + { + var opCreate = + Create(new CreateEmployeeDocuments() { EmployeeId = employeeId, WorkshopId = workshopId }); + if (opCreate.IsSuccedded == false) return new(); - return new EmployeeDocumentsViewModel() { EmployeeId = employeeId }; - } + return new EmployeeDocumentsViewModel() { EmployeeId = employeeId }; + } - List currentDocuments = entity.EmployeeDocumentItemCollection - .Where(x => x.DocumentStatus != DocumentStatus.Unsubmitted) - .GroupBy(x => x.DocumentLabel) - .Select(x => x.MaxBy(y => y.CreationDate)) - .Where(x=>x.DocumentStatus == DocumentStatus.SubmittedByAdmin || + List currentDocuments = entity.EmployeeDocumentItemCollection + .Where(x => x.DocumentStatus != DocumentStatus.Unsubmitted) + .GroupBy(x => x.DocumentLabel) + .Select(x => x.MaxBy(y => y.CreationDate)) + .Where(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin || x.DocumentStatus == DocumentStatus.Confirmed || x.DocumentStatus == DocumentStatus.Rejected).ToList(); - var medias = _mediaRepository - .GetMedias(currentDocuments.Select(x => x.MediaId) - .ToList()); + var medias = _mediaRepository + .GetMedias(currentDocuments.Select(x => x.MediaId) + .ToList()); - var employee = _employeeRepository.Get(entity.EmployeeId); + var employee = _employeeRepository.Get(entity.EmployeeId); + + var employeeClientTemp = _employeeClientTempRepository.GetByEmployeeIdAndWorkshopId(employeeId, workshopId); - return new EmployeeDocumentsViewModel() - { - Id = entity.id, - MilitaryServiceCard = GetItemFromCollectionByLabel(currentDocuments, medias, - DocumentItemLabel.MilitaryServiceCard), + return new EmployeeDocumentsViewModel() + { + Id = entity.id, + MilitaryServiceCard = GetItemFromCollectionByLabel(currentDocuments, medias, + DocumentItemLabel.MilitaryServiceCard), - EducationalDegree = GetItemFromCollectionByLabel(currentDocuments, medias, - DocumentItemLabel.EducationalDegree), + EducationalDegree = GetItemFromCollectionByLabel(currentDocuments, medias, + DocumentItemLabel.EducationalDegree), - IdCardPage1 = - GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage1), + IdCardPage1 = + GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage1), - IdCardPage2 = - GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage2), + IdCardPage2 = + GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage2), - IdCardPage3 = - GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage3), + IdCardPage3 = + GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage3), - IdCardPage4 = - GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage4), + IdCardPage4 = + GetItemFromCollectionByLabel(currentDocuments, medias, DocumentItemLabel.IdCardPage4), - NationalCardFront = GetItemFromCollectionByLabel(currentDocuments, medias, - DocumentItemLabel.NationalCardFront), + NationalCardFront = GetItemFromCollectionByLabel(currentDocuments, medias, + DocumentItemLabel.NationalCardFront), - NationalCardRear = GetItemFromCollectionByLabel(currentDocuments, medias, - DocumentItemLabel.NationalCardRear), + NationalCardRear = GetItemFromCollectionByLabel(currentDocuments, medias, + DocumentItemLabel.NationalCardRear), - EmployeePicture = GetItemFromCollectionByLabel(currentDocuments, medias, - DocumentItemLabel.EmployeePicture), + EmployeePicture = GetItemFromCollectionByLabel(currentDocuments, medias, + DocumentItemLabel.EmployeePicture), - EmployeeFullName = employee.FullName, - WorkshopId = workshopId, - EmployeeId = entity.EmployeeId, - Gender = employee.Gender, - NationalCode = employee.NationalCode, - EmployeeFName = employee.FName, - EmployeeLName = employee.LName, - Nationality = employee.Nationality, - IdNumber = employee.IdNumber, - FatherName = employee.FatherName, - DateOfBirth = employee.DateOfBirth.ToFarsi(), - MaritalStatus = employee.MaritalStatus, - MilitaryServiceStatus = employee.MilitaryService, - SubmittedItemsCount = currentDocuments.Count(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin) - }; - } + EmployeeFullName = employee.FullName, + WorkshopId = workshopId, + EmployeeId = entity.EmployeeId, + Gender = employee.Gender, + NationalCode = employee.NationalCode, + EmployeeFName = employee.FName, + EmployeeLName = employee.LName, + Nationality = employee.Nationality, + IdNumber = employee.IdNumber, + FatherName = employee.FatherName, + DateOfBirth = employee.DateOfBirth.ToFarsi(), + MaritalStatus = employeeClientTemp == null ? employee.MaritalStatus : employeeClientTemp.MaritalStatus, + MilitaryServiceStatus = employee.MilitaryService, + SubmittedItemsCount = currentDocuments.Count(x => x.DocumentStatus == DocumentStatus.SubmittedByAdmin) + }; + } - /// - /// دریافت کارگاه هایی که اقدام به آپلود مدارک کرده اند - /// - public List GetWorkshopsWithUploadedDocumentsForChecker() + /// + /// دریافت کارگاه هایی که اقدام به آپلود مدارک کرده اند + /// + public List GetWorkshopsWithUploadedDocumentsForChecker() { return _employeeDocumentsRepository.GetWorkshopsWithUploadedDocuments(); } diff --git a/CompanyManagment.Application/PersonnelCodeApplication.cs b/CompanyManagment.Application/PersonnelCodeApplication.cs index da131b8e..e95cbef7 100644 --- a/CompanyManagment.Application/PersonnelCodeApplication.cs +++ b/CompanyManagment.Application/PersonnelCodeApplication.cs @@ -76,4 +76,9 @@ public class PersonnelCodeApplication : IPersonnelCodeApplication { return _personnelCodeRepository.GetEmployeeIdByPersonelCode(personleCode, workshopId); } + + public long GetLastPersonnelCodeByWorkshop(long workshopId) + { + return _personnelCodeRepository.GetLastPersonnelCodeByWorkshop(workshopId); + } } \ No newline at end of file diff --git a/CompanyManagment.Application/RollCallServiceApplication.cs b/CompanyManagment.Application/RollCallServiceApplication.cs index 5d34b897..474ccc50 100644 --- a/CompanyManagment.Application/RollCallServiceApplication.cs +++ b/CompanyManagment.Application/RollCallServiceApplication.cs @@ -102,4 +102,9 @@ public class RollCallServiceApplication : IRollCallServiceApplication { return _rollCallServiceRepository.GetAllServiceByAccountId(accountId); } + + public bool IsExistActiveServiceByWorkshopId(long workshopId) + { + return _rollCallServiceRepository.IsExistActiveServiceByWorkshopId(workshopId); + } } \ No newline at end of file diff --git a/CompanyManagment.Application/WorkshopAppliction.cs b/CompanyManagment.Application/WorkshopAppliction.cs index 14be5b57..d97836ca 100644 --- a/CompanyManagment.Application/WorkshopAppliction.cs +++ b/CompanyManagment.Application/WorkshopAppliction.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using System.Transactions; using _0_Framework.Application; using AccountManagement.Application.Contracts.Account; @@ -15,6 +16,7 @@ using CompanyManagment.App.Contracts.EmployeeChildren; using CompanyManagment.App.Contracts.LeftWork; using CompanyManagment.App.Contracts.RollCallService; using CompanyManagment.App.Contracts.Workshop; +using CompanyManagment.App.Contracts.Workshop.DTOs; using CompanyManagment.App.Contracts.WorkshopPlan; using CompanyManagment.EFCore.Migrations; using Microsoft.EntityFrameworkCore; @@ -35,9 +37,9 @@ public class WorkshopAppliction : IWorkshopApplication private readonly IInstitutionContractRepository _institutionContractRepository; private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository; private readonly IRollCallServiceApplication _rollCallServiceApplication; + private readonly IPasswordHasher _passwordHasher; - - public WorkshopAppliction(IWorkshopRepository workshopRepository, ILeftWorkRepository leftWorkRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository, IWorkshopPlanApplication workshopPlanApplication, IEmployeeApplication employeeApplication, IEmployeeChildrenApplication employeeChildrenApplication, IInstitutionContractRepository institutionContractRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IRollCallServiceApplication rollCallServiceApplication) + public WorkshopAppliction(IWorkshopRepository workshopRepository, ILeftWorkRepository leftWorkRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository, IWorkshopPlanApplication workshopPlanApplication, IEmployeeApplication employeeApplication, IEmployeeChildrenApplication employeeChildrenApplication, IInstitutionContractRepository institutionContractRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IRollCallServiceApplication rollCallServiceApplication, IPasswordHasher passwordHasher) { _workshopRepository = workshopRepository; _leftWorkRepository = leftWorkRepository; @@ -48,6 +50,7 @@ public class WorkshopAppliction : IWorkshopApplication _institutionContractRepository = institutionContractRepository; _personalContractingPartyRepository = personalContractingPartyRepository; _rollCallServiceApplication = rollCallServiceApplication; + _passwordHasher = passwordHasher; } public OperationResult Create(CreateWorkshop command) @@ -752,6 +755,8 @@ public class WorkshopAppliction : IWorkshopApplication return _workshopRepository.PrintWorkshopList(searchModel); } + + public AccountViewModel GetClientAccountByWorkshopId(long workshopId) { var contractingParty = _workshopRepository.GetPersonalContractingPartyByWorkshopId(workshopId); @@ -760,19 +765,104 @@ public class WorkshopAppliction : IWorkshopApplication - //public List GetConnectedPersonnelsForMain(long workshopId) - //{ - // return _workshopRepository.GetConnectedPersonnelsForMain(workshopId); - //} + //public List GetConnectedPersonnelsForMain(long workshopId) + //{ + // return _workshopRepository.GetConnectedPersonnelsForMain(workshopId); + //} - #endregion + #endregion - #region Insurance - public List GetWorkshopSelectListInsuransce() + #region Pooya + public List GetPersonnelInfoRemastered(PersonnelInfoSearchModel searchModel) + { + + var res = _workshopRepository.GetPersonnelInfoRemastered(searchModel.WorkshopId); + res = res.Select(x => new PersonnelInfoViewModel + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + PersonnelCode = x.PersonnelCode, + FullName = x.FullName, + Name = x.Name, + LastName = x.LastName, + NationalCode = x.NationalCode, + IdNumber = x.IdNumber, + MaritalStatus = x.MaritalStatus, + DateOfBirthFa = x.DateOfBirthFa, + FatherName = x.FatherName, + State = x.State, + City = x.City, + Address = x.Address, + ChildrenList = x.ChildrenList, + ContractPerson = x.ContractPerson, + InsurancePerson = x.InsurancePerson, + ContractLeft = x.ContractLeft, + InsuranceLeft = x.InsuranceLeft, + Black = ((x.ContractPerson && x.InsurancePerson && x.InsuranceLeft && x.ContractLeft) || + (x.ContractPerson && !x.InsurancePerson && x.ContractLeft) || + (x.InsurancePerson && !x.ContractPerson && x.InsuranceLeft)) + ? true + : false, + LastStartContractWork = x.LastStartContractWork, + LastLeftContractWork = x.LastLeftContractWork, + LastStartInsuranceWork = x.LastStartInsuranceWork, + LastLeftInsuranceWork = x.LastLeftInsuranceWork, + WorkshopHash = _passwordHasher.SlugHasher(x.WorkshopId), + EmployeeHash = _passwordHasher.SlugHasher(x.EmployeeId), + CreatedByClient = x.CreatedByClient, + LefWorkTemp = x.LefWorkTemp, + LeftWork = x.LeftWork, + PersonnelInfoViewModels = x.PersonnelInfoViewModels, + StartWork = x.StartWork + }).ToList(); + + if (!string.IsNullOrWhiteSpace(searchModel.FullName)) + res = res.Where(x => x.FullName.Contains(searchModel.FullName)).ToList(); + + if (!string.IsNullOrWhiteSpace(searchModel.NationalCode)) + res = res.Where(x => x.NationalCode.Contains(searchModel.NationalCode)).ToList(); + + if (!string.IsNullOrWhiteSpace(searchModel.MaritalStatus)) + res = res.Where(x => x.MaritalStatus == searchModel.MaritalStatus).ToList(); + return res; + } + #endregion + + + #region Insurance + + public List GetWorkshopSelectListInsuransce() { return _workshopRepository.GetWorkshopSelectListInsuransce(); } - #endregion + #endregion + + #region Mahan + public async Task> GetWorkshopsForEmployeeStartWork(long accountId) + { + return await _workshopRepository.GetWorkshopsForEmployeeStartWork(accountId); + + } + + public async Task GetWorkshopsForEmployeeStartWorkCount(long accountId) + { + return await _workshopRepository.GetWorkshopsForEmployeeStartWorkCount(accountId); + } + + public async Task> GetWorkshopsForLeftWorkTemp(long accountId) + { + return await _workshopRepository.GetWorkshopsForLeftWorkTemp(accountId); + } + + public Task GetWorkshopsForLeftWorkTempCount(long accountId) + { + return _workshopRepository.GetWorkshopsForLeftWorkTempCount(accountId); + } + + #endregion + + + } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Migrations/20250309154800_add employee by client tables.Designer.cs b/CompanyManagment.EFCore/Migrations/20250309154800_add employee by client tables.Designer.cs new file mode 100644 index 00000000..bdd9e9dd --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250309154800_add employee by client tables.Designer.cs @@ -0,0 +1,8885 @@ +// +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("20250309154800_add employee by client tables")] + partial class addemployeebyclienttables + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckoutTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopGroupSettingId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChanged") + .HasColumnType("bit"); + + b.Property("IsShiftChanged") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopGroupSettingId"); + + b.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopSettingId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("GroupName") + .HasMaxLength(120) + .HasColumnType("nvarchar(120)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChange") + .HasColumnType("bit"); + + b.Property("IsShiftChange") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MainGroup") + .HasColumnType("bit"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopSettingId"); + + b.ToTable("CustomizeWorkshopGroupSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPayInEndOfYear") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("BonusesPaysInEndOfMonth") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Currency") + .HasColumnType("int"); + + b.Property("EndTimeOffSet") + .HasColumnType("time"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MaxMonthDays") + .HasColumnType("int"); + + b.Property("OverTimeThresholdMinute") + .HasColumnType("int"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("CustomizeWorkshopSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EndDateGr") + .HasColumnType("datetime2"); + + b.Property("StartDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("StartDateGr") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("DateSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateSalaryId") + .HasColumnType("bigint"); + + b.Property("Percent") + .HasColumnType("float"); + + b.Property("PercentageId") + .HasColumnType("bigint"); + + b.Property("Salary") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("DateSalaryId"); + + b.HasIndex("PercentageId"); + + b.ToTable("DateSalaryItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployeeId", "AccountId"); + + b.ToTable("EmployeeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("BankBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BankCardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FieldOfStudy") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByMonth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByYear") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsAuthorized") + .HasColumnType("bit"); + + 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.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankAccountNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("BankId") + .HasColumnType("bigint"); + + b.Property("CardNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IsDefault") + .HasColumnType("bit"); + + b.Property("ShebaNumber") + .HasMaxLength(26) + .HasColumnType("nvarchar(26)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BankId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeBankInformationSet", (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.EmployeeClientTempAgg.EmployeeClientTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MaritalStatus") + .HasColumnType("nvarchar(max)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("EmployeeClientTemps"); + }); + + 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.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmationDateTime") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DocumentLabel") + .IsRequired() + .HasMaxLength(31) + .HasColumnType("nvarchar(31)"); + + b.Property("DocumentStatus") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("EmployeeDocumentId") + .HasColumnType("bigint"); + + b.Property("EmployeeDocumentsAdminViewId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.Property("RejectionReason") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("ReviewedById") + .HasMaxLength(120) + .HasColumnType("bigint"); + + b.Property("UploaderId") + .HasColumnType("bigint"); + + b.Property("UploaderType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeDocumentId"); + + b.HasIndex("EmployeeDocumentsAdminViewId"); + + b.ToTable("EmployeeDocumentItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("EmployeeDocumentsAdminSelection", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRejectedItems") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsSentToChecker") + .HasColumnType("bit"); + + b.Property("RequiredItemsSubmittedByClient") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("EmployeeDocuments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsurancListDataAgg.EmployeeInsurancListData", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYears") + .HasColumnType("float"); + + b.Property("BenefitsIncludedContinuous") + .HasColumnType("float"); + + b.Property("BenefitsIncludedNonContinuous") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("InsuranceListId") + .HasColumnType("bigint"); + + b.Property("InsuranceShare") + .HasColumnType("float"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthlyBenefits") + .HasColumnType("float"); + + b.Property("MonthlyBenefitsIncluded") + .HasColumnType("float"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkingDays") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("EmployeeInsurancListData", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfEnd") + .HasColumnType("datetime2"); + + b.Property("DateOfStart") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkShopId"); + + b.ToTable("EmployeeInsuranceRecord", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployerId", "AccountId"); + + b.ToTable("EmployerAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Evidences", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Evidence_Id") + .HasColumnType("bigint"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("Evidence_Id"); + + b.ToTable("EvidenceDetails", (string)null); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ArchiveNo") + .HasColumnType("bigint"); + + b.Property("Client") + .HasColumnType("int"); + + b.Property("ClientVisitDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FileClass") + .HasColumnType("nvarchar(max)"); + + b.Property("HasMandate") + .HasColumnType("int"); + + b.Property("ProceederReference") + .HasColumnType("nvarchar(max)"); + + b.Property("Reqester") + .HasColumnType("bigint"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Summoned") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Files", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdditionalDeadline") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileState_Id") + .HasColumnType("bigint"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("FileState_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("File_Alerts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.Property("FileId") + .HasColumnType("bigint"); + + b.Property("FileEmployerId") + .HasColumnType("bigint"); + + b.HasKey("FileId", "FileEmployerId"); + + b.HasIndex("FileEmployerId"); + + b.ToTable("FileAndFileEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceWorkshopCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NationalId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RegisterId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployer", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileTiming_Id") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("FileTiming_Id"); + + b.ToTable("File_States", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Deadline") + .HasColumnType("int"); + + b.Property("Tips") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Timings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTitle.FileTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Titles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("FinancialStatments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Balance") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Creditor") + .HasColumnType("float"); + + b.Property("Deptor") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(600) + .HasColumnType("nvarchar(600)"); + + b.Property("DescriptionOption") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FinancialStatementId") + .HasColumnType("bigint"); + + b.Property("MessageText") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("SentSms") + .HasColumnType("bit"); + + b.Property("SentSmsDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfTransaction") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("FinancialStatementId"); + + b.ToTable("FinancialTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineAgg.Fine", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FineDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Fines", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineSubjectAgg.FineSubject", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("FineSubjects", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AnnualSalary") + .HasColumnType("float"); + + b.Property("BaseSalary") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobSalary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("GroupPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupPlanId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("GroupPlanId"); + + b.ToTable("GroupPlanJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("Holidays", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HolidayId") + .HasColumnType("bigint"); + + b.Property("HolidayYear") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("Holidaydate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("HolidayId"); + + b.ToTable("Holidayitems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(250) + .HasColumnType("nvarchar(250)"); + + b.Property("City") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ContractAmount") + .HasColumnType("float"); + + b.Property("ContractDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractDateGr") + .HasColumnType("datetime2"); + + b.Property("ContractEndFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("ContractStartFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyCompenseation") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(10000) + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeManualCount") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExtensionNo") + .HasColumnType("int"); + + b.Property("HasValueAddedTax") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Obligation") + .HasColumnType("float"); + + b.Property("OfficialCompany") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("RepresentativeName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("State") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.Property("TypeOfContract") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("WorkshopManualCount") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("id"); + + b.ToTable("InstitutionContracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FnameLname") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("PhoneType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Position") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SendSms") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutinContractContactInfo", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.InstitutionPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseContractAmont") + .HasColumnType("float"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("FinalContractAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("InstitutionPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("InsuranceJobTitle") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("InsuranceJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgreementNumber") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ListNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("InsuranceWorkshopInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerStr") + .HasColumnType("nvarchar(max)"); + + b.Property("ListNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("int"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.Property("WorkShopStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("WorkShopId"); + + b.ToTable("Insurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("InsuranceEmployeeInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("InsuranceJobItemId") + .HasColumnType("bigint"); + + b.HasKey("JobId", "InsuranceJobItemId"); + + b.HasIndex("InsuranceJobItemId"); + + b.ToTable("InsuranceJobAndJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("PercentageLessThan") + .HasColumnType("float"); + + b.Property("PercentageMoreThan") + .HasColumnType("float"); + + b.Property("SalaeyLessThan") + .HasColumnType("float"); + + b.Property("SalaryMoreThan") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("InsuranceJobId"); + + b.ToTable("InsuranceJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmSentlist") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DifficultJobsInsuranc") + .HasColumnType("float"); + + b.Property("EmployerShare") + .HasColumnType("float"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Included") + .HasColumnType("float"); + + b.Property("IncludedAndNotIncluded") + .HasColumnType("float"); + + b.Property("InsuredShare") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("SumOfBaseYears") + .HasColumnType("float"); + + b.Property("SumOfBenefitsIncluded") + .HasColumnType("float"); + + b.Property("SumOfDailyWage") + .HasColumnType("float"); + + b.Property("SumOfDailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("SumOfEmployees") + .HasColumnType("int"); + + b.Property("SumOfMarriedAllowance") + .HasColumnType("float"); + + b.Property("SumOfSalaries") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("int"); + + b.Property("UnEmploymentInsurance") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("InsuranceLists", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.Property("InsurancListId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("InsurancListId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("InsuranceListWorkshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceYearlySalaryAgg.InsuranceYearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group21") + .HasColumnType("float"); + + b.Property("Group22") + .HasColumnType("float"); + + b.Property("Group23") + .HasColumnType("float"); + + b.Property("Group24") + .HasColumnType("float"); + + b.Property("Group25") + .HasColumnType("float"); + + b.Property("Group26") + .HasColumnType("float"); + + b.Property("Group27") + .HasColumnType("float"); + + b.Property("Group28") + .HasColumnType("float"); + + b.Property("Group29") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group30") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("InsuranceYearlySalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("Jobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeaveAgg.Leave", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Decription") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndLeave") + .HasColumnType("datetime2"); + + b.Property("IsAccepted") + .HasColumnType("bit"); + + b.Property("LeaveHourses") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("PaidLeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("StartLeave") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Leave", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWork", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWorkInsurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkTempAgg.LeftWorkTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LastDayStanding") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("LeftWorkId") + .HasColumnType("bigint"); + + b.Property("LeftWorkType") + .HasColumnType("int"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("LeftWorkTemps"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("AmountPerMonth") + .HasColumnType("float"); + + b.Property("Count") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GetRounded") + .HasColumnType("bit"); + + b.Property("LoanGrantDate") + .HasColumnType("datetime2"); + + b.Property("StartInstallmentPayment") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Loan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Aban") + .HasColumnType("float"); + + b.Property("AbanFridays") + .HasColumnType("int"); + + b.Property("AbanHolidays") + .HasColumnType("int"); + + b.Property("AbanMonadatoryDays") + .HasColumnType("int"); + + b.Property("Azar") + .HasColumnType("float"); + + b.Property("AzarFridays") + .HasColumnType("int"); + + b.Property("AzarHolidays") + .HasColumnType("int"); + + b.Property("AzarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Bahman") + .HasColumnType("float"); + + b.Property("BahmanFridays") + .HasColumnType("int"); + + b.Property("BahmanHolidays") + .HasColumnType("int"); + + b.Property("BahmanMonadatoryDays") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Dey") + .HasColumnType("float"); + + b.Property("DeyFridays") + .HasColumnType("int"); + + b.Property("DeyHolidays") + .HasColumnType("int"); + + b.Property("DeyMonadatoryDays") + .HasColumnType("int"); + + b.Property("Esfand") + .HasColumnType("float"); + + b.Property("EsfandFridays") + .HasColumnType("int"); + + b.Property("EsfandHolidays") + .HasColumnType("int"); + + b.Property("EsfandMonadatoryDays") + .HasColumnType("int"); + + b.Property("Farvardin") + .HasColumnType("float"); + + b.Property("FarvardinFridays") + .HasColumnType("int"); + + b.Property("FarvardinHolidays") + .HasColumnType("int"); + + b.Property("FarvardinMonadatoryDays") + .HasColumnType("int"); + + b.Property("Khordad") + .HasColumnType("float"); + + b.Property("KhordadFridays") + .HasColumnType("int"); + + b.Property("KhordadHolidays") + .HasColumnType("int"); + + b.Property("KhordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mehr") + .HasColumnType("float"); + + b.Property("MehrFridays") + .HasColumnType("int"); + + b.Property("MehrHolidays") + .HasColumnType("int"); + + b.Property("MehrMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mordad") + .HasColumnType("float"); + + b.Property("MordadFridays") + .HasColumnType("int"); + + b.Property("MordadHolidays") + .HasColumnType("int"); + + b.Property("MordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Ordibehesht") + .HasColumnType("float"); + + b.Property("OrdibeheshtFridays") + .HasColumnType("int"); + + b.Property("OrdibeheshtHolidays") + .HasColumnType("int"); + + b.Property("OrdibeheshtMonadatoryDays") + .HasColumnType("int"); + + b.Property("Shahrivar") + .HasColumnType("float"); + + b.Property("ShahrivarFridays") + .HasColumnType("int"); + + b.Property("ShahrivarHolidays") + .HasColumnType("int"); + + b.Property("ShahrivarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Tir") + .HasColumnType("float"); + + b.Property("TirFridays") + .HasColumnType("int"); + + b.Property("TirHolidays") + .HasColumnType("int"); + + b.Property("TirMonadatoryDays") + .HasColumnType("int"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("MandatoryHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("MasterName") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Master_Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameSubModule") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Module", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.Property("TextManagerId") + .HasColumnType("bigint"); + + b.Property("ModuleId") + .HasColumnType("bigint"); + + b.HasKey("TextManagerId", "ModuleId"); + + b.HasIndex("ModuleId"); + + b.ToTable("TextManager_ModuleTextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("TextManager_OriginalTitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("PaymentToEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankCheckNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CashDescription") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DestinationBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DestinationBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PayDate") + .HasColumnType("datetime2"); + + b.Property("Payment") + .HasColumnType("float"); + + b.Property("PaymentMetod") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("PaymentTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentToEmployeeId") + .HasColumnType("bigint"); + + b.Property("SourceBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SourceBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeDestinationBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeSourceBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("PaymentToEmployeeId"); + + b.ToTable("PaymentToEmployeeItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2(7)"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2(7)"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Percent") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("Percentages", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("PersonnelCodes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("NotificationPetitionDate") + .HasColumnType("datetime2"); + + b.Property("PetitionIssuanceDate") + .HasColumnType("datetime2"); + + b.Property("PetitionNo") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenalty") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenaltyTitles") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Board_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Date") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("Board_Id"); + + b.ToTable("ProceedingSessions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgentPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("RegisterId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.HasKey("id"); + + b.ToTable("Representative", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RewardAgg.Reward", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GrantDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RewardType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RewardedByAccountId") + .HasColumnType("bigint"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + 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("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EarlyEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EarlyExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FridayWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("NightWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RollCallModifyType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ShiftDate") + .HasColumnType("datetime2"); + + b.Property("ShiftDurationTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ShiftType") + .IsRequired() + .HasMaxLength(22) + .HasColumnType("nvarchar(22)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCall", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeAgg.RollCallEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("HasChangedName") + .HasColumnType("bit"); + + b.Property("HasUploadedImage") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("RollCallEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallEmployeeStatusAgg.RollCallEmployeeStatus", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("RollCallEmployeeId") + .HasColumnType("bigint"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("RollCallEmployeeId"); + + b.ToTable("RollCallEmployeesStatus"); + }); + + modelBuilder.Entity("Company.Domain.RollCallPlanAgg.RollCallPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseAmont") + .HasColumnType("float"); + + b.Property("FinalAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("RollCallPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RollCallServiceAgg.RollCallService", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutAmount") + .HasColumnType("float"); + + b.Property("CustomizeCheckoutServiceEnd") + .HasColumnType("datetime2"); + + b.Property("CustomizeCheckoutServiceStart") + .HasColumnType("datetime2"); + + b.Property("Duration") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("EndService") + .HasColumnType("datetime2"); + + b.Property("HasCustomizeCheckoutService") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("MaxPersonValid") + .HasColumnType("int"); + + b.Property("ServiceType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("StartService") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("AccountId"); + + b.ToTable("RollCallServices", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SalaryAidAgg.SalaryAid", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("SalaryAids", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SmsResultAgg.SmsResult", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPatyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("Mobile") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("Status") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("TypeOfSms") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("SmsResults", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EntitySubtitleid") + .HasColumnType("bigint"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Subtitle") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.HasIndex("EntitySubtitleid"); + + b.HasIndex("OriginalTitle_Id"); + + b.ToTable("TextManager_Subtitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxJobCategoryAgg.TaxJobCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("JobCategoryCode") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("JobCategoryName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("TaxJobCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BudgetLawExceptions") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("Country") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CurrencyType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("EmploymentLocationStatus") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("ExchangeRate") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("InsuranceBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobCategoryCode") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("JobCategoryId") + .HasColumnType("bigint"); + + b.Property("JobTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RetirementDate") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TaxExempt") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfEmployment") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfInsurance") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("TaxLeftWorkCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("TaxLeftWorkCategoryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TaxLeftWorkCategoryId"); + + b.ToTable("TaxLeftWorkItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NoteNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("NumberTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Paragraph") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("TextManager_TextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("NumberOfFriday") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("NumberOfWorkingDays") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverNightWorkH") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverNightWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("OverTimeWorkH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverTimeWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("TotalHoursesH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("TotalHoursesM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WeeklyWorkingTime") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("ContractId"); + + b.ToTable("WorkingHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursId"); + + b.ToTable("WorkingHoursItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkShopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkingHoursTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursTempId"); + + b.ToTable("WorkingHoursTempItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("ContractAndCheckout") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Insurance") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveSting") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Tax") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("WorkshopId", "AccountId"); + + b.ToTable("WorkshopeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgreementNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsClassified") + .HasColumnType("bit"); + + b.Property("IsOldContract") + .HasColumnType("bit"); + + b.Property("Population") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TotalPaymentHide") + .HasColumnType("bit"); + + b.Property("TypeOfContract") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfInsuranceSend") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfOwnership") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopHolidayWorking") + .HasColumnType("bit"); + + b.Property("WorkshopName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopSureName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Workshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployerId"); + + b.HasIndex("EmployerId"); + + b.ToTable("WorkshopeEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Designer") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ExecutionDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkshopPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("WorkshopPlanEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.Property("SubAccountId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("int"); + + b.HasKey("SubAccountId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("WorkshopSubAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConnectionId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("YearlySalariess", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ItemName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ItemValue") + .HasColumnType("float"); + + b.Property("ParentConnectionId") + .HasColumnType("int"); + + b.Property("ValueType") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("YearlyItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlysSalaryTitleAgg.YearlySalaryTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title1") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title10") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title2") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title3") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title4") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title5") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title6") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title7") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title8") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title9") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("YearlySalaryTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ZoneAgg.Zone", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CityId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Zones", (string)null); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployerLName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployerNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsLegal") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("ContractingPartyId"); + + b.ToTable("Employers", (string)null); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.Property("EmployersListid") + .HasColumnType("bigint"); + + b.Property("WorkshopsListid") + .HasColumnType("bigint"); + + b.HasKey("EmployersListid", "WorkshopsListid"); + + b.HasIndex("WorkshopsListid"); + + b.ToTable("EmployerWorkshop"); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("BoardsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("BoardsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", "EntitySubtitle") + .WithMany("Chapters") + .HasForeignKey("Subtitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntitySubtitle"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Checkouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("ContractingParties") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("Contracts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("Contracts") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("ContractsList") + .HasForeignKey("JobTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.MandatoryHoursAgg.MandatoryHours", null) + .WithMany("Contracts") + .HasForeignKey("MandatoryHoursid"); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Contracts2") + .HasForeignKey("WorkshopIds") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("Contracts") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Employer"); + + b.Navigation("Job"); + + b.Navigation("Workshop"); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "PersonalContractingParty") + .WithMany() + .HasForeignKey("PersonalContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalContractingParty"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.HasOne("Company.Domain.CrossJobGuildAgg.CrossJobGuild", "CrossJobGuild") + .WithMany("CrossJobList") + .HasForeignKey("CrossJobGuildId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJobGuild"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.HasOne("Company.Domain.CrossJobAgg.CrossJob", "CrossJob") + .WithMany("CrossJobItemsList") + .HasForeignKey("CrossJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("CrossJobItemsList") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJob"); + + b.Navigation("Job"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("CustomizeCheckouts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("CustomizeCheckouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", "CustomizeWorkshopGroupSettings") + .WithMany("CustomizeWorkshopEmployeeSettingsCollection") + .HasForeignKey("CustomizeWorkshopGroupSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("PreviousShiftThreshold") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopEmployeeSettingsId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopEmployeeSettings") + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + + b1.Navigation("CustomizeWorkshopEmployeeSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopEmployeeSettingsShifts"); + + b.Navigation("CustomizeWorkshopGroupSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "CustomizeWorkshopSettings") + .WithMany("CustomizeWorkshopGroupSettingsCollection") + .HasForeignKey("CustomizeWorkshopSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopGroupSettingsId"); + + b1.ToTable("CustomizeWorkshopGroupSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopGroupSettings") + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + + b1.Navigation("CustomizeWorkshopGroupSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopGroupSettingsShifts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("CustomizeWorkshopSettings") + .HasForeignKey("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopSettingsId"); + + b1.ToTable("CustomizeWorkshopSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopSettings") + .HasForeignKey("CustomizeWorkshopSettingsId"); + + b1.Navigation("CustomizeWorkshopSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("CustomizeWorkshopSettingsShifts"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.HasOne("Company.Domain.DateSalaryAgg.DateSalary", "DateSalary") + .WithMany("DateSalaryItemList") + .HasForeignKey("DateSalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.PercentageAgg.Percentage", "Percentage") + .WithMany("DateSalaryItemList") + .HasForeignKey("PercentageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DateSalary"); + + b.Navigation("Percentage"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.HasOne("Company.Domain.BankAgg.Bank", "Bank") + .WithMany() + .HasForeignKey("BankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeBankInformationList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bank"); + + 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.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.HasOne("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", "EmployeeDocuments") + .WithMany("EmployeeDocumentItemCollection") + .HasForeignKey("EmployeeDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeDocumentsAdminSelection") + .WithMany("SelectedEmployeeDocumentItems") + .HasForeignKey("EmployeeDocumentsAdminViewId"); + + b.OwnsMany("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItemLog", "ItemLogs", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("AdminMessage") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EmployeeDocumentItemId") + .HasColumnType("bigint"); + + b1.Property("OperationType") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("OperatorId") + .HasColumnType("bigint"); + + b1.Property("OperatorType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.HasKey("id"); + + b1.HasIndex("EmployeeDocumentItemId"); + + b1.ToTable("EmployeeDocumentItemLogs", (string)null); + + b1.WithOwner("EmployeeDocumentItem") + .HasForeignKey("EmployeeDocumentItemId"); + + b1.Navigation("EmployeeDocumentItem"); + }); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("ItemLogs"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("EmployeeDocumentsAdminSelection") + .HasForeignKey("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeDocuments") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + 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("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasColumnType("float"); + + b1.Property("InstallmentDate") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanId") + .HasColumnType("bigint"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("Id"); + + b1.HasIndex("LoanId"); + + 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("EmployeeBankInformationList"); + + b.Navigation("EmployeeChildrenList"); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceEmployeeInfo"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Navigation("SelectedEmployeeDocumentItems"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Navigation("EmployeeDocumentItemCollection"); + }); + + 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/20250309154800_add employee by client tables.cs b/CompanyManagment.EFCore/Migrations/20250309154800_add employee by client tables.cs new file mode 100644 index 00000000..4f97b818 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250309154800_add employee by client tables.cs @@ -0,0 +1,75 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addemployeebyclienttables : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "IsAuthorized", + table: "Employees", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.CreateTable( + name: "EmployeeClientTemps", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + EmployeeFullName = table.Column(type: "nvarchar(max)", nullable: true), + WorkshopId = table.Column(type: "bigint", nullable: false), + EmployeeId = table.Column(type: "bigint", nullable: false), + StartWorkDate = table.Column(type: "datetime2", nullable: false), + MaritalStatus = table.Column(type: "nvarchar(max)", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_EmployeeClientTemps", x => x.id); + }); + + migrationBuilder.CreateTable( + name: "LeftWorkTemps", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + LeftWorkId = table.Column(type: "bigint", nullable: false), + StartWork = table.Column(type: "datetime2", nullable: false), + LeftWork = table.Column(type: "datetime2", nullable: false), + LastDayStanding = table.Column(type: "datetime2", nullable: false), + WorkshopId = table.Column(type: "bigint", nullable: false), + EmployeeId = table.Column(type: "bigint", nullable: false), + JobId = table.Column(type: "bigint", nullable: false), + LeftWorkType = table.Column(type: "int", nullable: false), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_LeftWorkTemps", x => x.id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "EmployeeClientTemps"); + + migrationBuilder.DropTable( + name: "LeftWorkTemps"); + + migrationBuilder.DropColumn( + name: "IsAuthorized", + table: "Employees"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index 679595d7..84b0510e 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -1469,6 +1469,9 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(10) .HasColumnType("nvarchar(10)"); + b.Property("IsAuthorized") + .HasColumnType("bit"); + b.Property("LName") .IsRequired() .HasMaxLength(255) @@ -1619,6 +1622,37 @@ namespace CompanyManagment.EFCore.Migrations b.ToTable("EmployeeChildren", (string)null); }); + modelBuilder.Entity("Company.Domain.EmployeeClientTempAgg.EmployeeClientTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MaritalStatus") + .HasColumnType("nvarchar(max)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("EmployeeClientTemps"); + }); + modelBuilder.Entity("Company.Domain.EmployeeComputeOptionsAgg.EmployeeComputeOptions", b => { b.Property("id") @@ -3443,6 +3477,46 @@ namespace CompanyManagment.EFCore.Migrations b.ToTable("LeftWorkInsurances", (string)null); }); + modelBuilder.Entity("Company.Domain.LeftWorkTempAgg.LeftWorkTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LastDayStanding") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("LeftWorkId") + .HasColumnType("bigint"); + + b.Property("LeftWorkType") + .HasColumnType("int"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("LeftWorkTemps"); + }); + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => { b.Property("id") diff --git a/CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs b/CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs new file mode 100644 index 00000000..17dae772 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/EmployeeClientTempRepository.cs @@ -0,0 +1,35 @@ +using System.Linq; +using _0_Framework.Application; +using _0_Framework.InfraStructure; +using Company.Domain.EmployeeClientTempAgg; +using CompanyManagment.App.Contracts.EmployeeClientTemp; + +namespace CompanyManagment.EFCore.Repository; + +public class EmployeeClientTempRepository: RepositoryBase, IEmployeeClientTempRepository +{ + private readonly CompanyContext _context; + + public EmployeeClientTempRepository(CompanyContext context): base(context) + { + _context = context; + } + + public EmployeeClientTemp GetByEmployeeIdAndWorkshopId(long employeeId, long commandWorkshopId) + { + return _context.EmployeeClientTemps.FirstOrDefault(x => + x.EmployeeId == employeeId && x.WorkshopId == commandWorkshopId); + } + + public EmployeeClientTempGetDetailsViewModel GetDetails(long employeeId, long workshopId) + { + return _context.EmployeeClientTemps + .Where(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId) + .Select(x => new EmployeeClientTempGetDetailsViewModel + { + EmployeeId = x.EmployeeId, + StartWorkDate = x.StartWorkDate.ToFarsi(), + WorkshopId = x.WorkshopId + }).FirstOrDefault(); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs index f767456f..d3a67eb8 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeRepository .cs +++ b/CompanyManagment.EFCore/Repository/EmployeeRepository .cs @@ -836,6 +836,7 @@ public class EmployeeRepository : RepositoryBase, IEmployeeRepos }).ToList(); } + public async Task GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId) { var employee = await _context.Employees.Where(x => x.id == employeeId).Select(x => new GetEditEmployeeInEmployeeDocumentViewModel() @@ -890,5 +891,18 @@ public class EmployeeRepository : RepositoryBase, IEmployeeRepos Phone = x.Phone }).ToList(); } + public List GetWorkedEmployeesByWorkshopIdsAndNationalCodeAndDate(List workshopIds, string nationalCode, DateTime date) + { + return _context.Employees.Where(x => x.NationalCode.Contains(nationalCode)).Include(x => x.LeftWorks).Include(x => x.LeftWorkInsurances) + .Where(x => x.LeftWorks.Any(y => workshopIds.Contains(y.WorkshopId)) || x.LeftWorkInsurances.Any(y => workshopIds.Contains(y.WorkshopId))) + .Select(x => new EmployeeViewModel() + { + NationalCode = x.NationalCode, + FName = x.FName, + LName = x.LName, + Phone = x.Phone + }).ToList(); + } + #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/JobRepository.cs b/CompanyManagment.EFCore/Repository/JobRepository.cs index 20a4002a..db38dd80 100644 --- a/CompanyManagment.EFCore/Repository/JobRepository.cs +++ b/CompanyManagment.EFCore/Repository/JobRepository.cs @@ -91,7 +91,13 @@ public class JobRepository: RepositoryBase, IJobRepository Id = x.id, JobName = x.JobName, JobCode = x.JobCode - }).Where(x=>x.JobName.Contains(searchtText)).Take(100); + }); + + + if (!string.IsNullOrWhiteSpace(searchtText)) + { + query = query.Where(x => x.JobName.Contains(searchtText)); + } //if (!string.IsNullOrWhiteSpace(searchtText)) // query = query.Where(x => (x.JobName + " " + x.JobCode).Contains(searchtText)); //return query.OrderBy(x => x.Id).ToList(); @@ -107,7 +113,7 @@ public class JobRepository: RepositoryBase, IJobRepository //var jobList = _context.Jobs.FromSqlInterpolated($"SelectQuery_AllJobs {searchtText}").AsNoTracking().ToList(); - var jobViewModelList = query.Select(x => new JobViewModel + var jobViewModelList = query.Take(100).Select(x => new JobViewModel { Id = x.Id, JobName = x.JobName+ " " + '-' + " " + x.JobCode, diff --git a/CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs b/CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs new file mode 100644 index 00000000..a9c58423 --- /dev/null +++ b/CompanyManagment.EFCore/Repository/LeftWorkTempRepository.cs @@ -0,0 +1,82 @@ +using System; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.InfraStructure; +using Company.Domain.LeftWorkAgg; +using Company.Domain.LeftWorkTempAgg; +using CompanyManagment.App.Contracts.LeftWorkTemp; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; + +namespace CompanyManagment.EFCore.Repository; + +public class LeftWorkTempRepository : RepositoryBase, ILeftWorkTempRepository +{ + private readonly CompanyContext _companyContext; + + public LeftWorkTempRepository(CompanyContext companyContext) : base(companyContext) + { + _companyContext = companyContext; + } + + public async Task GetStartAndLeftWorkDetails(long employeeId, long workshopId) + { + var employee = await _companyContext.Employees.FindAsync(employeeId); + var workshop = await _companyContext.Workshops.FindAsync(workshopId); + + var leftWorkTemp = + await _companyContext.LeftWorkTemps.FirstOrDefaultAsync(x => + x.WorkshopId == workshopId && x.EmployeeId == employeeId); + + if (employee == null || workshop == null || leftWorkTemp == null) + { + return new GetStartWorkTempDetails(); + } + + var job = await _companyContext.Jobs.FindAsync(leftWorkTemp.JobId); + + + var previousLeftWorks = _companyContext.LeftWorkList + .Where(x => leftWorkTemp.EmployeeId == x.EmployeeId && leftWorkTemp.WorkshopId == x.WorkshopId).ToList(); + + + + if (leftWorkTemp.LeftWorkType == LeftWorkTempType.LeftWork) + { + previousLeftWorks = previousLeftWorks.Where(x => x.id != leftWorkTemp.LeftWorkId).ToList(); + + + } + + var personnelCode = + _companyContext.PersonnelCodeSet.FirstOrDefault(x => + x.EmployeeId == employeeId && x.WorkshopId == workshopId)?.PersonnelCode; + + return new GetStartWorkTempDetails + { + WorkshopId = leftWorkTemp.WorkshopId, + EmployeeId = leftWorkTemp.EmployeeId, + WorkshopFullName = workshop.WorkshopFullName, + EmployeeFullName = employee.FullName, + JobId = leftWorkTemp.JobId, + JobName = job?.JobName, + PersonnelCode = personnelCode ?? 0, + LeftWorkTemp = new LeftWorkTempDetailsViewModel() + { + Id = leftWorkTemp.id, + LastDayStanding = leftWorkTemp.LastDayStanding == new DateTime() ? "" : leftWorkTemp.LastDayStanding.ToFarsi(), + LeftWork = leftWorkTemp.LeftWork == new DateTime() ? "" : leftWorkTemp.LeftWork.ToFarsi(), + StartWork = leftWorkTemp.StartWork.ToFarsi() + }, + PreviousLeftWorks = previousLeftWorks.Select(x => new LeftWorkTempDetailsViewModel() + { + Id = x.id, + LastDayStanding = x.LeftWorkDate.AddDays(-1).ToFarsi(), + LeftWork = x.LeftWorkDate.ToFarsi(), + StartWork = x.StartWorkDate.ToFarsi() + }).ToList() + }; + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs index d97eb316..d2b19aa9 100644 --- a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs @@ -6,6 +6,7 @@ using System.Linq; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.RollCallEmployeeAgg; +using CompanyManagment.App.Contracts.LeftWorkTemp; using CompanyManagment.App.Contracts.RollCallEmployee; using CompanyManagment.App.Contracts.RollCallEmployeeStatus; using Microsoft.AspNetCore.Hosting; @@ -79,7 +80,7 @@ public class RollCallEmployeeRepository : RepositoryBase public List GetPersonnelRollCallListPaginate(RollCallEmployeeSearchModel command) { var dateNow = DateTime.Now; - var employeeQuery = _context.Employees.AsQueryable(); + var employeeQuery = _context.Employees.IgnoreQueryFilters().AsQueryable(); //if (!string.IsNullOrWhiteSpace(command.Name)) //{ @@ -95,39 +96,61 @@ public class RollCallEmployeeRepository : RepositoryBase //} var rawQuery = employeeQuery.Include(x => x.LeftWorks).Include(x => x.LeftWorkInsurances) - .Where(x => x.LeftWorks.Any(y => + .GroupJoin(_context.LeftWorkTemps.Where(x => x.WorkshopId == command.WorkshopId), + employee => employee.id, + leftWorkTemp => leftWorkTemp.EmployeeId, + ((employee, temp) => new { employee, temp })) + .SelectMany(x => x.temp.DefaultIfEmpty(), + (x, temp) => new { x.employee, temp }) + .Where(x => (x.employee.LeftWorks.Any(y => y.WorkshopId == command.WorkshopId && y.StartWorkDate <= dateNow && y.LeftWorkDate > dateNow) || - x.LeftWorkInsurances.Any(y => + x.employee.LeftWorkInsurances.Any(y => y.WorkshopId == command.WorkshopId && y.StartWorkDate <= dateNow && - (y.LeftWorkDate > dateNow || y.LeftWorkDate == null))).OrderByDescending(x => x.id) + (y.LeftWorkDate > dateNow || y.LeftWorkDate == null))) || x.temp != null).OrderByDescending(x => x.employee.id) .Select(x => new { - Id = x.id, - FullName =x.FName +" "+x.LName, - x.NationalCode, + Id = x.employee.id, + FullName = x.employee.FName + " " + x.employee.LName, + x.employee.NationalCode, + workshopTemp = x.temp }).AsSplitQuery(); var rollCallEmployees = _context.RollCallEmployees.Where(x => x.WorkshopId == command.WorkshopId); - + + var employeeClient = _context.EmployeeClientTemps.Where(x => x.WorkshopId == command.WorkshopId); + var joinedQuery = from employee in rawQuery - join rollCallEmployee in rollCallEmployees - on employee.Id equals rollCallEmployee.EmployeeId into grp - from joinedRollCall in grp.DefaultIfEmpty() - select new RollCallEmployeeViewModel() - { - WorkshopId = command.WorkshopId, - EmployeeId = employee.Id, - Id = joinedRollCall == null ? 0 : joinedRollCall.id, - EmployeeFullName = joinedRollCall == null ? employee.FullName : joinedRollCall.EmployeeFullName, - NationalCode = employee.NationalCode, - IsActiveString = joinedRollCall.EmployeesStatus.Any(y => y.StartDate.Date <= dateNow.Date && y.EndDate.Date > dateNow.Date) ? "true" : "false", - HasUploadedImage = joinedRollCall == null ? "false" : joinedRollCall.HasUploadedImage - }; + join rollCallEmployee in rollCallEmployees + on employee.Id equals rollCallEmployee.EmployeeId into grp + from joinedRollCall in grp.DefaultIfEmpty() + join employeeClientT in employeeClient on employee.Id equals employeeClientT.EmployeeId into employeeCT + from clientTemp in employeeCT.DefaultIfEmpty() + select new RollCallEmployeeViewModel() + { + WorkshopId = command.WorkshopId, + EmployeeId = employee.Id, + Id = joinedRollCall == null ? 0 : joinedRollCall.id, + EmployeeFullName = joinedRollCall == null ? employee.FullName : joinedRollCall.EmployeeFullName, + NationalCode = employee.NationalCode, + IsActiveString = + joinedRollCall.EmployeesStatus.Any(y => + y.StartDate.Date <= dateNow.Date && y.EndDate.Date > dateNow.Date) + ? "true" + : "false", + HasUploadedImage = joinedRollCall == null ? "false" : joinedRollCall.HasUploadedImage, + CreatedByClient = clientTemp != null || (employee.workshopTemp != null &&employee.workshopTemp.LeftWorkType == LeftWorkTempType.StartWork) + }; + + + + + + if (!string.IsNullOrWhiteSpace(command.Name)) @@ -136,9 +159,9 @@ public class RollCallEmployeeRepository : RepositoryBase } var firstlist = joinedQuery.AsSplitQuery(); - - var list = firstlist.OrderByDescending(x => x.IsActiveString == "true" ? 1 : 0) + + var list = firstlist.OrderByDescending(x => x.CreatedByClient).ThenByDescending(x => x.IsActiveString == "true" ? 1 : 0) .ThenByDescending(x => x.HasUploadedImage == "true" ? 1 : 0) .Skip(command.PageIndex).Take(30).ToList(); var watch = new Stopwatch(); diff --git a/CompanyManagment.EFCore/Repository/RollCallServiceRepository.cs b/CompanyManagment.EFCore/Repository/RollCallServiceRepository.cs index a9d5a430..26335fa1 100644 --- a/CompanyManagment.EFCore/Repository/RollCallServiceRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallServiceRepository.cs @@ -123,4 +123,9 @@ public class RollCallServiceRepository : RepositoryBase, }).Where(x => x.AccountId == accountId).ToList(); } + + public bool IsExistActiveServiceByWorkshopId(long workshopId) + { + return _context.RollCallServices.AsSplitQuery().Any(x => x.WorkshopId == workshopId && x.IsActiveString == "true"); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/WorkshopRepository.cs b/CompanyManagment.EFCore/Repository/WorkshopRepository.cs index c2381301..8640a479 100644 --- a/CompanyManagment.EFCore/Repository/WorkshopRepository.cs +++ b/CompanyManagment.EFCore/Repository/WorkshopRepository.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Linq; +using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.InfraStructure; using AccountManagement.Application.Contracts.Account; @@ -15,9 +16,12 @@ using Company.Domain.WorkshopAgg; using Company.Domain.WorkshopEmployerAgg; using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.EmployeeChildren; using CompanyManagment.App.Contracts.Employer; +using CompanyManagment.App.Contracts.LeftWorkTemp; using CompanyManagment.App.Contracts.PersonalContractingParty; using CompanyManagment.App.Contracts.Workshop; +using CompanyManagment.App.Contracts.Workshop.DTOs; using Microsoft.EntityFrameworkCore; using Microsoft.Identity.Client; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; @@ -31,7 +35,7 @@ public class WorkshopRepository : RepositoryBase GetWorkshopAll() { - return _context.Workshops.Where(x=>x.IsActive) + return _context.Workshops.Where(x => x.IsActive) .Select(x => new WorkshopViewModel { Id = x.id, @@ -108,14 +112,14 @@ public class WorkshopRepository : RepositoryBase GetWorkshopAccount() { - var cornometr = new Stopwatch(); - cornometr.Start(); - var acountId = _authHelper.CurrentAccountId(); - var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); - + var cornometr = new Stopwatch(); + cornometr.Start(); + var acountId = _authHelper.CurrentAccountId(); + var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); + var result = _context.Workshops.Where(x => workshopIds.Contains(x.id) && x.IsActiveString == "true") - .Include(x => x.WorkshopEmployers).ThenInclude(x=>x.Employer) + .Include(x => x.WorkshopEmployers).ThenInclude(x => x.Employer) .Select(x => new WorkshopViewModel { Id = x.id, @@ -150,7 +154,7 @@ public class WorkshopRepository : RepositoryBase left.Contains(p.Id)).ToList(); } - + var work = _context.Workshops - .Include(x => x.WorkshopEmployers).ThenInclude(x => x.Employer).FirstOrDefault(x=>x.id == id); + .Include(x => x.WorkshopEmployers).ThenInclude(x => x.Employer).FirstOrDefault(x => x.id == id); var results = new WorkshopViewModel { Id = work.id, @@ -302,13 +306,17 @@ public class WorkshopRepository : RepositoryBase new EmployerViewModel() { - Id = y.EmployerId, FullName = y.Employer.FullName, NationalId = y.Employer.NationalId, - Nationalcode = y.Employer.Nationalcode, IdNumber = y.Employer.IdNumber, RegisterId = y.Employer.RegisterId + Id = y.EmployerId, + FullName = y.Employer.FullName, + NationalId = y.Employer.NationalId, + Nationalcode = y.Employer.Nationalcode, + IdNumber = y.Employer.IdNumber, + RegisterId = y.Employer.RegisterId }).ToList(), EmployeeList = employees, }; - + return results; } @@ -420,7 +428,7 @@ public class WorkshopRepository : RepositoryBase x.Id == searchModel.Id); + query = query.Where(x => x.Id == searchModel.Id); if (searchModel.IsActiveString == null) { @@ -445,7 +453,7 @@ public class WorkshopRepository : RepositoryBase emloyerIds.Contains(x.EmployerId)).ToList(); + }).Where(x => emloyerIds.Contains(x.EmployerId)).ToList(); var ids = workshopIds.Select(x => x.WorkshopId).ToList(); var workshops = _context.Workshops.Select(x => new WorkshopViewModel() { @@ -1028,7 +1036,6 @@ public class WorkshopRepository : RepositoryBase x.Employer) @@ -1044,16 +1051,87 @@ public class WorkshopRepository : RepositoryBase> GetWorkshopsForEmployeeStartWork(long accountId) + { + var workshopWithStartedEmployeesDtos = await _context.WorkshopAccounts.Where(x => x.AccountId == accountId) + .Include(x => x.Workshop) + .ThenInclude(x => x.WorkshopEmployers).ThenInclude(x => x.Employer) + .GroupJoin(_context.LeftWorkTemps.Where(x => x.LeftWorkType == LeftWorkTempType.StartWork), + workshopAccounts => workshopAccounts.Workshop.id, + leftWorkTemp => leftWorkTemp.WorkshopId, + (workshopAccount, leftWorkTemp) => new { workshopAccount, leftWorkTemp }) + .Where(x => x.leftWorkTemp.Any()) + .Select(x => new WorkshopWithStartedEmployeesDto + { + AddedEmployeesCount = x.leftWorkTemp.GroupBy(l => l.EmployeeId).Count(), + EmployerName = x.workshopAccount.Workshop.WorkshopEmployers.First().Employer.FullName, + WorkshopId = x.workshopAccount.WorkshopId, + WorkshopName = x.workshopAccount.Workshop.WorkshopFullName + }).ToListAsync(); + + + return workshopWithStartedEmployeesDtos; + } + + public async Task GetWorkshopsForEmployeeStartWorkCount(long accountId) + { + var count = await _context.WorkshopAccounts.Where(x => x.AccountId == accountId) + .Include(x => x.Workshop) + .ThenInclude(x => x.WorkshopEmployers).ThenInclude(x => x.Employer) + .GroupJoin(_context.LeftWorkTemps.Where(x => x.LeftWorkType == LeftWorkTempType.StartWork), + workshopAccounts => workshopAccounts.Workshop.id, + leftWorkTemp => leftWorkTemp.WorkshopId, + (workshopAccount, leftWorkTemp) => new { workshopAccount, leftWorkTemp }) + .CountAsync(x => x.leftWorkTemp.Any()); + return count; + } + + public async Task> GetWorkshopsForLeftWorkTemp(long accountId) + { + var workshopWithLeftEmployeesDtos = await _context.WorkshopAccounts.Where(x => x.AccountId == accountId) + .Include(x => x.Workshop) + .ThenInclude(x => x.WorkshopEmployers).ThenInclude(x => x.Employer) + .GroupJoin(_context.LeftWorkTemps.Where(x => x.LeftWorkType == LeftWorkTempType.LeftWork), + workshopAccounts => workshopAccounts.Workshop.id, + leftWorkTemp => leftWorkTemp.WorkshopId, + (workshopAccount, leftWorkTemp) => new { workshopAccount, leftWorkTemp }) + .Where(x => x.leftWorkTemp.Any()) + .Select(x => new WorkshopWithLeftWorkTempEmployeesDto + { + LeftWorkEmployees = x.leftWorkTemp.GroupBy(l => l.EmployeeId).Count(), + EmployerName = x.workshopAccount.Workshop.WorkshopEmployers.First().Employer.FullName, + WorkshopId = x.workshopAccount.WorkshopId, + WorkshopName = x.workshopAccount.Workshop.WorkshopFullName + }).ToListAsync(); + + return workshopWithLeftEmployeesDtos; + } + + public async Task GetWorkshopsForLeftWorkTempCount(long accountId) + { + var count + = await _context.WorkshopAccounts.Where(x => x.AccountId == accountId) + .Include(x => x.Workshop) + .ThenInclude(x => x.WorkshopEmployers).ThenInclude(x => x.Employer) + .GroupJoin(_context.LeftWorkTemps.Where(x => x.LeftWorkType == LeftWorkTempType.LeftWork), + workshopAccounts => workshopAccounts.Workshop.id, + leftWorkTemp => leftWorkTemp.WorkshopId, + (workshopAccount, leftWorkTemp) => new { workshopAccount, leftWorkTemp }) + .CountAsync(x => x.leftWorkTemp.Any()); + return count; + } + + public List GetWorkshopsByClientAccountId(long clientAccountId) { var workshops = _context.ContractingPartyAccounts.Where(x => x.AccountId == clientAccountId) .Include(x => x.PersonalContractingParty) .ThenInclude(x => x.Employers).ThenInclude(x => x.WorkshopEmployers).ThenInclude(x => x.Workshop).SelectMany(x => x.PersonalContractingParty.Employers.SelectMany(e => e.WorkshopEmployers).Select(e => e.Workshop)).Distinct().Select(x => new WorkshopViewModel() - { - Id = x.id, - WorkshopFullName = x.WorkshopFullName, - }).ToList(); + { + Id = x.id, + WorkshopFullName = x.WorkshopFullName, + }).ToList(); workshops = workshops.Select(x => new WorkshopViewModel() { @@ -1118,7 +1196,7 @@ public class WorkshopRepository : RepositoryBase x.AccountId == acountID).Select(x => x.WorkshopId).ToList(); if (workshopIds != null && workshopIds.Count > 0) { - return _context.Workshops.Where(x => workshopIds.Contains(x.id) && (x.WorkshopFullName.Contains(searchText)|| x.ArchiveCode.Contains(searchText))).Select(x=>new WorkshopViewModel + return _context.Workshops.Where(x => workshopIds.Contains(x.id) && (x.WorkshopFullName.Contains(searchText) || x.ArchiveCode.Contains(searchText))).Select(x => new WorkshopViewModel { Id = x.id, WorkshopName = x.WorkshopName, @@ -1143,143 +1221,143 @@ public class WorkshopRepository : RepositoryBase SearchForMain(WorkshopSearchModel searchModel) { - var leftWorkInsuranceList = _context.LeftWorkInsuranceList.Select(x => x.WorkshopId).ToList(); - var leftWorkList = _context.LeftWorkList.Select(x => x.WorkshopId).ToList(); - var AcountID = _authHelper.CurrentAccountId(); - var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == AcountID).ToList(); + var leftWorkInsuranceList = _context.LeftWorkInsuranceList.Select(x => x.WorkshopId).ToList(); + var leftWorkList = _context.LeftWorkList.Select(x => x.WorkshopId).ToList(); + var AcountID = _authHelper.CurrentAccountId(); + var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == AcountID).ToList(); - if (searchModel.AccountIds != null && searchModel.AccountIds.Any()) - workshopIds = workshopIds.Where(x => searchModel.AccountIds.Contains(x.AccountId)).ToList(); + if (searchModel.AccountIds != null && searchModel.AccountIds.Any()) + workshopIds = workshopIds.Where(x => searchModel.AccountIds.Contains(x.AccountId)).ToList(); - var blockContractingPartyIds = _context.PersonalContractingParties.Where(x => x.IsBlock == "true").Select(x => x.id).ToList(); - var query = _context.Workshops.Include(x => x.WorkshopEmployers) - .Select(x => new WorkshopViewModel - { - Id = x.id, - WorkshopName = x.WorkshopName, - InsuranceCode = x.InsuranceCode, - //EmployerName = x.WorkshopEmployers. - WorkshopSureName = x.WorkshopSureName, - WorkshopFullName = x.WorkshopFullName, - TypeOfOwnership = x.TypeOfOwnership, - ArchiveCode = x.ArchiveCode, - AgentName = x.AgentName, - AgentPhone = x.AgentPhone, - State = x.State, - City = x.City, - Address = x.Address, - TypeOfInsuranceSend = x.TypeOfInsuranceSend, - TypeOfContract = x.TypeOfContract, - IsActiveString = x.IsActiveString, - ContractTerm = x.ContractTerm, - AgreementNumber = x.AgreementNumber, - FixedSalary = x.FixedSalary, - Population = x.Population, - InsuranceJobId = x.InsuranceJobId, - ZoneName = x.ZoneName, - TotalPaymentHide = x.TotalPaymentHide, - HasBlockContractingParty = false, - IsClassified = x.IsClassified, - HasLeftwork = (leftWorkInsuranceList.Contains(x.id) || leftWorkList.Contains(x.id)), - EmpList = x.WorkshopEmployers.Select(y => new EmployerViewModel() - { - Id = y.EmployerId, - FullName = y.Employer.FullName, - ContractingPartyID = y.Employer.ContractingPartyId - }).ToList(), - }).Where(e => workshopIds.Select(a => a.WorkshopId).Contains(e.Id)); - if (searchModel.AccountId > 0) - { - var res = _workshopAccountRepository.GetList(searchModel.AccountId).Select(x => x.WorkshopId).ToList(); - query = query.Where(x => res.Contains(x.Id)); - } - - - - - - if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) - query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); - - if (!string.IsNullOrWhiteSpace(searchModel.InsuranceCode)) - query = query.Where(x => x.InsuranceCode.Contains(searchModel.InsuranceCode)); - - if (!string.IsNullOrWhiteSpace(searchModel.ArchiveCode)) - query = query.Where(x => x.ArchiveCode == searchModel.ArchiveCode); - - if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) - query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); - - if (!string.IsNullOrWhiteSpace(searchModel.ContractTerm)) - query = query.Where(x => x.ContractTerm == searchModel.ContractTerm); - - if (!string.IsNullOrWhiteSpace(searchModel.TypeOfContract)) - query = query.Where(x => x.TypeOfContract == searchModel.TypeOfContract); - - if (searchModel.EmployerId != 0) - { - var emp = _context.WorkshopEmployers.Where(x => x.EmployerId == searchModel.EmployerId) - .Select(x => x.WorkshopId).ToList(); - query = query.Where(x => emp.Contains(x.Id)); - - } - - #region NewByHeydari - if (!string.IsNullOrEmpty(searchModel.EmployerLName)) - { - var employerIds = _context.Employers.Where(x => - (!string.IsNullOrEmpty(x.FName) && x.FName.Contains(searchModel.EmployerLName)) || - (!string.IsNullOrEmpty(x.LName) && x.LName.Contains(searchModel.EmployerLName))).Select(x => x.id); - var workshopIds2 = _context.WorkshopEmployers.Where(x => employerIds.Contains(x.EmployerId)).Select(x => x.WorkshopId).ToList(); - - query = query.Where(x => workshopIds2.Contains(x.Id)); - } - - if (!string.IsNullOrEmpty(searchModel.State)) - { - query = query.Where(x => x.State == searchModel.State); - } - if (!string.IsNullOrEmpty(searchModel.City)) - { - query = query.Where(x => x.City == searchModel.City); - } - if (!string.IsNullOrWhiteSpace(searchModel.WorkshopFullName)) - query = query.Where(x => x.WorkshopFullName.Contains(searchModel.WorkshopFullName) || x.ArchiveCode.Contains(searchModel.WorkshopFullName)); - #endregion - - if (searchModel.Id != 0) - query = query.Where(x => x.Id == searchModel.Id); - - if (searchModel.IsActiveString == null) - { - query = query.Where(x => x.IsActiveString == "true"); - } - - if (searchModel.IsActiveString == "false") - { - query = query.Where(x => x.IsActiveString == "false"); - } - else if (searchModel.IsActiveString == "both") - { - query = query.Where(x => x.IsActiveString == "false" || x.IsActiveString == "true"); - } - - var list = query.OrderByDescending(x => x.Id).ToList(); - foreach (var item in list) - { - var empContractingPartyIds = item.EmpList.Select(x => x.ContractingPartyID).ToList(); - item.HasBlockContractingParty = blockContractingPartyIds.Intersect(empContractingPartyIds).Any(); - } + var blockContractingPartyIds = _context.PersonalContractingParties.Where(x => x.IsBlock == "true").Select(x => x.id).ToList(); + var query = _context.Workshops.Include(x => x.WorkshopEmployers) + .Select(x => new WorkshopViewModel + { + Id = x.id, + WorkshopName = x.WorkshopName, + InsuranceCode = x.InsuranceCode, + //EmployerName = x.WorkshopEmployers. + WorkshopSureName = x.WorkshopSureName, + WorkshopFullName = x.WorkshopFullName, + TypeOfOwnership = x.TypeOfOwnership, + ArchiveCode = x.ArchiveCode, + AgentName = x.AgentName, + AgentPhone = x.AgentPhone, + State = x.State, + City = x.City, + Address = x.Address, + TypeOfInsuranceSend = x.TypeOfInsuranceSend, + TypeOfContract = x.TypeOfContract, + IsActiveString = x.IsActiveString, + ContractTerm = x.ContractTerm, + AgreementNumber = x.AgreementNumber, + FixedSalary = x.FixedSalary, + Population = x.Population, + InsuranceJobId = x.InsuranceJobId, + ZoneName = x.ZoneName, + TotalPaymentHide = x.TotalPaymentHide, + HasBlockContractingParty = false, + IsClassified = x.IsClassified, + HasLeftwork = (leftWorkInsuranceList.Contains(x.id) || leftWorkList.Contains(x.id)), + EmpList = x.WorkshopEmployers.Select(y => new EmployerViewModel() + { + Id = y.EmployerId, + FullName = y.Employer.FullName, + ContractingPartyID = y.Employer.ContractingPartyId + }).ToList(), + }).Where(e => workshopIds.Select(a => a.WorkshopId).Contains(e.Id)); + if (searchModel.AccountId > 0) + { + var res = _workshopAccountRepository.GetList(searchModel.AccountId).Select(x => x.WorkshopId).ToList(); + query = query.Where(x => res.Contains(x.Id)); + } - return list; - } + + + + if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) + query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); + + if (!string.IsNullOrWhiteSpace(searchModel.InsuranceCode)) + query = query.Where(x => x.InsuranceCode.Contains(searchModel.InsuranceCode)); + + if (!string.IsNullOrWhiteSpace(searchModel.ArchiveCode)) + query = query.Where(x => x.ArchiveCode == searchModel.ArchiveCode); + + if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) + query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); + + if (!string.IsNullOrWhiteSpace(searchModel.ContractTerm)) + query = query.Where(x => x.ContractTerm == searchModel.ContractTerm); + + if (!string.IsNullOrWhiteSpace(searchModel.TypeOfContract)) + query = query.Where(x => x.TypeOfContract == searchModel.TypeOfContract); + + if (searchModel.EmployerId != 0) + { + var emp = _context.WorkshopEmployers.Where(x => x.EmployerId == searchModel.EmployerId) + .Select(x => x.WorkshopId).ToList(); + query = query.Where(x => emp.Contains(x.Id)); + + } + + #region NewByHeydari + if (!string.IsNullOrEmpty(searchModel.EmployerLName)) + { + var employerIds = _context.Employers.Where(x => + (!string.IsNullOrEmpty(x.FName) && x.FName.Contains(searchModel.EmployerLName)) || + (!string.IsNullOrEmpty(x.LName) && x.LName.Contains(searchModel.EmployerLName))).Select(x => x.id); + var workshopIds2 = _context.WorkshopEmployers.Where(x => employerIds.Contains(x.EmployerId)).Select(x => x.WorkshopId).ToList(); + + query = query.Where(x => workshopIds2.Contains(x.Id)); + } + + if (!string.IsNullOrEmpty(searchModel.State)) + { + query = query.Where(x => x.State == searchModel.State); + } + if (!string.IsNullOrEmpty(searchModel.City)) + { + query = query.Where(x => x.City == searchModel.City); + } + if (!string.IsNullOrWhiteSpace(searchModel.WorkshopFullName)) + query = query.Where(x => x.WorkshopFullName.Contains(searchModel.WorkshopFullName) || x.ArchiveCode.Contains(searchModel.WorkshopFullName)); + #endregion + + if (searchModel.Id != 0) + query = query.Where(x => x.Id == searchModel.Id); + + if (searchModel.IsActiveString == null) + { + query = query.Where(x => x.IsActiveString == "true"); + } + + if (searchModel.IsActiveString == "false") + { + query = query.Where(x => x.IsActiveString == "false"); + } + else if (searchModel.IsActiveString == "both") + { + query = query.Where(x => x.IsActiveString == "false" || x.IsActiveString == "true"); + } + + var list = query.OrderByDescending(x => x.Id).ToList(); + foreach (var item in list) + { + var empContractingPartyIds = item.EmpList.Select(x => x.ContractingPartyID).ToList(); + item.HasBlockContractingParty = blockContractingPartyIds.Intersect(empContractingPartyIds).Any(); + } + + + return list; + } public OperationResult DeActiveAll(long id) { @@ -1288,10 +1366,10 @@ public class WorkshopRepository : RepositoryBasex.id==id); + var workshops = _context.Workshops.FirstOrDefault(x => x.id == id); workshops.DeActive(workshops.ArchiveCode); - var contracts = _context.Contracts.Where(x=>x.WorkshopIds == id).ToList(); + var contracts = _context.Contracts.Where(x => x.WorkshopIds == id).ToList(); contracts.ForEach(x => x.DeActive()); var contractIds = contracts.Select(x => x.id).ToList(); @@ -1339,208 +1417,208 @@ public class WorkshopRepository : RepositoryBase PrintWorkshopList(WorkshopSearchModel searchModel) - { - var leftWorkInsuranceList = _context.LeftWorkInsuranceList.Select(x => x.WorkshopId).ToList(); - var leftWorkList = _context.LeftWorkList.Select(x => x.WorkshopId).ToList(); - var AcountID = _authHelper.CurrentAccountId(); - var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == AcountID).ToList(); + public List PrintWorkshopList(WorkshopSearchModel searchModel) + { + var leftWorkInsuranceList = _context.LeftWorkInsuranceList.Select(x => x.WorkshopId).ToList(); + var leftWorkList = _context.LeftWorkList.Select(x => x.WorkshopId).ToList(); + var AcountID = _authHelper.CurrentAccountId(); + var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == AcountID).ToList(); - if (searchModel.AccountIds != null && searchModel.AccountIds.Any()) - workshopIds = workshopIds.Where(x => searchModel.AccountIds.Contains(x.AccountId)).ToList(); + if (searchModel.AccountIds != null && searchModel.AccountIds.Any()) + workshopIds = workshopIds.Where(x => searchModel.AccountIds.Contains(x.AccountId)).ToList(); - var blockContractingPartyIds = _context.PersonalContractingParties.Where(x => x.IsBlock == "true").Select(x => x.id).ToList(); - var query = _context.Workshops.Include(x => x.WorkshopEmployers) - .Select(x => new WorkshopViewModel - { - Id = x.id, - WorkshopName = x.WorkshopName, - InsuranceCode = x.InsuranceCode, - //EmployerName = x.WorkshopEmployers. - WorkshopSureName = x.WorkshopSureName, - WorkshopFullName = x.WorkshopFullName, - TypeOfOwnership = x.TypeOfOwnership, - ArchiveCode = x.ArchiveCode, - AgentName = x.AgentName, - AgentPhone = x.AgentPhone, - State = x.State, - City = x.City, - Address = x.Address, - TypeOfInsuranceSend = x.TypeOfInsuranceSend, - TypeOfContract = x.TypeOfContract, - IsActiveString = x.IsActiveString, - ContractTerm = x.ContractTerm, - AgreementNumber = x.AgreementNumber, - FixedSalary = x.FixedSalary, - Population = x.Population, - InsuranceJobId = x.InsuranceJobId, - ZoneName = x.ZoneName, - TotalPaymentHide = x.TotalPaymentHide, - HasBlockContractingParty = false, - IsClassified = x.IsClassified, - HasLeftwork = (leftWorkInsuranceList.Contains(x.id) || leftWorkList.Contains(x.id)), - EmpList = x.WorkshopEmployers.Select(y => new EmployerViewModel() - { - Id = y.EmployerId, - FullName = y.Employer.FullName, - ContractingPartyID = y.Employer.ContractingPartyId - }).ToList(), - }).Where(e => workshopIds.Select(a => a.WorkshopId).Contains(e.Id)); - if (searchModel.AccountId > 0) - { - var res = _workshopAccountRepository.GetList(searchModel.AccountId).Select(x => x.WorkshopId).ToList(); - query = query.Where(x => res.Contains(x.Id)); - } + var blockContractingPartyIds = _context.PersonalContractingParties.Where(x => x.IsBlock == "true").Select(x => x.id).ToList(); + var query = _context.Workshops.Include(x => x.WorkshopEmployers) + .Select(x => new WorkshopViewModel + { + Id = x.id, + WorkshopName = x.WorkshopName, + InsuranceCode = x.InsuranceCode, + //EmployerName = x.WorkshopEmployers. + WorkshopSureName = x.WorkshopSureName, + WorkshopFullName = x.WorkshopFullName, + TypeOfOwnership = x.TypeOfOwnership, + ArchiveCode = x.ArchiveCode, + AgentName = x.AgentName, + AgentPhone = x.AgentPhone, + State = x.State, + City = x.City, + Address = x.Address, + TypeOfInsuranceSend = x.TypeOfInsuranceSend, + TypeOfContract = x.TypeOfContract, + IsActiveString = x.IsActiveString, + ContractTerm = x.ContractTerm, + AgreementNumber = x.AgreementNumber, + FixedSalary = x.FixedSalary, + Population = x.Population, + InsuranceJobId = x.InsuranceJobId, + ZoneName = x.ZoneName, + TotalPaymentHide = x.TotalPaymentHide, + HasBlockContractingParty = false, + IsClassified = x.IsClassified, + HasLeftwork = (leftWorkInsuranceList.Contains(x.id) || leftWorkList.Contains(x.id)), + EmpList = x.WorkshopEmployers.Select(y => new EmployerViewModel() + { + Id = y.EmployerId, + FullName = y.Employer.FullName, + ContractingPartyID = y.Employer.ContractingPartyId + }).ToList(), + }).Where(e => workshopIds.Select(a => a.WorkshopId).Contains(e.Id)); + if (searchModel.AccountId > 0) + { + var res = _workshopAccountRepository.GetList(searchModel.AccountId).Select(x => x.WorkshopId).ToList(); + query = query.Where(x => res.Contains(x.Id)); + } - if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) - query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); + if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) + query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); - if (!string.IsNullOrWhiteSpace(searchModel.InsuranceCode)) - query = query.Where(x => x.InsuranceCode.Contains(searchModel.InsuranceCode)); + if (!string.IsNullOrWhiteSpace(searchModel.InsuranceCode)) + query = query.Where(x => x.InsuranceCode.Contains(searchModel.InsuranceCode)); - if (!string.IsNullOrWhiteSpace(searchModel.ArchiveCode)) - query = query.Where(x => x.ArchiveCode == searchModel.ArchiveCode); + if (!string.IsNullOrWhiteSpace(searchModel.ArchiveCode)) + query = query.Where(x => x.ArchiveCode == searchModel.ArchiveCode); - if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) - query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); + if (!string.IsNullOrWhiteSpace(searchModel.WorkshopName)) + query = query.Where(x => x.WorkshopName.Contains(searchModel.WorkshopName)); - if (!string.IsNullOrWhiteSpace(searchModel.ContractTerm)) - query = query.Where(x => x.ContractTerm == searchModel.ContractTerm); + if (!string.IsNullOrWhiteSpace(searchModel.ContractTerm)) + query = query.Where(x => x.ContractTerm == searchModel.ContractTerm); - if (!string.IsNullOrWhiteSpace(searchModel.TypeOfContract)) - query = query.Where(x => x.TypeOfContract == searchModel.TypeOfContract); + if (!string.IsNullOrWhiteSpace(searchModel.TypeOfContract)) + query = query.Where(x => x.TypeOfContract == searchModel.TypeOfContract); - if (searchModel.EmployerId != 0) - { - var emp = _context.WorkshopEmployers.Where(x => x.EmployerId == searchModel.EmployerId) - .Select(x => x.WorkshopId).ToList(); - query = query.Where(x => emp.Contains(x.Id)); + if (searchModel.EmployerId != 0) + { + var emp = _context.WorkshopEmployers.Where(x => x.EmployerId == searchModel.EmployerId) + .Select(x => x.WorkshopId).ToList(); + query = query.Where(x => emp.Contains(x.Id)); - } + } - #region NewByHeydari - if (!string.IsNullOrEmpty(searchModel.EmployerLName)) - { - var employerIds = _context.Employers.Where(x => - (!string.IsNullOrEmpty(x.FName) && x.FName.Contains(searchModel.EmployerLName)) || - (!string.IsNullOrEmpty(x.LName) && x.LName.Contains(searchModel.EmployerLName))).Select(x => x.id); - var workshopIds2 = _context.WorkshopEmployers.Where(x => employerIds.Contains(x.EmployerId)).Select(x => x.WorkshopId).ToList(); + #region NewByHeydari + if (!string.IsNullOrEmpty(searchModel.EmployerLName)) + { + var employerIds = _context.Employers.Where(x => + (!string.IsNullOrEmpty(x.FName) && x.FName.Contains(searchModel.EmployerLName)) || + (!string.IsNullOrEmpty(x.LName) && x.LName.Contains(searchModel.EmployerLName))).Select(x => x.id); + var workshopIds2 = _context.WorkshopEmployers.Where(x => employerIds.Contains(x.EmployerId)).Select(x => x.WorkshopId).ToList(); - query = query.Where(x => workshopIds2.Contains(x.Id)); - } + query = query.Where(x => workshopIds2.Contains(x.Id)); + } - if (!string.IsNullOrEmpty(searchModel.State)) - { - query = query.Where(x => x.State == searchModel.State); - } - if (!string.IsNullOrEmpty(searchModel.City)) - { - query = query.Where(x => x.City == searchModel.City); - } - if (!string.IsNullOrWhiteSpace(searchModel.WorkshopFullName)) - query = query.Where(x => x.WorkshopFullName.Contains(searchModel.WorkshopFullName) || x.ArchiveCode.Contains(searchModel.WorkshopFullName)); - #endregion + if (!string.IsNullOrEmpty(searchModel.State)) + { + query = query.Where(x => x.State == searchModel.State); + } + if (!string.IsNullOrEmpty(searchModel.City)) + { + query = query.Where(x => x.City == searchModel.City); + } + if (!string.IsNullOrWhiteSpace(searchModel.WorkshopFullName)) + query = query.Where(x => x.WorkshopFullName.Contains(searchModel.WorkshopFullName) || x.ArchiveCode.Contains(searchModel.WorkshopFullName)); + #endregion - if (searchModel.Id != 0) - query = query.Where(x => x.Id == searchModel.Id); + if (searchModel.Id != 0) + query = query.Where(x => x.Id == searchModel.Id); - if (searchModel.IsActiveString == null) - { - query = query.Where(x => x.IsActiveString == "true"); - } + if (searchModel.IsActiveString == null) + { + query = query.Where(x => x.IsActiveString == "true"); + } - if (searchModel.IsActiveString == "false") - { - query = query.Where(x => x.IsActiveString == "false"); - } - else if (searchModel.IsActiveString == "both") - { - query = query.Where(x => x.IsActiveString == "false" || x.IsActiveString == "true"); - } + if (searchModel.IsActiveString == "false") + { + query = query.Where(x => x.IsActiveString == "false"); + } + else if (searchModel.IsActiveString == "both") + { + query = query.Where(x => x.IsActiveString == "false" || x.IsActiveString == "true"); + } - var rawList = query.OrderByDescending(x => x.Id).ToList(); - var list = rawList.Select(x => new PrintListWorkshop() - { - Id = x.Id, - WorkshopName = x.WorkshopName, - InsuranceCode = x.InsuranceCode, - WorkshopSureName = x.WorkshopSureName, - WorkshopFullName = x.WorkshopFullName, - TypeOfOwnership = x.TypeOfOwnership, - ArchiveCode = x.ArchiveCode, - AgentName = x.AgentName, - AgentPhone = x.AgentPhone, - State = x.State, - City = x.City, - Address = x.Address, - TypeOfInsuranceSend = x.TypeOfInsuranceSend, - TypeOfContract = x.TypeOfContract, - IsActiveString = x.IsActiveString, - ContractTerm = x.ContractTerm, - AgreementNumber = x.AgreementNumber, - FixedSalary = x.FixedSalary, - Population = x.Population, - InsuranceJobId = x.InsuranceJobId, - ZoneName = x.ZoneName, - TotalPaymentHide = x.TotalPaymentHide, - HasBlockContractingParty = false, - IsClassified = x.IsClassified, - HasLeftwork = x.HasLeftwork, - EmpList = x.EmpList, - AccountFullName = searchModel.AccountId != 0 ? _accountContext.Accounts.FirstOrDefault(oneAc => oneAc.id == searchModel.AccountId)?.Fullname : "", - AccountsFullName = (searchModel.AccountIds != null && searchModel.AccountIds.Any()) - ? _accountContext.Accounts - .Where(ac => searchModel.AccountIds.Contains(ac.id)) - .Select(account => new AccountViewModel - { - Id = account.id, - Fullname = account.Fullname - }).ToList() - : new List(), - }).ToList(); + var rawList = query.OrderByDescending(x => x.Id).ToList(); + var list = rawList.Select(x => new PrintListWorkshop() + { + Id = x.Id, + WorkshopName = x.WorkshopName, + InsuranceCode = x.InsuranceCode, + WorkshopSureName = x.WorkshopSureName, + WorkshopFullName = x.WorkshopFullName, + TypeOfOwnership = x.TypeOfOwnership, + ArchiveCode = x.ArchiveCode, + AgentName = x.AgentName, + AgentPhone = x.AgentPhone, + State = x.State, + City = x.City, + Address = x.Address, + TypeOfInsuranceSend = x.TypeOfInsuranceSend, + TypeOfContract = x.TypeOfContract, + IsActiveString = x.IsActiveString, + ContractTerm = x.ContractTerm, + AgreementNumber = x.AgreementNumber, + FixedSalary = x.FixedSalary, + Population = x.Population, + InsuranceJobId = x.InsuranceJobId, + ZoneName = x.ZoneName, + TotalPaymentHide = x.TotalPaymentHide, + HasBlockContractingParty = false, + IsClassified = x.IsClassified, + HasLeftwork = x.HasLeftwork, + EmpList = x.EmpList, + AccountFullName = searchModel.AccountId != 0 ? _accountContext.Accounts.FirstOrDefault(oneAc => oneAc.id == searchModel.AccountId)?.Fullname : "", + AccountsFullName = (searchModel.AccountIds != null && searchModel.AccountIds.Any()) + ? _accountContext.Accounts + .Where(ac => searchModel.AccountIds.Contains(ac.id)) + .Select(account => new AccountViewModel + { + Id = account.id, + Fullname = account.Fullname + }).ToList() + : new List(), + }).ToList(); - foreach (var item in list) - { - var empContractingPartyIds = item.EmpList.Select(x => x.ContractingPartyID).ToList(); - item.HasBlockContractingParty = blockContractingPartyIds.Intersect(empContractingPartyIds).Any(); - } + foreach (var item in list) + { + var empContractingPartyIds = item.EmpList.Select(x => x.ContractingPartyID).ToList(); + item.HasBlockContractingParty = blockContractingPartyIds.Intersect(empContractingPartyIds).Any(); + } - return list; - } + return list; + } - #endregion + #endregion - #region Insurance + #region Insurance - public List GetWorkshopSelectListInsuransce() - { - var cornometr = new Stopwatch(); - cornometr.Start(); - var acountId = _authHelper.CurrentAccountId(); - var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); + public List GetWorkshopSelectListInsuransce() + { + var cornometr = new Stopwatch(); + cornometr.Start(); + var acountId = _authHelper.CurrentAccountId(); + var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); - var res = _context.Workshops - .Where(x=> workshopIds.Contains(x.id) && !string.IsNullOrWhiteSpace(x.TypeOfInsuranceSend) && x.TypeOfInsuranceSend != "false" && x.IsActiveString == "true") - .Select(x=> new WorkshopViewModel() - { - Id = x.id, - WorkshopFullName = x.WorkshopFullName, - }); + var res = _context.Workshops + .Where(x => workshopIds.Contains(x.id) && !string.IsNullOrWhiteSpace(x.TypeOfInsuranceSend) && x.TypeOfInsuranceSend != "false" && x.IsActiveString == "true") + .Select(x => new WorkshopViewModel() + { + Id = x.id, + WorkshopFullName = x.WorkshopFullName, + }); - Console.WriteLine("Optimized list Time : " + cornometr.Elapsed); - cornometr.Stop(); + Console.WriteLine("Optimized list Time : " + cornometr.Elapsed); + cornometr.Stop(); return res.ToList(); - } + } public OperationResult CreateAccountLeftWorkAndWorkshopAccounts(List accountIds, long workshopId) { @@ -1563,13 +1641,13 @@ public class WorkshopRepository : RepositoryBase accountIds.Contains(x.id)).ToList(); - + foreach (var item in toBeCreateAccountLeftWork) { _accountContext.AccountLeftWorks.Add(new AccountLeftWork(startGr, continueWorking, item.id, workshopId, item.RoleId)); @@ -1736,5 +1814,154 @@ public class WorkshopRepository : RepositoryBase GetPersonnelInfoRemastered(long workshopId) + { + var leftDate = Tools.GetUndefinedDateTime(); + + var personnelCodes = _context.PersonnelCodeSet.Include(x => x.Employee) + .ThenInclude(x => x.EmployeeChildrenList).IgnoreQueryFilters().Where(x => x.WorkshopId == workshopId).ToList(); + + var contractLeftWork = + _context.LeftWorkList.Where(x => x.WorkshopId == workshopId) + .Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + FullName = x.EmployeeFullName, + PersonnelCode = 0, + ContractPerson = true, + ContractLeft = x.LeftWorkDate != leftDate, + StartWork = x.StartWorkDate, + LeftWork = x.LeftWorkDate, + LastStartContractWork = x.StartWorkDate.ToFarsi(), + LastLeftContractWork = x.LeftWorkDate != leftDate ? x.LeftWorkDate.ToFarsi() : "-", + LastStartInsuranceWork = "-", + LastLeftInsuranceWork = "-", + }).GroupBy(x => x.EmployeeId).Select(x => x.OrderByDescending(y => y.LeftWork).First()).ToList(); + + + + + var insuranceLeftWork = _context.LeftWorkInsuranceList.Where(x => x.WorkshopId == workshopId).Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + FullName = x.EmployeeFullName, + PersonnelCode = 0, + InsurancePerson = true, + InsuranceLeft = x.LeftWorkDate != null, + StartWork = x.StartWorkDate, + LeftWork = x.LeftWorkDate ?? leftDate, + LastStartInsuranceWork = x.StartWorkDate.ToFarsi(), + LastLeftInsuranceWork = x.LeftWorkDate != null ? x.LeftWorkDate.ToFarsi() : "-", + LastStartContractWork = "-", + LastLeftContractWork = "-" + }).GroupBy(x => x.EmployeeId).Select(x => x.OrderByDescending(y => y.LeftWork).First()).ToList(); + + var leftWorkTemp = _context.LeftWorkTemps.Where(x => x.WorkshopId == workshopId).Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + PersonnelCode = 0, + ContractPerson = true, + ContractLeft = x.LeftWork != leftDate, + StartWork = x.StartWork, + LeftWork = x.LeftWork, + LastStartContractWork = x.StartWork.ToFarsi(), + LastLeftContractWork = x.LeftWork != leftDate ? x.LeftWork.ToFarsi() : "-", + LastStartInsuranceWork = "-", + LastLeftInsuranceWork = "-", + LefWorkTemp = x.LeftWorkType == LeftWorkTempType.LeftWork, + CreatedByClient = x.LeftWorkType == LeftWorkTempType.StartWork + }).ToList(); + + + var employeeClientTemp = _context.EmployeeClientTemps.Where(x => x.WorkshopId == workshopId).Select(x => new PersonnelInfoViewModel() + { + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + PersonnelCode = 0, + CreatedByClient = true, + ContractPerson = true + }).ToList(); + + var resultTemp = employeeClientTemp.Concat(leftWorkTemp).ToList().GroupBy(x => x.EmployeeId); + + + + var result = contractLeftWork.Concat(insuranceLeftWork).GroupBy(x => x.EmployeeId).ToList(); + + result = result.Concat(resultTemp).GroupBy(x => x.First().EmployeeId).Select(x => x.First()).ToList(); + + var employeeClientTempList = employeeClientTemp.ToList(); + var startWorkTempsForWorkshop = leftWorkTemp.Where(x => x.CreatedByClient).ToList(); + var leftWorkTempsForWorkshop = leftWorkTemp.Where(x => x.LefWorkTemp).ToList(); + + return result.Select(x => + { + var insurance = x.FirstOrDefault(y => y.InsurancePerson); + var contract = x.FirstOrDefault(y => y.ContractPerson); + var personnelCode = personnelCodes.FirstOrDefault(y => y.EmployeeId == x.Key); + var employee = personnelCode.Employee; + var employeeClient = employeeClientTempList.FirstOrDefault(t => t.EmployeeId == x.First().EmployeeId); + var startWorkTemp = startWorkTempsForWorkshop.FirstOrDefault(s => s.EmployeeId == x.First().EmployeeId); + var leftWorkTemp = leftWorkTempsForWorkshop.FirstOrDefault(s => s.EmployeeId == x.First().EmployeeId); + + + return new PersonnelInfoViewModel() + { + WorkshopId = workshopId, + EmployeeId = x.Key, + FullName = employee.FullName, + PersonnelCode = personnelCode?.PersonnelCode ?? 0, + + InsurancePerson = insurance != null, + ContractPerson = contract != null, + + InsuranceLeft = insurance?.InsuranceLeft ?? false, + ContractLeft = contract?.ContractLeft ?? false, + + StartWork = contract?.StartWork ?? insurance.StartWork, + LeftWork = contract?.LeftWork ?? insurance.LeftWork, + + LastStartInsuranceWork = insurance != null ? insurance.LastStartInsuranceWork : "-", + LastLeftInsuranceWork = insurance != null ? insurance.LastLeftInsuranceWork : "-", + LastStartContractWork = contract != null ? contract.LastStartContractWork : "-", + LastLeftContractWork = contract != null ? contract.LastLeftContractWork : "-", + + Name = employee.FName, + LastName = employee.LName, + NationalCode = employee.NationalCode, + IdNumber = employee.IdNumber, + MaritalStatus = employee.MaritalStatus, + DateOfBirthFa = employee.DateOfBirth.ToFarsi(), + FatherName = employee.FatherName, + State = employee.State, + City = employee.City, + Address = employee.Address, + + CreatedByClient = employeeClient != null || startWorkTemp != null, + + LefWorkTemp = leftWorkTemp != null, + + ChildrenList = employee.EmployeeChildrenList.Select(y => new EmployeeChildernViewModel() + { + DateOfBirth = y.DateOfBirth.ToFarsi(), + EmployeeId = y.EmployeeId, + FName = y.FName, + Id = y.id, + ParentNationalCode = y.ParentNationalCode + }).ToList() + + }; + }).OrderByDescending(x => x.StartWork).ToList(); + + } #endregion } \ No newline at end of file diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index a9c701e4..356ac2e0 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -197,6 +197,10 @@ using Company.Domain.EmployeeDocumentsAgg; using CompanyManagement.Infrastructure.Excel.SalaryAid; using CompanyManagment.App.Contracts.EmployeeDocuments; using CompanyManagment.App.Contracts.EmployeeDocumentsAdminSelection; +using Company.Domain.EmployeeClientTempAgg; +using Company.Domain.LeftWorkTempAgg; +using CompanyManagment.App.Contracts.EmployeeClientTemp; +using CompanyManagment.App.Contracts.LeftWorkTemp; namespace PersonalContractingParty.Config; @@ -409,6 +413,12 @@ public class PersonalBootstrapper services.AddTransient(); services.AddTransient(); + + services.AddTransient(); + services.AddTransient(); + + services.AddTransient(); + services.AddTransient(); #endregion #region Pooya diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/Checker/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/Checker/Index.cshtml.cs index 975a0509..c8fa5a22 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/Checker/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/Checker/Index.cshtml.cs @@ -15,9 +15,10 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.Checker _adminWorkFlowApplication = adminWorkFlowApplication; } - public void OnGet() + + public async System.Threading.Tasks.Task OnGet() { - UploadDocumentCheckerCount = _adminWorkFlowApplication.GetWorkFlowCountForChecker(); + UploadDocumentCheckerCount = await _adminWorkFlowApplication.GetWorkFlowCountForChecker(); } } } diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesDocuments.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesDocuments.cshtml index 0c1338e0..b397fd03 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesDocuments.cshtml +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesDocuments.cshtml @@ -112,7 +112,7 @@ - - @* *@ + + + + -@*
+ @*
@@ -148,16 +163,57 @@
+ @section Script { + $(document).ready(function () { + workFlowStartAndLeftWorkCountMenu(); + + $('.loadingButton').on('click', function (e) { + if (e.ctrlKey || e.metaKey) { + return; + } + + var button = $(this); + var loadingDiv = button.find('.loading'); + loadingDiv.show(); + }); + }); + + function workFlowStartAndLeftWorkCountMenu() { + $.ajax({ + async: true, + dataType: 'json', + url: `@Url.Page("./Index", "StartAndLeftWorkCount")`, + headers: { "RequestVerificationToken": antiForgeryTokenLayout }, + type: 'GET', + success: function (response) { + if (response.success) { + if (response.dataStartWorkCount === 0) { + $('#StartWorkCount').hide(); + } else { + $('#StartWorkCount').show(); + var startWorkCount = response.dataStartWorkCount > 99 ? "+99" : response.dataStartWorkCount; + $('#StartWorkCount span').text(startWorkCount); + } + + if (response.dataLeftWorkCount === 0) { + $('#leftWorkCount').hide(); + } else { + $('#leftWorkCount').show(); + var leftWorkCount = response.dataLeftWorkCount > 99 ? "+99" : response.dataLeftWorkCount; + $('#leftWorkCount span').text(leftWorkCount); + } + } + }, + error: function (xhr, status, error) { + console.error(xhr.responseText); + } + }); + } + } diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/Index.cshtml.cs index d93657aa..b75c7603 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/Index.cshtml.cs @@ -5,6 +5,7 @@ using CompanyManagment.App.Contracts.Workshop; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.Configuration.UserSecrets; +using Microsoft.Identity.Client; using Query.AdminReports.Handlers; using WorkFlow.Application.Contracts.AdminWorkFlow; using WorkFlow.Application.Contracts.WorkFlow; @@ -25,11 +26,25 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.WorkFlow _workshopAccountRepository = workshopAccountRepository; } - public void OnGet() + public async System.Threading.Tasks.Task OnGet() { var accountId = _authHelper.CurrentAccountId(); var accountWorkshops = _workshopAccountRepository.GetList(accountId).Select(x => x.WorkshopId).ToList(); - EmployeeDocumentsAwaitingSubmitCount = _adminWorkFlowApplication.GetWorkFlowCountsForAdmin(accountWorkshops).EmployeeDocumentsAwaitingSubmit; + EmployeeDocumentsAwaitingSubmitCount = await _adminWorkFlowApplication.GetEmployeeDocumentWorkFlowCountsForAdmin(accountWorkshops); + } + + public async Task OnGetStartAndLeftWorkCount() + { + var accountId = _authHelper.CurrentAccountId(); + var resultStartWorkCount = await _adminWorkFlowApplication.GetWorkshopsForEmployeeStartWorkCount(accountId); + var resultLeftWorkCount = await _adminWorkFlowApplication.GetWorkshopsForLeftWorkTempCount(accountId); + + return new JsonResult(new + { + success = true, + dataStartWorkCount = resultStartWorkCount, + dataLeftWorkCount = resultLeftWorkCount, + }); } } } diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalEmployeeEdit.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalEmployeeEdit.cshtml new file mode 100644 index 00000000..c7ecb89e --- /dev/null +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalEmployeeEdit.cshtml @@ -0,0 +1,187 @@ +@using Microsoft.AspNetCore.Mvc.TagHelpers +@model CompanyManagment.App.Contracts.Employee.GetEditEmployeeInEmployeeDocumentViewModel + +@{ + string adminVersion = _0_Framework.Application.Version.AdminVersion; + + + +} + + +
+ + +
+ +
+
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+
+ + +
+
+ + +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml index eb76765f..51977f4f 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml @@ -7,6 +7,8 @@ @{ string adminVersion = _0_Framework.Application.Version.AdminVersion; + + +} + + + + +@Html.AntiForgeryToken() + + + +
+
+ + + +@* *@ + + + + + diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml new file mode 100644 index 00000000..c414ce65 --- /dev/null +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml @@ -0,0 +1,300 @@ +@model CompanyManagment.App.Contracts.LeftWorkTemp.GetStartWorkTempDetails + +@{ + int i = 1; + string adminVersion = _0_Framework.Application.Version.AdminVersion; + + + + + +} + + +
+
+ + + +@* *@ + + + diff --git a/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs index f8f1445f..1f3ff29d 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs @@ -87,11 +87,11 @@ namespace ServiceHost.Areas.AdminNew.Pages }); } - public IActionResult OnGetLayoutCountWorkFlow() + public async Task OnGetLayoutCountWorkFlow() { var currentAccountId = _authHelper.CurrentAccountId(); var accountWorkshops = _workshopAccountRepository.GetList(currentAccountId).Select(x => x.WorkshopId).ToList(); - int workFlowCount = _adminWorkFlowApplication.GetWorkFlowCountsForAdmin(accountWorkshops).EmployeeDocumentsAwaitingSubmit; + int workFlowCount = await _adminWorkFlowApplication.GetWorkFlowCountsForAdmin(accountWorkshops,currentAccountId); return new JsonResult(new { @@ -100,9 +100,9 @@ namespace ServiceHost.Areas.AdminNew.Pages }); } - public IActionResult OnGetLayoutCountChecker() + public async Task OnGetLayoutCountChecker() { - int checkerCount = _adminWorkFlowApplication.GetWorkFlowCountForChecker(); + int checkerCount = await _adminWorkFlowApplication.GetWorkFlowCountForChecker(); return new JsonResult(new { diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/CreateEmployeeModal.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/CreateEmployeeModal.cshtml new file mode 100644 index 00000000..cffddc5e --- /dev/null +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/CreateEmployeeModal.cshtml @@ -0,0 +1,286 @@ +@model CompanyManagment.App.Contracts.Employee.CreateEmployeeByClient +@{ + string clientVersion = _0_Framework.Application.Version.StyleVersion; + + + // + + + var rollCallPath = Context.Request.Path.Value; + +} + +
+
+ +
+ + +
+ + +@* Camera Modal *@ +
+
+
+
+ @**@ + @*
*@ + @*
*@ +
+ @*
*@ + + +
+ +
+ + +
+
+
+ + +
+
+ +
+ + +@* *@ + + + + + + + + + diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeeList.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeeList.cshtml index 3a4bae75..16975077 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeeList.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeeList.cshtml @@ -1,324 +1,389 @@ -@model List +@page +@model ServiceHost.Areas.Client.Pages.Company.Employees.EmployeeListModel + @{ + Layout = "Shared/_ClientLayout"; + ViewData["title"] = " - لیست کل پرسنل"; + string clintVersion = _0_Framework.Application.Version.StyleVersion; } - - - - - - - @**@ - - - - - - - @if (Model != null) - { - int i = 1; - @foreach (var item in Model) - { - - - - @* - *@ - - - - @{ - i++; - } - *@ - - diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml index c414ce65..794d1e9a 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeNew/StartWork.cshtml @@ -34,6 +34,10 @@ .dadmehr-select-search .line { width: 0; } + + .border-red { + border: 3px solid red !important; + } } @@ -155,7 +159,7 @@ - diff --git a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/EmployeesDocuments.js b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/EmployeesDocuments.js index 5c4ba987..b4f1b907 100644 --- a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/EmployeesDocuments.js +++ b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/EmployeesDocuments.js @@ -138,12 +138,12 @@ async function loadWorkshopsWithDocumentsAwaitingUpload() {
-
+
${item.workshopName}
-
+
${item.employerName}
diff --git a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js index e91b06aa..c4cffbab 100644 --- a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js +++ b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js @@ -86,7 +86,7 @@ $("#btnEditSaveEmployee").on('click', function () { return false; } - if (militaryService === "" && gender == "مرد") { + if (militaryService === "" && gender === "مرد") { validateField("#militaryStatus", "لطفا وضعیت نظام وظیفه را مشخص کنید."); return false; } @@ -113,6 +113,8 @@ $("#btnEditSaveEmployee").on('click', function () { $('.alert-success-msg').hide(); $('.alert-success-msg p').text(''); }, 2000); + + $(`.btnSendToChecker[data-index="${getIndexForEmployeeEdit}"]`).removeClass("disable"); loading.hide(); $('#customModal').removeClass('show'); diff --git a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalUploadDocument.js b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalUploadDocument.js index 6b0fbbd1..5d7dac46 100644 --- a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalUploadDocument.js +++ b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalUploadDocument.js @@ -16,6 +16,7 @@ var confirmIcon = `رد شده
`; var rejectIcon = ``; +var getIndexForEmployeeEdit; $(document).ready(function () { @@ -68,7 +69,6 @@ $(document).ready(function () { $(this).find(".resultMessage").html(rejectMessage); $(this).find(".btnEditEmployee").removeClass("disable"); - $(this).find(".btnSendToChecker").removeClass("disable"); } }); @@ -158,7 +158,6 @@ $(document).ready(function () { const pdBox = $(this).closest('.pdBox'); const img = pdBox.find('.preview-image'); var deleteButton = pdBox.find('.btnDeletingPD'); - deleteButton.removeClass('disable'); if (fileInputFile) { const fileName = fileInputFile.name.toLowerCase(); @@ -255,6 +254,12 @@ $(document).ready(function () { } else { showAlertMessage('.alert-msg', 'فرمت فایل باید یکی از موارد jpeg, jpg, png یا pdf باشد.', 3500); + return; + } + + deleteButton.removeClass('disable'); + if (pdBox.find('button.Rejected').length > 0) { + pdBox.find(".btnSendToChecker").removeClass("disable"); } } }); @@ -379,6 +384,11 @@ $(document).ready(function () { }); }); + $(document).off('click', '.btnEditEmployee').on('click', '.btnEditEmployee', function (event) { + getIndexForEmployeeEdit = $(this).data('index'); + LoadCustomPartial(loadModalEmployeeEdit + `&employeeId=${employeeId}&workshopId=${workshopId}`); + }); + $(".exitModal").click(function () { if (uploadFileCount > 0) { swal.fire({ @@ -848,4 +858,4 @@ function canDeleteRecord() { let uploadedOrPending = statusCounter.confirmed + statusCounter.pending; return uploadedOrPending < totalRequired; -} \ No newline at end of file +} diff --git a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeLeftWork/LeftWork.js b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeLeftWork/LeftWork.js index 0d3b74c9..bf5a53c6 100644 --- a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeLeftWork/LeftWork.js +++ b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeLeftWork/LeftWork.js @@ -105,6 +105,7 @@ function enableEdit() { } $("#save").on('click', function () { + $('td').removeClass('border-red'); $('#LastDayStandingInput').prop('disabled', true); $('#LeftWorkInput').prop('disabled', true); $('#save').addClass('disable'); diff --git a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeNew/StartWork.js b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeNew/StartWork.js index a533e0f5..27a0d279 100644 --- a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeNew/StartWork.js +++ b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/_ModalEmployeeNew/StartWork.js @@ -43,7 +43,8 @@ function enableEdit() { $('#btnSaveData').addClass('disable'); } -$("#save").on('click', function() { +$("#save").on('click', function () { + $('td').removeClass('border-red'); $('#StartWorkInput').prop('disabled', true); $('#save').addClass('disable'); $('#btnSaveData').removeClass('disable'); From 60c60a9e1702a40d5caf621a2b3607da710aa73d Mon Sep 17 00:00:00 2001 From: SamSys Date: Tue, 18 Mar 2025 17:18:06 +0330 Subject: [PATCH 36/51] personalcotractingParty add new prop --- 0_Framework/Application/Gender.cs | 3 +- .../PersonalContractingParty.cs | 19 + .../IContractingPartyTempRepository.cs | 2 +- ...ITemporaryClientRegistrationApplication.cs | 2 +- .../TemporaryClientRegistrationApplication.cs | 7 +- .../PersonalContractingpartyMapping.cs | 8 +- ...nderToPersonalContractingParty.Designer.cs | 8979 +++++++++++++++++ ...026_addGenderToPersonalContractingParty.cs | 60 + .../Migrations/CompanyContextModelSnapshot.cs | 76 + .../ContractingPartyTempRepository.cs | 29 +- 10 files changed, 9158 insertions(+), 27 deletions(-) create mode 100644 CompanyManagment.EFCore/Migrations/20250318125026_addGenderToPersonalContractingParty.Designer.cs create mode 100644 CompanyManagment.EFCore/Migrations/20250318125026_addGenderToPersonalContractingParty.cs diff --git a/0_Framework/Application/Gender.cs b/0_Framework/Application/Gender.cs index bbc81090..1fcff74e 100644 --- a/0_Framework/Application/Gender.cs +++ b/0_Framework/Application/Gender.cs @@ -3,5 +3,6 @@ public enum Gender { Male, - Female + Female, + None } \ No newline at end of file diff --git a/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs b/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs index d8e2c3a7..7097b061 100644 --- a/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs +++ b/Company.Domain/ContarctingPartyAgg/PersonalContractingParty.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Security.Cryptography.X509Certificates; +using _0_Framework.Application; using _0_Framework.Domain; using Company.Domain.empolyerAgg; using Company.Domain.RepresentativeAgg; @@ -72,6 +73,11 @@ public class PersonalContractingParty : EntityBase /// public bool IsAuthenticated { get; private set; } + + /// + /// جنسیت + /// + public Gender Gender { get; private set; } #endregion @@ -194,4 +200,17 @@ public class PersonalContractingParty : EntityBase { IsAuthenticated = true; } + + public void Authentication(string fName, string lName, string fatherName,string idNumber, string idNumberSeri, string idNumberSerial, string dateOfBirth, Gender gender) + { + this.FName = fName; + this.LName = lName; + this.FatherName = fatherName; + this.IdNumberSeri = idNumberSeri; + this.IdNumberSerial = idNumberSerial; + this.DateOfBirth = !string.IsNullOrWhiteSpace(dateOfBirth) ? dateOfBirth.ToGeorgianDateTime() : null; + this.IdNumber = idNumber; + this.Gender = gender; + this.IsAuthenticated = true; + } } \ No newline at end of file diff --git a/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs b/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs index 99d8198e..167d07b5 100644 --- a/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs +++ b/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs @@ -10,5 +10,5 @@ public interface IContractingPartyTempRepository :IRepository /// /// - bool CheckExistOrAuthenticated(string nationalCode); + bool CheckExistOrAuthenticated(string nationalCode, string dateOfBirth); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs index c829e5f2..c1c28a45 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs @@ -4,5 +4,5 @@ namespace CompanyManagment.App.Contracts.TemporaryClientRegistration; public interface ITemporaryClientRegistrationApplication { - OperationResult CreateContractingPartyTemp(CreateContractingPartyTemp command); + OperationResult CreateContractingPartyTemp(string nationalCode, string dateOfBirth); } \ No newline at end of file diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index 5afe2647..2d561ec9 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -16,14 +16,15 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati _personalContractingPartyRepository = personalContractingPartyRepository; } - public OperationResult CreateContractingPartyTemp(CreateContractingPartyTemp command) + public OperationResult CreateContractingPartyTemp(string nationalCode , string dateOfBirth) { - var getExistContractingParty = _contractingPartyTempRepository.CheckExistOrAuthenticated(command.NationalCode); + var op = new OperationResult(); + var getExistContractingParty = _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth); //اگر طرف حساب قبلا در دیتابیس وجود داشت if (getExistContractingParty) { - + return op.Failed("طرف حساب با این مشخصات در سیستم وجود دارد"); } //اگر طرف حساب وجود نداشت else diff --git a/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs b/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs index d943862b..60d0179a 100644 --- a/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs +++ b/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs @@ -1,4 +1,6 @@ -using Company.Domain.ContarctingPartyAgg; +using System; +using _0_Framework.Application; +using Company.Domain.ContarctingPartyAgg; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -37,7 +39,9 @@ public class PersonalContractingpartyMapping : IEntityTypeConfiguration x.IdNumberSerial).HasMaxLength(15); builder.Property(x => x.FatherName).HasMaxLength(20); builder.Property(x => x.DateOfBirth).IsRequired(false); - + builder.Property(x => x.Gender).HasConversion( + v => v.ToString(), + v => string.IsNullOrWhiteSpace(v) ? Gender.None : (Gender)Enum.Parse(typeof(Gender), v)).HasMaxLength(6); #endregion diff --git a/CompanyManagment.EFCore/Migrations/20250318125026_addGenderToPersonalContractingParty.Designer.cs b/CompanyManagment.EFCore/Migrations/20250318125026_addGenderToPersonalContractingParty.Designer.cs new file mode 100644 index 00000000..81872edd --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250318125026_addGenderToPersonalContractingParty.Designer.cs @@ -0,0 +1,8979 @@ +// +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("20250318125026_addGenderToPersonalContractingParty")] + partial class addGenderToPersonalContractingParty + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (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("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EarlyExitDeduction") + .HasColumnType("float"); + + b.Property("EmployeeFName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeLName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FineAbsenceDeduction") + .HasColumnType("float"); + + b.Property("FineDeduction") + .HasColumnType("float"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkDeduction") + .HasColumnType("float"); + + b.Property("LateToWorkValue") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthInt") + .HasColumnType("int"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightWorkPay") + .HasColumnType("float"); + + b.Property("OverTimePay") + .HasColumnType("float"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("nvarchar(max)"); + + b.Property("TaxDeduction") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalDeductions") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("YearInt") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("CustomizeCheckoutTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopGroupSettingId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChanged") + .HasColumnType("bit"); + + b.Property("IsShiftChanged") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopGroupSettingId"); + + b.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CustomizeWorkshopSettingId") + .HasColumnType("bigint"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("GroupName") + .HasMaxLength(120) + .HasColumnType("nvarchar(120)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("IsSettingChange") + .HasColumnType("bit"); + + b.Property("IsShiftChange") + .HasColumnType("bit"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MainGroup") + .HasColumnType("bit"); + + b.Property("Salary") + .HasColumnType("float"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("CustomizeWorkshopSettingId"); + + b.ToTable("CustomizeWorkshopGroupSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPayInEndOfYear") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("BonusesPaysInEndOfMonth") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Currency") + .HasColumnType("int"); + + b.Property("EndTimeOffSet") + .HasColumnType("time"); + + b.Property("FridayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("HolidayWork") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("LeavePermittedDays") + .HasColumnType("int"); + + b.Property("MaxMonthDays") + .HasColumnType("int"); + + b.Property("OverTimeThresholdMinute") + .HasColumnType("int"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopShiftStatus") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("CustomizeWorkshopSettings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryAgg.DateSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EndDateGr") + .HasColumnType("datetime2"); + + b.Property("StartDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("StartDateGr") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("DateSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateSalaryId") + .HasColumnType("bigint"); + + b.Property("Percent") + .HasColumnType("float"); + + b.Property("PercentageId") + .HasColumnType("bigint"); + + b.Property("Salary") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("DateSalaryId"); + + b.HasIndex("PercentageId"); + + b.ToTable("DateSalaryItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployeeId", "AccountId"); + + b.ToTable("EmployeeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAgg.Employee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("BankBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BankCardNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FieldOfStudy") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByMonth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("InsuranceHistoryByYear") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsAuthorized") + .HasColumnType("bit"); + + 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.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankAccountNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("BankId") + .HasColumnType("bigint"); + + b.Property("CardNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IsDefault") + .HasColumnType("bit"); + + b.Property("ShebaNumber") + .HasMaxLength(26) + .HasColumnType("nvarchar(26)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BankId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("EmployeeBankInformationSet", (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.EmployeeClientTempAgg.EmployeeClientTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MaritalStatus") + .HasColumnType("nvarchar(max)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("EmployeeClientTemps"); + }); + + 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.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmationDateTime") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DocumentLabel") + .IsRequired() + .HasMaxLength(31) + .HasColumnType("nvarchar(31)"); + + b.Property("DocumentStatus") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("EmployeeDocumentId") + .HasColumnType("bigint"); + + b.Property("EmployeeDocumentsAdminViewId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("MediaId") + .HasColumnType("bigint"); + + b.Property("RejectionReason") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("ReviewedById") + .HasMaxLength(120) + .HasColumnType("bigint"); + + b.Property("UploaderId") + .HasColumnType("bigint"); + + b.Property("UploaderType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeDocumentId"); + + b.HasIndex("EmployeeDocumentsAdminViewId"); + + b.ToTable("EmployeeDocumentItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("EmployeeDocumentsAdminSelection", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRejectedItems") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsSentToChecker") + .HasColumnType("bit"); + + b.Property("RequiredItemsSubmittedByClient") + .HasColumnType("bit"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("EmployeeDocuments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsurancListDataAgg.EmployeeInsurancListData", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYears") + .HasColumnType("float"); + + b.Property("BenefitsIncludedContinuous") + .HasColumnType("float"); + + b.Property("BenefitsIncludedNonContinuous") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + b.Property("DailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("InsuranceListId") + .HasColumnType("bigint"); + + b.Property("InsuranceShare") + .HasColumnType("float"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MonthlyBenefits") + .HasColumnType("float"); + + b.Property("MonthlyBenefitsIncluded") + .HasColumnType("float"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkingDays") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("EmployeeInsurancListData", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfEnd") + .HasColumnType("datetime2"); + + b.Property("DateOfStart") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkShopId"); + + b.ToTable("EmployeeInsuranceRecord", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EmployerAccountAgg.EmployerAccount", b => + { + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("EmployerId", "AccountId"); + + b.ToTable("EmployerAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Evidence.Evidence", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Evidences", (string)null); + }); + + modelBuilder.Entity("Company.Domain.EvidenceDetail.EvidenceDetail", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Evidence_Id") + .HasColumnType("bigint"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("Evidence_Id"); + + b.ToTable("EvidenceDetails", (string)null); + }); + + modelBuilder.Entity("Company.Domain.File1.File1", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ArchiveNo") + .HasColumnType("bigint"); + + b.Property("Client") + .HasColumnType("int"); + + b.Property("ClientVisitDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FileClass") + .HasColumnType("nvarchar(max)"); + + b.Property("HasMandate") + .HasColumnType("int"); + + b.Property("ProceederReference") + .HasColumnType("nvarchar(max)"); + + b.Property("Reqester") + .HasColumnType("bigint"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Summoned") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Files", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAlert.FileAlert", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AdditionalDeadline") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileState_Id") + .HasColumnType("bigint"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("FileState_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("File_Alerts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileAndFileEmployerAgg.FileAndFileEmployer", b => + { + b.Property("FileId") + .HasColumnType("bigint"); + + b.Property("FileEmployerId") + .HasColumnType("bigint"); + + b.HasKey("FileId", "FileEmployerId"); + + b.HasIndex("FileEmployerId"); + + b.ToTable("FileAndFileEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployeeAgg.FileEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileEmployerAgg.FileEmployer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FieldOfStudy") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceWorkshopCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("LevelOfEducation") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("MaritalStatus") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NationalId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OfficePhone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Phone") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RegisterId") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("FileEmployer", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileState.FileState", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FileTiming_Id") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("FileTiming_Id"); + + b.ToTable("File_States", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTiming.FileTiming", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Deadline") + .HasColumnType("int"); + + b.Property("Tips") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Timings", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FileTitle.FileTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("File_Titles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialStatmentAgg.FinancialStatment", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("FinancialStatments", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FinancialTransactionAgg.FinancialTransaction", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Balance") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Creditor") + .HasColumnType("float"); + + b.Property("Deptor") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(600) + .HasColumnType("nvarchar(600)"); + + b.Property("DescriptionOption") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FinancialStatementId") + .HasColumnType("bigint"); + + b.Property("MessageText") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("SentSms") + .HasColumnType("bit"); + + b.Property("SentSmsDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TdateGr") + .HasColumnType("datetime2"); + + b.Property("TypeOfTransaction") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("FinancialStatementId"); + + b.ToTable("FinancialTransactions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineAgg.Fine", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FineDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Fines", (string)null); + }); + + modelBuilder.Entity("Company.Domain.FineSubjectAgg.FineSubject", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("FineSubjects", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanAgg.GroupPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AnnualSalary") + .HasColumnType("float"); + + b.Property("BaseSalary") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("JobSalary") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("GroupPlans", (string)null); + }); + + modelBuilder.Entity("Company.Domain.GroupPlanJobItemAgg.GroupPlanJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("GroupNo") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("GroupPlanId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("JobName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("GroupPlanId"); + + b.ToTable("GroupPlanJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayAgg.Holiday", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("Holidays", (string)null); + }); + + modelBuilder.Entity("Company.Domain.HolidayItemAgg.HolidayItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("HolidayId") + .HasColumnType("bigint"); + + b.Property("HolidayYear") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("Holidaydate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("HolidayId"); + + b.ToTable("Holidayitems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractAgg.InstitutionContract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(250) + .HasColumnType("nvarchar(250)"); + + b.Property("City") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ContractAmount") + .HasColumnType("float"); + + b.Property("ContractDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractDateGr") + .HasColumnType("datetime2"); + + b.Property("ContractEndFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("ContractStartFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("ContractingPartyName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyCompenseation") + .HasColumnType("float"); + + b.Property("Description") + .HasMaxLength(10000) + .HasColumnType("nvarchar(max)"); + + b.Property("EmployeeManualCount") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExtensionNo") + .HasColumnType("int"); + + b.Property("HasValueAddedTax") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Obligation") + .HasColumnType("float"); + + b.Property("OfficialCompany") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("RepresentativeName") + .HasMaxLength(80) + .HasColumnType("nvarchar(80)"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("State") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.Property("TypeOfContract") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("WorkshopManualCount") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("id"); + + b.ToTable("InstitutionContracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionContractContactInfoAgg.InstitutionContractContactInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FnameLname") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("PhoneType") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Position") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SendSms") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("InstitutionContractId"); + + b.ToTable("InstitutinContractContactInfo", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InstitutionPlanAgg.InstitutionPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseContractAmont") + .HasColumnType("float"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("FinalContractAmont") + .HasColumnType("float"); + + b.Property("IncreasePercentage") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("InstitutionPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancJobAgg.InsuranceJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("InsuranceJobTitle") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("InsuranceJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsurancWorkshopInfoAgg.InsuranceWorkshopInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgreementNumber") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ListNumber") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId") + .IsUnique(); + + b.ToTable("InsuranceWorkshopInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceAgg.Insurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployerStr") + .HasColumnType("nvarchar(max)"); + + b.Property("ListNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("int"); + + b.Property("WorkShopId") + .HasColumnType("bigint"); + + b.Property("WorkShopStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("WorkShopId"); + + b.ToTable("Insurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceEmployeeInfoAgg.InsuranceEmployeeInfo", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("InsuranceCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId") + .IsUnique(); + + b.ToTable("InsuranceEmployeeInformation", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobAndJobsAgg.InsuranceJobAndJobs", b => + { + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("InsuranceJobItemId") + .HasColumnType("bigint"); + + b.HasKey("JobId", "InsuranceJobItemId"); + + b.HasIndex("InsuranceJobItemId"); + + b.ToTable("InsuranceJobAndJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceJobItemAgg.InsuranceJobItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("PercentageLessThan") + .HasColumnType("float"); + + b.Property("PercentageMoreThan") + .HasColumnType("float"); + + b.Property("SalaeyLessThan") + .HasColumnType("float"); + + b.Property("SalaryMoreThan") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("InsuranceJobId"); + + b.ToTable("InsuranceJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceListAgg.InsuranceList", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConfirmSentlist") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DifficultJobsInsuranc") + .HasColumnType("float"); + + b.Property("EmployerShare") + .HasColumnType("float"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Included") + .HasColumnType("float"); + + b.Property("IncludedAndNotIncluded") + .HasColumnType("float"); + + b.Property("InsuredShare") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("SumOfBaseYears") + .HasColumnType("float"); + + b.Property("SumOfBenefitsIncluded") + .HasColumnType("float"); + + b.Property("SumOfDailyWage") + .HasColumnType("float"); + + b.Property("SumOfDailyWagePlusBaseYears") + .HasColumnType("float"); + + b.Property("SumOfEmployees") + .HasColumnType("int"); + + b.Property("SumOfMarriedAllowance") + .HasColumnType("float"); + + b.Property("SumOfSalaries") + .HasColumnType("float"); + + b.Property("SumOfWorkingDays") + .HasColumnType("int"); + + b.Property("UnEmploymentInsurance") + .HasColumnType("float"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("InsuranceLists", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceWorkshopAgg.InsuranceListWorkshop", b => + { + b.Property("InsurancListId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("InsurancListId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("InsuranceListWorkshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.InsuranceYearlySalaryAgg.InsuranceYearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group21") + .HasColumnType("float"); + + b.Property("Group22") + .HasColumnType("float"); + + b.Property("Group23") + .HasColumnType("float"); + + b.Property("Group24") + .HasColumnType("float"); + + b.Property("Group25") + .HasColumnType("float"); + + b.Property("Group26") + .HasColumnType("float"); + + b.Property("Group27") + .HasColumnType("float"); + + b.Property("Group28") + .HasColumnType("float"); + + b.Property("Group29") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group30") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("InsuranceYearlySalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.JobAgg.Job", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("JobCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("Jobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeaveAgg.Leave", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Decription") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndLeave") + .HasColumnType("datetime2"); + + b.Property("IsAccepted") + .HasColumnType("bit"); + + b.Property("LeaveHourses") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("PaidLeaveType") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("StartLeave") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("Leave", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkAgg.LeftWork", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWork", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkInsuranceAgg.LeftWorkInsurance", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("IncludeStatus") + .HasColumnType("bit"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LeftWorkDate") + .HasColumnType("datetime2(7)"); + + b.Property("StartWorkDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("LeftWorkInsurances", (string)null); + }); + + modelBuilder.Entity("Company.Domain.LeftWorkTempAgg.LeftWorkTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.Property("LastDayStanding") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("LeftWorkId") + .HasColumnType("bigint"); + + b.Property("LeftWorkType") + .HasColumnType("int"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("LeftWorkTemps"); + }); + + modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("AmountPerMonth") + .HasColumnType("float"); + + b.Property("Count") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GetRounded") + .HasColumnType("bit"); + + b.Property("LoanGrantDate") + .HasColumnType("datetime2"); + + b.Property("StartInstallmentPayment") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("Loan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MandatoryHoursAgg.MandatoryHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Aban") + .HasColumnType("float"); + + b.Property("AbanFridays") + .HasColumnType("int"); + + b.Property("AbanHolidays") + .HasColumnType("int"); + + b.Property("AbanMonadatoryDays") + .HasColumnType("int"); + + b.Property("Azar") + .HasColumnType("float"); + + b.Property("AzarFridays") + .HasColumnType("int"); + + b.Property("AzarHolidays") + .HasColumnType("int"); + + b.Property("AzarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Bahman") + .HasColumnType("float"); + + b.Property("BahmanFridays") + .HasColumnType("int"); + + b.Property("BahmanHolidays") + .HasColumnType("int"); + + b.Property("BahmanMonadatoryDays") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Dey") + .HasColumnType("float"); + + b.Property("DeyFridays") + .HasColumnType("int"); + + b.Property("DeyHolidays") + .HasColumnType("int"); + + b.Property("DeyMonadatoryDays") + .HasColumnType("int"); + + b.Property("Esfand") + .HasColumnType("float"); + + b.Property("EsfandFridays") + .HasColumnType("int"); + + b.Property("EsfandHolidays") + .HasColumnType("int"); + + b.Property("EsfandMonadatoryDays") + .HasColumnType("int"); + + b.Property("Farvardin") + .HasColumnType("float"); + + b.Property("FarvardinFridays") + .HasColumnType("int"); + + b.Property("FarvardinHolidays") + .HasColumnType("int"); + + b.Property("FarvardinMonadatoryDays") + .HasColumnType("int"); + + b.Property("Khordad") + .HasColumnType("float"); + + b.Property("KhordadFridays") + .HasColumnType("int"); + + b.Property("KhordadHolidays") + .HasColumnType("int"); + + b.Property("KhordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mehr") + .HasColumnType("float"); + + b.Property("MehrFridays") + .HasColumnType("int"); + + b.Property("MehrHolidays") + .HasColumnType("int"); + + b.Property("MehrMonadatoryDays") + .HasColumnType("int"); + + b.Property("Mordad") + .HasColumnType("float"); + + b.Property("MordadFridays") + .HasColumnType("int"); + + b.Property("MordadHolidays") + .HasColumnType("int"); + + b.Property("MordadMonadatoryDays") + .HasColumnType("int"); + + b.Property("Ordibehesht") + .HasColumnType("float"); + + b.Property("OrdibeheshtFridays") + .HasColumnType("int"); + + b.Property("OrdibeheshtHolidays") + .HasColumnType("int"); + + b.Property("OrdibeheshtMonadatoryDays") + .HasColumnType("int"); + + b.Property("Shahrivar") + .HasColumnType("float"); + + b.Property("ShahrivarFridays") + .HasColumnType("int"); + + b.Property("ShahrivarHolidays") + .HasColumnType("int"); + + b.Property("ShahrivarMonadatoryDays") + .HasColumnType("int"); + + b.Property("Tir") + .HasColumnType("float"); + + b.Property("TirFridays") + .HasColumnType("int"); + + b.Property("TirHolidays") + .HasColumnType("int"); + + b.Property("TirMonadatoryDays") + .HasColumnType("int"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("MandatoryHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPenaltyTitle.MasterPenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterPetition.MasterPetition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("MasterName") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Master_Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.MasterWorkHistory.MasterWorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("MasterPetition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("MasterPetition_Id"); + + b.ToTable("Master_WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleAgg.EntityModule", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameSubModule") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Module", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ModuleTextManagerAgg.EntityModuleTextManager", b => + { + b.Property("TextManagerId") + .HasColumnType("bigint"); + + b.Property("ModuleId") + .HasColumnType("bigint"); + + b.HasKey("TextManagerId", "ModuleId"); + + b.HasIndex("ModuleId"); + + b.ToTable("TextManager_ModuleTextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.OriginalTitleAgg.EntityOriginalTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.ToTable("TextManager_OriginalTitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeAgg.PaymentToEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.HasKey("id"); + + b.ToTable("PaymentToEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PaymentToEmployeeItemAgg.PaymentToEmployeeItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankCheckNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CashDescription") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DestinationBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("DestinationBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PayDate") + .HasColumnType("datetime2"); + + b.Property("Payment") + .HasColumnType("float"); + + b.Property("PaymentMetod") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("PaymentTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentToEmployeeId") + .HasColumnType("bigint"); + + b.Property("SourceBankAccountNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SourceBankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeDestinationBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TypeSourceBankNumber") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("PaymentToEmployeeId"); + + b.ToTable("PaymentToEmployeeItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PenaltyTitle.PenaltyTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Day") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2(7)"); + + b.Property("PaidAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("RemainingAmount") + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.Property("ToDate") + .HasColumnType("datetime2(7)"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("PenaltyTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PercentageAgg.Percentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Percent") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("Percentages", (string)null); + }); + + modelBuilder.Entity("Company.Domain.PersonnelCodeAgg.PersonnelCodeDomain", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("PersonnelCodes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Petition.Petition", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.Property("NotificationPetitionDate") + .HasColumnType("datetime2"); + + b.Property("PetitionIssuanceDate") + .HasColumnType("datetime2"); + + b.Property("PetitionNo") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenalty") + .HasColumnType("nvarchar(max)"); + + b.Property("TotalPenaltyTitles") + .HasColumnType("nvarchar(max)"); + + b.Property("WorkHistoryDescreption") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Petitions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ProceedingSession.ProceedingSession", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Board_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Date") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.HasIndex("Board_Id"); + + b.ToTable("ProceedingSessions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RepresentativeAgg.Representative", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgentPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("LName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("LegalName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("RegisterId") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.HasKey("id"); + + b.ToTable("Representative", (string)null); + }); + + modelBuilder.Entity("Company.Domain.RewardAgg.Reward", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Amount") + .HasColumnType("float"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("ntext"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("GrantDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RewardType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RewardedByAccountId") + .HasColumnType("bigint"); + + b.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + 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("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EarlyEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EarlyExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FridayWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateEntryDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("LateExitDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("NightWorkTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("RollCallModifyType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ShiftDate") + .HasColumnType("datetime2"); + + b.Property("ShiftDurationTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("ShiftType") + .IsRequired() + .HasMaxLength(22) + .HasColumnType("nvarchar(22)"); + + 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.TemporaryClientRegistrationAgg.ContractingPartyTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("City") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("NationalCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("State") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("ContractingPartyTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter_Id") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NoteNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("NumberTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Paragraph") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectTextManager") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("TextManager_TextManager", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkHistory.WorkHistory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("FromDate") + .HasColumnType("datetime2"); + + b.Property("Petition_Id") + .HasColumnType("bigint"); + + b.Property("ToDate") + .HasColumnType("datetime2"); + + b.Property("WorkingHoursPerDay") + .HasColumnType("int"); + + b.Property("WorkingHoursPerWeek") + .HasColumnType("int"); + + b.HasKey("id"); + + b.HasIndex("Petition_Id"); + + b.ToTable("WorkHistories", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursAgg.WorkingHours", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("NumberOfFriday") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("NumberOfWorkingDays") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverNightWorkH") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverNightWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("OverTimeWorkH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("OverTimeWorkM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("TotalHoursesH") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("TotalHoursesM") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WeeklyWorkingTime") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.HasIndex("ContractId"); + + b.ToTable("WorkingHours", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursItemsAgg.WorkingHoursItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start3") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursId"); + + b.ToTable("WorkingHoursItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempAgg.WorkingHoursTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("ShiftWork") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("WorkShopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkingHoursTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkingHoursTempItemAgg.WorkingHoursTempItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ComplexEnd") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("ComplexStart") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayOfWork") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("End1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("End2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("RestTime") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start1") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Start2") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("WeekNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkingHoursTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkingHoursTempId"); + + b.ToTable("WorkingHoursTempItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAccountAgg.WorkshopAccount", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.Property("ContractAndCheckout") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Insurance") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsActiveSting") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Tax") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.HasKey("WorkshopId", "AccountId"); + + b.ToTable("WorkshopeAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopAgg.Workshop", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AddBonusesPay") + .HasColumnType("bit"); + + b.Property("AddLeavePay") + .HasColumnType("bit"); + + b.Property("AddYearsPay") + .HasColumnType("bit"); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("AgreementNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("BonusesOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("City") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ComputeOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCode") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceJobId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsClassified") + .HasColumnType("bit"); + + b.Property("IsOldContract") + .HasColumnType("bit"); + + b.Property("Population") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("State") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TotalPaymentHide") + .HasColumnType("bit"); + + b.Property("TypeOfContract") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfInsuranceSend") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TypeOfOwnership") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("WorkshopFullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopHolidayWorking") + .HasColumnType("bit"); + + b.Property("WorkshopName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopSureName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("YearsOptions") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Workshops", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopEmployerAgg.WorkshopEmployer", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployerId"); + + b.HasIndex("EmployerId"); + + b.ToTable("WorkshopeEmployers", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanAgg.WorkshopPlan", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Designer") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("DesignerPhone") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ExecutionDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ExecutionDateGr") + .HasColumnType("datetime2"); + + b.Property("IncludingDateFa") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IncludingDateGr") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("WorkshopPlan", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopPlanEmployeeAgg.WorkshopPlanEmployee", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeFullName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopPlanId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopPlanId"); + + b.ToTable("WorkshopPlanEmployees", (string)null); + }); + + modelBuilder.Entity("Company.Domain.WorkshopSubAccountAgg.WorkshopSubAccount", b => + { + b.Property("SubAccountId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("IsActive") + .HasMaxLength(5) + .HasColumnType("int"); + + b.HasKey("SubAccountId", "WorkshopId"); + + b.HasIndex("WorkshopId"); + + b.ToTable("WorkshopSubAccounts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryAgg.YearlySalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ConnectionId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.HasKey("id"); + + b.ToTable("YearlySalariess", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlySalaryItemsAgg.YearlySalaryItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ItemName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ItemValue") + .HasColumnType("float"); + + b.Property("ParentConnectionId") + .HasColumnType("int"); + + b.Property("ValueType") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("YearlyItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.YearlysSalaryTitleAgg.YearlySalaryTitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Title1") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title10") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title2") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title3") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title4") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title5") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title6") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title7") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title8") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title9") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.HasKey("id"); + + b.ToTable("YearlySalaryTitles", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ZoneAgg.Zone", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CityId") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ZoneName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Zones", (string)null); + }); + + modelBuilder.Entity("Company.Domain.empolyerAgg.Employer", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPartyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("DateOfIssue") + .HasColumnType("datetime2"); + + b.Property("EmployerLName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("EmployerNo") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EservicePassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("EserviceUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FatherName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("FullName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Gender") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsLegal") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("MclsPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("MclsUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Nationality") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("PlaceOfIssue") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("SanaPassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("SanaUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficeUserName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TaxOfficepassword") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.HasIndex("ContractingPartyId"); + + b.ToTable("Employers", (string)null); + }); + + modelBuilder.Entity("EmployerWorkshop", b => + { + b.Property("EmployersListid") + .HasColumnType("bigint"); + + b.Property("WorkshopsListid") + .HasColumnType("bigint"); + + b.HasKey("EmployersListid", "WorkshopsListid"); + + b.HasIndex("WorkshopsListid"); + + b.ToTable("EmployerWorkshop"); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.HasOne("Company.Domain.BoardType.BoardType", "BoardType") + .WithMany("BoardsList") + .HasForeignKey("BoardType_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.File1.File1", "File1") + .WithMany("BoardsList") + .HasForeignKey("File_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("BoardType"); + + b.Navigation("File1"); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.HasOne("Company.Domain.SubtitleAgg.EntitySubtitle", "EntitySubtitle") + .WithMany("Chapters") + .HasForeignKey("Subtitle_Id") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EntitySubtitle"); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Checkouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("ClientEmployeeWorkshopList") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.HasOne("Company.Domain.RepresentativeAgg.Representative", "Representative") + .WithMany("ContractingParties") + .HasForeignKey("RepresentativeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Representative"); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("Contracts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.empolyerAgg.Employer", "Employer") + .WithMany("Contracts") + .HasForeignKey("EmployerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("ContractsList") + .HasForeignKey("JobTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.MandatoryHoursAgg.MandatoryHours", null) + .WithMany("Contracts") + .HasForeignKey("MandatoryHoursid"); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("Contracts2") + .HasForeignKey("WorkshopIds") + .OnDelete(DeleteBehavior.NoAction) + .IsRequired(); + + b.HasOne("Company.Domain.YearlySalaryAgg.YearlySalary", "YearlySalary") + .WithMany("Contracts") + .HasForeignKey("YearlySalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Employer"); + + b.Navigation("Job"); + + b.Navigation("Workshop"); + + b.Navigation("YearlySalary"); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.HasOne("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", "PersonalContractingParty") + .WithMany() + .HasForeignKey("PersonalContractingPartyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PersonalContractingParty"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.HasOne("Company.Domain.CrossJobGuildAgg.CrossJobGuild", "CrossJobGuild") + .WithMany("CrossJobList") + .HasForeignKey("CrossJobGuildId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJobGuild"); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.HasOne("Company.Domain.CrossJobAgg.CrossJob", "CrossJob") + .WithMany("CrossJobItemsList") + .HasForeignKey("CrossJobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.JobAgg.Job", "Job") + .WithMany("CrossJobItemsList") + .HasForeignKey("JobId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CrossJob"); + + b.Navigation("Job"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("CustomizeCheckouts") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany("CustomizeCheckouts") + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempFine", "CheckoutFines", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("FineDateFa") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b1.Property("FineDateGr") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempFine"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanAmount") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("LoanRemaining") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempLoanInstallments"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("Description") + .HasColumnType("ntext"); + + b1.Property("GrantDate") + .HasColumnType("datetime2"); + + b1.Property("GrantDateFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("Title") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempReward"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTempSalaryAid"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.Navigation("CheckoutFines"); + + b.Navigation("CustomizeCheckoutLoanInstallments"); + + b.Navigation("CustomizeCheckoutRewards"); + + b.Navigation("CustomizeCheckoutSalaryAids"); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", "CustomizeWorkshopGroupSettings") + .WithMany("CustomizeWorkshopEmployeeSettingsCollection") + .HasForeignKey("CustomizeWorkshopGroupSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("PreviousShiftThreshold") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopEmployeeSettingsId"); + + b1.ToTable("CustomizeWorkshopEmployeeSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopEmployeeSettings") + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + + b1.Navigation("CustomizeWorkshopEmployeeSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopEmployeeSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopEmployeeSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); + + b1.ToTable("CustomizeWorkshopEmployeeSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopEmployeeSettingsShifts"); + + b.Navigation("CustomizeWorkshopGroupSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings", b => + { + b.HasOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "CustomizeWorkshopSettings") + .WithMany("CustomizeWorkshopGroupSettingsCollection") + .HasForeignKey("CustomizeWorkshopSettingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopGroupSettingsId"); + + b1.ToTable("CustomizeWorkshopGroupSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopGroupSettings") + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + + b1.Navigation("CustomizeWorkshopGroupSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("BreakTimeType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("BreakTimeValue") + .HasColumnType("time"); + + b1.Property("HasBreakTimeValue") + .HasColumnType("bit"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid", "Id"); + + b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopGroupSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopGroupSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopGroupSettingsid"); + + b1.ToTable("CustomizeWorkshopGroupSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopGroupSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("BreakTime"); + + b.Navigation("CustomizeRotatingShifts"); + + b.Navigation("CustomizeWorkshopGroupSettingsShifts"); + + b.Navigation("CustomizeWorkshopSettings"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("IrregularShift"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + }); + + modelBuilder.Entity("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", b => + { + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithOne("CustomizeWorkshopSettings") + .HasForeignKey("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings", "WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("Placement") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.HasKey("id"); + + b1.HasIndex("CustomizeWorkshopSettingsId"); + + b1.ToTable("CustomizeWorkshopSettingsShifts", (string)null); + + b1.WithOwner("CustomizeWorkshopSettings") + .HasForeignKey("CustomizeWorkshopSettingsId"); + + b1.Navigation("CustomizeWorkshopSettings"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BaseYearsPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_BaseYearsPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BaseYearsPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BaseYearsPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("BonusesPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_BonusesPayType"); + + b1.Property("PaymentType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("BonusesPay_PaymentType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("BonusesPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("EarlyExitType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("EarlyExit_EarlyExitType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("EarlyExitTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("EarlyExitTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("EarlyExitTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FamilyAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FamilyAllowance_FamilyAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FamilyAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FineAbsenceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDeduction_FineAbsenceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FineAbsenceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("DayOfWeek") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("FineAbsenceDayOfWeekCollection_DayOfWeek"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("FineAbsenceDayOfWeekCollection"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("FridayPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("FridayPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("InsuranceDeductionType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("InsuranceDeduction_InsuranceDeductionType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("InsuranceDeduction_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LateToWorkType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LateToWork_LateToWorkType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LateToWork_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + + b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + { + b2.Property("CustomizeWorkshopSettingsId") + .HasColumnType("bigint"); + + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("FineMoney") + .HasColumnType("float") + .HasColumnName("LateToWorkTimeFines_FineMoney"); + + b2.Property("Minute") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)") + .HasColumnName("LateToWorkTimeFines_Minute"); + + b2.HasKey("CustomizeWorkshopSettingsId", "Id"); + + b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines"); + + b2.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsId"); + }); + + b1.Navigation("LateToWorkTimeFines"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("LeavePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("LeavePay_LeavePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("LeavePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("MarriedAllowanceType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("MarriedAllowance_MarriedAllowanceType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("MarriedAllowance_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("NightWorkingType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("NightWorkPay_NightWorkingType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("NightWorkPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("OverTimePayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("OverTimePay_OverTimePayType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("OverTimePay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + { + b1.Property("CustomizeWorkshopSettingsid") + .HasColumnType("bigint"); + + b1.Property("ShiftPayType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftPayType"); + + b1.Property("ShiftType") + .IsRequired() + .HasMaxLength(1) + .HasColumnType("nvarchar(1)") + .HasColumnName("ShiftPay_ShiftType"); + + b1.Property("Value") + .HasColumnType("float") + .HasColumnName("ShiftPay_Value"); + + b1.HasKey("CustomizeWorkshopSettingsid"); + + b1.ToTable("CustomizeWorkshopSettings"); + + b1.WithOwner() + .HasForeignKey("CustomizeWorkshopSettingsid"); + }); + + b.Navigation("BaseYearsPay"); + + b.Navigation("BonusesPay"); + + b.Navigation("CustomizeWorkshopSettingsShifts"); + + b.Navigation("EarlyExit"); + + b.Navigation("FamilyAllowance"); + + b.Navigation("FineAbsenceDeduction"); + + b.Navigation("FridayPay"); + + b.Navigation("InsuranceDeduction"); + + b.Navigation("LateToWork"); + + b.Navigation("LeavePay"); + + b.Navigation("MarriedAllowance"); + + b.Navigation("NightWorkPay"); + + b.Navigation("OverTimePay"); + + b.Navigation("ShiftPay"); + + b.Navigation("Workshop"); + }); + + modelBuilder.Entity("Company.Domain.DateSalaryItemAgg.DateSalaryItem", b => + { + b.HasOne("Company.Domain.DateSalaryAgg.DateSalary", "DateSalary") + .WithMany("DateSalaryItemList") + .HasForeignKey("DateSalaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.PercentageAgg.Percentage", "Percentage") + .WithMany("DateSalaryItemList") + .HasForeignKey("PercentageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DateSalary"); + + b.Navigation("Percentage"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeAccountAgg.EmployeeAccount", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany() + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b => + { + b.HasOne("Company.Domain.BankAgg.Bank", "Bank") + .WithMany() + .HasForeignKey("BankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeBankInformationList") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Bank"); + + 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.EmployeeDocumentItemAgg.EmployeeDocumentItem", b => + { + b.HasOne("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", "EmployeeDocuments") + .WithMany("EmployeeDocumentItemCollection") + .HasForeignKey("EmployeeDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeDocumentsAdminSelection") + .WithMany("SelectedEmployeeDocumentItems") + .HasForeignKey("EmployeeDocumentsAdminViewId"); + + b.OwnsMany("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItemLog", "ItemLogs", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("AdminMessage") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("EmployeeDocumentItemId") + .HasColumnType("bigint"); + + b1.Property("OperationType") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("OperatorId") + .HasColumnType("bigint"); + + b1.Property("OperatorType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b1.HasKey("id"); + + b1.HasIndex("EmployeeDocumentItemId"); + + b1.ToTable("EmployeeDocumentItemLogs", (string)null); + + b1.WithOwner("EmployeeDocumentItem") + .HasForeignKey("EmployeeDocumentItemId"); + + b1.Navigation("EmployeeDocumentItem"); + }); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("ItemLogs"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithOne("EmployeeDocumentsAdminSelection") + .HasForeignKey("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", "EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.HasOne("Company.Domain.EmployeeAgg.Employee", "Employee") + .WithMany("EmployeeDocuments") + .HasForeignKey("EmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop") + .WithMany() + .HasForeignKey("WorkshopId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Employee"); + + b.Navigation("Workshop"); + }); + + 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("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasColumnType("float"); + + b1.Property("InstallmentDate") + .HasColumnType("datetime2"); + + b1.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b1.Property("LoanId") + .HasColumnType("bigint"); + + b1.Property("Month") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b1.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b1.HasKey("Id"); + + b1.HasIndex("LoanId"); + + 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("EmployeeBankInformationList"); + + b.Navigation("EmployeeChildrenList"); + + b.Navigation("EmployeeDocuments"); + + b.Navigation("EmployeeDocumentsAdminSelection"); + + b.Navigation("EmployeeInsuranceRecords"); + + b.Navigation("InsuranceEmployeeInfo"); + + b.Navigation("LeftWorkInsurances"); + + b.Navigation("LeftWorks"); + + b.Navigation("PersonnelCodeList"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAdminSelectionAgg.EmployeeDocumentsAdminSelection", b => + { + b.Navigation("SelectedEmployeeDocumentItems"); + }); + + modelBuilder.Entity("Company.Domain.EmployeeDocumentsAgg.EmployeeDocuments", b => + { + b.Navigation("EmployeeDocumentItemCollection"); + }); + + 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/20250318125026_addGenderToPersonalContractingParty.cs b/CompanyManagment.EFCore/Migrations/20250318125026_addGenderToPersonalContractingParty.cs new file mode 100644 index 00000000..ad550639 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250318125026_addGenderToPersonalContractingParty.cs @@ -0,0 +1,60 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addGenderToPersonalContractingParty : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Gender", + table: "PersonalContractingParties", + type: "nvarchar(6)", + maxLength: 6, + nullable: false, + defaultValue: ""); + + migrationBuilder.CreateTable( + name: "ContractingPartyTemp", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + FName = table.Column(type: "nvarchar(25)", maxLength: 25, nullable: false), + LName = table.Column(type: "nvarchar(25)", maxLength: 25, nullable: false), + FatherName = table.Column(type: "nvarchar(25)", maxLength: 25, nullable: true), + Gender = table.Column(type: "nvarchar(6)", maxLength: 6, nullable: false), + NationalCode = table.Column(type: "nvarchar(10)", maxLength: 10, nullable: false), + DateOfBirth = table.Column(type: "datetime2", nullable: false), + IdNumberSeri = table.Column(type: "nvarchar(5)", maxLength: 5, nullable: true), + IdNumberSerial = table.Column(type: "nvarchar(15)", maxLength: 15, nullable: true), + IdNumber = table.Column(type: "nvarchar(10)", maxLength: 10, nullable: true), + Phone = table.Column(type: "nvarchar(12)", maxLength: 12, nullable: true), + State = table.Column(type: "nvarchar(35)", maxLength: 35, nullable: true), + City = table.Column(type: "nvarchar(35)", maxLength: 35, nullable: true), + Address = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ContractingPartyTemp", x => x.id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ContractingPartyTemp"); + + migrationBuilder.DropColumn( + name: "Gender", + table: "PersonalContractingParties"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index 48669749..2c29e325 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -570,6 +570,11 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(20) .HasColumnType("nvarchar(20)"); + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + b.Property("IdNumber") .HasMaxLength(20) .HasColumnType("nvarchar(20)"); @@ -4780,6 +4785,77 @@ namespace CompanyManagment.EFCore.Migrations b.ToTable("TaxLeftWorkItem", (string)null); }); + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.ContractingPartyTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("City") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("NationalCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("State") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("ContractingPartyTemp", (string)null); + }); + modelBuilder.Entity("Company.Domain.TextManagerAgg.EntityTextManager", b => { b.Property("id") diff --git a/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs b/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs index b369a3eb..30f9cf17 100644 --- a/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs @@ -2,6 +2,7 @@ using _0_Framework.Application; using _0_Framework.Application.UID; using _0_Framework.InfraStructure; +using AccountMangement.Infrastructure.EFCore.Migrations; using Company.Domain.TemporaryClientRegistrationAgg; using CompanyManagment.App.Contracts.PersonalContractingParty; using Microsoft.EntityFrameworkCore; @@ -18,34 +19,24 @@ public class ContractingPartyTempRepository : RepositoryBasenew PersonalContractingPartyViewModel - // //{ - // // id = x.id, - // // IsAuthenticated = x.IsAuthenticated, - // // Nationalcode = x.Nationalcode, - // // IdNumber = x.IdNumber, - - - // //}).FirstOrDefault(x => x.Nationalcode == nationalcode); - - // return new(); - //} - public bool CheckExistOrAuthenticated(string nationalCode) + public bool CheckExistOrAuthenticated(string nationalCode, string dateOfBirth) { - var contractingParty = _context.PersonalContractingParties.FirstOrDefault(x=>x.Nationalcode == nationalCode); + var contractingParty = _context.PersonalContractingParties.FirstOrDefault(x=>x.Nationalcode == nationalCode && x.IsLegal == "false"); if (contractingParty == null) return false; - if (!contractingParty.IsAuthenticated && !string.IsNullOrWhiteSpace(contractingParty.Nationalcode) && contractingParty.DateOfBirth != null) + if (!contractingParty.IsAuthenticated && !string.IsNullOrWhiteSpace(contractingParty.Nationalcode)) { var dateOfbirth = contractingParty.DateOfBirth.ToFarsi(); var apiRespons = _uidService.GetPersonalInfo(contractingParty.Nationalcode, dateOfbirth).Result; - if (apiRespons != null) + if (apiRespons != null && apiRespons.ResponseContext.Status.Code == 0) { - + var idNumber = apiRespons.IdentificationInformation.ShenasnamehNumber == "0" + ? apiRespons.IdentificationInformation.NationalId + : apiRespons.IdentificationInformation.ShenasnamehNumber; + contractingParty.Authentication(apiRespons.BasicInformation.FirstName, apiRespons.BasicInformation.LastName,apiRespons.BasicInformation.FatherName,idNumber,apiRespons.IdentificationInformation.ShenasnameSeri,apiRespons.IdentificationInformation.ShenasnameSerial, apiRespons.IdentificationInformation.BirthDate,apiRespons.BasicInformation.GenderEnum); + _context.SaveChanges(); } } From e73672e1147e0372504cf1dcbff852696702a8db Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Fri, 21 Mar 2025 12:52:37 +0330 Subject: [PATCH 37/51] fix create employee bug --- .../RollCallEmployeeStatusApplication.cs | 174 +++++++++--------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs b/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs index faaaee3a..5a178887 100644 --- a/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs +++ b/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs @@ -20,120 +20,120 @@ namespace CompanyManagment.Application private readonly IRollCallEmployeeStatusRepository _employeeRollCallStatusRepository; private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository; private readonly ILeftWorkRepository _leftWorkRepository; - private readonly IRollCallServiceRepository _rollCallServiceRepository; - private readonly ILeftWorkTempRepository _leftWorkTempRepository; - private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository; + private readonly IRollCallServiceRepository _rollCallServiceRepository; + private readonly ILeftWorkTempRepository _leftWorkTempRepository; + private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository; - public RollCallEmployeeStatusApplication(IRollCallEmployeeStatusRepository employeeStatusRepository, IRollCallEmployeeRepository rollCallEmployeeRepository, ILeftWorkRepository leftWorkRepository, IRollCallServiceRepository rollCallServiceRepository, ILeftWorkTempRepository leftWorkTempRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository) + public RollCallEmployeeStatusApplication(IRollCallEmployeeStatusRepository employeeStatusRepository, IRollCallEmployeeRepository rollCallEmployeeRepository, ILeftWorkRepository leftWorkRepository, IRollCallServiceRepository rollCallServiceRepository, ILeftWorkTempRepository leftWorkTempRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository) { _employeeRollCallStatusRepository = employeeStatusRepository; _rollCallEmployeeRepository = rollCallEmployeeRepository; _leftWorkRepository = leftWorkRepository; - _rollCallServiceRepository = rollCallServiceRepository; - _leftWorkTempRepository = leftWorkTempRepository; - _leftWorkInsuranceRepository = leftWorkInsuranceRepository; - } + _rollCallServiceRepository = rollCallServiceRepository; + _leftWorkTempRepository = leftWorkTempRepository; + _leftWorkInsuranceRepository = leftWorkInsuranceRepository; + } - public OperationResult Create(CreateRollCallEmployeeStatus cmd) - { - OperationResult op = new(); - RollCallEmployee rollCallEmployee = _rollCallEmployeeRepository.Get(cmd.RollCallEmployeeId); - if (rollCallEmployee == null) - return op.Failed("کارمند مجاز نیست"); + public OperationResult Create(CreateRollCallEmployeeStatus cmd) + { + OperationResult op = new(); + RollCallEmployee rollCallEmployee = _rollCallEmployeeRepository.Get(cmd.RollCallEmployeeId); + if (rollCallEmployee == null) + return op.Failed("کارمند مجاز نیست"); - if (!_leftWorkRepository.Exists(x => - x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && - x.StartWorkDate <= DateTime.Now && x.LeftWorkDate > DateTime.Now) && - !_leftWorkTempRepository.Exists(x => - x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && - x.LeftWorkType == LeftWorkTempType.StartWork)) - { - return op.Failed("کارمند شروع به کار ندارد"); - } + if (!_leftWorkRepository.Exists(x => + x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && + x.StartWorkDate <= DateTime.Now && x.LeftWorkDate > DateTime.Now) && + !_leftWorkTempRepository.Exists(x => + x.EmployeeId == rollCallEmployee.EmployeeId && x.WorkshopId == rollCallEmployee.WorkshopId && + x.LeftWorkType == LeftWorkTempType.StartWork)) + { + return op.Failed("کارمند شروع به کار ندارد"); + } - if (_employeeRollCallStatusRepository.Exists(y => - rollCallEmployee.id == y.RollCallEmployeeId && y.EndDate.Date > DateTime.Now.Date)) - return op.Failed("کارمند فعال می باشد"); + if (_employeeRollCallStatusRepository.Exists(y => + rollCallEmployee.id == y.RollCallEmployeeId && y.EndDate.Date > DateTime.Now.Date)) + return op.Failed("کارمند فعال می باشد"); - if (_employeeRollCallStatusRepository.Exists(y => - rollCallEmployee.id == y.RollCallEmployeeId && y.EndDate.Date == DateTime.Now.Date)) - { - RollCallEmployeeStatus previousStatusInDate = _employeeRollCallStatusRepository.GetByRollCallEmployeeIdAndDate(cmd.RollCallEmployeeId, DateTime.Now.Date); - previousStatusInDate.Edit(previousStatusInDate.StartDate, Tools.GetUndefinedDateTime()); - } - else - { - var pc = new PersianCalendar(); - var startStatus = DateTime.Today; - LeftWork leftWork = - _leftWorkRepository.GetLastLeftWork(rollCallEmployee.EmployeeId, rollCallEmployee.WorkshopId).GetAwaiter().GetResult(); + if (_employeeRollCallStatusRepository.Exists(y => + rollCallEmployee.id == y.RollCallEmployeeId && y.EndDate.Date == DateTime.Now.Date)) + { + RollCallEmployeeStatus previousStatusInDate = _employeeRollCallStatusRepository.GetByRollCallEmployeeIdAndDate(cmd.RollCallEmployeeId, DateTime.Now.Date); + previousStatusInDate.Edit(previousStatusInDate.StartDate, Tools.GetUndefinedDateTime()); + } + else + { + var pc = new PersianCalendar(); + var startStatus = DateTime.Today; + LeftWork leftWork = + _leftWorkRepository.GetLastLeftWork(rollCallEmployee.EmployeeId, rollCallEmployee.WorkshopId).GetAwaiter().GetResult(); - if (leftWork.StartWorkDate > DateTime.Today) - startStatus = leftWork.StartWorkDate; + if (leftWork != null && leftWork.StartWorkDate > DateTime.Today) + startStatus = leftWork.StartWorkDate; - //else if(pc.GetMonth(DateTime.Today) == pc.GetMonth(leftWork.StartWorkDate)) - //{ - // startStatus = new DateTime(pc.GetYear(leftWork.StartWorkDate), pc.GetMonth(leftWork.StartWorkDate), - // 1, pc); - //} + //else if(pc.GetMonth(DateTime.Today) == pc.GetMonth(leftWork.StartWorkDate)) + //{ + // startStatus = new DateTime(pc.GetYear(leftWork.StartWorkDate), pc.GetMonth(leftWork.StartWorkDate), + // 1, pc); + //} - RollCallEmployeeStatus newRecord = new(rollCallEmployee.id, startStatus); - _employeeRollCallStatusRepository.Create(newRecord); - } + RollCallEmployeeStatus newRecord = new(rollCallEmployee.id, startStatus); + _employeeRollCallStatusRepository.Create(newRecord); + } - _employeeRollCallStatusRepository.SaveChanges(); + _employeeRollCallStatusRepository.SaveChanges(); - return op.Succcedded(); - } + return op.Succcedded(); + } - public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd) - { - //موقت - // دادمهرگستر 11 - //585 کاشی گالری سرامیس (بابک ابراهیمی ) - //آموزشگاه ملل 604 - //کاریابی ملل 605 - //368 پیتزا امیر آماده سازی - //367 پیتزا امیر رستوران - //286 مرکز توان بخشی رسالت - bool skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367 or 286; + public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd) + { + //موقت + // دادمهرگستر 11 + //585 کاشی گالری سرامیس (بابک ابراهیمی ) + //آموزشگاه ملل 604 + //کاریابی ملل 605 + //368 پیتزا امیر آماده سازی + //367 پیتزا امیر رستوران + //286 مرکز توان بخشی رسالت + bool skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367 or 286; - //#if DEBUG - // skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367; - //#endif - if (skipRollCallByWorkshopId) - return false; + //#if DEBUG + // skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367; + //#endif + if (skipRollCallByWorkshopId) + return false; - // 42550 مصطفی مقدس نژاد فومنی - bool skipRollCallByEmployeeId = employeeId is 42550; - if (skipRollCallByEmployeeId) - return false; + // 42550 مصطفی مقدس نژاد فومنی + bool skipRollCallByEmployeeId = employeeId is 42550; + if (skipRollCallByEmployeeId) + return false; - var service = _rollCallServiceRepository.GetAllServiceByWorkshopId(workshopId); + var service = _rollCallServiceRepository.GetAllServiceByWorkshopId(workshopId); - if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date)) - return false; - var rollCallEmployee = - _rollCallEmployeeRepository.GetByEmployeeIdAndWorkshopId(employeeId,workshopId); + if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date)) + return false; + var rollCallEmployee = + _rollCallEmployeeRepository.GetByEmployeeIdAndWorkshopId(employeeId, workshopId); - if (rollCallEmployee == null) - return false; + if (rollCallEmployee == null) + return false; - return _employeeRollCallStatusRepository.Exists(x => x.RollCallEmployeeId == rollCallEmployee.Id && - x.StartDate.Date <= contractStart.Date && - x.EndDate.Date >= contractEnd.Date); - } + return _employeeRollCallStatusRepository.Exists(x => x.RollCallEmployeeId == rollCallEmployee.Id && + x.StartDate.Date <= contractStart.Date && + x.EndDate.Date >= contractEnd.Date); + } - public List GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr) - { - return _employeeRollCallStatusRepository.GetActiveByWorkshopIdInDate(workshopId, startDateGr, endDateGr); - } + public List GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr) + { + return _employeeRollCallStatusRepository.GetActiveByWorkshopIdInDate(workshopId, startDateGr, endDateGr); + } - public OperationResult Deactivate(long id) + public OperationResult Deactivate(long id) { OperationResult op = new(); RollCallEmployeeStatus entity = _employeeRollCallStatusRepository.Get(id); From 8f9d0ecffbeb3cc607da5655efd6567b7ea27ed3 Mon Sep 17 00:00:00 2001 From: SamSys Date: Fri, 21 Mar 2025 16:25:58 +0330 Subject: [PATCH 38/51] kabiseh bug fixed --- .../Repository/YearlySalaryRepository.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs index e71cfade..e5ac3f13 100644 --- a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs +++ b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs @@ -45,9 +45,11 @@ public class YearlySalaryRepository : RepositoryBase, IYearl var y = Convert.ToInt32(endDateNowFa.Substring(0, 4)); var m = Convert.ToInt32(endDateNowFa.Substring(5, 2)); var d = Convert.ToInt32(endDateNowFa.Substring(8, 2)); - if (m == 12) - y += 1; + PersianDateTime endDate = new PersianDateTime(y, m, d); + + if (m == 12) + endDate.AddYears(1); for (PersianDateTime date = endDate; date >= startDate; date = date.AddYears(-1)) { yearlist.Add(date.ToString("yyyy")); From d2d629d750918dea96e58c3ff08d58bbc018b21b Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Fri, 21 Mar 2025 18:16:34 +0330 Subject: [PATCH 39/51] fix employee upload picture bug --- .../CustomizeWorkshopSettingsApplication.cs | 11 ++ ServiceHost/appsettings.Development.json | 5 +- .../pages/RollCall/js/ModalTakeImages.js | 134 ++++++++++-------- 3 files changed, 87 insertions(+), 63 deletions(-) diff --git a/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs index 1e420fa3..872fce0e 100644 --- a/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs +++ b/CompanyManagment.Application/CustomizeWorkshopSettingsApplication.cs @@ -340,6 +340,17 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo return createDefaultEmployee; } + if (_customizeWorkshopEmployeeSettingsRepository.Exists(x => + x.WorkshopId == command.WorkshopId && command.EmployeeIds.First()== x.EmployeeId && + x.CustomizeWorkshopGroupSettingId == command.GroupId)) + { + var employeeSettings = _customizeWorkshopEmployeeSettingsRepository + .GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(command.WorkshopId,command.EmployeeIds.First()); + + _customizeWorkshopEmployeeSettingsRepository.Remove(employeeSettings.id); + _customizeWorkshopEmployeeSettingsRepository.SaveChanges(); + } + List shiftCollection = new List(); List rotatingShift = []; diff --git a/ServiceHost/appsettings.Development.json b/ServiceHost/appsettings.Development.json index 29bc1fa8..00c1bb97 100644 --- a/ServiceHost/appsettings.Development.json +++ b/ServiceHost/appsettings.Development.json @@ -15,7 +15,10 @@ //"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;" //local - "MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" + //"MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" + + //mahan Docker + "MesbahDb": "Data Source=localhost,5069;Initial Catalog=mesbah_db;User ID=sa;Password=YourPassword123;TrustServerCertificate=True;" }, "GoogleRecaptchaV3": { "SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH", diff --git a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalTakeImages.js b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalTakeImages.js index 43e5fa50..53fd6bb5 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalTakeImages.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/RollCall/js/ModalTakeImages.js @@ -388,7 +388,6 @@ async function set() { const detection1 = await faceapi.detectSingleFace(img1).withFaceLandmarks().withFaceDescriptor(); const detection2 = await faceapi.detectSingleFace(img2).withFaceLandmarks().withFaceDescriptor(); - console.log(detection1); const distance = faceapi.euclideanDistance(detection1.descriptor, detection2.descriptor); if (distance > 0.45) { $('.alert-msg').show(); @@ -398,7 +397,6 @@ async function set() { $('.alert-msg p').text(''); }, 4000); return; - } //var command = $('#create-form').serializeArray(); @@ -1299,6 +1297,11 @@ function timeValidCheck(value) { $(document).ready(function () { loadWorkshopSettingList(); + var selectedValueBy_LoadWorkshopSettingList = $('#workshopSettingSelect').val(); + if (selectedValueBy_LoadWorkshopSettingList != 0) { + loadWorkshopSettingSelectAjax(selectedValueBy_LoadWorkshopSettingList); + } + if ($("#workshopSettingSelect").val() === "0") { $('#next-step').addClass('disable'); } else { @@ -1374,24 +1377,32 @@ function loadWorkshopSettingList() { } $('#workshopSettingSelect').on('change', function () { - let htmlElement = ''; var id = Number($(this).val()); + loadWorkshopSettingSelectAjax(id) +}); + + +function loadWorkshopSettingSelectAjax(idSelected) { + var id = Number(idSelected); + + let htmlElement = ''; + if (id == 0) { $('#footer-section').hide(); } - if ($("#workshopSettingSelect").val() === "0") { - $('#stepWorkTimeOptionRadio').hide(); - $('#step_workTimeOptionNull').show(); - $('#step_workTimeOption').hide(); - $('#step_workTimeOptionRotatingShift').hide(); - $('#step_workTimeOptionIrregular').hide(); - $('#step_workTimeOptionWithoutGroup').hide(); - $('#next-step').addClass('disable'); - } else { - $('#next-step').removeClass('disable'); - } + if (id === 0) { + $('#stepWorkTimeOptionRadio').hide(); + $('#step_workTimeOptionNull').show(); + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').hide(); + $('#step_workTimeOptionIrregular').hide(); + $('#step_workTimeOptionWithoutGroup').hide(); + $('#next-step').addClass('disable'); + } else { + $('#next-step').removeClass('disable'); + } $.ajax({ async: false, @@ -1402,19 +1413,19 @@ $('#workshopSettingSelect').on('change', function () { success: function (response) { const workshopSettingGroupSelecting = response.data; - var regularShiftsIndex = 0; - var rotatingShiftsIndex = 0; - + var regularShiftsIndex = 0; + var rotatingShiftsIndex = 0; + if (workshopSettingGroupSelecting.groupSettings.length > 0) { workshopSettingGroupSelecting.groupSettings.forEach(function (itemGroupSettings) { if (itemGroupSettings.id === id) { if ($('#workshopSettingSelect').find(':selected').data('name-group') === "بدون گروه") { - $('#stepWorkTimeOptionRadio').hide(); - $('#step_workTimeOptionNull').hide(); - $('#step_workTimeOption').hide(); - $('#step_workTimeOptionRotatingShift').hide(); - $('#step_workTimeOptionIrregular').hide(); + $('#stepWorkTimeOptionRadio').hide(); + $('#step_workTimeOptionNull').hide(); + $('#step_workTimeOption').hide(); + $('#step_workTimeOptionRotatingShift').hide(); + $('#step_workTimeOptionIrregular').hide(); $('#step_workTimeOptionWithoutGroup').show(); $('#footer-section').hide(); } else { @@ -1525,7 +1536,7 @@ $('#workshopSettingSelect').on('change', function () { $('#step_workTimeOptionIrregular').hide(); $('#step_workTimeOptionIrregular').html(loadIrregularHtml()); - + updateAddButtonText(regularShiftsIndex); if ((regularShiftsIndex) === 3) { @@ -1534,8 +1545,8 @@ $('#workshopSettingSelect').on('change', function () { $(".btnAddTimeWork").show(); } // Update Remove button enable/disable state - updateRemoveButtons(); - loadCleaveClasses(); + updateRemoveButtons(); + loadCleaveClasses(); } else if (itemGroupSettings.workshopShiftStatus === 1) { @@ -1548,8 +1559,8 @@ $('#workshopSettingSelect').on('change', function () { $('#step_workTimeOptionRotatingShift').hide(); $('#step_workTimeOptionIrregular').show(); $('#footer-section').show(); - - + + // Irregular Shift const rawStartTime = itemGroupSettings.irregularShift.startTime; const rawEndTime = itemGroupSettings.irregularShift.endTime; @@ -1611,13 +1622,13 @@ $('#workshopSettingSelect').on('change', function () { $('#step_workTimeOption').hide(); $('#step_workTimeOption').html(loadRegularHtml()); - + $('#step_workTimeOptionRotatingShift').hide(); $('#step_workTimeOptionRotatingShift').html(loadRotatingHtml()); $('#step_workTimeOptionIrregular').show(); $('#step_workTimeOptionIrregular').html(htmlElement); - + updateIrregularButton(); loadCleaveClasses(); @@ -1735,29 +1746,29 @@ $('#workshopSettingSelect').on('change', function () { $('#step_workTimeOptionNull').hide(); $('#step_workTimeOptionWithoutGroup').hide(); $('#stepWorkTimeOptionRadio').show(); - + $('#step_workTimeOption').hide(); - $('#step_workTimeOption').html(loadRegularHtml()); - + $('#step_workTimeOption').html(loadRegularHtml()); + $('#step_workTimeOptionRotatingShift').show(); $('#appendChildTimeWorkHtmlRS').html(htmlElement); $('#step_workTimeOptionIrregular').hide(); - $('#step_workTimeOptionIrregular').html(loadIrregularHtml()); + $('#step_workTimeOptionIrregular').html(loadIrregularHtml()); + - updateAddButtonTextRS(rotatingShiftsIndex); if ((rotatingShiftsIndex) === 4) { $(".btnAddTimeWorkRS").hide(); } else { - $(".btnAddTimeWorkRS").show(); - } + $(".btnAddTimeWorkRS").show(); + } // Update Remove button enable/disable state - updateRemoveButtonsRS(); + updateRemoveButtonsRS(); loadCleaveClasses(); } - } + } @@ -1766,16 +1777,16 @@ $('#workshopSettingSelect').on('change', function () { $('#GroupId').val(itemGroupSettings.id); - $('#BreakTimeFirst').prop('checked', (itemGroupSettings.breakTime.breakTimeType === 2 ? true : false)); + $('#BreakTimeFirst').prop('checked', (itemGroupSettings.breakTime.breakTimeType === 2 ? true : false)); $('#BreakTime').prop('checked', (itemGroupSettings.breakTime.breakTimeType === 1 ? true : false)); - - if (itemGroupSettings.breakTime.hasBreakTimeValue) { - let breakTimeValue = itemGroupSettings.breakTime.breakTimeValue; - let formattedBreakTime = breakTimeValue.substring(0, 5); + + if (itemGroupSettings.breakTime.hasBreakTimeValue) { + let breakTimeValue = itemGroupSettings.breakTime.breakTimeValue; + let formattedBreakTime = breakTimeValue.substring(0, 5); let [hour, minute] = breakTimeValue.split(':'); - $('#hour').val(hour); - $('#min').val(minute); + $('#hour').val(hour); + $('#min').val(minute); $('#TimeOnly').val(formattedBreakTime); $('#computeTime').removeClass('disable'); @@ -1785,20 +1796,20 @@ $('#workshopSettingSelect').on('change', function () { } else { $('#hour').val("00"); - $('#min').val("00"); + $('#min').val("00"); $('#TimeOnly').val(''); $('#computeTime').addClass('disable'); // console.log($('hour='+ $('#hour').val())); // console.log('min='+ $('#min').val()); - } + } - $('#Friday1').prop('checked', (itemGroupSettings.fridayWork === 0 ? true : false)); - $('#Friday2').prop('checked', (itemGroupSettings.fridayWork === 1 ? true : false)); + $('#Friday1').prop('checked', (itemGroupSettings.fridayWork === 0 ? true : false)); + $('#Friday2').prop('checked', (itemGroupSettings.fridayWork === 1 ? true : false)); - $('#HolidayWork1').prop('checked', (itemGroupSettings.holidayWork === 0 ? true : false)); - $('#HolidayWork2').prop('checked', (itemGroupSettings.holidayWork === 1 ? true : false)); + $('#HolidayWork1').prop('checked', (itemGroupSettings.holidayWork === 0 ? true : false)); + $('#HolidayWork2').prop('checked', (itemGroupSettings.holidayWork === 1 ? true : false)); } @@ -1807,17 +1818,17 @@ $('#workshopSettingSelect').on('change', function () { - if ($('.groupBox').length === 3) { - $('.btnAddTimeWork').closest('div').css("display", "none"); - } else { - $('.btnAddTimeWork').closest('div').css("display", "flex"); + if ($('.groupBox').length === 3) { + $('.btnAddTimeWork').closest('div').css("display", "none"); + } else { + $('.btnAddTimeWork').closest('div').css("display", "flex"); } - if ($('.groupBoxRS').length === 4) { - $('.btnAddTimeWorkRS').closest('div').css("display", "none"); - } else { - $('.btnAddTimeWorkRS').closest('div').css("display", "flex"); - } + if ($('.groupBoxRS').length === 4) { + $('.btnAddTimeWorkRS').closest('div').css("display", "none"); + } else { + $('.btnAddTimeWorkRS').closest('div').css("display", "flex"); + } @@ -1840,8 +1851,7 @@ $('#workshopSettingSelect').on('change', function () { console.log('Error fetching roll call data:', err); } }); -}); - +} function loadCleaveClasses(){ From 14f54149ea54c3b05ee963d61d31056eca6eb0c0 Mon Sep 17 00:00:00 2001 From: SamSys Date: Fri, 21 Mar 2025 19:15:52 +0330 Subject: [PATCH 40/51] appsetting --- ServiceHost/appsettings.Development.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ServiceHost/appsettings.Development.json b/ServiceHost/appsettings.Development.json index 00c1bb97..3e31959e 100644 --- a/ServiceHost/appsettings.Development.json +++ b/ServiceHost/appsettings.Development.json @@ -15,10 +15,10 @@ //"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;" //local - //"MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" + "MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" //mahan Docker - "MesbahDb": "Data Source=localhost,5069;Initial Catalog=mesbah_db;User ID=sa;Password=YourPassword123;TrustServerCertificate=True;" + //"MesbahDb": "Data Source=localhost,5069;Initial Catalog=mesbah_db;User ID=sa;Password=YourPassword123;TrustServerCertificate=True;" }, "GoogleRecaptchaV3": { "SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH", From a4aff718dc576f3a0500bfc85cbb02a99d246f2f Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Mon, 24 Mar 2025 18:59:30 +0330 Subject: [PATCH 41/51] fix bug --- .../Repository/CustomizeCheckoutRepository.cs | 4 +- .../Repository/RollCallRepository.cs | 87 +++++++++++-------- 2 files changed, 55 insertions(+), 36 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs index c98c56a3..ad25bc24 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs @@ -168,9 +168,9 @@ namespace CompanyManagment.EFCore.Repository SalaryAidDateTimeGe = s.SalaryAidDateTime }).ToList(), - LateToWorkValue = x.LateToWorkValue == TimeSpan.Zero ? "-" : $"{(int)x.LateToWorkValue.TotalHours}:{x.LateToWorkValue.Minutes:D2}" + LateToWorkValue = x.LateToWorkValue == TimeSpan.Zero ? "-" : $"{Convert.ToInt32(x.LateToWorkValue.TotalHours)}:{Convert.ToInt32(x.LateToWorkValue.TotalMinutes % 60):00}" - }).ToList(); + }).ToList(); List workshopsList = workshopsQuery.Select(x => new WorkshopViewModel { WorkshopFullName = x.WorkshopFullName, diff --git a/CompanyManagment.EFCore/Repository/RollCallRepository.cs b/CompanyManagment.EFCore/Repository/RollCallRepository.cs index 1f59e614..b3a8ecef 100644 --- a/CompanyManagment.EFCore/Repository/RollCallRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallRepository.cs @@ -1791,43 +1791,62 @@ public class RollCallRepository : RepositoryBase, IRollCallRepos IsBirthDay = isBirthday }; }); - var presentDays = rollCalls.Where(x => x.EmployeeId == employeeId).GroupBy(x => x.ShiftDate.Date).Select(x => - { - var orderedRollcalls = x.OrderBy(y => y.StartDate!.Value).ToList(); - return new CheckoutDailyRollCallViewModel() - { - StartDate1 = orderedRollcalls.FirstOrDefault()?.StartDate?.ToString("HH:mm"), - EndDate1 = orderedRollcalls.FirstOrDefault()?.EndDate?.ToString("HH:mm"), + var presentDays = rollCalls.Where(x => x.EmployeeId == employeeId).GroupBy(x => x.ShiftDate.Date).Select(x => + { + var orderedRollcalls = x.OrderBy(y => y.StartDate!.Value).ToList(); + var firstRollCall = orderedRollcalls.FirstOrDefault(); + var secondRollCall = orderedRollcalls.Skip(1).FirstOrDefault(); + return new CheckoutDailyRollCallViewModel() + { + StartDate1 = orderedRollcalls.FirstOrDefault()?.StartDate?.ToString("HH:mm"), + EndDate1 = orderedRollcalls.FirstOrDefault()?.EndDate?.ToString("HH:mm"), - StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.StartDate?.ToString("HH:mm") ?? "", - EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndDate?.ToString("HH:mm") ?? "", + StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.StartDate?.ToString("HH:mm") ?? "", + EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndDate?.ToString("HH:mm") ?? "", - TotalhourseSpan = - new TimeSpan(x.Where(y => y.EndDate != null).Sum(y => (y.EndDate - y.StartDate)!.Value.Ticks)), - DayOfWeek = x.Key.DayOfWeek.DayOfWeeKToPersian(), - RollCallDateFa = x.Key.Date.ToFarsi(), - DateTimeGr = x.Key.Date, - IsSliced = x.Count() > 2, - IsAbsent = false, - IsBirthDay = pc.GetMonth(x.Key) == pc.GetMonth(birthDay) && pc.GetDayOfMonth(x.Key) == pc.GetDayOfMonth(birthDay) - }; - }); - presentDays = presentDays.Select(x => new CheckoutDailyRollCallViewModel - { - StartDate1 = x.StartDate1, - EndDate1 = x.EndDate1, - EndDate2 = x.EndDate2, - StartDate2 = x.StartDate2, - TotalWorkingHours = $"{(int)(x.TotalhourseSpan.TotalHours)}:{x.TotalhourseSpan.Minutes.ToString("00")}", - DayOfWeek = x.DayOfWeek, - RollCallDateFa = x.RollCallDateFa, - DateTimeGr = x.DateTimeGr, - IsSliced = x.IsSliced, - IsAbsent = false, - IsBirthDay = x.IsBirthDay - }); + TotalhourseSpan = + new TimeSpan(x.Where(y => y.EndDate != null).Sum(y => (y.EndDate - y.StartDate)!.Value.Ticks)), + DayOfWeek = x.Key.DayOfWeek.DayOfWeeKToPersian(), + RollCallDateFa = x.Key.Date.ToFarsi(), + DateTimeGr = x.Key.Date, + IsSliced = x.Count() > 2, + IsAbsent = false, + IsBirthDay = pc.GetMonth(x.Key) == pc.GetMonth(birthDay) && pc.GetDayOfMonth(x.Key) == pc.GetDayOfMonth(birthDay), - List checkoutDailyRollCalls = presentDays.Concat(absentRecords).OrderBy(x => x.DateTimeGr).ToList(); + EnterDifferencesMinutes1 = firstRollCall != null && firstRollCall.LateEntryDuration > TimeSpan.Zero && workshopId == 170 + ? CalculateEntryMinuteDifference(firstRollCall.EarlyEntryDuration, + firstRollCall.LateEntryDuration) + : "", + ExitDifferencesMinutes1 = "", + + EnterDifferencesMinutes2 = secondRollCall != null && secondRollCall.LateEntryDuration > TimeSpan.Zero && workshopId == 170 + ? CalculateEntryMinuteDifference(secondRollCall.EarlyEntryDuration, + secondRollCall.LateEntryDuration) + : "", + ExitDifferencesMinutes2 = "" + }; + }); + presentDays = presentDays.Select(x => new CheckoutDailyRollCallViewModel + { + StartDate1 = x.StartDate1, + EndDate1 = x.EndDate1, + EndDate2 = x.EndDate2, + StartDate2 = x.StartDate2, + TotalWorkingHours = $"{(int)(x.TotalhourseSpan.TotalHours)}:{x.TotalhourseSpan.Minutes.ToString("00")}", + DayOfWeek = x.DayOfWeek, + RollCallDateFa = x.RollCallDateFa, + DateTimeGr = x.DateTimeGr, + IsSliced = x.IsSliced, + IsAbsent = false, + IsBirthDay = x.IsBirthDay, + EnterDifferencesMinutes1 = x.EnterDifferencesMinutes1, + ExitDifferencesMinutes1 = x.ExitDifferencesMinutes1, + EnterDifferencesMinutes2 = x.EnterDifferencesMinutes2, + ExitDifferencesMinutes2 = x.ExitDifferencesMinutes2, + }); + + + List checkoutDailyRollCalls = presentDays.Concat(absentRecords).OrderBy(x => x.DateTimeGr).ToList(); checkoutDailyRollCalls.ForEach(x => { From 21b209b83ae405e7b8e01a2b7f78ba882726db1d Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 24 Mar 2025 19:01:13 +0330 Subject: [PATCH 42/51] register --- 0_Framework/Application/Tools.cs | 14 ++- 0_Framework/Application/UID/UidService.cs | 39 ++++++--- .../IContractingPartyTempRepository.cs | 13 ++- .../ContractingPartyTempViewModel.cs | 5 ++ ...ITemporaryClientRegistrationApplication.cs | 5 +- .../TemporaryClientRegistrationApplication.cs | 87 +++++++++++++++++-- CompanyManagment.EFCore/CompanyContext.cs | 9 +- .../ContractingPartyTempRepository.cs | 34 +++++++- .../PersonalBootstrapper.cs | 12 ++- ServiceHost/Pages/Index.cshtml.cs | 27 ++++-- 10 files changed, 208 insertions(+), 37 deletions(-) diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs index efe2fc17..149b5b0f 100644 --- a/0_Framework/Application/Tools.cs +++ b/0_Framework/Application/Tools.cs @@ -19,6 +19,7 @@ using Microsoft.Extensions.Logging; using System.IO.Compression; using System.Linq; using _0_Framework.Domain.CustomizeCheckoutShared.Base; +using System.ComponentModel.DataAnnotations; namespace _0_Framework.Application; @@ -32,6 +33,15 @@ public static class Tools public static string[] DayNames = { "شنبه", "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه" }; public static string[] DayNamesG = { "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه", "شنبه" }; + + public static bool IsMobileValid(this string mobileNo) + { + if (mobileNo.Length < 11) + return false; + return Regex.IsMatch(mobileNo, "^((09))(\\d{9})$"); + } + + /// /// دریافت روزهای کارکرد پرسنل در لیست بیمه ماه مشخص شده /// با کمک شروع بکار و ترک کار @@ -778,8 +788,8 @@ public static class Tools { case "0000000000": case "1111111111": - case "22222222222": - case "33333333333": + case "2222222222": + case "3333333333": case "4444444444": case "5555555555": case "6666666666": diff --git a/0_Framework/Application/UID/UidService.cs b/0_Framework/Application/UID/UidService.cs index 043fa0a5..ab453f83 100644 --- a/0_Framework/Application/UID/UidService.cs +++ b/0_Framework/Application/UID/UidService.cs @@ -32,16 +32,24 @@ public class UidService : IUidService var json = JsonConvert.SerializeObject(request); var contentType = new StringContent(json, Encoding.UTF8, "application/json"); - var requestResult = await _httpClient.PostAsync("person/v2", contentType); - if(!requestResult.IsSuccessStatusCode) - return null; - var responseResult = await requestResult.Content.ReadFromJsonAsync(); - responseResult.BasicInformation.FirstName = responseResult.BasicInformation.FirstName.ToPersian(); - responseResult.BasicInformation.LastName = responseResult.BasicInformation.LastName.ToPersian(); - responseResult.BasicInformation.FatherName = responseResult.BasicInformation.FatherName.ToPersian(); + try + { + var requestResult = await _httpClient.PostAsync("person/v2", contentType); + if (!requestResult.IsSuccessStatusCode) + return null; + var responseResult = await requestResult.Content.ReadFromJsonAsync(); + responseResult.BasicInformation.FirstName = responseResult.BasicInformation.FirstName.ToPersian(); + responseResult.BasicInformation.LastName = responseResult.BasicInformation.LastName.ToPersian(); + responseResult.BasicInformation.FatherName = responseResult.BasicInformation.FatherName.ToPersian(); - return responseResult; + return responseResult; + } + catch (Exception) + { + + return null; + } } @@ -55,12 +63,19 @@ public class UidService : IUidService }; var json = JsonConvert.SerializeObject(request); var contentType = new StringContent(json, Encoding.UTF8, "application/json"); + try + { + var requestResult = await _httpClient.PostAsync("mobile/owner/v2", contentType); + if (!requestResult.IsSuccessStatusCode) + return null; - var requestResult = await _httpClient.PostAsync("mobile/owner/v2", contentType); - if (!requestResult.IsSuccessStatusCode) + var responseResult = await requestResult.Content.ReadFromJsonAsync(); + return responseResult; + } + catch (Exception e) + { return null; + } - var responseResult = await requestResult.Content.ReadFromJsonAsync(); - return responseResult; } } \ No newline at end of file diff --git a/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs b/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs index 167d07b5..223b466a 100644 --- a/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs +++ b/Company.Domain/TemporaryClientRegistrationAgg/IContractingPartyTempRepository.cs @@ -1,4 +1,6 @@ -using _0_Framework.Domain; +using System.Threading.Tasks; +using _0_Framework.Domain; +using CompanyManagment.App.Contracts.TemporaryClientRegistration; namespace Company.Domain.TemporaryClientRegistrationAgg; @@ -10,5 +12,12 @@ public interface IContractingPartyTempRepository :IRepository /// /// - bool CheckExistOrAuthenticated(string nationalCode, string dateOfBirth); + Task CheckExistOrAuthenticated(string nationalCode, string dateOfBirth); + + /// + /// دریافت اطلاعات طرف حساب موقت با کد ملی + /// + /// + /// + ContractingPartyTempViewModel GetByNationalCode(string nationalCode); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ContractingPartyTempViewModel.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ContractingPartyTempViewModel.cs index b5d6dd68..5067c36f 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ContractingPartyTempViewModel.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ContractingPartyTempViewModel.cs @@ -3,4 +3,9 @@ public class ContractingPartyTempViewModel : CreateContractingPartyTemp { public long Id { get; set; } + /// + /// تاریخ تولد شمسی + /// + public string DateOfBirthFa { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs index c1c28a45..0bf213d1 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs @@ -1,8 +1,9 @@ -using _0_Framework.Application; +using System.Threading.Tasks; +using _0_Framework.Application; namespace CompanyManagment.App.Contracts.TemporaryClientRegistration; public interface ITemporaryClientRegistrationApplication { - OperationResult CreateContractingPartyTemp(string nationalCode, string dateOfBirth); + Task> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile); } \ No newline at end of file diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index 2d561ec9..bd4174a3 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -1,7 +1,10 @@ -using _0_Framework.Application; +using System.Threading.Tasks; +using _0_Framework.Application; +using _0_Framework.Application.UID; using Company.Domain.ContarctingPartyAgg; using Company.Domain.TemporaryClientRegistrationAgg; using CompanyManagment.App.Contracts.TemporaryClientRegistration; +using PersianTools.Core; namespace CompanyManagment.Application; @@ -9,17 +12,38 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati { private readonly IContractingPartyTempRepository _contractingPartyTempRepository; private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository; + private readonly IUidService _uidService; - public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository personalContractingPartyRepository) + public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IUidService uidService) { _contractingPartyTempRepository = contractingPartyTempRepository; _personalContractingPartyRepository = personalContractingPartyRepository; + _uidService = uidService; } - public OperationResult CreateContractingPartyTemp(string nationalCode , string dateOfBirth) + public async Task> CreateContractingPartyTemp(string nationalCode , string dateOfBirth, string mobile) { - var op = new OperationResult(); - var getExistContractingParty = _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth); + var op = new OperationResult(); + + #region Validations + + if (string.IsNullOrWhiteSpace(nationalCode) || string.IsNullOrWhiteSpace(dateOfBirth) || + string.IsNullOrWhiteSpace(mobile)) + return op.Failed("هیچ یک از فیلد ها نمیتواند خالی باشد"); + + + if (nationalCode.NationalCodeValid() != "valid") + return op.Failed("کد ملی نا معتبر است"); + + if(!dateOfBirth.IsPersianDateValid()) + return op.Failed("تاریخ تولد نا معتبر است"); + + if(!mobile.IsMobileValid()) + return op.Failed("شماره همراه نا معتبر است"); + #endregion + + + var getExistContractingParty = await _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth); //اگر طرف حساب قبلا در دیتابیس وجود داشت if (getExistContractingParty) @@ -29,8 +53,59 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati //اگر طرف حساب وجود نداشت else { + //دریافت اطلاعات طرف حساب موقت که قبلا ایجاد شده + var getExistTemp = _contractingPartyTempRepository.GetByNationalCode(nationalCode); + var dateOfBirthGr = dateOfBirth.ToGeorgianDateTime(); + + if (getExistTemp != null) + { + + if(getExistTemp.DateOfBirth != dateOfBirthGr) + return op.Failed("تاریخ تولد مطابقت ندارد"); + if (getExistTemp.Phone != mobile) + return op.Failed("شما قبلا با شماره همراه دیگری ثبت نام نموده اید"); + return op.Succcedded(getExistTemp); + + } + //چک کردن مطابقت شماره همراه و کد ملی + var isMachMobilAndNationalCode = await _uidService.IsMachPhoneWithNationalCode(nationalCode, mobile); + if (isMachMobilAndNationalCode == null) + return op.Failed("خطا در سرویس احراز هویت"); + if(!isMachMobilAndNationalCode.IsMatched) + return op.Failed("شماره همراه وارد شده با کد ملی مطابقت ندارد"); + + //دریافت اطلاعات احراز هویت + var apiRespons = await _uidService.GetPersonalInfo(nationalCode, dateOfBirth); + + if(apiRespons == null) + return op.Failed("خطا در سرویس احراز هویت"); + if (apiRespons.ResponseContext.Status.Code != 0) + return op.Failed($"{apiRespons.ResponseContext.Status.Message}"); + + var idNumber = apiRespons.IdentificationInformation.ShenasnamehNumber == "0" + ? apiRespons.IdentificationInformation.NationalId + : apiRespons.IdentificationInformation.ShenasnamehNumber; + + //ایجاد طرف حساب موقت + var createTemp = new ContractingPartyTemp(apiRespons.BasicInformation.FirstName, + apiRespons.BasicInformation.LastName, nationalCode, idNumber, mobile, + apiRespons.BasicInformation.FatherName, "", "", "", + apiRespons.IdentificationInformation.ShenasnameSeri, + apiRespons.IdentificationInformation.ShenasnameSerial, apiRespons.BasicInformation.GenderEnum, + dateOfBirthGr); + await _contractingPartyTempRepository.CreateAsync(createTemp); + await _contractingPartyTempRepository.SaveChangesAsync(); + + var result = new ContractingPartyTempViewModel(); + result.Id = createTemp.id; + result.FName = createTemp.FName; + result.LName = createTemp.LName; + result.DateOfBirthFa = dateOfBirth; + result.IdNumber = idNumber; + + return op.Succcedded(result); } - throw new System.NotImplementedException(); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/CompanyContext.cs b/CompanyManagment.EFCore/CompanyContext.cs index 7389d18a..6f772a5a 100644 --- a/CompanyManagment.EFCore/CompanyContext.cs +++ b/CompanyManagment.EFCore/CompanyContext.cs @@ -93,6 +93,7 @@ using Company.Domain.SubtitleAgg; using Company.Domain.TaxJobCategoryAgg; using Company.Domain.TaxLeftWorkCategoryAgg; using Company.Domain.TaxLeftWorkItemAgg; +using Company.Domain.TemporaryClientRegistrationAgg; using Company.Domain.TextManagerAgg; using Company.Domain.WorkHistory; using Company.Domain.WorkingHoursAgg; @@ -185,10 +186,14 @@ public class CompanyContext : DbContext public DbSet Banks { get; set; } public DbSet EmployeeBankInformationSet { get; set; } - #endregion + #endregion + #region TemporaryClientRegisteration - public DbSet CustomizeCheckouts { get; set; } + public DbSet ContractingPartyTemps { get; set; } + + #endregion + public DbSet CustomizeCheckouts { get; set; } public DbSet CustomizeCheckoutTemps { get; set; } public DbSet TaxLeftWorkItems { get; set; } public DbSet TaxLeftWorkCategories { get; set; } diff --git a/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs b/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs index 30f9cf17..b05d35cd 100644 --- a/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/ContractingPartyTempRepository.cs @@ -1,10 +1,12 @@ using System.Linq; +using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.Application.UID; using _0_Framework.InfraStructure; using AccountMangement.Infrastructure.EFCore.Migrations; using Company.Domain.TemporaryClientRegistrationAgg; using CompanyManagment.App.Contracts.PersonalContractingParty; +using CompanyManagment.App.Contracts.TemporaryClientRegistration; using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; @@ -12,14 +14,14 @@ namespace CompanyManagment.EFCore.Repository; public class ContractingPartyTempRepository : RepositoryBase, IContractingPartyTempRepository { private readonly CompanyContext _context; - private readonly UidService _uidService; - public ContractingPartyTempRepository(CompanyContext context, UidService uidService) : base(context) + private readonly IUidService _uidService; + public ContractingPartyTempRepository(CompanyContext context, IUidService uidService) : base(context) { _context = context; _uidService = uidService; } - public bool CheckExistOrAuthenticated(string nationalCode, string dateOfBirth) + public async Task CheckExistOrAuthenticated(string nationalCode, string dateOfBirth) { var contractingParty = _context.PersonalContractingParties.FirstOrDefault(x=>x.Nationalcode == nationalCode && x.IsLegal == "false"); if (contractingParty == null) @@ -29,7 +31,7 @@ public class ContractingPartyTempRepository : RepositoryBase new ContractingPartyTempViewModel + { + Id = x.id, + DateOfBirth = x.DateOfBirth, + IdNumberSeri = x.IdNumberSeri, + IdNumberSerial = x.IdNumberSerial, + Address = x.Address, + City = x.City, + FatherName = x.FatherName, + FName = x.FName, + LName = x.LName, + Gender = x.Gender, + NationalCode = x.NationalCode, + IdNumber = x.IdNumber, + Phone = x.Phone, + State = x.State, + + + }).FirstOrDefault(x => x.NationalCode == nationalCode); + + } } \ No newline at end of file diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index 356ac2e0..17cd81c4 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -199,8 +199,10 @@ using CompanyManagment.App.Contracts.EmployeeDocuments; using CompanyManagment.App.Contracts.EmployeeDocumentsAdminSelection; using Company.Domain.EmployeeClientTempAgg; using Company.Domain.LeftWorkTempAgg; +using Company.Domain.TemporaryClientRegistrationAgg; using CompanyManagment.App.Contracts.EmployeeClientTemp; using CompanyManagment.App.Contracts.LeftWorkTemp; +using CompanyManagment.App.Contracts.TemporaryClientRegistration; namespace PersonalContractingParty.Config; @@ -441,9 +443,15 @@ public class PersonalBootstrapper services.AddTransient(); services.AddTransient(); - #endregion + #endregion - services.AddTransient(); + #region TemporaryClientRegisteration + + services.AddTransient(); + services.AddTransient(); + + #endregion + services.AddTransient(); //=========End Of Main==================================== //---File Project------------------------------------ diff --git a/ServiceHost/Pages/Index.cshtml.cs b/ServiceHost/Pages/Index.cshtml.cs index 082cebc9..9b8cb910 100644 --- a/ServiceHost/Pages/Index.cshtml.cs +++ b/ServiceHost/Pages/Index.cshtml.cs @@ -15,6 +15,7 @@ using Company.Domain.ReportAgg; using Company.Domain.RollCallAgg; using Company.Domain.RollCallAgg.DomainService; using CompanyManagment.App.Contracts.AndroidApkVersion; +using CompanyManagment.App.Contracts.TemporaryClientRegistration; using Microsoft.EntityFrameworkCore; using IUidService = _0_Framework.Application.UID.IUidService; @@ -46,13 +47,14 @@ namespace ServiceHost.Pages private readonly ICameraAccountApplication _cameraAccountApplication; private readonly IWebHostEnvironment _webHostEnvironment; private readonly IAndroidApkVersionApplication _androidApkVersionApplication; - private readonly IUidService _uidService; - private readonly IReportRepository _reportRepository; + private readonly ITemporaryClientRegistrationApplication _clientRegistrationApplication; + + public IndexModel(ILogger logger, IAccountApplication accountApplication, IGoogleRecaptcha googleRecaptcha, ISmsService smsService, IWorker worker, IAuthHelper authHelper, ICameraAccountApplication cameraAccountApplication, IWebHostEnvironment webHostEnvironment, - IAndroidApkVersionApplication androidApkVersionApplication, IUidService uidService, IReportRepository reportRepository) + IAndroidApkVersionApplication androidApkVersionApplication, ITemporaryClientRegistrationApplication clientRegistrationApplication) { _logger = logger; _accountApplication = accountApplication; @@ -63,12 +65,27 @@ namespace ServiceHost.Pages _cameraAccountApplication = cameraAccountApplication; _webHostEnvironment = webHostEnvironment; _androidApkVersionApplication = androidApkVersionApplication; - _uidService = uidService; - _reportRepository = reportRepository; + _clientRegistrationApplication = clientRegistrationApplication; } public IActionResult OnGet() { + bool ex = false; + while (!ex) + { + Console.WriteLine("enter National code ... "); + var nationalCode = Console.ReadLine(); + Console.WriteLine("enter DateOfBirth ... "); + var dateOfBirth = Console.ReadLine(); + Console.WriteLine("enter phoneNumber ... "); + var phone = Console.ReadLine(); + var res =_clientRegistrationApplication.CreateContractingPartyTemp(nationalCode, dateOfBirth, phone).GetAwaiter().GetResult(); + Console.WriteLine("do you want to exit ... "); + var exitCheck = Console.ReadLine(); + if (exitCheck == "yes") + ex = true; + } + // _reportRepository.GetAllActiveWorkshopsNew("1403", "12"); From 99bfb472b086af929e301e15fa9ba209e52d905d Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Mon, 24 Mar 2025 19:11:47 +0330 Subject: [PATCH 43/51] fix search bug --- .../Repository/CustomizeCheckoutRepository.cs | 218 ++++++++--------- .../CustomizeCheckoutTempRepository.cs | 230 +++++++++--------- ServiceHost/appsettings.Development.json | 4 +- 3 files changed, 226 insertions(+), 226 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs index ad25bc24..37f15b47 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs @@ -256,138 +256,138 @@ namespace CompanyManagment.EFCore.Repository return _companyContext.CustomizeCheckouts.Where(x => x.WorkshopId==workshopId && ids.Contains(x.id)).AsEnumerable(); } - #endregion + #endregion - public IEnumerable Search(SearchCustomizeCheckout searchModel) - { - OperationResult op = new(); - var query = _companyContext.CustomizeCheckouts.Include(x => x.Employee) - .ThenInclude(x => x.PersonnelCodeList). - Include(x => x.Employee).ThenInclude(x => x.EmployeeBankInformationList) - .AsSplitQuery().Where(x => x.WorkshopId == searchModel.WorkshopId); - #region parameters initialize + public IEnumerable Search(SearchCustomizeCheckout searchModel) + { + OperationResult op = new(); + var query = _companyContext.CustomizeCheckouts.Include(x => x.Employee) + .ThenInclude(x => x.PersonnelCodeList). + Include(x => x.Employee).ThenInclude(x => x.EmployeeBankInformationList) + .AsSplitQuery().Where(x => x.WorkshopId == searchModel.WorkshopId); + #region parameters initialize - ////start of search is the first day of the current month by default and end of search is today - //var startSearchDate = DateTime.Now.FindFirstDayOfMonth().ToGeorgianDateTime().Date; - //var endSearchDate = DateTime.Today; + ////start of search is the first day of the current month by default and end of search is today + //var startSearchDate = DateTime.Now.FindFirstDayOfMonth().ToGeorgianDateTime().Date; + //var endSearchDate = DateTime.Today; - var pc = new PersianCalendar(); - var currentYear = pc.GetYear(DateTime.Now); - var currentMonth = pc.GetMonth(DateTime.Now); + var pc = new PersianCalendar(); + var currentYear = pc.GetYear(DateTime.Now); + var currentMonth = pc.GetMonth(DateTime.Now); - if (!string.IsNullOrWhiteSpace(searchModel.SearchStartFa) && !string.IsNullOrWhiteSpace(searchModel.SearchEndFa) && - searchModel.Year == 0 && searchModel.Month == 0) - { - var queryStartDate = searchModel.SearchStartFa.ToGeorgianDateTime().Date; - var queryEndDate = searchModel.SearchEndFa.ToGeorgianDateTime().Date; + if (!string.IsNullOrWhiteSpace(searchModel.SearchStartFa) && !string.IsNullOrWhiteSpace(searchModel.SearchEndFa) && + searchModel.Year == 0 && searchModel.Month == 0) + { + var queryStartDate = searchModel.SearchStartFa.ToGeorgianDateTime().Date; + var queryEndDate = searchModel.SearchEndFa.ToGeorgianDateTime().Date; - //if (queryEndDate > queryStartDate && queryEndDate <= DateTime.Today) - //{ - // startSearchDate = queryStartDate; - // endSearchDate = queryEndDate; - //} - //query = query.Where(x => x.ContractEnd.Date >= startSearchDate && x.ContractStart.Date <= endSearchDate); - query = query.Where(x => x.ContractEnd.Date >= queryStartDate && x.ContractStart.Date <= queryEndDate); - } + //if (queryEndDate > queryStartDate && queryEndDate <= DateTime.Today) + //{ + // startSearchDate = queryStartDate; + // endSearchDate = queryEndDate; + //} + //query = query.Where(x => x.ContractEnd.Date >= startSearchDate && x.ContractStart.Date <= endSearchDate); + query = query.Where(x => x.ContractEnd.Date >= queryStartDate && x.ContractStart.Date <= queryEndDate); + } - if (searchModel.Year > 0 && searchModel.Month > 0 && searchModel.Month < 12) - { - var queryStartDate = $"{searchModel.Year:0000}/{searchModel.Month:00}/01".ToGeorgianDateTime(); - queryStartDate.FindFirstDayOfNextMonth(out var queryEndDate); - queryEndDate = queryEndDate.Date.AddTicks(-1); + if (searchModel.Year > 0 && searchModel.Month > 0 && searchModel.Month < 13) + { + var queryStartDate = $"{searchModel.Year:0000}/{searchModel.Month:00}/01".ToGeorgianDateTime(); + queryStartDate.FindFirstDayOfNextMonth(out var queryEndDate); + queryEndDate = queryEndDate.Date.AddTicks(-1); - if (queryEndDate >= DateTime.Today) - { - queryEndDate = DateTime.Now.AddDays(-1).Date; - } + //if (queryEndDate >= DateTime.Today) + //{ + // queryEndDate = DateTime.Now.AddDays(-1).Date; + //} - else if (searchModel.Year == currentYear && searchModel.Month == currentMonth) - { - queryEndDate = DateTime.Now.AddDays(-1).Date; - } + if (searchModel.Year == currentYear && searchModel.Month == currentMonth) + { + queryEndDate = DateTime.Now.AddDays(-1).Date; + } - query = query.Where(x => x.ContractEnd <= queryEndDate && x.ContractStart >= queryStartDate); - } + query = query.Where(x => x.ContractEnd <= queryEndDate && x.ContractStart >= queryStartDate); + } - ////Month Index operations - //startSearchDate.AddMonthsFa(-1 * (searchModel.MonthIndex), out startSearchDate); - //startSearchDate.FindFirstDayOfNextMonth(out endSearchDate); - //endSearchDate = endSearchDate.AddDays(-1); + ////Month Index operations + //startSearchDate.AddMonthsFa(-1 * (searchModel.MonthIndex), out startSearchDate); + //startSearchDate.FindFirstDayOfNextMonth(out endSearchDate); + //endSearchDate = endSearchDate.AddDays(-1); - #endregion + #endregion - if (searchModel.EmployeeId > 0) - query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + if (searchModel.EmployeeId > 0) + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); - if (searchModel.BankId > 0) - query = query.Where(x => x.Employee.EmployeeBankInformationList.Any(y => y.BankId == searchModel.BankId)); + if (searchModel.BankId > 0) + query = query.Where(x => x.Employee.EmployeeBankInformationList.Any(y => y.BankId == searchModel.BankId)); - switch (searchModel.OrderBy) - { - case CustomizeCheckoutOrderByEnum.ContractStartDesc: - query = query.OrderByDescending(x => x.ContractStart.Date); - break; - case CustomizeCheckoutOrderByEnum.ContractStart: - query = query.OrderBy(x => x.ContractStart.Date); - break; - case CustomizeCheckoutOrderByEnum.ContractNoDesc: - query = query.OrderByDescending(x => x.ContractNo); - break; - case CustomizeCheckoutOrderByEnum.ContractNo: - query = query.OrderBy(x => x.ContractNo); - break; - default: - query = query.OrderByDescending(x => x.ContractStart.Date); - break; + switch (searchModel.OrderBy) + { + case CustomizeCheckoutOrderByEnum.ContractStartDesc: + query = query.OrderByDescending(x => x.ContractStart.Date); + break; + case CustomizeCheckoutOrderByEnum.ContractStart: + query = query.OrderBy(x => x.ContractStart.Date); + break; + case CustomizeCheckoutOrderByEnum.ContractNoDesc: + query = query.OrderByDescending(x => x.ContractNo); + break; + case CustomizeCheckoutOrderByEnum.ContractNo: + query = query.OrderBy(x => x.ContractNo); + break; + default: + query = query.OrderByDescending(x => x.ContractStart.Date); + break; - } - if (searchModel.Year == 0 || searchModel.Month == 0) - query = query.Skip(searchModel.PageIndex).Take(30); + } + if (searchModel.Year == 0 || searchModel.Month == 0) + query = query.Skip(searchModel.PageIndex).Take(30); - return query.Select(x => new CustomizeCheckoutViewModel() - { - Id = x.id, - ContractEndFa = x.ContractEnd.ToFarsi(), - ContractStartFa = x.ContractStart.ToFarsi(), - ContractNo = x.ContractNo, - EmployeeFName = x.Employee.FName, - EmployeeLName = x.Employee.LName, - PersonnelCode = x.Employee.PersonnelCodeList.FirstOrDefault(y => y.WorkshopId == searchModel.WorkshopId).PersonnelCode, - Month = pc.GetMonth(x.ContractStart).ToFarsiMonthByIntNumber(), - Year = pc.GetYear(x.ContractStart).ToString(), - BaseYearsPay = x.BaseYearsPay.ToMoney(), - BonusesPay = x.BonusesPay.ToMoney(), - EarlyExitDeduction = x.EarlyExitDeduction.ToMoney(), - FamilyAllowance = x.FamilyAllowance.ToMoney(), - AbsenceDeduction = x.FineAbsenceDeduction.ToMoney(), - FineDeduction = x.FineDeduction.ToMoney(), - FridayPay = x.FridayPay.ToMoney(), - InstallmentDeduction = x.InstallmentDeduction.ToMoney(), - InsuranceDeduction = x.InsuranceDeduction.ToMoney(), - LateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), - LeavePay = x.LeavePay.ToMoney(), - MarriedAllowance = x.MarriedAllowance.ToMoney(), - MonthlySalary = x.MonthlySalary.ToMoney(), - NightworkPay = x.NightWorkPay.ToMoney(), - OvertimePay = x.OverTimePay.ToMoney(), - RewardPay = x.RewardPay.ToMoney(), - SalaryAidDeduction = x.SalaryAidDeduction.ToMoney(), - ShiftPay = x.ShiftPay.ToMoney(), - SumOfWorkingDays = x.SumOfWorkingDays.ToString(), - TaxDeducation = x.TaxDeduction.ToMoney(), - TotalPayment = x.TotalPayment.ToMoney(), - TotalPaymentD = x.TotalPayment, - TotalLateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), + return query.Select(x => new CustomizeCheckoutViewModel() + { + Id = x.id, + ContractEndFa = x.ContractEnd.ToFarsi(), + ContractStartFa = x.ContractStart.ToFarsi(), + ContractNo = x.ContractNo, + EmployeeFName = x.Employee.FName, + EmployeeLName = x.Employee.LName, + PersonnelCode = x.Employee.PersonnelCodeList.FirstOrDefault(y => y.WorkshopId == searchModel.WorkshopId).PersonnelCode, + Month = pc.GetMonth(x.ContractStart).ToFarsiMonthByIntNumber(), + Year = pc.GetYear(x.ContractStart).ToString(), + BaseYearsPay = x.BaseYearsPay.ToMoney(), + BonusesPay = x.BonusesPay.ToMoney(), + EarlyExitDeduction = x.EarlyExitDeduction.ToMoney(), + FamilyAllowance = x.FamilyAllowance.ToMoney(), + AbsenceDeduction = x.FineAbsenceDeduction.ToMoney(), + FineDeduction = x.FineDeduction.ToMoney(), + FridayPay = x.FridayPay.ToMoney(), + InstallmentDeduction = x.InstallmentDeduction.ToMoney(), + InsuranceDeduction = x.InsuranceDeduction.ToMoney(), + LateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), + LeavePay = x.LeavePay.ToMoney(), + MarriedAllowance = x.MarriedAllowance.ToMoney(), + MonthlySalary = x.MonthlySalary.ToMoney(), + NightworkPay = x.NightWorkPay.ToMoney(), + OvertimePay = x.OverTimePay.ToMoney(), + RewardPay = x.RewardPay.ToMoney(), + SalaryAidDeduction = x.SalaryAidDeduction.ToMoney(), + ShiftPay = x.ShiftPay.ToMoney(), + SumOfWorkingDays = x.SumOfWorkingDays.ToString(), + TaxDeducation = x.TaxDeduction.ToMoney(), + TotalPayment = x.TotalPayment.ToMoney(), + TotalPaymentD = x.TotalPayment, + TotalLateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), - }).ToList(); + }).ToList(); - } - } + } + } } diff --git a/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs index f45548f6..79ca1503 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs @@ -65,151 +65,151 @@ namespace CompanyManagment.EFCore.Repository }).ToList(); } - #endregion + #endregion - public IEnumerable Search(SearchCustomizeCheckout searchModel) - { + public IEnumerable Search(SearchCustomizeCheckout searchModel) + { - var query = _companyContext.CustomizeCheckoutTemps.Include(x => x.Employee) - .ThenInclude(x => x.PersonnelCodeList) - .Include(x => x.Employee).ThenInclude(x => x.EmployeeBankInformationList) - .AsSplitQuery().Where(x => x.WorkshopId == searchModel.WorkshopId); - #region parameters initialize + var query = _companyContext.CustomizeCheckoutTemps.Include(x => x.Employee) + .ThenInclude(x => x.PersonnelCodeList) + .Include(x => x.Employee).ThenInclude(x => x.EmployeeBankInformationList) + .AsSplitQuery().Where(x => x.WorkshopId == searchModel.WorkshopId); + #region parameters initialize - //start of search is the first day of the current month by default and end of search is today - var startSearchDate = DateTime.Now.FindFirstDayOfMonth().ToGeorgianDateTime().Date; - var endSearchDate = DateTime.Today; + //start of search is the first day of the current month by default and end of search is today + var startSearchDate = DateTime.Now.FindFirstDayOfMonth().ToGeorgianDateTime().Date; + var endSearchDate = DateTime.Today; - var pc = new PersianCalendar(); - var currentYear = pc.GetYear(DateTime.Now); - var currentMonth = pc.GetMonth(DateTime.Now); + var pc = new PersianCalendar(); + var currentYear = pc.GetYear(DateTime.Now); + var currentMonth = pc.GetMonth(DateTime.Now); - if (!string.IsNullOrWhiteSpace(searchModel.SearchStartFa) && !string.IsNullOrWhiteSpace(searchModel.SearchEndFa) && - searchModel.Year == 0 && searchModel.Month == 0) - { - var queryStartDate = searchModel.SearchStartFa.ToGeorgianDateTime().Date; - var queryEndDate = searchModel.SearchEndFa.ToGeorgianDateTime().Date; + if (!string.IsNullOrWhiteSpace(searchModel.SearchStartFa) && !string.IsNullOrWhiteSpace(searchModel.SearchEndFa) && + searchModel.Year == 0 && searchModel.Month == 0) + { + var queryStartDate = searchModel.SearchStartFa.ToGeorgianDateTime().Date; + var queryEndDate = searchModel.SearchEndFa.ToGeorgianDateTime().Date; - if (queryEndDate > queryStartDate) - { - startSearchDate = queryStartDate; - endSearchDate = queryEndDate; - } - query = query.Where(x => x.ContractEnd.Date >= startSearchDate && x.ContractStart.Date <= endSearchDate); - } + if (queryEndDate > queryStartDate) + { + startSearchDate = queryStartDate; + endSearchDate = queryEndDate; + } + query = query.Where(x => x.ContractEnd.Date >= startSearchDate && x.ContractStart.Date <= endSearchDate); + } - if (searchModel.Year > 0 && searchModel.Month > 0 && searchModel.Month < 13) - { - var queryStartDate = $"{searchModel.Year:0000}/{searchModel.Month:00}/01".ToGeorgianDateTime(); - queryStartDate.FindFirstDayOfNextMonth(out var queryEndDate); - queryEndDate = queryEndDate.AddDays(-1); + if (searchModel.Year > 0 && searchModel.Month > 0 && searchModel.Month < 13) + { + var queryStartDate = $"{searchModel.Year:0000}/{searchModel.Month:00}/01".ToGeorgianDateTime(); + queryStartDate.FindFirstDayOfNextMonth(out var queryEndDate); + queryEndDate = queryEndDate.AddDays(-1); - //if (queryEndDate < DateTime.Today) - //{ - // startSearchDate = queryStartDate; - // endSearchDate = queryEndDate; - //} + //if (queryEndDate < DateTime.Today) + //{ + // startSearchDate = queryStartDate; + // endSearchDate = queryEndDate; + //} - if (searchModel.Year == currentYear && searchModel.Month == currentMonth) - { - queryEndDate = DateTime.Today.AddDays(-1); + if (searchModel.Year == currentYear && searchModel.Month == currentMonth) + { + queryEndDate = DateTime.Today.AddDays(-1); - startSearchDate = queryStartDate; - endSearchDate = queryEndDate; - } - else - { - startSearchDate = queryStartDate; - endSearchDate = queryEndDate; - } - query = query.Where(x => x.ContractEnd.Date <= endSearchDate && x.ContractEnd.Date >= startSearchDate); + startSearchDate = queryStartDate; + endSearchDate = queryEndDate; + } + else + { + startSearchDate = queryStartDate; + endSearchDate = queryEndDate; + } + query = query.Where(x => x.ContractEnd.Date <= endSearchDate && x.ContractEnd.Date >= startSearchDate); - } + } - ////Month Index operations - //startSearchDate.AddMonthsFa(-1 * (searchModel.MonthIndex), out startSearchDate); - //startSearchDate.FindFirstDayOfNextMonth(out endSearchDate); - //endSearchDate = endSearchDate.AddDays(-1); + ////Month Index operations + //startSearchDate.AddMonthsFa(-1 * (searchModel.MonthIndex), out startSearchDate); + //startSearchDate.FindFirstDayOfNextMonth(out endSearchDate); + //endSearchDate = endSearchDate.AddDays(-1); - #endregion + #endregion - if (searchModel.EmployeeId > 0) - query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); + if (searchModel.EmployeeId > 0) + query = query.Where(x => x.EmployeeId == searchModel.EmployeeId); - if (searchModel.BankId > 0) - query = query.Where(x => x.Employee.EmployeeBankInformationList.Any(y => y.BankId == searchModel.BankId)); + if (searchModel.BankId > 0) + query = query.Where(x => x.Employee.EmployeeBankInformationList.Any(y => y.BankId == searchModel.BankId)); - switch (searchModel.OrderBy) - { - case CustomizeCheckoutOrderByEnum.ContractStartDesc: - query = query.OrderByDescending(x => x.ContractStart.Date); - break; - case CustomizeCheckoutOrderByEnum.ContractStart: - query = query.OrderBy(x => x.ContractStart.Date); - break; - case CustomizeCheckoutOrderByEnum.ContractNoDesc: - query = query.OrderByDescending(x => x.ContractNo); - break; - case CustomizeCheckoutOrderByEnum.ContractNo: - query = query.OrderBy(x => x.ContractNo); - break; - default: - query = query.OrderByDescending(x => x.ContractStart.Date); - break; + switch (searchModel.OrderBy) + { + case CustomizeCheckoutOrderByEnum.ContractStartDesc: + query = query.OrderByDescending(x => x.ContractStart.Date); + break; + case CustomizeCheckoutOrderByEnum.ContractStart: + query = query.OrderBy(x => x.ContractStart.Date); + break; + case CustomizeCheckoutOrderByEnum.ContractNoDesc: + query = query.OrderByDescending(x => x.ContractNo); + break; + case CustomizeCheckoutOrderByEnum.ContractNo: + query = query.OrderBy(x => x.ContractNo); + break; + default: + query = query.OrderByDescending(x => x.ContractStart.Date); + break; - } + } - if (searchModel.Month == 0 || searchModel.Year == 0) - query = query.Skip(searchModel.PageIndex).Take(30); + if (searchModel.Month == 0 || searchModel.Year == 0) + query = query.Skip(searchModel.PageIndex).Take(30); - return query.Select(x => new CustomizeCheckoutViewModel() - { - Id = x.id, - ContractEndFa = x.ContractEnd.ToFarsi(), - ContractStartFa = x.ContractStart.ToFarsi(), - ContractNo = x.ContractNo, - EmployeeFName = x.EmployeeFName, - EmployeeLName = x.EmployeeLName, + return query.Select(x => new CustomizeCheckoutViewModel() + { + Id = x.id, + ContractEndFa = x.ContractEnd.ToFarsi(), + ContractStartFa = x.ContractStart.ToFarsi(), + ContractNo = x.ContractNo, + EmployeeFName = x.EmployeeFName, + EmployeeLName = x.EmployeeLName, - PersonnelCode = x.Employee.PersonnelCodeList.FirstOrDefault(y => y.WorkshopId == searchModel.WorkshopId).PersonnelCode, - Month = pc.GetMonth(x.ContractStart).ToFarsiMonthByIntNumber(), - Year = pc.GetYear(x.ContractStart).ToString(), - BaseYearsPay = x.BaseYearsPay.ToMoney(), - BonusesPay = x.BonusesPay.ToMoney(), - EarlyExitDeduction = x.EarlyExitDeduction.ToMoney(), - FamilyAllowance = x.FamilyAllowance.ToMoney(), - AbsenceDeduction = x.FineAbsenceDeduction.ToMoney(), - FineDeduction = x.FineDeduction.ToMoney(), - FridayPay = x.FridayPay.ToMoney(), - InstallmentDeduction = x.InstallmentDeduction.ToMoney(), - InsuranceDeduction = x.InsuranceDeduction.ToMoney(), - LateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), - LeavePay = x.LeavePay.ToMoney(), - MarriedAllowance = x.MarriedAllowance.ToMoney(), - MonthlySalary = x.MonthlySalary.ToMoney(), - NightworkPay = x.NightWorkPay.ToMoney(), - OvertimePay = x.OverTimePay.ToMoney(), - RewardPay = x.RewardPay.ToMoney(), - SalaryAidDeduction = x.SalaryAidDeduction.ToMoney(), - ShiftPay = x.ShiftPay.ToMoney(), - SumOfWorkingDays = x.SumOfWorkingDays.ToString(), - TaxDeducation = x.TaxDeduction.ToMoney(), - TotalPayment = x.TotalPayment.ToMoney(), - TotalPaymentD = x.TotalPayment, - TotalLateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), - }).ToList(); + PersonnelCode = x.Employee.PersonnelCodeList.FirstOrDefault(y => y.WorkshopId == searchModel.WorkshopId).PersonnelCode, + Month = pc.GetMonth(x.ContractStart).ToFarsiMonthByIntNumber(), + Year = pc.GetYear(x.ContractStart).ToString(), + BaseYearsPay = x.BaseYearsPay.ToMoney(), + BonusesPay = x.BonusesPay.ToMoney(), + EarlyExitDeduction = x.EarlyExitDeduction.ToMoney(), + FamilyAllowance = x.FamilyAllowance.ToMoney(), + AbsenceDeduction = x.FineAbsenceDeduction.ToMoney(), + FineDeduction = x.FineDeduction.ToMoney(), + FridayPay = x.FridayPay.ToMoney(), + InstallmentDeduction = x.InstallmentDeduction.ToMoney(), + InsuranceDeduction = x.InsuranceDeduction.ToMoney(), + LateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), + LeavePay = x.LeavePay.ToMoney(), + MarriedAllowance = x.MarriedAllowance.ToMoney(), + MonthlySalary = x.MonthlySalary.ToMoney(), + NightworkPay = x.NightWorkPay.ToMoney(), + OvertimePay = x.OverTimePay.ToMoney(), + RewardPay = x.RewardPay.ToMoney(), + SalaryAidDeduction = x.SalaryAidDeduction.ToMoney(), + ShiftPay = x.ShiftPay.ToMoney(), + SumOfWorkingDays = x.SumOfWorkingDays.ToString(), + TaxDeducation = x.TaxDeduction.ToMoney(), + TotalPayment = x.TotalPayment.ToMoney(), + TotalPaymentD = x.TotalPayment, + TotalLateToWorkDeduction = x.LateToWorkDeduction.ToMoney(), + }).ToList(); - } - public List PrintAll(long workshopId, IEnumerable customizeCheckoutIds) + } + public List PrintAll(long workshopId, IEnumerable customizeCheckoutIds) { //var pc = new PersianCalendar(); diff --git a/ServiceHost/appsettings.Development.json b/ServiceHost/appsettings.Development.json index 3e31959e..00c1bb97 100644 --- a/ServiceHost/appsettings.Development.json +++ b/ServiceHost/appsettings.Development.json @@ -15,10 +15,10 @@ //"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;" //local - "MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" + //"MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" //mahan Docker - //"MesbahDb": "Data Source=localhost,5069;Initial Catalog=mesbah_db;User ID=sa;Password=YourPassword123;TrustServerCertificate=True;" + "MesbahDb": "Data Source=localhost,5069;Initial Catalog=mesbah_db;User ID=sa;Password=YourPassword123;TrustServerCertificate=True;" }, "GoogleRecaptchaV3": { "SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH", From 9ff7fc7a90ec4d34b026c24d62dc5ed869fd689b Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 24 Mar 2025 19:25:52 +0330 Subject: [PATCH 44/51] resgisteration test commented --- ServiceHost/Pages/Index.cshtml.cs | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/ServiceHost/Pages/Index.cshtml.cs b/ServiceHost/Pages/Index.cshtml.cs index 9b8cb910..a8551fc1 100644 --- a/ServiceHost/Pages/Index.cshtml.cs +++ b/ServiceHost/Pages/Index.cshtml.cs @@ -70,21 +70,21 @@ namespace ServiceHost.Pages public IActionResult OnGet() { - bool ex = false; - while (!ex) - { - Console.WriteLine("enter National code ... "); - var nationalCode = Console.ReadLine(); - Console.WriteLine("enter DateOfBirth ... "); - var dateOfBirth = Console.ReadLine(); - Console.WriteLine("enter phoneNumber ... "); - var phone = Console.ReadLine(); - var res =_clientRegistrationApplication.CreateContractingPartyTemp(nationalCode, dateOfBirth, phone).GetAwaiter().GetResult(); - Console.WriteLine("do you want to exit ... "); - var exitCheck = Console.ReadLine(); - if (exitCheck == "yes") - ex = true; - } + //bool ex = false; + //while (!ex) + //{ + // Console.WriteLine("enter National code ... "); + // var nationalCode = Console.ReadLine(); + // Console.WriteLine("enter DateOfBirth ... "); + // var dateOfBirth = Console.ReadLine(); + // Console.WriteLine("enter phoneNumber ... "); + // var phone = Console.ReadLine(); + // var res =_clientRegistrationApplication.CreateContractingPartyTemp(nationalCode, dateOfBirth, phone).GetAwaiter().GetResult(); + // Console.WriteLine("do you want to exit ... "); + // var exitCheck = Console.ReadLine(); + // if (exitCheck == "yes") + // ex = true; + //} // _reportRepository.GetAllActiveWorkshopsNew("1403", "12"); From 7f14c14589661a2d99ed6693c196e5da58518861 Mon Sep 17 00:00:00 2001 From: SamSys Date: Mon, 24 Mar 2025 19:27:52 +0330 Subject: [PATCH 45/51] appsetting fix to original --- ServiceHost/appsettings.Development.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ServiceHost/appsettings.Development.json b/ServiceHost/appsettings.Development.json index 00c1bb97..3e31959e 100644 --- a/ServiceHost/appsettings.Development.json +++ b/ServiceHost/appsettings.Development.json @@ -15,10 +15,10 @@ //"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;" //local - //"MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" + "MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;" //mahan Docker - "MesbahDb": "Data Source=localhost,5069;Initial Catalog=mesbah_db;User ID=sa;Password=YourPassword123;TrustServerCertificate=True;" + //"MesbahDb": "Data Source=localhost,5069;Initial Catalog=mesbah_db;User ID=sa;Password=YourPassword123;TrustServerCertificate=True;" }, "GoogleRecaptchaV3": { "SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH", From 9bd85fc22e6e8c3d94f19755d31fe152f1408dde Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Mon, 24 Mar 2025 20:55:08 +0330 Subject: [PATCH 46/51] fix late work hout problem in customize checkout - fix front print problem --- .../Repository/CustomizeCheckoutRepository.cs | 2 +- .../Repository/CustomizeCheckoutTempRepository.cs | 2 +- .../Company/CustomizeCheckout/PrintOneCheckoutUnofficial.cshtml | 2 +- .../_Partials/PrintDetailsCheckoutUnofficialRaw.cshtml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs index 37f15b47..d9bc3627 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeCheckoutRepository.cs @@ -168,7 +168,7 @@ namespace CompanyManagment.EFCore.Repository SalaryAidDateTimeGe = s.SalaryAidDateTime }).ToList(), - LateToWorkValue = x.LateToWorkValue == TimeSpan.Zero ? "-" : $"{Convert.ToInt32(x.LateToWorkValue.TotalHours)}:{Convert.ToInt32(x.LateToWorkValue.TotalMinutes % 60):00}" + LateToWorkValue = x.LateToWorkValue == TimeSpan.Zero ? "-" : $"{(int)x.LateToWorkValue.TotalHours}:{Convert.ToInt32(x.LateToWorkValue.TotalMinutes % 60):00}" }).ToList(); List workshopsList = workshopsQuery.Select(x => new WorkshopViewModel diff --git a/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs b/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs index 79ca1503..b0c65be6 100644 --- a/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/CustomizeCheckoutTempRepository.cs @@ -311,7 +311,7 @@ namespace CompanyManagment.EFCore.Repository }).ToList(), //LateToWorkValue = x.LateToWorkValue == TimeSpan.Zero ? "-" : $"{(int)x.LateToWorkValue.TotalHours}:{x.LateToWorkValue.Minutes:D2}" - LateToWorkValue = x.LateToWorkValue == TimeSpan.Zero ? "-" : $"{Convert.ToInt32(x.LateToWorkValue.TotalHours)}:{Convert.ToInt32(x.LateToWorkValue.TotalMinutes % 60):00}" + LateToWorkValue = x.LateToWorkValue == TimeSpan.Zero ? "-" : $"{(int)x.LateToWorkValue.TotalHours}:{Convert.ToInt32(x.LateToWorkValue.TotalMinutes % 60):00}" }).ToList(); List workshopsList = workshopsQuery.Select(x => new WorkshopViewModel diff --git a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintOneCheckoutUnofficial.cshtml b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintOneCheckoutUnofficial.cshtml index ff58fa8a..c048fa65 100644 --- a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintOneCheckoutUnofficial.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintOneCheckoutUnofficial.cshtml @@ -447,7 +447,7 @@
- + diff --git a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/_Partials/PrintDetailsCheckoutUnofficialRaw.cshtml b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/_Partials/PrintDetailsCheckoutUnofficialRaw.cshtml index 6847d151..805c679f 100644 --- a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/_Partials/PrintDetailsCheckoutUnofficialRaw.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/_Partials/PrintDetailsCheckoutUnofficialRaw.cshtml @@ -419,7 +419,7 @@ - + From 1707c90072fc714b6d2b57ea418c087872cf1a7a Mon Sep 17 00:00:00 2001 From: SamSys Date: Tue, 25 Mar 2025 03:35:15 +0330 Subject: [PATCH 47/51] tomam for kabab mahdi --- .../Pages/Company/AndroidApk/Index.cshtml | 4 ++-- .../Pages/Company/AndroidApk/Index.cshtml.cs | 24 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml index 500e7638..d11b8e25 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml @@ -22,10 +22,10 @@ -@*
+ - *@ + @if (ViewData["message"] != null) diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs index 24fd76b3..8a3c5db7 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs @@ -58,7 +58,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk public IActionResult OnPostShiftDateNew() { var startRollCall = new DateTime(2025, 2, 19); - var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.EmployeeId == 41253).ToList(); + var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); var r1 = rollCalls.Take(3000).ToList(); Console.ForegroundColor = ConsoleColor.DarkRed; @@ -70,20 +70,20 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk return Page(); } - //public IActionResult OnPostShiftDateNew2() - //{ - // var startRollCall = new DateTime(2025, 2, 19); - // var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall).ToList(); + public IActionResult OnPostShiftDateNew2() + { + var startRollCall = new DateTime(2025, 2, 19); + var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); - // var r2 = rollCalls.Skip(3000).ToList(); + var r2 = rollCalls.Skip(3000).ToList(); - // Console.ForegroundColor = ConsoleColor.Yellow; - // Console.WriteLine("endStep 2 ============"); - // SetRollCall2(r2); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine("endStep 2 ============"); + SetRollCall2(r2); - // ViewData["message"] = "تومام دو"; - // return Page(); - //} + ViewData["message"] = "تومام دو"; + return Page(); + } From b621a709aaf819bceca466e17adb6648c348f843 Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Tue, 25 Mar 2025 15:36:41 +0330 Subject: [PATCH 48/51] add reward creation method - fix create left work tremp --- .../Pages/Company/AndroidApk/Index.cshtml | 4 +- .../Pages/Company/AndroidApk/Index.cshtml.cs | 392 +++++++++--------- .../ModalCreateLeftWorkEmployee.cshtml | 10 +- 3 files changed, 216 insertions(+), 190 deletions(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml index d11b8e25..59293939 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml @@ -13,10 +13,10 @@ *@ -@*
+ - *@ +
diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs index 8a3c5db7..733fcee2 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs @@ -1,5 +1,6 @@ using AccountManagement.Domain.AccountLeftWorkAgg; using AccountMangement.Infrastructure.EFCore; +using Company.Domain.RewardAgg; using Company.Domain.RollCallAgg.DomainService; using CompanyManagment.App.Contracts.AndroidApkVersion; using CompanyManagment.EFCore; @@ -10,237 +11,258 @@ using Microsoft.EntityFrameworkCore; namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk { - [Authorize] - public class IndexModel : PageModel - { - private readonly IAndroidApkVersionApplication _application; - private readonly IRollCallDomainService _rollCallDomainService; - private readonly CompanyContext _context; - private readonly AccountContext _accountContext; + [Authorize] + public class IndexModel : PageModel + { + private readonly IAndroidApkVersionApplication _application; + private readonly IRollCallDomainService _rollCallDomainService; + private readonly CompanyContext _context; + private readonly AccountContext _accountContext; - [BindProperty] - public IFormFile File { get; set; } + [BindProperty] + public IFormFile File { get; set; } - public IndexModel(IAndroidApkVersionApplication application, IRollCallDomainService rollCallDomainService, CompanyContext context, AccountContext accountContext) - { - _application = application; - _rollCallDomainService = rollCallDomainService; - _context = context; - _accountContext = accountContext; - } + public IndexModel(IAndroidApkVersionApplication application, IRollCallDomainService rollCallDomainService, CompanyContext context, AccountContext accountContext) + { + _application = application; + _rollCallDomainService = rollCallDomainService; + _context = context; + _accountContext = accountContext; + } - public void OnGet() - { - } + public void OnGet() + { + } - public async Task OnPostUpload() - { - var result = await _application.CreateAndActive(File); - ViewData["message"] = result.Message; - return Page(); - } + public async Task OnPostUpload() + { + var result = await _application.CreateAndActive(File); + ViewData["message"] = result.Message; + return Page(); + } - public IActionResult OnPostShiftDate() - { - var startRollCall = new DateTime(2025, 2, 19); - var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall); + public IActionResult OnPostShiftDate() + { + //var startRollCall = new DateTime(2025, 2, 19); + //var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall); - var endedRollCalls = rollCalls.Where(x => x.EndDate != null).ToList(); + //var endedRollCalls = rollCalls.Where(x => x.EndDate != null).ToList(); - var notEndedRollCalls = rollCalls.Where(x => x.EndDate == null).ToList(); - RefactorAllTheRollCallsOnEsfand(endedRollCalls, notEndedRollCalls); - ViewData["message"] = "تومام Refactor"; - return Page(); + //var notEndedRollCalls = rollCalls.Where(x => x.EndDate == null).ToList(); + //RefactorAllTheRollCallsOnEsfand(endedRollCalls, notEndedRollCalls); + CreateRewardForKebabMahdi().GetAwaiter().GetResult(); + ViewData["message"] = "ایجاد شد"; + return Page(); + } - } + public IActionResult OnPostShiftDateNew() + { + var startRollCall = new DateTime(2025, 2, 19); + var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); + var r1 = rollCalls.Take(3000).ToList(); - public IActionResult OnPostShiftDateNew() - { - var startRollCall = new DateTime(2025, 2, 19); - var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); - var r1 = rollCalls.Take(3000).ToList(); - - Console.ForegroundColor = ConsoleColor.DarkRed; - Console.WriteLine("endStep 1 ============"); - SetRollCall(r1); + Console.ForegroundColor = ConsoleColor.DarkRed; + Console.WriteLine("endStep 1 ============"); + SetRollCall(r1); - ViewData["message"] = "تومام یک"; - return Page(); - } + ViewData["message"] = "تومام یک"; + return Page(); + } - public IActionResult OnPostShiftDateNew2() - { - var startRollCall = new DateTime(2025, 2, 19); - var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); + public IActionResult OnPostShiftDateNew2() + { + var startRollCall = new DateTime(2025, 2, 19); + var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.WorkshopId == 170).ToList(); - var r2 = rollCalls.Skip(3000).ToList(); + var r2 = rollCalls.Skip(3000).ToList(); - Console.ForegroundColor = ConsoleColor.Yellow; - Console.WriteLine("endStep 2 ============"); - SetRollCall2(r2); + Console.ForegroundColor = ConsoleColor.Yellow; + Console.WriteLine("endStep 2 ============"); + SetRollCall2(r2); - ViewData["message"] = "تومام دو"; - return Page(); - } + ViewData["message"] = "تومام دو"; + return Page(); + } + #region Create reward for kebab mahdi + + public async System.Threading.Tasks.Task CreateRewardForKebabMahdi() + { + var esfandCustomizeCheckouts = _context.CustomizeCheckouts + .Where(x => x.WorkshopId == 170 && x.MonthInt == 12 && x.YearInt == 1403); + + var employeeSettings = await _context.CustomizeWorkshopEmployeeSettings + .Where(x => x.WorkshopId == 170 && + esfandCustomizeCheckouts.Any(c => c.EmployeeId == x.EmployeeId)).ToListAsync(); + + foreach (var employeeSetting in employeeSettings) + { + var amount = (int) employeeSetting.Salary / 30; + var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, new DateTime(2025, 3, 21), + "بابت تعطیلی روز آخر سال 1403"); + _context.Rewards.Add(reward); + } + await _context.SaveChangesAsync(); + } + + #endregion + #region AccountLeftwork - #region AccountLeftwork + private void AddToAccountLeftWork() + { + List roleIds = [3, 5, 7, 8, 23, 24]; + var accounts = _accountContext.Accounts + .Where(x => roleIds.Contains(x.RoleId)).Where(x => x.AdminAreaPermission == "true"); + var accountsIds = accounts.Select(x => x.id).ToList(); + var workshopAccount = _context.WorkshopAccounts + .Where(x => accountsIds.Contains(x.AccountId)) + .GroupBy(x => x.AccountId); - private void AddToAccountLeftWork() - { - List roleIds = [3, 5, 7, 8, 23, 24]; - var accounts = _accountContext.Accounts - .Where(x => roleIds.Contains(x.RoleId)).Where(x => x.AdminAreaPermission == "true"); - var accountsIds = accounts.Select(x => x.id).ToList(); - var workshopAccount = _context.WorkshopAccounts - .Where(x => accountsIds.Contains(x.AccountId)) - .GroupBy(x => x.AccountId); - - List oldAccountleftworkActiveNow = [300, 332, 333, 334, 18, 25, 14]; - List oldAccountleftworkDeActivedNow = [50, 49, 15]; - var continueWorking = _0_Framework.Application.StaticWorkshopAccounts.ContinuesWorkingDate; + List oldAccountleftworkActiveNow = [300, 332, 333, 334, 18, 25, 14]; + List oldAccountleftworkDeActivedNow = [50, 49, 15]; + var continueWorking = _0_Framework.Application.StaticWorkshopAccounts.ContinuesWorkingDate; - foreach (var item in workshopAccount) - { + foreach (var item in workshopAccount) + { - var oldActive = item.FirstOrDefault(x => oldAccountleftworkActiveNow.Contains(x.AccountId)); - if (oldActive != null) - { - var roleId = accounts.FirstOrDefault(x => x.id == oldActive.AccountId)!.RoleId; - var startGr = item.Key != 25 ? new DateTime(2024, 07, 22) : new DateTime(2024, 08, 22); - //if (item.Key is 380 or 381) - // startGr = new DateTime(2025, 02, 19); - if (item.Key is 14 or 18) - startGr = new DateTime(2020, 05, 21); - if (item.Key is 300) - startGr = new DateTime(2024, 05, 22); + var oldActive = item.FirstOrDefault(x => oldAccountleftworkActiveNow.Contains(x.AccountId)); + if (oldActive != null) + { + var roleId = accounts.FirstOrDefault(x => x.id == oldActive.AccountId)!.RoleId; + var startGr = item.Key != 25 ? new DateTime(2024, 07, 22) : new DateTime(2024, 08, 22); + //if (item.Key is 380 or 381) + // startGr = new DateTime(2025, 02, 19); + if (item.Key is 14 or 18) + startGr = new DateTime(2020, 05, 21); + if (item.Key is 300) + startGr = new DateTime(2024, 05, 22); - foreach (var workshop in item) - { - _accountContext.AccountLeftWorks.Add(new AccountLeftWork(startGr, continueWorking, workshop.AccountId, workshop.WorkshopId, roleId, true)); + foreach (var workshop in item) + { + _accountContext.AccountLeftWorks.Add(new AccountLeftWork(startGr, continueWorking, workshop.AccountId, workshop.WorkshopId, roleId, true)); - } - _accountContext.SaveChanges(); - - } + } + _accountContext.SaveChanges(); - var oldDeActive = item.FirstOrDefault(x => oldAccountleftworkDeActivedNow.Contains(x.AccountId)); - if (oldDeActive != null) - { - var roleId = accounts.FirstOrDefault(x => x.id == oldDeActive.AccountId)!.RoleId; - var startGr = new DateTime(2022, 03, 21); - if (item.Key == 49) - startGr = new DateTime(2023, 04, 21); - if (item.Key == 50) - startGr = new DateTime(2023, 03, 21); - foreach (var workshop in item) - { - _accountContext.Add(new AccountLeftWork(startGr, new DateTime(2024, 07, 21), workshop.AccountId, workshop.WorkshopId, roleId, false)); + } - } - _accountContext.SaveChanges(); + var oldDeActive = item.FirstOrDefault(x => oldAccountleftworkDeActivedNow.Contains(x.AccountId)); + if (oldDeActive != null) + { + var roleId = accounts.FirstOrDefault(x => x.id == oldDeActive.AccountId)!.RoleId; + var startGr = new DateTime(2022, 03, 21); + if (item.Key == 49) + startGr = new DateTime(2023, 04, 21); + if (item.Key == 50) + startGr = new DateTime(2023, 03, 21); + foreach (var workshop in item) + { + _accountContext.Add(new AccountLeftWork(startGr, new DateTime(2024, 07, 21), workshop.AccountId, workshop.WorkshopId, roleId, false)); - } + } + _accountContext.SaveChanges(); + + } - } + } - Console.WriteLine("finished"); - } + Console.WriteLine("finished"); + } - #endregion + #endregion - #region RefactorRollcall + #region RefactorRollcall - private void RefactorAllTheRollCallsOnEsfand(List endedRollCalls,List notEndedRollCalls) - { - var countEndedRollCalls = endedRollCalls.Count; - var countNotEndedRollCalls = notEndedRollCalls.Count; + private void RefactorAllTheRollCallsOnEsfand(List endedRollCalls, List notEndedRollCalls) + { + var countEndedRollCalls = endedRollCalls.Count; + var countNotEndedRollCalls = notEndedRollCalls.Count; - var step1 = 1; - foreach (var rollCall in endedRollCalls) - { - rollCall.setStartAndEnd(rollCall.StartDate.Value, rollCall.EndDate.Value, _rollCallDomainService); - Console.WriteLine($"{step1} - {countEndedRollCalls} ended Edit {rollCall.id}"); - step1 += 1; - } + var step1 = 1; + foreach (var rollCall in endedRollCalls) + { + rollCall.setStartAndEnd(rollCall.StartDate.Value, rollCall.EndDate.Value, _rollCallDomainService); + Console.WriteLine($"{step1} - {countEndedRollCalls} ended Edit {rollCall.id}"); + step1 += 1; + } - var step2 = 1; - foreach (var notEndedRollCall in notEndedRollCalls) - { - notEndedRollCall.SetStartAgain(notEndedRollCall.StartDate.Value); - Console.WriteLine($"{step2} - {countNotEndedRollCalls} not ended startAgain {notEndedRollCall.id}"); - step2 += 1; - } + var step2 = 1; + foreach (var notEndedRollCall in notEndedRollCalls) + { + notEndedRollCall.SetStartAgain(notEndedRollCall.StartDate.Value); + Console.WriteLine($"{step2} - {countNotEndedRollCalls} not ended startAgain {notEndedRollCall.id}"); + step2 += 1; + } - _context.SaveChanges(); - - - } - - private void SetRollCall(List r1) - { - - var endedRollCalls2 = r1.Where(x => x.EndDate != null).ToList(); - var countSetTDRollCall = endedRollCalls2.Count; - var stepSetTDRollCal = 1; - foreach (var endedRollCall in endedRollCalls2) - { - endedRollCall.ClearTimeDiff(); - _context.SaveChanges(); - endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); - Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); - stepSetTDRollCal += 1; - } - - //_context.SaveChanges(); - } + _context.SaveChanges(); - private void SetRollCall2(List r2) - { - - - var endedRollCalls2 = r2.Where(x => x.EndDate != null).ToList(); - var countSetTDRollCall = endedRollCalls2.Count; - var stepSetTDRollCal = 1; - foreach (var endedRollCall in endedRollCalls2) - { - endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); - Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); - stepSetTDRollCal += 1; - } + } - //_context.SaveChanges(); - } - #endregion - //public async Task OnPostShiftDate() - //{ - // var customizeWorkshopSettings = _context.CustomizeWorkshopSettings.AsSplitQuery(); + private void SetRollCall(List r1) + { + + var endedRollCalls2 = r1.Where(x => x.EndDate != null).ToList(); + var countSetTDRollCall = endedRollCalls2.Count; + var stepSetTDRollCal = 1; + foreach (var endedRollCall in endedRollCalls2) + { + endedRollCall.ClearTimeDiff(); + _context.SaveChanges(); + endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); + Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); + stepSetTDRollCal += 1; + } + + //_context.SaveChanges(); + } - // customizeWorkshopSettings = customizeWorkshopSettings.Where(x => x.WorkshopId == 499); + private void SetRollCall2(List r2) + { - // var rollCalls = - // _context.RollCalls.Where(x => customizeWorkshopSettings.Any(a => a.WorkshopId == x.WorkshopId)) - // .ToList(); - // foreach (var rollCall in rollCalls) - // { - // rollCall.SetShiftDate(_rollCallDomainService); - // Console.WriteLine(rollCall.id); - // } + var endedRollCalls2 = r2.Where(x => x.EndDate != null).ToList(); + var countSetTDRollCall = endedRollCalls2.Count; + var stepSetTDRollCal = 1; + foreach (var endedRollCall in endedRollCalls2) + { + endedRollCall.SetEndDateTime(endedRollCall.EndDate.Value, _rollCallDomainService); + Console.WriteLine($"{stepSetTDRollCal} - {countSetTDRollCall} ended Set Time Differences{endedRollCall.id}"); + stepSetTDRollCal += 1; + } - // await _context.SaveChangesAsync(); - // ViewData["message"] = "تومام"; - // return Page(); - //} - } + //_context.SaveChanges(); + } + #endregion + //public async Task OnPostShiftDate() + //{ + // var customizeWorkshopSettings = _context.CustomizeWorkshopSettings.AsSplitQuery(); + + + // customizeWorkshopSettings = customizeWorkshopSettings.Where(x => x.WorkshopId == 499); + + // var rollCalls = + // _context.RollCalls.Where(x => customizeWorkshopSettings.Any(a => a.WorkshopId == x.WorkshopId)) + // .ToList(); + + // foreach (var rollCall in rollCalls) + // { + // rollCall.SetShiftDate(_rollCallDomainService); + // Console.WriteLine(rollCall.id); + // } + + // await _context.SaveChangesAsync(); + // ViewData["message"] = "تومام"; + // return Page(); + //} + } } diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/ModalCreateLeftWorkEmployee.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/ModalCreateLeftWorkEmployee.cshtml index 1ab25a16..12b26d81 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/ModalCreateLeftWorkEmployee.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/ModalCreateLeftWorkEmployee.cshtml @@ -71,8 +71,12 @@ \ No newline at end of file From ef4c9ee201c33889de895f607aea4c90f7441053 Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Tue, 25 Mar 2025 17:01:30 +0330 Subject: [PATCH 49/51] fix rollcall mandatory repository --- .../Repository/RollCallMandatoryRepository.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs index ceee94b3..273a161d 100644 --- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs @@ -1695,8 +1695,8 @@ CreateWorkingHoursTemp command, bool holidayWorking) #endregion List rollCallResult = _context.RollCalls.Where(x => - x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart.Date && - x.StartDate.Value.Date <= contractEnd.Date && x.EndDate != null) + x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.ShiftDate.Date >= contractStart.Date && + x.ShiftDate.Date <= contractEnd.Date && x.EndDate != null) .Select(x => new RollCallViewModel() { StartDate = x.StartDate, From 67111fff6b1f2a121a23dbad0a7ee8e493ebdb0c Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Tue, 25 Mar 2025 17:22:14 +0330 Subject: [PATCH 50/51] add filter for create reward --- .../Pages/Company/AndroidApk/Index.cshtml.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs index 733fcee2..38ca5d79 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs +++ b/ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs @@ -94,11 +94,19 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk var esfandCustomizeCheckouts = _context.CustomizeCheckouts .Where(x => x.WorkshopId == 170 && x.MonthInt == 12 && x.YearInt == 1403); - var employeeSettings = await _context.CustomizeWorkshopEmployeeSettings - .Where(x => x.WorkshopId == 170 && - esfandCustomizeCheckouts.Any(c => c.EmployeeId == x.EmployeeId)).ToListAsync(); - foreach (var employeeSetting in employeeSettings) + + + var employeeSettings = _context.CustomizeWorkshopEmployeeSettings + .Where(x => x.WorkshopId == 170 && + esfandCustomizeCheckouts.Any(c => c.EmployeeId == x.EmployeeId)); + + + var absentEmployees = employeeSettings.Where(x => !_context.RollCalls + .Any(a => a.EmployeeId == x.EmployeeId && a.ShiftDate == new DateTime(2025,03,20))) + .ToList(); + + foreach (var employeeSetting in absentEmployees) { var amount = (int) employeeSetting.Salary / 30; var reward = new Reward(employeeSetting.EmployeeId, 170, amount, "", 0, new DateTime(2025, 3, 21), From e0bdde8264eb69c0aed0126e19cfb7c10ccfbe3f Mon Sep 17 00:00:00 2001 From: Mahan Ch Date: Tue, 25 Mar 2025 17:30:45 +0330 Subject: [PATCH 51/51] fix reward paginate problem --- .../AssetsClient/pages/Reward/js/Index.js | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Reward/js/Index.js b/ServiceHost/wwwroot/AssetsClient/pages/Reward/js/Index.js index e643a5d2..429e369d 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Reward/js/Index.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Reward/js/Index.js @@ -268,6 +268,9 @@ function htmlLoadSimpleData(loadRewardListData, responsePageIndex) { ${n} + +
+
${item.grantDateFa}
${item.employeeFullName}
@@ -278,16 +281,18 @@ function htmlLoadSimpleData(loadRewardListData, responsePageIndex) {
${item.title ?? "-"}
+
+
+
${item.description}
+ + ${item.description} + +
+
${item.amount}
-
-
${item.description}
-
-
-
${item.grantDateFa}
-
- +
#نام و نام خانوادگی نام خانوادگیعملیات
@i -
-

- @item.FName -

- - @item.FName - -
-
-
-

- @item.LName -

- - @item.LName - -
-
-
-

- @item.EmployeeFullName -

- - @item.EmployeeFullName - -
-
-
- - +@section Styles { + + + + + + + + } - \ No newline at end of file + +
+
+
+
+
+ +
+

لیست کل پرسنل

+
@Model.WorkshopFullName
+
+
+ +
+
+
+ + +
+
+ + +
+
+ +
+ + +
+
+ +
+
+ + +
+ +
+ +
+ +
+
+
+ + +
+ +
+

لیست پرسنل

+
+ +
+
+ + +
+
+
+
+ +
+ +
+
ردیف
+
نام پرسنل
+
شماره پرسنلی
+
وضعیت تاهل
+
شماره ملی
+
شماره شناسنامه
+
تاریخ تولد
+
نام پدر
+
تعداد فرزند
+
آخرین تاریخ شروع بکار قرارداد
+
تاریخ ترک کار قرارداد
+
آخرین تاریخ شروع بکار بیمه
+
تاریخ ترک کار بیمه
+
دارای قرارداد
+
دارای بیمه
+
+
+ +
+ +
+
+
+
+ +
+
+
+ + + + + + + + + +
@@ -141,6 +197,7 @@ var checkModalTakeImageAjax = `@Url.Page("EmployeeUploadPicture", "CheckModalTakeImage")`; var deActivePersonnelAjax = `@Url.Page("./EmployeeUploadPicture", "DeActivePersonnel")`; var activePersonnelAjax = `@Url.Page("./EmployeeUploadPicture", "ActivePersonnel")`; + - + } \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml.cs index cafd086c..7a4e2f76 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml.cs @@ -15,42 +15,56 @@ using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using _0_Framework.Infrastructure; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; using Company.Domain.EmployeeAgg; +using CompanyManagment.App.Contracts.EmployeeClientTemp; +using CompanyManagment.App.Contracts.PersonnleCode; +using CompanyManagment.App.Contracts.EmployeeDocuments; +using CompanyManagment.Application; +using CompanyManagment.App.Contracts.Job; +using Microsoft.AspNetCore.Builder; namespace ServiceHost.Areas.Client.Pages.Company.RollCall { - [Authorize] + [Authorize] [NeedsPermission(SubAccountPermissionHelper.UploadEmployeePicturePermissionCode)] public class EmployeeUploadPictureModel : PageModel - { - public string WorkshopFullName; - public RollCallEmployeeViewModel Employees; - public RollCallServiceViewModel RollCallService; - public bool HasEmployees; + { + public string WorkshopFullName; + public RollCallEmployeeViewModel Employees; + public RollCallServiceViewModel RollCallService; + public bool HasEmployees; - //[BindProperty] - public int MaxPersonValid { get; set; } - public long WorkshopId; - public int PageIndex; + //[BindProperty] + public int MaxPersonValid { get; set; } + public long WorkshopId; + public int PageIndex; - private readonly IWorkshopApplication _workshopApplication; - private readonly IEmployeeApplication _employeeApplication; - private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication; - private readonly IRollCallServiceApplication _rollCallServiceApplication; - private readonly IWebHostEnvironment _webHostEnvironment; - private readonly IPasswordHasher _passwordHasher; - private readonly IRollCallEmployeeStatusApplication _rollCallEmployeeStatusApplication; - private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication; - private readonly IHttpContextAccessor _contextAccessor; + private readonly IWorkshopApplication _workshopApplication; + private readonly IEmployeeApplication _employeeApplication; + private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication; + private readonly IRollCallServiceApplication _rollCallServiceApplication; + private readonly IWebHostEnvironment _webHostEnvironment; + private readonly IPasswordHasher _passwordHasher; + private readonly IRollCallEmployeeStatusApplication _rollCallEmployeeStatusApplication; + private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication; + private readonly IHttpContextAccessor _contextAccessor; + private readonly IPersonnelCodeApplication _personnelCodeApplication; + private readonly IEmployeeClientTempApplication _employeeClientTemp; + private readonly IEmployeeDocumentsApplication _employeeDocumentsApplication; + private readonly IJobApplication _jobApplication; - private readonly long _workshopId; + + + + private readonly long _workshopId; public EmployeeUploadPictureModel(IWorkshopApplication workshopApplication, IPasswordHasher passwordHasher, IRollCallEmployeeApplication rollCallEmployeeApplication, + IJobApplication jobApplication, IRollCallServiceApplication rollCallServiceApplication, IWebHostEnvironment webHostEnvironment, IEmployeeApplication employeeApplication, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, - IHttpContextAccessor contextAccessor) + IHttpContextAccessor contextAccessor, IPersonnelCodeApplication personnelCodeApplication, IEmployeeClientTempApplication employeeClientTempApplication, IEmployeeDocumentsApplication employeeDocumentsApplication) { _workshopApplication = workshopApplication; _passwordHasher = passwordHasher; @@ -61,625 +75,697 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall _rollCallEmployeeStatusApplication = rollCallEmployeeStatusApplication; _customizeWorkshopSettingsApplication = customizeWorkshopSettingsApplication; _contextAccessor = contextAccessor; - - var workshopHash = _contextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug"); - _workshopId = _passwordHasher.SlugDecrypt(workshopHash); - - if (_workshopId < 1) - throw new InvalidDataException("اختلال در کارگاه"); - } - - public IActionResult OnGet() - { - RollCallService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(_workshopId); - if (RollCallService == null) - return Redirect("/Client/Company/RollCall"); - - var workshop = _workshopApplication.GetWorkshopInfo(_workshopId); - - WorkshopFullName = workshop.WorkshopFullName; - - // if (string.IsNullOrEmpty(HttpContext.Session.GetString("MaxPersonValid"))) - // { - // MaxPersonValid = RollCallService.MaxPersonValid; - //HttpContext.Session.SetString("MaxPersonValid", MaxPersonValid.ToString()); - // } - // else - // { - // MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid")); - // } - - MaxPersonValid = RollCallService.MaxPersonValid; - //var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate(new RollCallEmployeeSearchModel() - //{ - - //}); - WorkshopId = _workshopId; - PageIndex = 0; - - HasEmployees = _rollCallEmployeeApplication.HasEmployees(_workshopId); - - return Page(); - } - - public IActionResult OnGetEmployeeUploadDataAjax(int pageIndex, string searchName) - { - //MaxPersonValid = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId).MaxPersonValid; - var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate( - new RollCallEmployeeSearchModel() - { - WorkshopId = _workshopId, - PageIndex = pageIndex, - Name = searchName - }); - - Employees = new RollCallEmployeeViewModel - { - PersonnelInfoViewModels = distinctEmployees - }; - return new JsonResult(new - { - isSuccedded = true, - data = Employees, - pageIndex = Employees.PersonnelInfoViewModels.Count() - }); - } - - public IActionResult OnGetLoadInfoCount() - { - //MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid")); - var activeService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(_workshopId); - MaxPersonValid = activeService.MaxPersonValid; + _personnelCodeApplication = personnelCodeApplication; + _employeeClientTemp = employeeClientTempApplication; + _employeeDocumentsApplication = employeeDocumentsApplication; + _jobApplication = jobApplication; - var employeesCount = _rollCallEmployeeApplication.GetActiveAndDeActiveRollCallEmployees(_workshopId); + + var workshopHash = _contextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug"); + _workshopId = _passwordHasher.SlugDecrypt(workshopHash); + + if (_workshopId < 1) + throw new InvalidDataException("اختلال در کارگاه"); + } + + public IActionResult OnGet() + { + RollCallService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(_workshopId); + if (RollCallService == null) + return Redirect("/Client/Company/RollCall"); + + var workshop = _workshopApplication.GetWorkshopInfo(_workshopId); + + WorkshopFullName = workshop.WorkshopFullName; + + // if (string.IsNullOrEmpty(HttpContext.Session.GetString("MaxPersonValid"))) + // { + // MaxPersonValid = RollCallService.MaxPersonValid; + //HttpContext.Session.SetString("MaxPersonValid", MaxPersonValid.ToString()); + // } + // else + // { + // MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid")); + // } + + MaxPersonValid = RollCallService.MaxPersonValid; + //var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate(new RollCallEmployeeSearchModel() + //{ + + //}); + WorkshopId = _workshopId; + PageIndex = 0; + + HasEmployees = _rollCallEmployeeApplication.HasEmployees(_workshopId); + + return Page(); + } + + public IActionResult OnGetEmployeeUploadDataAjax(int pageIndex, string searchName) + { + //MaxPersonValid = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId).MaxPersonValid; + var distinctEmployees = _rollCallEmployeeApplication.GetPersonnelRollCallListPaginate( + new RollCallEmployeeSearchModel() + { + WorkshopId = _workshopId, + PageIndex = pageIndex, + Name = searchName + }); + + Employees = new RollCallEmployeeViewModel + { + PersonnelInfoViewModels = distinctEmployees + }; + return new JsonResult(new + { + isSuccedded = true, + data = Employees, + pageIndex = Employees.PersonnelInfoViewModels.Count() + }); + } + + public IActionResult OnGetLoadInfoCount() + { + //MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid")); + var activeService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(_workshopId); + MaxPersonValid = activeService.MaxPersonValid; - return new JsonResult(new - { - isSuccedded = true, - maxPersonValid = MaxPersonValid == -1 ? "نامحدود" : MaxPersonValid.ToString(), - isTrueActiveCount = employeesCount.activeEmployees, - isFalseActiveCount = employeesCount.deActiveEmployees, - message = "موفق" - }); - } + var employeesCount = _rollCallEmployeeApplication.GetActiveAndDeActiveRollCallEmployees(_workshopId); - public IActionResult OnGetCheckModalTakeImage() - { - //MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid")); - var plan = _rollCallServiceApplication.GetActiveServiceByWorkshopId(_workshopId); + return new JsonResult(new + { + isSuccedded = true, + maxPersonValid = MaxPersonValid == -1 ? "نامحدود" : MaxPersonValid.ToString(), + isTrueActiveCount = employeesCount.activeEmployees, + isFalseActiveCount = employeesCount.deActiveEmployees, + message = "موفق" + }); + } - if (plan == null) - { - return new JsonResult(new - { - isSuccedded = false, - message = "شما سرویس خریداری شده ندارید" - }); - } + public IActionResult OnGetCheckModalTakeImage() + { + //MaxPersonValid = Convert.ToInt32(HttpContext.Session.GetString("MaxPersonValid")); - if (plan.IsActiveString != "true") - { - return new JsonResult(new - { - isSuccedded = false, - message = "سرویس شما فعال نیست" - }); - } + var plan = _rollCallServiceApplication.GetActiveServiceByWorkshopId(_workshopId); - //var maxValid = RollCallService.MaxPersonValid; + if (plan == null) + { + return new JsonResult(new + { + isSuccedded = false, + message = "شما سرویس خریداری شده ندارید" + }); + } - if (plan.MaxPersonValid == -1 || - _rollCallEmployeeApplication.activedPerson(_workshopId) < plan.MaxPersonValid) - { - return new JsonResult(new - { - isSuccedded = true, - message = "موفق" - }); - } + if (plan.IsActiveString != "true") + { + return new JsonResult(new + { + isSuccedded = false, + message = "سرویس شما فعال نیست" + }); + } - return new JsonResult(new - { - isSuccedded = false, - message = "محدودیت افزودن پرسنل" - }); - } + //var maxValid = RollCallService.MaxPersonValid; - public IActionResult OnGetWorkshopSettingList() - { - var resultData = _customizeWorkshopSettingsApplication.GetWorkshopIncludeGroupsByWorkshopId(_workshopId); + if (plan.MaxPersonValid == -1 || + _rollCallEmployeeApplication.activedPerson(_workshopId) < plan.MaxPersonValid) + { + return new JsonResult(new + { + isSuccedded = true, + message = "موفق" + }); + } + + return new JsonResult(new + { + isSuccedded = false, + message = "محدودیت افزودن پرسنل" + }); + } + + public IActionResult OnGetWorkshopSettingList() + { + var resultData = _customizeWorkshopSettingsApplication.GetWorkshopIncludeGroupsByWorkshopId(_workshopId); resultData.GroupSettings = resultData.GroupSettings.Where(x => !x.MainGroup).ToList(); - return new JsonResult(new - { - success = true, - data = resultData, - }); - } - - public IActionResult OnGetModalTakeImages(long employeeId) - { - var employeeWorkshopInfo = - _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); - - bool hasPicture = false; - if (employeeWorkshopInfo != null && !string.IsNullOrEmpty(employeeWorkshopInfo.HasUploadedImage)) - hasPicture = bool.Parse(employeeWorkshopInfo.HasUploadedImage); - - var employeeDetails = _employeeApplication.GetDetails(employeeId); - - string employeeName = string.Empty; - if (employeeDetails != null) - employeeName = employeeDetails.EmployeeFullName; - - string pic1 = ""; - string pic2 = ""; - if (hasPicture) - { - string path1 = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{_workshopId}\\{employeeId}\\{1}.jpg"; - string path2 = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{_workshopId}\\{employeeId}\\{2}.jpg"; - - if (System.IO.File.Exists(path1)) - { - byte[] fileContent1 = System.IO.File.ReadAllBytes(path1); - pic1 = Convert.ToBase64String(fileContent1); - } - - if (System.IO.File.Exists(path2)) - { - byte[] fileContent2 = System.IO.File.ReadAllBytes(path2); - pic2 = Convert.ToBase64String(fileContent2); - } - - //byte[] fileContent1 = System.IO.File.ReadAllBytes($"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}\\{1}.jpg"); - //pic1 = Convert.ToBase64String(fileContent1); - //byte[] fileContent2 = System.IO.File.ReadAllBytes($"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}\\{2}.jpg"); - //pic2 = Convert.ToBase64String(fileContent2); - } - - - var workshopGroupSettings = - _customizeWorkshopSettingsApplication.GetWorkshopIncludeGroupsByWorkshopId(_workshopId); - - var employeeSettings = - _customizeWorkshopSettingsApplication.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(_workshopId, - employeeId); - - var rollCallEmployee = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); - - - var res = new TakePictureModel() - { - HasPicture = hasPicture, - EmployeeId = employeeId, - WorkshopId = _workshopId, - Name = employeeName, - FirstNickName = rollCallEmployee?.EmployeeFName ?? employeeDetails.FName, - LastNickName = rollCallEmployee?.EmployeeLName ?? employeeDetails.LName, - Pic1 = pic1, - Pic2 = pic2, - GroupSettings = workshopGroupSettings, - EmployeeSettings = employeeSettings, - HasUploadedImage = rollCallEmployee?.HasUploadedImage == "true" - }; - - if (res.HasUploadedImage) - { - return Partial("ModalTakeImagesEdit", res); - } - else - { - return Partial("ModalTakeImages", res); - } - } - - public IActionResult OnPostTakePicture(string base64pic1, string base64pic2, long workshopId, long employeeId, EditCustomizeEmployeeSettings command) - { - - try - { - using var transactionScope = new TransactionScope(); - - var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}"; - if (!Directory.Exists(directoryPath)) - Directory.CreateDirectory(directoryPath); - - var filePath1 = Path.Combine(directoryPath) + $@"\1.jpg"; - CreateImageFromBase64(base64pic1, filePath1); - var filePath2 = Path.Combine(directoryPath) + $@"\2.jpg"; - CreateImageFromBase64(base64pic2, filePath2); - - var employee = _employeeApplication.GetDetailsForClient(employeeId, workshopId); - var rollCallEmployee = - _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, workshopId); - - var result = new OperationResult() - { - IsSuccedded = false, - Message = "هنوز عملیاتی انجام نشده است" - }; - if (rollCallEmployee == null) - { - var createCommand = new CreateRollCallEmployee() - { - EmployeeId = employeeId, - WorkshopId = workshopId, - EmployeeFullName = employee.EmployeeFullName, - HasUploadedImage = "true", - }; - result = _rollCallEmployeeApplication.Create(createCommand); - var createRollCallEmployeeStatus = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() - { - RollCallEmployeeId = result.SendId - }); - if (result.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message, - }); - } - if (createRollCallEmployeeStatus.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = createRollCallEmployeeStatus.IsSuccedded, - message = createRollCallEmployeeStatus.Message, - }); - } - } - else - { - result = _rollCallEmployeeApplication.UploadedImage(employeeId, workshopId); - if (result.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message, - }); - } - } - - - - if (command.GroupId != 0) - { - command.EmployeeIds = [employeeId]; - command.WorkshopId = workshopId; - var employeeSettingsResult = _customizeWorkshopSettingsApplication.CreateEmployeesSettingsAndSetChanges(command); - if (employeeSettingsResult.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = employeeSettingsResult.IsSuccedded, - message = employeeSettingsResult.Message, - }); - } - } - - transactionScope.Complete(); - return new JsonResult(new - { - IsSuccedded = result.IsSuccedded, - Message = result.Message, - src = Tools.ResizeImage( - Path.Combine(_webHostEnvironment.ContentRootPath, "Faces", workshopId.ToString(), - employeeId.ToString(), "1.jpg"), 150, 150), - Id = result.SendId - }); - - - } - catch (Exception e) - { - Console.WriteLine(e); - return new JsonResult(new - { - IsSuccedded = false, - Message = e.Message, - }); - } - } - - public void CreateImageFromBase64(string base64, string imagePathWithExtension) - { - var subBase64 = base64.Substring(base64.LastIndexOf(',') + 1); - byte[] bytes = Convert.FromBase64String(subBase64); - System.IO.File.WriteAllBytes(imagePathWithExtension, bytes); - } - - public IActionResult OnPostActivePersonnel(long id) - { - var hasRollCallEmployee = _rollCallEmployeeApplication.GetDetails(id); - - if (hasRollCallEmployee == null) - { - return new JsonResult(new - { - isSuccedded = false, - message = - "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد", - }); - } - else - { - if (hasRollCallEmployee.HasUploadedImage == "false") - return new JsonResult(new - { - isSuccedded = false, - message = - "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد", - }); - else - { - var employeeSettings = - _customizeWorkshopSettingsApplication.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings( - _workshopId, hasRollCallEmployee.EmployeeId); - if (employeeSettings.Id == 0) - { - return new JsonResult(new - { - isSuccedded = false, - HasEmployeeSetting = false, - message = "برای فعال سازی پرسنل می بایست حتما گروهبندی پرسنل را مشخص کنید" - - }); - } - - } - - var result = _rollCallEmployeeApplication.Active(hasRollCallEmployee.Id); - if (result.IsSuccedded) - { - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message, - }); - } - else - { - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message, - }); - } - } - - return new JsonResult(new - { - isSuccedded = false, - message = "خطایی رخ آمده است", - }); - } - - public IActionResult OnPostDeActivePersonnel(long id) - { - var result = _rollCallEmployeeApplication.DeActive(id); - if (result.IsSuccedded) - { - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message, - }); - } - - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message, - }); - } - - public IActionResult OnGetLoadFirstImage(long employeeId, long workshopId) - { - var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}"; - var imageDir = Path.Combine(directoryPath, "1.jpg"); - return PhysicalFile(imageDir, "image/jpeg"); - } - - public IActionResult OnGetLoadSecondImage(long employeeId, long workshopId) - { - var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}"; - var imageDir = Path.Combine(directoryPath, "2.jpg"); - return PhysicalFile(imageDir, "image/jpeg"); - } - - public IActionResult OnGetModalChangeName(long employeeId) - { - var command = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); - - return Partial("ModalChangeName", command); - } - - public IActionResult OnPostChangeName(long rollCallEmployeeId, string fName, string lName) - { - var result = _rollCallEmployeeApplication.ChangeEmployeeRollCallName(rollCallEmployeeId, fName, lName); - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message, - }); - } - - - public IActionResult OnPostCreateEmployeeSettingsAndChangeNameAndCreateRollCallEmployeeStatus(EditCustomizeEmployeeSettings command, string fName, string lName) - { - using var transactionScope = new TransactionScope(); - - if (command.GroupId != 0) - { - var employeeSettingsResult = _customizeWorkshopSettingsApplication.CreateEmployeeSettings(command); - if (employeeSettingsResult.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = employeeSettingsResult.IsSuccedded, - message = employeeSettingsResult.Message, - }); - } - } - var rollCallEmployee = - _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(command.EmployeeIds.First(), _workshopId); - - if (rollCallEmployee == null) - { - return new JsonResult(new - { - isSuccedded = false, - message = "لطفا بخش آپلود عکس خودرا تکمیل نمایید", - }); - } - - - - var createRollCallEmployeeStatus = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() - { - RollCallEmployeeId = rollCallEmployee.Id - }); - - if (createRollCallEmployeeStatus.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = createRollCallEmployeeStatus.IsSuccedded, - message = createRollCallEmployeeStatus.Message, - }); - } - - var changeNameResult = _rollCallEmployeeApplication.ChangeEmployeeRollCallName(rollCallEmployee.Id, fName, lName); - if (changeNameResult.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = changeNameResult.IsSuccedded, - message = changeNameResult.Message, - }); - } - - transactionScope.Complete(); - - return new JsonResult(new - { - isSuccedded = true, - message = createRollCallEmployeeStatus.Message, - }); - } - - - public IActionResult OnPostCreateEmployeeSettingsAndChangeNameAndCreateRollCallEmployeeStatusModalStatus(long employeeId) - { - var employeeWorkshopInfo = - _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); - - bool hasPicture = false; - if (employeeWorkshopInfo != null && !string.IsNullOrEmpty(employeeWorkshopInfo.HasUploadedImage)) - hasPicture = bool.Parse(employeeWorkshopInfo.HasUploadedImage); - - var employeeDetails = _employeeApplication.GetDetails(employeeId); - - string employeeName = string.Empty; - if (employeeDetails != null) - employeeName = employeeDetails.EmployeeFullName; - - - var workshopGroupSettings = - _customizeWorkshopSettingsApplication.GetWorkshopIncludeGroupsByWorkshopId(_workshopId); - - var employeeSettings = - _customizeWorkshopSettingsApplication.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(_workshopId, - employeeId); - - var rollCallEmployee = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); - - - var res = new TakePictureModel() - { - EmployeeId = employeeId, - WorkshopId = _workshopId, - Name = employeeName, - FirstNickName = rollCallEmployee?.EmployeeFName ?? employeeDetails.FName, - LastNickName = rollCallEmployee?.EmployeeLName ?? employeeDetails.LName, - - GroupSettings = workshopGroupSettings, - EmployeeSettings = employeeSettings, - HasUploadedImage = rollCallEmployee?.HasUploadedImage == "true" - }; - - - return Partial("ModalTakeImages", res); - } - - - public IActionResult OnPostCreateEmployeeSettingsAndChangeNameAndCreateRollCallEmployeeStatusModalStatusSave(EditCustomizeEmployeeSettings command, string fName, string lName) - { - using var transactionScope = new TransactionScope(); - - if (command.GroupId != 0) - { - var employeeSettingsResult = _customizeWorkshopSettingsApplication.CreateEmployeeSettings(command); - if (employeeSettingsResult.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = employeeSettingsResult.IsSuccedded, - message = employeeSettingsResult.Message, - }); - } - } - var rollCallEmployee = - _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(command.EmployeeIds.First(), _workshopId); - - if (rollCallEmployee == null) - { - return new JsonResult(new - { - isSuccedded = false, - message = "لطفا بخش آپلود عکس خودرا تکمیل نمایید", - }); - } - - - - var createRollCallEmployeeStatus = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() - { - RollCallEmployeeId = rollCallEmployee.Id - }); - - if (createRollCallEmployeeStatus.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = createRollCallEmployeeStatus.IsSuccedded, - message = createRollCallEmployeeStatus.Message, - }); - } - - var changeNameResult = _rollCallEmployeeApplication.ChangeEmployeeRollCallName(rollCallEmployee.Id, fName, lName); - if (changeNameResult.IsSuccedded == false) - { - return new JsonResult(new - { - isSuccedded = changeNameResult.IsSuccedded, - message = changeNameResult.Message, - }); - } - - transactionScope.Complete(); - - return new JsonResult(new - { - isSuccedded = true, - message = createRollCallEmployeeStatus.Message, - }); - } - - } + return new JsonResult(new + { + success = true, + data = resultData, + }); + } + + public IActionResult OnGetModalTakeImages(long employeeId) + { + var employeeWorkshopInfo = + _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); + + bool hasPicture = false; + if (employeeWorkshopInfo != null && !string.IsNullOrEmpty(employeeWorkshopInfo.HasUploadedImage)) + hasPicture = bool.Parse(employeeWorkshopInfo.HasUploadedImage); + + var employeeDetails = _employeeApplication.GetDetails(employeeId); + + string employeeName = string.Empty; + if (employeeDetails != null) + employeeName = employeeDetails.EmployeeFullName; + + string pic1 = ""; + string pic2 = ""; + if (hasPicture) + { + string path1 = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{_workshopId}\\{employeeId}\\{1}.jpg"; + string path2 = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{_workshopId}\\{employeeId}\\{2}.jpg"; + + if (System.IO.File.Exists(path1)) + { + byte[] fileContent1 = System.IO.File.ReadAllBytes(path1); + pic1 = Convert.ToBase64String(fileContent1); + } + + if (System.IO.File.Exists(path2)) + { + byte[] fileContent2 = System.IO.File.ReadAllBytes(path2); + pic2 = Convert.ToBase64String(fileContent2); + } + + //byte[] fileContent1 = System.IO.File.ReadAllBytes($"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}\\{1}.jpg"); + //pic1 = Convert.ToBase64String(fileContent1); + //byte[] fileContent2 = System.IO.File.ReadAllBytes($"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}\\{2}.jpg"); + //pic2 = Convert.ToBase64String(fileContent2); + } + + + var workshopGroupSettings = + _customizeWorkshopSettingsApplication.GetWorkshopIncludeGroupsByWorkshopId(_workshopId); + + var employeeSettings = + _customizeWorkshopSettingsApplication.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(_workshopId, + employeeId); + + var employeeClientTemp = _employeeClientTemp.GetDetails(employeeId, _workshopId); + if (employeeClientTemp != null) + { + employeeDetails.FName = employeeClientTemp.FName; + employeeDetails.LName = employeeClientTemp.LName; + + } + + var rollCallEmployee = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); + + + var res = new TakePictureModel() + { + HasPicture = hasPicture, + EmployeeId = employeeId, + WorkshopId = _workshopId, + Name = employeeName, + FirstNickName = rollCallEmployee?.EmployeeFName ?? employeeDetails.FName, + LastNickName = rollCallEmployee?.EmployeeLName ?? employeeDetails.LName, + Pic1 = pic1, + Pic2 = pic2, + GroupSettings = workshopGroupSettings, + EmployeeSettings = employeeSettings, + HasUploadedImage = rollCallEmployee?.HasUploadedImage == "true" + }; + + if (res.HasUploadedImage) + { + return Partial("ModalTakeImagesEdit", res); + } + else + { + return Partial("ModalTakeImages", res); + } + } + + public IActionResult OnPostTakePicture(string base64pic1, string base64pic2, long workshopId, long employeeId, EditCustomizeEmployeeSettings command) + { + + try + { + using var transactionScope = new TransactionScope(); + + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}"; + if (!Directory.Exists(directoryPath)) + Directory.CreateDirectory(directoryPath); + + var filePath1 = Path.Combine(directoryPath) + $@"\1.jpg"; + CreateImageFromBase64(base64pic1, filePath1); + var filePath2 = Path.Combine(directoryPath) + $@"\2.jpg"; + CreateImageFromBase64(base64pic2, filePath2); + + var employee = _employeeApplication.GetDetailsForClient(employeeId, workshopId); + var rollCallEmployee = + _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, workshopId); + + var result = new OperationResult() + { + IsSuccedded = false, + Message = "هنوز عملیاتی انجام نشده است" + }; + if (rollCallEmployee == null) + { + var createCommand = new CreateRollCallEmployee() + { + EmployeeId = employeeId, + WorkshopId = workshopId, + EmployeeFullName = employee.EmployeeFullName, + HasUploadedImage = "true", + }; + result = _rollCallEmployeeApplication.Create(createCommand); + var createRollCallEmployeeStatus = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() + { + RollCallEmployeeId = result.SendId + }); + if (result.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + if (createRollCallEmployeeStatus.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = createRollCallEmployeeStatus.IsSuccedded, + message = createRollCallEmployeeStatus.Message, + }); + } + } + else + { + if ( rollCallEmployee.Statuses == null || rollCallEmployee.Statuses?.Any(x => x.StartDateGr <= DateTime.Now.Date && x.EndDateGr >= DateTime.Now.Date)== false) + { + var createRollCallEmployeeStatus = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() + { + RollCallEmployeeId = rollCallEmployee.Id + }); + if (createRollCallEmployeeStatus.IsSuccedded ==false) + { + return new JsonResult(new + { + isSuccedded = createRollCallEmployeeStatus.IsSuccedded, + message = createRollCallEmployeeStatus.Message, + }); + } + } + + + result = _rollCallEmployeeApplication.UploadedImage(employeeId, workshopId); + if (result.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + } + + + + if (command.GroupId != 0) + { + command.EmployeeIds = [employeeId]; + command.WorkshopId = workshopId; + var employeeSettingsResult = _customizeWorkshopSettingsApplication.CreateEmployeesSettingsAndSetChanges(command); + if (employeeSettingsResult.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = employeeSettingsResult.IsSuccedded, + message = employeeSettingsResult.Message, + }); + } + } + + transactionScope.Complete(); + return new JsonResult(new + { + IsSuccedded = result.IsSuccedded, + Message = result.Message, + src = Tools.ResizeImage( + Path.Combine(_webHostEnvironment.ContentRootPath, "Faces", workshopId.ToString(), + employeeId.ToString(), "1.jpg"), 150, 150), + Id = result.SendId + }); + + + } + catch (Exception e) + { + Console.WriteLine(e); + return new JsonResult(new + { + IsSuccedded = false, + Message = e.Message, + }); + } + } + + public void CreateImageFromBase64(string base64, string imagePathWithExtension) + { + var subBase64 = base64.Substring(base64.LastIndexOf(',') + 1); + byte[] bytes = Convert.FromBase64String(subBase64); + System.IO.File.WriteAllBytes(imagePathWithExtension, bytes); + } + + public IActionResult OnPostActivePersonnel(long id) + { + var hasRollCallEmployee = _rollCallEmployeeApplication.GetDetails(id); + + if (hasRollCallEmployee == null) + { + return new JsonResult(new + { + isSuccedded = false, + message = + "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد", + }); + } + else + { + if (hasRollCallEmployee.HasUploadedImage == "false") + return new JsonResult(new + { + isSuccedded = false, + message = + "برای این پرسنل، هنوز هیچ عکسی آپلود نشده است. بعد از آپلود عکس بطور خودکار فعال خواهد شد", + }); + else + { + var employeeSettings = + _customizeWorkshopSettingsApplication.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings( + _workshopId, hasRollCallEmployee.EmployeeId); + if (employeeSettings.Id == 0) + { + return new JsonResult(new + { + isSuccedded = false, + HasEmployeeSetting = false, + message = "برای فعال سازی پرسنل می بایست حتما گروهبندی پرسنل را مشخص کنید" + + }); + } + + } + + var result = _rollCallEmployeeApplication.Active(hasRollCallEmployee.Id); + if (result.IsSuccedded) + { + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + else + { + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + } + + return new JsonResult(new + { + isSuccedded = false, + message = "خطایی رخ آمده است", + }); + } + + public IActionResult OnPostDeActivePersonnel(long id) + { + var result = _rollCallEmployeeApplication.DeActive(id); + if (result.IsSuccedded) + { + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + + public IActionResult OnGetLoadFirstImage(long employeeId, long workshopId) + { + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}"; + var imageDir = Path.Combine(directoryPath, "1.jpg"); + return PhysicalFile(imageDir, "image/jpeg"); + } + + public IActionResult OnGetLoadSecondImage(long employeeId, long workshopId) + { + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}"; + var imageDir = Path.Combine(directoryPath, "2.jpg"); + return PhysicalFile(imageDir, "image/jpeg"); + } + + public IActionResult OnGetModalChangeName(long employeeId) + { + var command = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); + + return Partial("ModalChangeName", command); + } + + public IActionResult OnPostChangeName(long rollCallEmployeeId, string fName, string lName) + { + var result = _rollCallEmployeeApplication.ChangeEmployeeRollCallName(rollCallEmployeeId, fName, lName); + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + + + public IActionResult OnPostCreateEmployeeSettingsAndChangeNameAndCreateRollCallEmployeeStatus(EditCustomizeEmployeeSettings command, string fName, string lName) + { + using var transactionScope = new TransactionScope(); + + if (command.GroupId != 0) + { + var employeeSettingsResult = _customizeWorkshopSettingsApplication.CreateEmployeeSettings(command); + if (employeeSettingsResult.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = employeeSettingsResult.IsSuccedded, + message = employeeSettingsResult.Message, + }); + } + } + var rollCallEmployee = + _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(command.EmployeeIds.First(), _workshopId); + + if (rollCallEmployee == null) + { + return new JsonResult(new + { + isSuccedded = false, + message = "لطفا بخش آپلود عکس خودرا تکمیل نمایید", + }); + } + + + + var createRollCallEmployeeStatus = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() + { + RollCallEmployeeId = rollCallEmployee.Id + }); + + if (createRollCallEmployeeStatus.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = createRollCallEmployeeStatus.IsSuccedded, + message = createRollCallEmployeeStatus.Message, + }); + } + + var changeNameResult = _rollCallEmployeeApplication.ChangeEmployeeRollCallName(rollCallEmployee.Id, fName, lName); + if (changeNameResult.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = changeNameResult.IsSuccedded, + message = changeNameResult.Message, + }); + } + + transactionScope.Complete(); + + return new JsonResult(new + { + isSuccedded = true, + message = createRollCallEmployeeStatus.Message, + }); + } + + + public IActionResult OnPostCreateEmployeeSettingsAndChangeNameAndCreateRollCallEmployeeStatusModalStatus(long employeeId) + { + var employeeWorkshopInfo = + _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); + + bool hasPicture = false; + if (employeeWorkshopInfo != null && !string.IsNullOrEmpty(employeeWorkshopInfo.HasUploadedImage)) + hasPicture = bool.Parse(employeeWorkshopInfo.HasUploadedImage); + + var employeeDetails = _employeeApplication.GetDetails(employeeId); + + string employeeName = string.Empty; + if (employeeDetails != null) + employeeName = employeeDetails.EmployeeFullName; + + + var workshopGroupSettings = + _customizeWorkshopSettingsApplication.GetWorkshopIncludeGroupsByWorkshopId(_workshopId); + + var employeeSettings = + _customizeWorkshopSettingsApplication.GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(_workshopId, + employeeId); + + var rollCallEmployee = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, _workshopId); + + + var res = new TakePictureModel() + { + EmployeeId = employeeId, + WorkshopId = _workshopId, + Name = employeeName, + FirstNickName = rollCallEmployee?.EmployeeFName ?? employeeDetails.FName, + LastNickName = rollCallEmployee?.EmployeeLName ?? employeeDetails.LName, + + GroupSettings = workshopGroupSettings, + EmployeeSettings = employeeSettings, + HasUploadedImage = rollCallEmployee?.HasUploadedImage == "true" + }; + + + return Partial("ModalTakeImages", res); + } + + + public IActionResult OnPostCreateEmployeeSettingsAndChangeNameAndCreateRollCallEmployeeStatusModalStatusSave(EditCustomizeEmployeeSettings command, string fName, string lName) + { + using var transactionScope = new TransactionScope(); + + if (command.GroupId != 0) + { + var employeeSettingsResult = _customizeWorkshopSettingsApplication.CreateEmployeeSettings(command); + if (employeeSettingsResult.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = employeeSettingsResult.IsSuccedded, + message = employeeSettingsResult.Message, + }); + } + } + var rollCallEmployee = + _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(command.EmployeeIds.First(), _workshopId); + + if (rollCallEmployee == null) + { + return new JsonResult(new + { + isSuccedded = false, + message = "لطفا بخش آپلود عکس خودرا تکمیل نمایید", + }); + } + + + + var createRollCallEmployeeStatus = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() + { + RollCallEmployeeId = rollCallEmployee.Id + }); + + if (createRollCallEmployeeStatus.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = createRollCallEmployeeStatus.IsSuccedded, + message = createRollCallEmployeeStatus.Message, + }); + } + + var changeNameResult = _rollCallEmployeeApplication.ChangeEmployeeRollCallName(rollCallEmployee.Id, fName, lName); + if (changeNameResult.IsSuccedded == false) + { + return new JsonResult(new + { + isSuccedded = changeNameResult.IsSuccedded, + message = changeNameResult.Message, + }); + } + + transactionScope.Complete(); + + return new JsonResult(new + { + isSuccedded = true, + message = createRollCallEmployeeStatus.Message, + }); + } + + public IActionResult OnGetCreateEmployee() + { + var command = new CreateEmployeeByClient(); + command.PersonnelCode = (_personnelCodeApplication.GetLastPersonnelCodeByWorkshop(_workshopId) + 1).ToString(); + return Partial("../Employees/CreateEmployeeModal", command); + } + + public IActionResult OnPostSaveSubmit(SubmitEmployeeDocuments cmd) + { + var result = _employeeDocumentsApplication.SubmitDocumentItemsByClient(cmd); + + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message, + }); + } + + public IActionResult OnPostCreateEmployee(CreateEmployeeByClient command) + { + command.WorkshopId = _workshopId; + var result = _employeeApplication.CreateEmployeeByClient(command); + return new JsonResult(new + { + success = result.IsSuccedded, + message = result.Message, + }); + } + + public async Task OnGetEmployeeDetailsWithNationalCode(string nationalCode,string birthDate) + { + var result = await _employeeApplication.ValidateCreateEmployeeClientByNationalCodeAndWorkshopId(nationalCode, birthDate, _workshopId); + return new JsonResult(result); + } + + public IActionResult OnGetJobSearch(string jobName) + { + var jobViewModels = _jobApplication.GetJobListByText(jobName); + + return new JsonResult(jobViewModels); + } + } } diff --git a/ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml b/ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml deleted file mode 100644 index ec6172d9..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml +++ /dev/null @@ -1,483 +0,0 @@ -@page -@using Version = _0_Framework.Application.Version -@model ServiceHost.Areas.Client.Pages.Company.Workshop.EmployeesModel -@{ - Layout = "Shared/_ClientLayout"; - ViewData["title"] = " - لیست کل پرسنل"; - int index = 1; -} - -@section Styles { - - - - - -} - -
-
-
-
-
- -
-

عملیات مربوط به پرسنل

-
@Model.WorkshopFullName
-
-
- -
-
-
- -
- -
-
- - -
-
-
- -
- - -
-
- -
-
- - -
- @if (@Model.HasEmployees) - { -
- -
- -
-
-
-
-

لیست پرسنل

-
-
- - -
-
-
-
- -
- -
-
ردیف
-
نام پرسنل
-
شماره پرسنلی
-
وضعیت تاهل
-
شماره ملی
-
شماره شناسنامه
-
تاریخ تولد
-
نام پدر
-
تعداد فرزند
-
آخرین تاریخ شروع بکار قرارداد
-
تاریخ ترک کار قرارداد
-
آخرین تاریخ شروع بکار بیمه
-
تاریخ ترک کار بیمه
-
دارای قرارداد
-
دارای بیمه
-
-
- - @foreach (var item in @Model.Employees.PersonnelInfoViewModels) - { -
-
-
- - @index -
@item.EmployeeId
-
-
- @{ - index++; - } -
-
-
@item.FullName
-
-
-
@item.PersonnelCode
-
-
-
- @if (string.IsNullOrWhiteSpace(@item.MaritalStatus)) - { -
-
- } - else - { - @item.MaritalStatus - } -
-
-
-
@item.NationalCode
-
-
-
@item.IdNumber
-
-
-
@item.DateOfBirthFa
-
-
-
@item.FatherName
-
-
-
@item.ChildrenList.Count()
-
-
-
- @if (string.IsNullOrWhiteSpace(@item.LastStartContractWork)) - { -
-
- } - else - { - @item.LastStartContractWork - } -
-
-
-
- @if (string.IsNullOrWhiteSpace(@item.LastLeftContractWork)) - { -
-
- } - else - { - @item.LastLeftContractWork - } -
-
-
-
- @if (string.IsNullOrWhiteSpace(@item.LastStartInsuranceWork)) - { -
-
- } - else - { - @item.LastStartInsuranceWork - } -
-
-
-
- @if (string.IsNullOrWhiteSpace(@item.LastLeftInsuranceWork)) - { -
-
- } - else - { - @item.LastLeftInsuranceWork - } -
-
-
-
- @if (@item.ContractPerson) - { - - - - - - } - else - { - - - - - - } -
-
-
-
- @if (@item.InsurancePerson) - { - - - - - - } - else - { - - - - - - } -
-
- -
-
- -
-
-
- - - - } -
-
-
- } - else - { -
-
- -
اطلاعاتی وجود ندارد.
-
-
- } -
-
-
- - - - - - - - - - - - - - -@section Script { - - -} \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml.cs deleted file mode 100644 index 12cb2940..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Workshop/Employees.cshtml.cs +++ /dev/null @@ -1,75 +0,0 @@ -using _0_Framework.Application; -using CompanyManagment.App.Contracts.Employee; -using CompanyManagment.App.Contracts.Workshop; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; -using System.Security.Claims; -using Microsoft.AspNetCore.Authorization; - -namespace ServiceHost.Areas.Client.Pages.Company.Workshop -{ - [Authorize] - public class EmployeesModel : PageModel - { - private readonly IPasswordHasher _passwordHasher; - private readonly IWorkshopApplication _workshopApplication; - private readonly IEmployeeApplication _employeeApplication; - - public PersonnelInfoViewModel Employees; - public bool HasEmployees; - public long WorkshopId; - public string WorkshopFullName; - public EmployeeSearchModel SearchModel; - - public EmployeesModel(IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, IEmployeeApplication employeeApplication) - { - _passwordHasher = passwordHasher; - _workshopApplication = workshopApplication; - _employeeApplication = employeeApplication; - } - - public void OnGet(EmployeeSearchModel searchModel) - { - var workshopSlugCliam = User.FindFirstValue("WorkshopSlug"); - var id = _passwordHasher.SlugDecrypt(workshopSlugCliam); - if (id > 0) - { - var workshop = _workshopApplication.GetWorkshopInfo(id); - WorkshopFullName = workshop.WorkshopFullName; - WorkshopId = workshop.Id; - - var personnelSearchModel = new PersonnelInfoSearchModel() - { - WorkshopId = id, - }; - - var result = _workshopApplication.GetPersonnelInfo(personnelSearchModel); - - var r = result.GroupBy(x => x.EmployeeId).Select(x => x.First()).ToList(); - - if (!string.IsNullOrWhiteSpace(searchModel.EmployeeFullName)) - r = r.Where(x => x.FullName.Contains(searchModel.EmployeeFullName)).ToList(); - - if (!string.IsNullOrWhiteSpace(searchModel.NationalCode)) - r = r.Where(x => x.NationalCode.Contains(searchModel.NationalCode)).ToList(); - - Employees = new PersonnelInfoViewModel() - { - PersonnelInfoViewModels = r.OrderBy(x => x.Black ? 1 : 0).ThenBy(x => x.PersonnelCode).ToList(), - }; - - HasEmployees = Employees.PersonnelInfoViewModels.Count > 0 ? true : false; - } - else - { - NotFound(); - } - } - - public IActionResult OnGetPrintOnePersonnelInfo(long employeeId) - { - var result = _employeeApplication.GetDetails(employeeId); - return Partial("PrintOnePersonnelInfo", result); - } - } -} diff --git a/ServiceHost/Areas/Client/Pages/Company/Workshop/Index.cshtml b/ServiceHost/Areas/Client/Pages/Company/Workshop/Index.cshtml index c853b78e..5f6c750a 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Workshop/Index.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Workshop/Index.cshtml @@ -238,20 +238,6 @@ - - diff --git a/ServiceHost/Areas/Client/Pages/Index.cshtml b/ServiceHost/Areas/Client/Pages/Index.cshtml index 57d44754..1dab6845 100644 --- a/ServiceHost/Areas/Client/Pages/Index.cshtml +++ b/ServiceHost/Areas/Client/Pages/Index.cshtml @@ -1,9 +1,12 @@ @page @using _0_Framework.Application -@using Version = _0_Framework.Application.Version @model ServiceHost.Areas.Client.Pages.IndexModel @{ -
@@ -22,22 +32,22 @@
@Model.PersonnelCode
- -
+ +
- +
کد ملی را وارد کنید
- - -
+ + +
- +
تاریخ تولد را وارد کنید @@ -46,95 +56,97 @@
-
-
-
-
- ملیت -
- -
-
+
+
+
+
+
+ ملیت +
+ +
+
-
-
- -
- - - - -
- وضیعت جنسیت را مشخص کنید -
-
-
-
+
+
+ +
+ + + + +
+ وضیعت جنسیت را مشخص کنید +
+
+
+
-
-
- -
- - - - -
- وضیعت تاهل را مشخص کنید -
-
-
-
-
-
-
- -
-
- نام پرسنل - -
-
- -
-
- نام خانوادگی پرسنل - -
-
- -
-
- تاریخ شروع بکار - -
-
+
+
+ +
+ + + + +
+ وضیعت تاهل را مشخص کنید +
+
+
+
+
+
+
-
-
- انتخاب سمت -
- -
-
-
- - -
diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml index 9f4c4617..eb419e5d 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/IdentityInformationForm.cshtml @@ -30,18 +30,17 @@
- +
کد ملی را وارد کنید
- - +
- +
تاریخ تولد را وارد کنید diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadDocument.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadDocument.cshtml index 1e9ef5de..3412d369 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadDocument.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadDocument.cshtml @@ -17,7 +17,7 @@
-
عکس پرسنل *
+
عکس پرسنل @* * *@
@@ -48,7 +48,7 @@
-
کارت ملی رو *
+
کارت ملی رو @* * *@
@@ -80,7 +80,7 @@
-
کارت ملی پشت *
+
کارت ملی پشت @* * *@
@@ -108,7 +108,7 @@
-
کارت پایان خدمت *
+
کارت پایان خدمت @* * *@
@@ -137,7 +137,7 @@
-
شناسنامه صفحه اول *
+
شناسنامه صفحه اول@* * *@
diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadImagePersonnel.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadImagePersonnel.cshtml index b3607f44..fe2fbf09 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadImagePersonnel.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/_Partials/ModalUploadImagePersonnel.cshtml @@ -116,4 +116,4 @@ var hasErrorPic1 = false; var hasErrorPic2 = false; - \ No newline at end of file + \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Index.cshtml b/ServiceHost/Areas/Client/Pages/Index.cshtml index dae56b38..5ecb9f72 100644 --- a/ServiceHost/Areas/Client/Pages/Index.cshtml +++ b/ServiceHost/Areas/Client/Pages/Index.cshtml @@ -2,11 +2,11 @@ @using _0_Framework.Application @model ServiceHost.Areas.Client.Pages.IndexModel @{ - string clientVersion = _0_Framework.Application.Version.StyleVersion; - - + string clientVersion = _0_Framework.Application.Version.StyleVersion; + + - - - - - خروجی اکسل - +
+
+ +
+
+ + لیست فیش حقوقی موقت + +
+
+
+ + - -
-
+ +
+
-
+
- -
-
- -
-
- - @if (@Model.CustomizeCheckouts.Count > 0) - { -
-
- - -
-
- - - -
-
+ +
+
+ +
+
+ +@if (@Model.CustomizeCheckouts.Count > 0) +{ +
+
+ + +
+
+ + + +
+
-
-
-
- - - - -
-
شماره پرسنلی
-
سال
-
ماه
-
شماره قرارداد
-
نام پرسنل
-
آغاز قرارداد
-
پایان قرارداد
-
روزهای کارکرد
-
تاخیر در ورود
-
غیبت
-
مبلغ قابل پرداخت
-
عملیات
-
+
+
+
+ + + + +
+
شماره پرسنلی
+
سال
+
ماه
+ @*
شماره قرارداد
*@ +
نام پرسنل
+
آغاز قرارداد
+
پایان قرارداد
+
روزهای کارکرد
+
تاخیر در ورود
+
غیبت
+
مساعده
+
مبلغ قابل پرداخت
+
عملیات
+
- @foreach (var item in @Model.CustomizeCheckouts) - { -
-
-
- ردیف -
- -
-
-
شماره پرسنلی
-
@item.PersonnelCode
-
-
-
سال
-
@item.Year
-
-
-
ماه
-
@item.Month
-
-
-
شماره قرارداد
-
@item.ContractNo
-
-
-
نام پرسنل
-
@item.EmployeeFullName
-
-
-
آغاز قرارداد
-
@item.ContractStartFa
-
-
-
پایان قرارداد
-
@item.ContractEndFa
-
-
-
روزهای کارکرد
-
@item.SumOfWorkingDays
-
-
-
تاخیر در ورود
-
@item.TotalLateToWorkDeduction
-
-
-
غیبت
-
@item.AbsenceDeduction
-
-
-
-
مبلغ قابل پرداخت
-
@(item.TotalPayment + " ریال")
-
-
-
-
- - + @foreach (var item in @Model.CustomizeCheckouts) + { +
+
+
+ ردیف +
+ +
+
+
شماره پرسنلی
+
@item.PersonnelCode
+
+
+
سال
+
@item.Year
+
+
+
ماه
+
@item.Month
+
+@*
+
شماره قرارداد
+
@item.ContractNo
+
*@ +
+
نام پرسنل
+
@item.EmployeeFullName
+
+
+
آغاز قرارداد
+
@item.ContractStartFa
+
+
+
پایان قرارداد
+
@item.ContractEndFa
+
+
+
روزهای کارکرد
+
@item.SumOfWorkingDays
+
+
+
تاخیر در ورود
+
@item.TotalLateToWorkDeduction
+
+
+
غیبت
+
@item.AbsenceDeduction
+
+
+
مساعده
+
@item.SalaryAidDeduction
+
+
+
+
مبلغ قابل پرداخت
+
@(item.TotalPayment + " ریال")
+
+
+
+
+ + - -
-
+ +
+
- -
+ +
-
-
- - @(i) -
+
+
+ + @(i) +
-
- - @item.EmployeeFullName - -
-
+
+ + @item.EmployeeFullName + +
+
-
+
-
- آغاز قرارداد - @item.ContractStartFa -
-
- پایان قرارداد - @item.ContractEndFa -
-
- - -
-
-
- +
+ آغاز قرارداد + @item.ContractStartFa +
+
+ پایان قرارداد + @item.ContractEndFa +
+
+ + +
+
+
+ -
- } -
- } - else - { -
-
-
-
- -
اطلاعاتی وجود ندارد.
-
-
-
-
- } +
+ } +
+} +else +{ +
+
+
+
+ +
اطلاعاتی وجود ندارد.
+
+
+
+
+} -
+
-
-
-
- -
+
+
+
+ +
@@ -575,32 +587,37 @@
-
-
- -
-
- تاریخ شروع - -
-
- تاریخ پایان - -
+
+
+ +
+
+ تاریخ شروع + +
+
+ تاریخ پایان + +
-
- - -
-
+
+ + +
-
+
+ +
+
+ +

جستجو بر اساس سال و ماه

@@ -700,7 +717,7 @@
- +
diff --git a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutTemporary.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutTemporary.cshtml.cs index c16290cd..20d76419 100644 --- a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutTemporary.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutTemporary.cshtml.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using System.Security.Claims; using System.Text.RegularExpressions; using _0_Framework.Infrastructure; +using CompanyManagment.App.Contracts.Bank; namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout { @@ -19,6 +20,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout private readonly IEmployeeApplication _employeeApplication; private readonly IYearlySalaryApplication _yearlySalaryApplication; private readonly ICustomizeCheckoutTempApplication _customizeCheckoutTempApplication; + private readonly IBankApplication _bankApplication; private readonly IPasswordHasher _passwordHasher; private readonly IHttpContextAccessor _httpContextAccessor; @@ -29,7 +31,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout public List YearlyList; - public CheckoutTemporaryModel(IWorkshopApplication workshopApplication, IHttpContextAccessor httpContextAccessor, IYearlySalaryApplication yearlySalaryApplication, IPasswordHasher passwordHasher, ICustomizeCheckoutTempApplication customizeCheckoutTempApplication, IEmployeeApplication employeeApplication) + public CheckoutTemporaryModel(IWorkshopApplication workshopApplication, IHttpContextAccessor httpContextAccessor, IYearlySalaryApplication yearlySalaryApplication, IPasswordHasher passwordHasher, ICustomizeCheckoutTempApplication customizeCheckoutTempApplication, IEmployeeApplication employeeApplication, IBankApplication bankApplication) { _workshopApplication = workshopApplication; _httpContextAccessor = httpContextAccessor; @@ -37,6 +39,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout _passwordHasher = passwordHasher; _customizeCheckoutTempApplication = customizeCheckoutTempApplication; _employeeApplication = employeeApplication; + _bankApplication = bankApplication; var workshopHash = _httpContextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug"); _workshopId = _passwordHasher.SlugDecrypt(workshopHash); @@ -59,14 +62,13 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout OrderBy = searchModel.OrderBy, SearchStartFa = searchModel.SearchStartFa, SearchEndFa = searchModel.SearchEndFa, + BankId = searchModel.BankId, PageIndex = CustomizeCheckouts.Count() }; YearlyList = _yearlySalaryApplication.GetYears(); } - - public IActionResult OnGetPrintAll(CustomizeCheckoutBatchPrintViewModel sendIds) { @@ -180,5 +182,19 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout }); } + public IActionResult OnGetExcelModal() + { + return Partial("ModalExcelSetting"); + } + + public IActionResult OnGetBankListAjax() + { + var resultData = _bankApplication.Search(""); + return new JsonResult(new + { + success = true, + data = resultData, + }); + } } } diff --git a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml index 44d96e14..e720deec 100644 --- a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml @@ -87,6 +87,7 @@ +
@@ -165,8 +166,8 @@
-
-
+
+
@@ -177,15 +178,21 @@ -
+ +
+ +
+
-
@@ -396,10 +404,10 @@
ماه
@item.Month
-
+@*
شماره قرارداد
@item.ContractNo
-
+
*@
نام پرسنل
@item.EmployeeFullName
@@ -426,6 +434,10 @@
غیبت
@item.AbsenceDeduction
+
+
مساعده
+
@item.SalaryAidDeduction
+
مبلغ قابل پرداخت
@@ -607,6 +619,11 @@
+ +
+ +
@@ -709,7 +726,7 @@
- +
@@ -736,6 +753,7 @@ var itemsYearList = @Html.Raw(Json.Serialize(Model.YearlyList.OrderBy(x => x))); var employeeListAjax = `@Url.Page("./CheckoutUnofficial", "EmployeeList")`; + var bankListAjax = `@Url.Page("./CheckoutUnofficial", "BankListAjax")`; var loadAllCheckoutUnofficialListAjax = `@Url.Page("./CheckoutUnofficial", "CustomizeCheckoutsList")`; var PrintOneUrl = `#showmodal=@Url.Page("/Company/CustomizeCheckout/CheckoutUnofficial", "PrintOne")`; diff --git a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml.cs index dbdc79e1..b3ecf21e 100644 --- a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/CheckoutUnofficial.cshtml.cs @@ -11,6 +11,7 @@ using System.Security.Claims; using System.Security.Cryptography; using System.Text.RegularExpressions; using _0_Framework.Infrastructure; +using CompanyManagment.App.Contracts.Bank; namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout; @@ -20,6 +21,7 @@ public class CheckoutUnofficialModel : PageModel private readonly ICustomizeCheckoutApplication _customizeCheckoutApplication; private readonly IWorkshopApplication _workshopApplication; private readonly IEmployeeApplication _employeeApplication; + private readonly IBankApplication _bankApplication; private readonly IAuthHelper _authHelper; private readonly IPasswordHasher _passwordHasher; private readonly IYearlySalaryApplication _yearlySalaryApplication; @@ -39,7 +41,7 @@ public class CheckoutUnofficialModel : PageModel public List CustomizeCheckouts { get; set; } - public CheckoutUnofficialModel(ICustomizeCheckoutApplication customizeCheckoutApplication, IAuthHelper authHelper, IPasswordHasher passwordHasher, IHttpContextAccessor httpContextAccessor, IWorkshopApplication workshopApplication, IEmployeeApplication employeeApplication, IYearlySalaryApplication yearlySalaryApplication) + public CheckoutUnofficialModel(ICustomizeCheckoutApplication customizeCheckoutApplication, IAuthHelper authHelper, IPasswordHasher passwordHasher, IHttpContextAccessor httpContextAccessor, IWorkshopApplication workshopApplication, IEmployeeApplication employeeApplication, IYearlySalaryApplication yearlySalaryApplication, IBankApplication bankApplication) { _customizeCheckoutApplication = customizeCheckoutApplication; _authHelper = authHelper; @@ -48,6 +50,7 @@ public class CheckoutUnofficialModel : PageModel _workshopApplication = workshopApplication; _employeeApplication = employeeApplication; _yearlySalaryApplication = yearlySalaryApplication; + _bankApplication = bankApplication; var workshopHash = _httpContextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug"); _workshopId = _passwordHasher.SlugDecrypt(workshopHash); @@ -73,6 +76,7 @@ public class CheckoutUnofficialModel : PageModel SearchEndFa = searchModel.SearchEndFa, EmployeeId = searchModel.EmployeeId, OrderBy = searchModel.OrderBy, + BankId = searchModel.BankId, PageIndex = CustomizeCheckouts.Count() }; @@ -413,6 +417,16 @@ public class CheckoutUnofficialModel : PageModel { return Partial("ModalExcelSetting"); } + + public IActionResult OnGetBankListAjax() + { + var resultData = _bankApplication.Search(""); + return new JsonResult(new + { + success = true, + data = resultData, + }); + } } public class GetCreateCustomizeCheckout diff --git a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutTemporary.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutTemporary.cshtml.cs index 9557961e..d701a5be 100644 --- a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutTemporary.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutTemporary.cshtml.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Security.Claims; using System.Text.RegularExpressions; -using _0_Framework.Excel.Checkout; +using CompanyManagement.Infrastructure.Excel.Checkout; using CompanyManagment.App.Contracts.EmployeeBankInformation; namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout @@ -285,8 +285,9 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout FineDeduction = x.FineDeduction, BankAccountNumber = employeeBankInformation?.BankAccountNumber, CardNumber = employeeBankInformation?.CardNumber, - ShebaNumber = employeeBankInformation?.ShebaNumber - }; + ShebaNumber = employeeBankInformation?.ShebaNumber, + BankName = employeeBankInformation?.BankName + }; }).ToList(); var excelBytes = CustomizeCheckoutExcelGenerator.GenerateCheckoutTempExcelInfo(customizeCheckoutTempExcelViewModels, []); diff --git a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutUnofficial.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutUnofficial.cshtml.cs index 8cda328a..2ff1c141 100644 --- a/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutUnofficial.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/CustomizeCheckout/PrintAllCheckoutUnofficial.cshtml.cs @@ -1,5 +1,4 @@ using _0_Framework.Application; -using _0_Framework.Excel.Checkout; using CompanyManagment.App.Contracts.CustomizeCheckout; using CompanyManagment.App.Contracts.Workshop; using CompanyManagment.App.Contracts.YearlySalary; @@ -7,6 +6,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Security.Claims; using System.Text.RegularExpressions; +using CompanyManagement.Infrastructure.Excel.Checkout; using CompanyManagment.App.Contracts.EmployeeBankInformation; namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout @@ -283,8 +283,9 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout FineDeduction = x.FineDeduction, BankAccountNumber = employeeBankInformation?.BankAccountNumber, CardNumber = employeeBankInformation?.CardNumber, - ShebaNumber = employeeBankInformation?.ShebaNumber - }; + ShebaNumber = employeeBankInformation?.ShebaNumber, + BankName = employeeBankInformation?.BankName + }; }).ToList(); var excelBytes = CustomizeCheckoutExcelGenerator.GenerateCheckoutTempExcelInfo(customizeCheckoutTempExcelViewModels, []); diff --git a/ServiceHost/Areas/Client/Pages/Company/EmployeesBankInfo/Index.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/EmployeesBankInfo/Index.cshtml.cs index 1d081da1..d4489daa 100644 --- a/ServiceHost/Areas/Client/Pages/Company/EmployeesBankInfo/Index.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/EmployeesBankInfo/Index.cshtml.cs @@ -1,5 +1,4 @@ using _0_Framework.Application; -using _0_Framework.Excel.EmployeeBankInfo; using CompanyManagment.App.Contracts.Bank; using CompanyManagment.App.Contracts.Employee; using CompanyManagment.App.Contracts.EmployeeBankInformation; @@ -8,6 +7,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Security.Claims; +using CompanyManagement.Infrastructure.Excel.EmployeeBankInfo; namespace ServiceHost.Areas.Client.Pages.Company.EmployeesBankInfo { diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/CaseHistory.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/RollCall/CaseHistory.cshtml.cs index c560bd2e..eb238115 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/CaseHistory.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/CaseHistory.cshtml.cs @@ -14,11 +14,11 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using System.Globalization; using System.Security.Claims; using System.Xml.Linq; -using _0_Framework.Excel.RollCall; using _0_Framework.Infrastructure; using Microsoft.AspNetCore.Http.HttpResults; using static System.Runtime.InteropServices.JavaScript.JSType; using Company.Domain.empolyerAgg; +using CompanyManagement.Infrastructure.Excel.RollCall; namespace ServiceHost.Areas.Client.Pages.Company.RollCall diff --git a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js index 9c31749a..e91b06aa 100644 --- a/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js +++ b/ServiceHost/wwwroot/AssetsAdminNew/WorkFlow/js/ModalEmployeeEdit.js @@ -74,7 +74,7 @@ $("#btnEditSaveEmployee").on('click', function () { } if (fatherName === "") { - validateField("#FatherName", "لطفا نام خانوادگی را مشخص کنید."); + validateField("#FatherName", "لطفا نام پدر را مشخص کنید."); return false; } @@ -86,8 +86,8 @@ $("#btnEditSaveEmployee").on('click', function () { return false; } - if (militaryService === "") { - validateField("#militaryStatus", "لطفا نام خانوادگی را مشخص کنید."); + if (militaryService === "" && gender == "مرد") { + validateField("#militaryStatus", "لطفا وضعیت نظام وظیفه را مشخص کنید."); return false; } diff --git a/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutTemporary.js b/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutTemporary.js index 66ad7a60..90d8047b 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutTemporary.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutTemporary.js @@ -14,6 +14,41 @@ }); }); + +function ajaxBanks() { + var selectBankId = $('#BankId').val(); + + $.ajax({ + url: bankListAjax, + type: 'GET', + success: function (response) { + + if (response.success) { + var banks = response.data; + var bankOptionsHtml = ''; + banks.forEach(function (bank) { + bankOptionsHtml += ``; + }); + $('#bankSelectIndex').html(bankOptionsHtml); + $('#bankSelectIndexMobile').html(bankOptionsHtml); + //$('#employeeSelectIndexMobile').html(employeeOptionsHtml); + } else { + $('.alert-msg').show(); + $('.alert-msg p').text(response.message); + setTimeout(function () { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + }, 3500); + } + }, + error: function (xhr, status, error) { + console.error(xhr.responseText); + } + }); +} + + + // *************************** عملیت مربوط اسکرول کردن مربوط به سال و ماه در دسکتاپ ******************************** var Scrollbar = window.Scrollbar; Scrollbar.init(document.querySelector('#my-scrollbar'), { @@ -24,6 +59,7 @@ const selectedAll = document.querySelectorAll(".wrapper-dropdown"); $(document).ready(function () { ajaxPersonals(); + ajaxBanks(); //$(".getPersonnel").select2({ @@ -58,6 +94,24 @@ $(document).ready(function () { } }); + + $("#bankSelectIndex").select2({ + language: "fa", + dir: "rtl" + }); + + $("#bankSelectIndexMobile").select2({ + language: "fa", + dir: "rtl", + dropdownParent: $('#searchModal'), + templateResult: function (data, container) { + if (data.element) { + $(container).addClass($(data.element).attr("class")); + } + return data.text; + } + }); + $(".form-control-date").each(function () { let element = $(this); element.on('input', function () { @@ -77,7 +131,9 @@ $(document).ready(function () { var filterMonth = $('#Month').val(); var filterStart = $('#SearchStartFa').val(); var filterEnd = $('#SearchEndFa').val(); - if (filterEmployeeId !== "0" || filterYear !== "0" || filterMonth !== "0" || filterStart !== '' || filterEnd !== '') { + var filterBank = $('#BankId').val(); + + if (filterEmployeeId !== "0" || filterYear !== "0" || filterMonth !== "0" || filterStart !== '' || filterEnd !== '' || filterBank !== "0") { $('.btn-clear-filter').removeClass('disable'); } else { $('.btn-clear-filter').addClass('disable'); @@ -221,7 +277,8 @@ $(".checkAll").change(function () { //******************** انتخاب همه ی چک باکس ها ******************** //******************** فیلتر کردن برای جستجو ******************** -$(document).on('click', '.btn-search-click ', function (event) { + +$(document).on('click', '.btn-search-click, .btn-search-click-mobile', function (event) { event.preventDefault(); // جستجو سال و ماه @@ -1309,6 +1366,10 @@ function loadMore() { var end = $('#SearchEndFa').val(); var sorting = $('#OrderBy').val(); + var bankSelectIndex = $('#bankSelectIndex').val(); + var bankSelectIndexMobile = $('#bankSelectIndexMobile').val(); + var bankId = (bankSelectIndex === "0") ? bankSelectIndex : bankSelectIndexMobile; + if (b === 0 && pageIndex > 0) { $.ajax({ @@ -1324,7 +1385,8 @@ function loadMore() { Month: month, SearchStartFa: start, SearchEndFa: end, - OrderBy: sorting + OrderBy: sorting, + BankId: bankId }, headers: { "RequestVerificationToken": antiForgeryToken }, @@ -1361,10 +1423,6 @@ function loadMore() {
ماه
${item.month}
-
-
شماره قرارداد
-
${item.contractNo}
-
نام پرسنل
${item.employeeFullName}
@@ -1389,6 +1447,10 @@ function loadMore() {
غیبت
${item.absenceDeduction}
+
+
مساعده
+
${item.salaryAidDeduction}
+
مبلغ قابل پرداخت
@@ -1764,9 +1826,6 @@ function ajaxPersonals() { }); } - - - $(document).on('click', '.RemoveBtn', function () { var id = $(this).data("delete-id"); var button = this; diff --git a/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutUnofficial.js b/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutUnofficial.js index 24b7306f..3518811f 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutUnofficial.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/CustomizeCheckout/js/CheckoutUnofficial.js @@ -2,6 +2,8 @@ let $checkAll = $("#checkAll2"); let $checkboxes = $(".foo"); + + $checkAll.on("change", function () { $checkboxes.prop("checked", this.checked); }); @@ -214,7 +216,9 @@ $(document).ready(function () { var filterMonth = $('#Month').val(); var filterStart = $('#SearchStartFa').val(); var filterEnd = $('#SearchEndFa').val(); - if (filterEmployeeId !== "0" || filterYear !== "0" || filterMonth !== "0" || filterStart !== '' || filterEnd !== '') { + var filterBank = $('#BankId').val(); + + if (filterEmployeeId !== "0" || filterYear !== "0" || filterMonth !== "0" || filterStart !== '' || filterEnd !== '' || filterBank !== "0") { $('.btn-clear-filter').removeClass('disable'); } else { $('.btn-clear-filter').addClass('disable'); @@ -1185,12 +1189,42 @@ if ($(window).width() < 768) { } } +function ajaxBanks() { + var selectBankId = $('#BankId').val(); + $.ajax({ + url: bankListAjax, + type: 'GET', + success: function (response) { + if (response.success) { + var banks = response.data; + var bankOptionsHtml = ''; + banks.forEach(function (bank) { + bankOptionsHtml += ``; + }); + $('#bankSelectIndex').html(bankOptionsHtml); + $('#bankSelectIndexMobile').html(bankOptionsHtml); + //$('#employeeSelectIndexMobile').html(employeeOptionsHtml); + } else { + $('.alert-msg').show(); + $('.alert-msg p').text(response.message); + setTimeout(function () { + $('.alert-msg').hide(); + $('.alert-msg p').text(''); + }, 3500); + } + }, + error: function (xhr, status, error) { + console.error(xhr.responseText); + } + }); +} $(document).ready(function () { ajaxPersonals(); + ajaxBanks(); if ($(window).width() < 768) { $('#search-theme-form1').remove(); @@ -1217,6 +1251,24 @@ $(document).ready(function () { } }); + + $("#bankSelectIndex").select2({ + language: "fa", + dir: "rtl" + }); + + $("#bankSelectIndexMobile").select2({ + language: "fa", + dir: "rtl", + dropdownParent: $('#searchModal'), + templateResult: function (data, container) { + if (data.element) { + $(container).addClass($(data.element).attr("class")); + } + return data.text; + } + }); + $(".form-control-date").each(function () { let element = $(this); element.on('input', function () { @@ -1311,6 +1363,9 @@ function loadMore() { var end = $('#SearchEndFa').val(); var sorting = $('#OrderBy').val(); + var bankSelectIndex = $('#bankSelectIndex').val(); + var bankSelectIndexMobile = $('#bankSelectIndexMobile').val(); + var bankId = (bankSelectIndex === "0") ? bankSelectIndex : bankSelectIndexMobile; if (b === 0 && pageIndex > 0) { @@ -1327,7 +1382,8 @@ function loadMore() { Month: month, SearchStartFa: start, SearchEndFa: end, - OrderBy: sorting + OrderBy: sorting, + BankId: bankId }, headers: { "RequestVerificationToken": antiForgeryToken }, success: function (response) { @@ -1362,10 +1418,6 @@ function loadMore() {
ماه
${item.month}
-
-
شماره قرارداد
-
${item.contractNo}
-
نام پرسنل
${item.employeeFullName}
@@ -1390,6 +1442,10 @@ function loadMore() {
غیبت
${item.absenceDeduction}
+
+
مساعده
+
${item.salaryAidDeduction}
+
مبلغ قابل پرداخت
From 9311c7bfc76a71cf792a548805f11f5b93b4bc3f Mon Sep 17 00:00:00 2001 From: MahanCh Date: Tue, 18 Mar 2025 17:03:17 +0330 Subject: [PATCH 35/51] employee document part 3 --- .../ModalUploadDocument.cshtml | 19 +++++++++++-------- .../_ModalEmployeeLeftWork/LeftWork.cshtml | 8 ++++++-- .../_ModalEmployeeNew/StartWork.cshtml | 6 +++++- .../WorkFlow/js/EmployeesDocuments.js | 4 ++-- .../WorkFlow/js/ModalEmployeeEdit.js | 4 +++- .../WorkFlow/js/ModalUploadDocument.js | 16 +++++++++++++--- .../js/_ModalEmployeeLeftWork/LeftWork.js | 1 + .../js/_ModalEmployeeNew/StartWork.js | 3 ++- 8 files changed, 43 insertions(+), 18 deletions(-) diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml index d2b6005b..889102ae 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeDocuments/ModalUploadDocument.cshtml @@ -80,7 +80,7 @@
- + @@ -134,7 +134,7 @@
- + @@ -186,7 +186,7 @@
- + @@ -238,7 +238,7 @@
- + @@ -291,7 +291,7 @@
- + @@ -344,7 +344,7 @@
- + @@ -396,7 +396,7 @@
- + @@ -448,7 +448,7 @@
- + @@ -503,6 +503,9 @@ var saveSubmitAjax = `@Url.Page("./EmployeesDocuments", "SaveSubmit")`; var deleteFileAjaxUrl = `@Url.Page("./EmployeesDocuments", "RemoveEmployeeDocumentByLabel")`; var cancelOperationUrl = `@Url.Page("./EmployeesDocuments", "CancelOperation")`; + + var loadModalEmployeeEdit = `@Url.Page("./EmployeesDocuments", "EditEmployeeModal")`; + var employeeId = Number(@Model.EmployeeId); var workshopId = Number(@Model.WorkshopId); var UploadedCount = Number(@Model.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(y => y.PropertyType == typeof(EmployeeDocumentItemViewModel)).Select(y => y.GetValue(@Model) as EmployeeDocumentItemViewModel).Count(x=>x.Status == DocumentStatus.Unsubmitted && !string.IsNullOrWhiteSpace(x.PicturePath))); diff --git a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeLeftWork/LeftWork.cshtml b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeLeftWork/LeftWork.cshtml index 0e1f2794..1a2d7105 100644 --- a/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeLeftWork/LeftWork.cshtml +++ b/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/_ModalEmployeeLeftWork/LeftWork.cshtml @@ -34,6 +34,10 @@ .dadmehr-select-search .line { width: 0; } + + .border-red { + border: 3px solid red !important; + } } @@ -168,11 +172,11 @@
+ @Model.LeftWorkTemp.LastDayStanding + @Model.LeftWorkTemp.LeftWork
1 + @Model.LeftWorkTemp.StartWork @day.ExitDifferencesMinutes1@day.EnterDifferencesMinutes1@day.EnterDifferencesMinutes2 @day.StartDate2 @day.EndDate2@day.ExitDifferencesMinutes1@day.EnterDifferencesMinutes1@day.EnterDifferencesMinutes2 @day.StartDate2 @day.EndDate2