From 89a01b594880a313e79d0e41b4b642dcd5930b1f Mon Sep 17 00:00:00 2001 From: MahanCh Date: Sat, 8 Mar 2025 21:49:34 +0330 Subject: [PATCH 01/10] 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/10] 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++; - } -
#نام و نام خانوادگی نام خانوادگیعملیات
@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 @{ -