From c3457881b039e771a41028bcc9458b80664ab7ba Mon Sep 17 00:00:00 2001 From: MahanCh Date: Wed, 23 Apr 2025 23:22:26 +0330 Subject: [PATCH 01/10] add register part --- Company.Domain/ContactUsAgg/ContactUs.cs | 26 + .../ContactUsAgg/IContactUsRepository.cs | 8 + .../IWorkshopTempRepository.cs | 2 + .../InstitutionContractTemp.cs | 2 + .../ContactUs/IContactUsApplication.cs | 18 + ...ITemporaryClientRegistrationApplication.cs | 2 +- .../ContactUsApplication.cs | 70 + .../TemporaryClientRegistrationApplication.cs | 1194 ++- CompanyManagment.EFCore/CompanyContext.cs | 3 + .../Mapping/ContactUsMapping.cs | 20 + .../PersonalContractingpartyMapping.cs | 2 +- ...20250423184716_add contact us .Designer.cs | 9450 +++++++++++++++++ .../20250423184716_add contact us .cs | 42 + .../Migrations/CompanyContextModelSnapshot.cs | 44 + .../Repository/ContactUsRepository.cs | 14 + .../Repository/PlanPercentageRepository.cs | 33 +- .../Repository/WorkshopTempRepository.cs | 6 + .../PersonalBootstrapper.cs | 5 + .../Pages/Company/Employees/ChangeCode.cshtml | 601 -- .../Pages/Company/Employees/Create.cshtml | 1204 --- .../Pages/Company/Employees/Edit.cshtml | 1027 -- .../Company/Employees/EditPaidLeave.cshtml | 247 - .../Pages/Company/Employees/EditSick.cshtml | 366 - .../Company/Employees/EmployeePayment.cshtml | 730 -- .../Employees/EmployeePayment.cshtml.cs | 85 - .../Pages/Company/Employees/LeftWork.cshtml | 1727 --- .../Employees/LeftWorkInsurance.cshtml | 1536 --- .../Pages/Company/Employees/PaidLeave.cshtml | 501 - .../Company/Employees/PaidLeaveList.cshtml | 92 - .../Pages/Company/Employees/SickLeave.cshtml | 473 - .../Company/Employees/SickLeaveList.cshtml | 97 - .../Pages/Company/Employees/alert.cshtml | 138 - ServiceHost/Pages/Index.cshtml | 1045 +- ServiceHost/Pages/Index.cshtml.cs | 538 +- ServiceHost/Pages/Register/Index.cshtml | 339 + ServiceHost/Pages/Register/Index.cshtml.cs | 131 + .../Pages/Register/_Partials/_Step1.cshtml | 74 + .../Pages/Register/_Partials/_Step2.cshtml | 121 + .../Pages/Register/_Partials/_Step3.cshtml | 34 + .../Pages/Register/_Partials/_Step4.cshtml | 101 + .../Pages/Register/_Partials/_Step5.cshtml | 106 + ServiceHost/Pages/Shared/_Footer.cshtml | 71 + ServiceHost/Pages/Shared/_Header.cshtml | 383 + ServiceHost/Pages/Shared/_Layout.cshtml | 77 +- ServiceHost/Pages/Shared/_LayoutHome.cshtml | 54 + .../Pages/Shared/_validationAlert.cshtml | 45 + ServiceHost/Pages/about-us/Index.cshtml | 45 + ServiceHost/Pages/about-us/Index.cshtml.cs | 12 + ServiceHost/Pages/contact-us/Index.cshtml | 512 + ServiceHost/Pages/contact-us/Index.cshtml.cs | 30 + ServiceHost/Pages/login/Index.cshtml | 695 ++ ServiceHost/Pages/login/Index.cshtml.cs | 390 + ServiceHost/Pages/rule/Index.cshtml | 267 + ServiceHost/Pages/rule/Index.cshtml.cs | 12 + ServiceHost/ServiceHost.csproj | 13 - .../wwwroot/AssetsClient/js/darkmode.js | 6 +- .../AssetsClient/js/services/ajax-service.js | 4 +- .../AssetsClient/pages/Register/css/Index.css | 351 + .../pages/Register/css/_Partials/_Step3.css | 334 + .../pages/Register/css/_Partials/_Step4.css | 264 + .../pages/Register/css/_Partials/_Step5.css | 96 + .../AssetsClient/pages/Register/js/Index.js | 142 + .../pages/Register/js/_Partials/_Step1.js | 139 + .../pages/Register/js/_Partials/_Step2.js | 82 + .../pages/Register/js/_Partials/_Step3.js | 692 ++ .../pages/Register/js/_Partials/_Step4.js | 149 + .../pages/Register/js/_Partials/_Step5.js | 154 + .../wwwroot/AssetsMain/css/fontiran.css | 96 + ServiceHost/wwwroot/AssetsMain/css/main.css | 13 + ServiceHost/wwwroot/AssetsMain/css/styles.css | 1 + .../wwwroot/AssetsMain/images/enamad_icon.png | Bin 0 -> 3335 bytes .../wwwroot/AssetsMain/images/enamed-park.png | Bin 0 -> 5103 bytes .../wwwroot/AssetsMain/images/footer-logo.png | Bin 0 -> 3278 bytes .../AssetsMain/images/hero-bg-real.jpg | Bin 0 -> 374781 bytes .../wwwroot/AssetsMain/images/hero-bg.png | Bin 0 -> 1192566 bytes .../wwwroot/AssetsMain/images/hero.png | Bin 0 -> 247512 bytes .../wwwroot/AssetsMain/images/logo.svg | 24 + .../wwwroot/AssetsMain/images/mobile.png | Bin 0 -> 21895 bytes .../AssetsMain/images/rectangle-4729.png | Bin 0 -> 322889 bytes .../AssetsMain/images/rectangle-4730.png | Bin 0 -> 311883 bytes .../wwwroot/AssetsMain/images/web-goz.png | Bin 0 -> 66082 bytes 81 files changed, 16680 insertions(+), 10727 deletions(-) create mode 100644 Company.Domain/ContactUsAgg/ContactUs.cs create mode 100644 Company.Domain/ContactUsAgg/IContactUsRepository.cs create mode 100644 CompanyManagment.App.Contracts/ContactUs/IContactUsApplication.cs create mode 100644 CompanyManagment.Application/ContactUsApplication.cs create mode 100644 CompanyManagment.EFCore/Mapping/ContactUsMapping.cs create mode 100644 CompanyManagment.EFCore/Migrations/20250423184716_add contact us .Designer.cs create mode 100644 CompanyManagment.EFCore/Migrations/20250423184716_add contact us .cs create mode 100644 CompanyManagment.EFCore/Repository/ContactUsRepository.cs delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/ChangeCode.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/Create.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/Edit.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/EditPaidLeave.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/EditSick.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml.cs delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/LeftWork.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/LeftWorkInsurance.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeave.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeaveList.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/SickLeave.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/SickLeaveList.cshtml delete mode 100644 ServiceHost/Areas/Client/Pages/Company/Employees/alert.cshtml create mode 100644 ServiceHost/Pages/Register/Index.cshtml create mode 100644 ServiceHost/Pages/Register/Index.cshtml.cs create mode 100644 ServiceHost/Pages/Register/_Partials/_Step1.cshtml create mode 100644 ServiceHost/Pages/Register/_Partials/_Step2.cshtml create mode 100644 ServiceHost/Pages/Register/_Partials/_Step3.cshtml create mode 100644 ServiceHost/Pages/Register/_Partials/_Step4.cshtml create mode 100644 ServiceHost/Pages/Register/_Partials/_Step5.cshtml create mode 100644 ServiceHost/Pages/Shared/_Footer.cshtml create mode 100644 ServiceHost/Pages/Shared/_Header.cshtml create mode 100644 ServiceHost/Pages/Shared/_LayoutHome.cshtml create mode 100644 ServiceHost/Pages/Shared/_validationAlert.cshtml create mode 100644 ServiceHost/Pages/about-us/Index.cshtml create mode 100644 ServiceHost/Pages/about-us/Index.cshtml.cs create mode 100644 ServiceHost/Pages/contact-us/Index.cshtml create mode 100644 ServiceHost/Pages/contact-us/Index.cshtml.cs create mode 100644 ServiceHost/Pages/login/Index.cshtml create mode 100644 ServiceHost/Pages/login/Index.cshtml.cs create mode 100644 ServiceHost/Pages/rule/Index.cshtml create mode 100644 ServiceHost/Pages/rule/Index.cshtml.cs create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/js/Index.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step2.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js create mode 100644 ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step5.js create mode 100644 ServiceHost/wwwroot/AssetsMain/css/fontiran.css create mode 100644 ServiceHost/wwwroot/AssetsMain/css/main.css create mode 100644 ServiceHost/wwwroot/AssetsMain/css/styles.css create mode 100644 ServiceHost/wwwroot/AssetsMain/images/enamad_icon.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/enamed-park.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/footer-logo.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/hero-bg-real.jpg create mode 100644 ServiceHost/wwwroot/AssetsMain/images/hero-bg.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/hero.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/logo.svg create mode 100644 ServiceHost/wwwroot/AssetsMain/images/mobile.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/rectangle-4729.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/rectangle-4730.png create mode 100644 ServiceHost/wwwroot/AssetsMain/images/web-goz.png diff --git a/Company.Domain/ContactUsAgg/ContactUs.cs b/Company.Domain/ContactUsAgg/ContactUs.cs new file mode 100644 index 00000000..43f9825f --- /dev/null +++ b/Company.Domain/ContactUsAgg/ContactUs.cs @@ -0,0 +1,26 @@ +using _0_Framework.Domain; + +namespace Company.Domain.ContactUsAgg; + +public class ContactUs:EntityBase +{ + public ContactUs(string firstName, string lastName, string email, string phoneNumber, string title, string message) + { + FirstName = firstName.Trim(); + LastName = lastName.Trim(); + Email = email; + PhoneNumber = phoneNumber; + Title = title; + Message = message; + FullName = FirstName + " " + LastName; + } + + public string FirstName { get; private set; } + public string LastName { get; private set; } + public string Email { get; private set; } + public string PhoneNumber { get; private set; } + public string Title { get; private set; } + public string Message { get; private set; } + public string FullName { get; private set; } + +} \ No newline at end of file diff --git a/Company.Domain/ContactUsAgg/IContactUsRepository.cs b/Company.Domain/ContactUsAgg/IContactUsRepository.cs new file mode 100644 index 00000000..8dbe78bd --- /dev/null +++ b/Company.Domain/ContactUsAgg/IContactUsRepository.cs @@ -0,0 +1,8 @@ +using _0_Framework.Domain; + +namespace Company.Domain.ContactUsAgg; + +public interface IContactUsRepository : IRepository +{ + +} \ No newline at end of file diff --git a/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs b/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs index 5ba19824..f9b99c56 100644 --- a/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs +++ b/Company.Domain/TemporaryClientRegistrationAgg/IWorkshopTempRepository.cs @@ -14,5 +14,7 @@ public interface IWorkshopTempRepository : IRepository /// Task> GetWorkshopTemp(long contractingPartyTemp); + System.Threading.Tasks.Task RemoveWorkshopTemps(List workshopTempIds); + } \ No newline at end of file diff --git a/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs b/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs index 62974a44..e0905e71 100644 --- a/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs +++ b/Company.Domain/TemporaryClientRegistrationAgg/InstitutionContractTemp.cs @@ -34,12 +34,14 @@ public class InstitutionContractTemp : EntityBase /// بصورت یکجا /// - /// بصئورت ماهیانه + /// OneTime /// public string PaymentModel { get; private set; } /// /// مدت قرارداد /// چند ماهه؟ + /// "12" /// public string PeriodModel { get; private set; } diff --git a/CompanyManagment.App.Contracts/ContactUs/IContactUsApplication.cs b/CompanyManagment.App.Contracts/ContactUs/IContactUsApplication.cs new file mode 100644 index 00000000..a286955d --- /dev/null +++ b/CompanyManagment.App.Contracts/ContactUs/IContactUsApplication.cs @@ -0,0 +1,18 @@ +using _0_Framework.Application; + +namespace CompanyManagment.App.Contracts.ContactUs; + +public interface IContactUsApplication +{ + OperationResult Create(CreateContactUs command); +} + +public class CreateContactUs +{ + public string FirstName { get; set; } + public string LastName { get; set; } + public string Email { get; set; } + public string PhoneNumber { get; set; } + public string Title { get; set; } + public string Message { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs index 17ed2570..ea15028c 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs @@ -38,7 +38,7 @@ public interface ITemporaryClientRegistrationApplication /// /// /// - Task CreateOrUpdateWorkshopTemp(List command); + Task CreateOrUpdateWorkshopTemp(List command, long contractingPartyTempId); /// /// دریافت جمع کل خدمات برای یک کارگاه diff --git a/CompanyManagment.Application/ContactUsApplication.cs b/CompanyManagment.Application/ContactUsApplication.cs new file mode 100644 index 00000000..d1912132 --- /dev/null +++ b/CompanyManagment.Application/ContactUsApplication.cs @@ -0,0 +1,70 @@ +using System.Text.RegularExpressions; +using _0_Framework.Application; +using Company.Domain.ContactUsAgg; +using CompanyManagment.App.Contracts.ContactUs; + +namespace CompanyManagment.Application; + +public class ContactUsApplication : IContactUsApplication +{ + private readonly IContactUsRepository _contactUsRepository; + + public ContactUsApplication(IContactUsRepository contactUsRepository) + { + _contactUsRepository = contactUsRepository; + } + + public OperationResult Create(CreateContactUs command) + { + var op = new OperationResult(); + if (string.IsNullOrWhiteSpace(command.FirstName)) + { + return op.Failed("لطفا نام خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.LastName)) + { + return op.Failed("لطفا نام خانوادگی خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.Email)) + { + return op.Failed("لطفا ایمیل خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.PhoneNumber)) + { + return op.Failed("لطفا شماره تماس خود را وارد کنید"); + } + + if (!Regex.IsMatch(command.PhoneNumber, @"^(\+98|0)?9\d{9}$")) + { + return op.Failed("شماره تماس وارد شده نامعتبر است"); + } + + if (!Regex.IsMatch(command.Email, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$")) + { + return op.Failed("ایمیل وارد شده نامعتبر است"); + } + + if (string.IsNullOrWhiteSpace(command.Title)) + { + return op.Failed("لطفا عنوان پیغام خود را وارد کنید"); + } + + if (string.IsNullOrWhiteSpace(command.Message)) + { + return op.Failed("لطفا پیغام خود را وارد کنید"); + } + + var entity = new ContactUs(command.FirstName, command.LastName, command.Email, command.PhoneNumber, + command.Title, command.Message); + + _contactUsRepository.Create(entity); + + _contactUsRepository.SaveChanges(); + + return op.Succcedded(); + + } +} \ No newline at end of file diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index 941e283f..c7bdbc8a 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -18,604 +18,622 @@ namespace CompanyManagment.Application; public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrationApplication { - private readonly IContractingPartyTempRepository _contractingPartyTempRepository; - private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository; - private readonly IUidService _uidService; - private readonly IWorkshopTempRepository _workshopTempRepository; - private readonly IPlanPercentageRepository _planPercentageRepository; - private readonly IWorkshopServicesTempRepository _workshopServicesTempRepository; - private readonly IInstitutionContractTempRepository _institutionContractTempRepository; - private readonly ISmsService _smsService; - - public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IUidService uidService, IWorkshopTempRepository workshopTempRepository, IPlanPercentageRepository planPercentageRepository, IWorkshopServicesTempRepository workshopServicesTempRepository, IInstitutionContractTempRepository institutionContractTempRepository, ISmsService smsService) - { - _contractingPartyTempRepository = contractingPartyTempRepository; - _personalContractingPartyRepository = personalContractingPartyRepository; - _uidService = uidService; - _workshopTempRepository = workshopTempRepository; - _planPercentageRepository = planPercentageRepository; - _workshopServicesTempRepository = workshopServicesTempRepository; - _institutionContractTempRepository = institutionContractTempRepository; - _smsService = smsService; - } - - /// - /// احراز هویت - /// - /// - /// - /// - /// - public async Task> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile) - { - var op = new OperationResult(); - - #region Validations - - if (string.IsNullOrWhiteSpace(nationalCode) || string.IsNullOrWhiteSpace(dateOfBirth) || - string.IsNullOrWhiteSpace(mobile)) - return op.Failed("هیچ یک از فیلد ها نمیتواند خالی باشد"); - - - if (nationalCode.NationalCodeValid() != "valid") - return op.Failed("کد ملی نا معتبر است"); - - if (!dateOfBirth.IsPersianDateValid()) - return op.Failed("تاریخ تولد نا معتبر است"); - - if (!mobile.IsMobileValid()) - return op.Failed("شماره همراه نا معتبر است"); - - - - #endregion - - - var getExistContractingParty = await _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth); - - //اگر طرف حساب قبلا در دیتابیس وجود داشت - if (getExistContractingParty) - { - return op.Failed("طرف حساب با این مشخصات در سیستم وجود دارد"); - } - //اگر طرف حساب وجود نداشت - else - { - //دریافت اطلاعات طرف حساب موقت که قبلا ایجاد شده - var getExistTemp = _contractingPartyTempRepository.GetByNationalCode(nationalCode); - - var dateOfBirthGr = dateOfBirth.ToGeorgianDateTime(); - - - //اگر طرف حساب موقت قبلا ایجاد شده دیتای آن را برمیگرداند - if (getExistTemp != null) - { - var institutionContractTemp = await - _institutionContractTempRepository.GetInstitutionContractTemp(0, getExistTemp.Id); - - if (institutionContractTemp != null) - { - - if (institutionContractTemp.RegistrationStatus == "Completed") - return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); - } - - if (getExistTemp.DateOfBirth != dateOfBirthGr) - return op.Failed("تاریخ تولد مطابقت ندارد"); - if (getExistTemp.Phone != mobile) - return op.Failed("شما قبلا با شماره همراه دیگری ثبت نام نموده اید"); - return op.Succcedded(getExistTemp); - - } - //چک کردن مطابقت شماره همراه و کد ملی - var isMachMobilAndNationalCode = await _uidService.IsMachPhoneWithNationalCode(nationalCode, mobile); - if (isMachMobilAndNationalCode == null) - return op.Failed("خطا در سرویس احراز هویت"); - if (!isMachMobilAndNationalCode.IsMatched) - return op.Failed("شماره همراه وارد شده با کد ملی مطابقت ندارد"); - - //دریافت اطلاعات احراز هویت - var apiRespons = await _uidService.GetPersonalInfo(nationalCode, dateOfBirth); - - if (apiRespons == null) - return op.Failed("خطا در سرویس احراز هویت"); - if (apiRespons.ResponseContext.Status.Code != 0) - return op.Failed($"{apiRespons.ResponseContext.Status.Message}"); - - var idNumber = apiRespons.IdentificationInformation.ShenasnamehNumber == "0" - ? apiRespons.IdentificationInformation.NationalId - : apiRespons.IdentificationInformation.ShenasnamehNumber; - - //ایجاد طرف حساب موقت - var createTemp = new ContractingPartyTemp(apiRespons.BasicInformation.FirstName, - apiRespons.BasicInformation.LastName, nationalCode, idNumber, mobile, - apiRespons.BasicInformation.FatherName, "", "", "", - apiRespons.IdentificationInformation.ShenasnameSeri, - apiRespons.IdentificationInformation.ShenasnameSerial, apiRespons.BasicInformation.GenderEnum, - dateOfBirthGr); - await _contractingPartyTempRepository.CreateAsync(createTemp); - await _contractingPartyTempRepository.SaveChangesAsync(); - - var result = new ContractingPartyTempViewModel(); - result.Id = createTemp.id; - result.FName = createTemp.FName; - result.LName = createTemp.LName; - result.DateOfBirthFa = dateOfBirth; - result.IdNumber = idNumber; - - return op.Succcedded(result); - } - - - - } - - /// - /// تکمیل اطلاعات - /// - /// - /// - /// - /// - /// - - public async Task UpdateAddress(long id, string state, string city, string address) - { - var op = new OperationResult(); - var contractingPartyTemp = _contractingPartyTempRepository.Get(id); - - if (string.IsNullOrWhiteSpace(state) || string.IsNullOrWhiteSpace(city) || string.IsNullOrWhiteSpace(address)) - return op.Failed("اطلاعات ادرس را تکمیل کنید"); - - contractingPartyTemp.UpdateAddress(state, city, address); - await _contractingPartyTempRepository.SaveChangesAsync(); - - return op.Succcedded(); - } - - /// - /// دریافت کارگاه های ذخیره شده - /// - /// - /// - public Task> GetWorkshopTemp(long contractingPartyTempId) - { - return _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); - } - - /// - /// ایجاد یا ویرایش کارگاه و سرویس های آن - /// - /// - /// - public async Task CreateOrUpdateWorkshopTemp(List command) - { - var op = new OperationResult(); - var updateWorkshopList = command.Where(x => x.Id > 0).ToList(); - var createNewWorkshopList = command.Where(x => x.Id == 0).ToList(); - - if (updateWorkshopList.Count == 0 && createNewWorkshopList.Count == 0) - return op.Failed("هیچ مجموعه ای ایجاد نشده است"); - - #region Update - if (updateWorkshopList.Count > 0) - { - - foreach (var workshop in updateWorkshopList) - { - - if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) - return op.Failed("نام مجموعه نمی تواند خالی باشد"); - if (workshop.CountPerson == 0) - op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); - if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && - workshop.RollCall == false && workshop.Insurance == false) - op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); - var existWorkshops = _workshopTempRepository.Get(workshop.Id); - if (existWorkshops != null) - { - if (workshop.ContractAndCheckout) - workshop.ContractAndCheckoutInPerson = true; - if (workshop.Insurance) - workshop.InsuranceInPerson = true; - - //دریافت مبالغ سرویس ها - var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); - if (plan.OnlineAndInPersonSumAmountDouble > 0) - { - //ویرایش مشخصات کارگاه - existWorkshops.Edit(workshop.WorkshopName, workshop.CountPerson, plan.OnlineAndInPersonSumAmountDouble); - await _workshopTempRepository.SaveChangesAsync(); - - //حذف سرویس های قبلی - _workshopServicesTempRepository.RemoveServices(workshop.Id); - - //سرویس قرداد - if (workshop.ContractAndCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, workshop.Id)); - //سرویس خدمات حضوری قرارداد - if (workshop.ContractAndCheckoutInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, workshop.Id)); - - //سرویس بیمه - if (workshop.Insurance) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("Insurance", workshop.CountPerson, workshop.Id)); - //سرویس خدمات حضوری بیمه - if (workshop.InsuranceInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, workshop.Id)); - - //سرویس حضورغیاب - if (workshop.RollCall) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("RollCall", workshop.CountPerson, workshop.Id)); - //سرویس فیش غیر رسمی - if (workshop.CustomizeCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, workshop.Id)); - } - - } - - } - - } - #endregion - - #region Create - - if (createNewWorkshopList.Count > 0) - { - foreach (var workshop in createNewWorkshopList) - { - - if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) - return op.Failed("نام مجموعه نمی تواند خالی باشد"); - if (workshop.CountPerson == 0) - op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); - if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && - workshop.RollCall == false && workshop.Insurance == false) - op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); - - if (workshop.ContractAndCheckout) - workshop.ContractAndCheckoutInPerson = true; - if (workshop.Insurance) - workshop.InsuranceInPerson = true; - - //دریافت مبالغ سرویس ها - var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); - if (plan.OnlineAndInPersonSumAmountDouble > 0) - { - - - var createNewWorkshopTemp = new WorkshopTemp(workshop.WorkshopName, workshop.CountPerson, - workshop.ContractingPartyTempId, plan.OnlineAndInPersonSumAmountDouble); - await _workshopTempRepository.CreateAsync(createNewWorkshopTemp); - await _workshopTempRepository.SaveChangesAsync(); - - - - //سرویس قرداد - if (workshop.ContractAndCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); - //سرویس خدمات حضوری قرارداد - if (workshop.ContractAndCheckoutInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); - - //سرویس بیمه - if (workshop.Insurance) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("Insurance", workshop.CountPerson, createNewWorkshopTemp.id)); - //سرویس خدمات حضوری بیمه - if (workshop.InsuranceInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); - - //سرویس حضورغیاب - if (workshop.RollCall) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("RollCall", workshop.CountPerson, createNewWorkshopTemp.id)); - //سرویس فیش غیر رسمی - if (workshop.CustomizeCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); - } - - } - } - - #endregion - - - return op.Succcedded(); - } - - /// - /// دریافت جمع کل خدمات برای یک کارگاه - /// - /// - /// - public InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel workshop) - { - return _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); - } - - - /// - /// بررسی و پرداخت - /// اطلاعات کامل مبالغ - /// - /// - /// - public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime") - { - //دریافت کارگاه ها - var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); - - double totalPayment1MonthDouble = 0; - - //بدست آوردن جمع کل برای یک ماه - foreach (var workshop in workshops) - { - totalPayment1MonthDouble += workshop.WorkshopServicesAmount; - } - - if (totalPayment1MonthDouble == 0) - return new ReviewAndPaymentViewModel(); - - var result = new ReviewAndPaymentViewModel(); - - int months = 0; - months = periodModel switch - { - "1" => 1, - "3" => 3, - "6" => 6, - "12" => 12, - _ => 12, - }; - //رند کردن مبالغ کارگاه ها - var roundAmount = (int)(totalPayment1MonthDouble / 1000000) * 1000000; - //بدست آوردن جمع کل مبالغ کارگاه بر اساس مدت قراداد - result.SumOfWorkshopsPaymentDouble = roundAmount * months; - result.SumOfWorkshopsPaymentPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); - - - result.PeriodModel = periodModel; - result.PaymentModel = paymentModel; - - - var tenPercent = result.SumOfWorkshopsPaymentDouble * 10 / 100; - //مالیات - result.ValueAddedTaxDouble = tenPercent; - result.ValueAddedTaxSt = tenPercent.ToMoney(); - if (paymentModel == "OneTime")//تخفیف 10 درصدی درصورت پرداخت یکجا - { - - double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; - - - //مبلغ بدون مالیات و با تخفیف - result.WithoutTaxPaymentDouble = discountOneTimePeyment; - result.WithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); - - //مبلغ با مالیات - result.TotalPaymentDouble = discountOneTimePeyment + tenPercent; - result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); - } - else - { - //مبلغ بدون مالیات - result.WithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; - result.WithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); - - // مبلغ با مالیات - result.TotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; - result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); - } - - result.ContractingPartTempId = contractingPartyTempId; - - return result; - - } - - /// - /// ایجاد یا ویرایش قرارداد موقت - /// - /// - /// - public async Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax) - { - - var op = new OperationResult(); - var institutionContractTemp = await - _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); - - if (institutionContractTemp == null) - { - var periodModelInt = Convert.ToInt32(periodModel); - var contractstart = DateTime.Now; - var contractEnd = DateTime.Now.AddMonths(periodModelInt); - var create = new InstitutionContractTemp(contractingPartyTempId,paymentModel,periodModel,totalPayment,contractstart,contractEnd,"official", valueAddedTax,"", "BeforeSendVerifyCode", 0,null,null); - _institutionContractTempRepository.Create(create); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(); - } - else - { - if (institutionContractTemp.VerifyCodeEndTime != null) - { - var spaning = (institutionContractTemp.VerifyCodeEndTime.Value - DateTime.Now); - if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0)) - return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); - } - - if (institutionContractTemp.RegistrationStatus == "Completed") - return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); - - - var periodModelInt = Convert.ToInt32(periodModel); - var contractstart = DateTime.Now; - var contractEnd = DateTime.Now.AddMonths(periodModelInt); - var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); - update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractstart, contractEnd, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(); - } - - - } - - - /// - /// دریافت کد برای کلاینت - /// از طرف سرور - /// - /// - /// - public async Task ReceivedCodeFromServer(long contractingPartyTempId) - { + private readonly IContractingPartyTempRepository _contractingPartyTempRepository; + private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository; + private readonly IUidService _uidService; + private readonly IWorkshopTempRepository _workshopTempRepository; + private readonly IPlanPercentageRepository _planPercentageRepository; + private readonly IWorkshopServicesTempRepository _workshopServicesTempRepository; + private readonly IInstitutionContractTempRepository _institutionContractTempRepository; + private readonly ISmsService _smsService; + + public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IUidService uidService, IWorkshopTempRepository workshopTempRepository, IPlanPercentageRepository planPercentageRepository, IWorkshopServicesTempRepository workshopServicesTempRepository, IInstitutionContractTempRepository institutionContractTempRepository, ISmsService smsService) + { + _contractingPartyTempRepository = contractingPartyTempRepository; + _personalContractingPartyRepository = personalContractingPartyRepository; + _uidService = uidService; + _workshopTempRepository = workshopTempRepository; + _planPercentageRepository = planPercentageRepository; + _workshopServicesTempRepository = workshopServicesTempRepository; + _institutionContractTempRepository = institutionContractTempRepository; + _smsService = smsService; + } + + /// + /// احراز هویت + /// + /// + /// + /// + /// + public async Task> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile) + { + var op = new OperationResult(); + + #region Validations + + if (string.IsNullOrWhiteSpace(nationalCode) || string.IsNullOrWhiteSpace(dateOfBirth) || + string.IsNullOrWhiteSpace(mobile)) + return op.Failed("هیچ یک از فیلد ها نمیتواند خالی باشد"); + + + if (nationalCode.NationalCodeValid() != "valid") + return op.Failed("کد ملی نا معتبر است"); + + if (!dateOfBirth.IsPersianDateValid()) + return op.Failed("تاریخ تولد نا معتبر است"); + + if (!mobile.IsMobileValid()) + return op.Failed("شماره همراه نا معتبر است"); + + + + #endregion + + + var getExistContractingParty = await _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth); + + //اگر طرف حساب قبلا در دیتابیس وجود داشت + if (getExistContractingParty) + { + return op.Failed("طرف حساب با این مشخصات در سیستم وجود دارد"); + } + //اگر طرف حساب وجود نداشت + else + { + //دریافت اطلاعات طرف حساب موقت که قبلا ایجاد شده + var getExistTemp = _contractingPartyTempRepository.GetByNationalCode(nationalCode); + + var dateOfBirthGr = dateOfBirth.ToGeorgianDateTime(); + + + //اگر طرف حساب موقت قبلا ایجاد شده دیتای آن را برمیگرداند + if (getExistTemp != null) + { + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, getExistTemp.Id); + + if (institutionContractTemp != null) + { + + if (institutionContractTemp.RegistrationStatus == "Completed") + return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); + } + + if (getExistTemp.DateOfBirth != dateOfBirthGr) + return op.Failed("تاریخ تولد مطابقت ندارد"); + if (getExistTemp.Phone != mobile) + return op.Failed("شما قبلا با شماره همراه دیگری ثبت نام نموده اید"); + return op.Succcedded(getExistTemp); + + } + //چک کردن مطابقت شماره همراه و کد ملی + var isMachMobilAndNationalCode = await _uidService.IsMachPhoneWithNationalCode(nationalCode, mobile); + if (isMachMobilAndNationalCode == null) + return op.Failed("خطا در سرویس احراز هویت"); + if (!isMachMobilAndNationalCode.IsMatched) + return op.Failed("شماره همراه وارد شده با کد ملی مطابقت ندارد"); + + //دریافت اطلاعات احراز هویت + var apiRespons = await _uidService.GetPersonalInfo(nationalCode, dateOfBirth); + + if (apiRespons == null) + return op.Failed("خطا در سرویس احراز هویت"); + if (apiRespons.ResponseContext.Status.Code != 0) + return op.Failed($"{apiRespons.ResponseContext.Status.Message}"); + + var idNumber = apiRespons.IdentificationInformation.ShenasnamehNumber == "0" + ? apiRespons.IdentificationInformation.NationalId + : apiRespons.IdentificationInformation.ShenasnamehNumber; + + //ایجاد طرف حساب موقت + var createTemp = new ContractingPartyTemp(apiRespons.BasicInformation.FirstName, + apiRespons.BasicInformation.LastName, nationalCode, idNumber, mobile, + apiRespons.BasicInformation.FatherName, "", "", "", + apiRespons.IdentificationInformation.ShenasnameSeri, + apiRespons.IdentificationInformation.ShenasnameSerial, apiRespons.BasicInformation.GenderEnum, + dateOfBirthGr); + await _contractingPartyTempRepository.CreateAsync(createTemp); + await _contractingPartyTempRepository.SaveChangesAsync(); + + var result = new ContractingPartyTempViewModel(); + result.Id = createTemp.id; + result.FName = createTemp.FName; + result.LName = createTemp.LName; + result.DateOfBirthFa = dateOfBirth; + result.FatherName = createTemp.FatherName; + result.IdNumberSerial = createTemp.IdNumberSerial; + result.IdNumber = idNumber; + + return op.Succcedded(result); + } + + + + } + + /// + /// تکمیل اطلاعات + /// + /// + /// + /// + /// + /// + + public async Task UpdateAddress(long id, string state, string city, string address) + { + var op = new OperationResult(); + var contractingPartyTemp = _contractingPartyTempRepository.Get(id); + + if (string.IsNullOrWhiteSpace(state) || string.IsNullOrWhiteSpace(city) || string.IsNullOrWhiteSpace(address)) + return op.Failed("اطلاعات ادرس را تکمیل کنید"); + + contractingPartyTemp.UpdateAddress(state, city, address); + await _contractingPartyTempRepository.SaveChangesAsync(); + + return op.Succcedded(); + } + + /// + /// دریافت کارگاه های ذخیره شده + /// + /// + /// + public Task> GetWorkshopTemp(long contractingPartyTempId) + { + return _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); + } + + /// + /// ایجاد یا ویرایش کارگاه و سرویس های آن + /// + /// + /// + public async Task CreateOrUpdateWorkshopTemp(List command, long contractingPartyTempId) + { + var op = new OperationResult(); + var updateWorkshopList = command.Where(x => x.Id > 0).ToList(); + var createNewWorkshopList = command.Where(x => x.Id == 0).ToList(); + + if (updateWorkshopList.Count == 0 && createNewWorkshopList.Count == 0) + return op.Failed("هیچ مجموعه ای ایجاد نشده است"); + var oldWorkshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); + + #region Update + if (updateWorkshopList.Count > 0) + { + var updateListIds = updateWorkshopList.Select(x => x.Id).ToList(); + var oldWorkshopsIds = oldWorkshops.Select(x => x.Id).ToList(); + var exceptWorkshops = oldWorkshopsIds.Except(updateListIds).ToList(); + if (exceptWorkshops.Any()) + await _workshopTempRepository.RemoveWorkshopTemps(exceptWorkshops); + + + foreach (var workshop in updateWorkshopList) + { + + if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) + return op.Failed("نام مجموعه نمی تواند خالی باشد"); + if (workshop.CountPerson == 0) + op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); + if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && + workshop.RollCall == false && workshop.Insurance == false) + op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); + var existWorkshops = _workshopTempRepository.Get(workshop.Id); + + if (existWorkshops != null) + { + if (workshop.ContractAndCheckout) + workshop.ContractAndCheckoutInPerson = true; + if (workshop.Insurance) + workshop.InsuranceInPerson = true; + + //دریافت مبالغ سرویس ها + var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); + if (plan.OnlineAndInPersonSumAmountDouble > 0) + { + //ویرایش مشخصات کارگاه + existWorkshops.Edit(workshop.WorkshopName, workshop.CountPerson, plan.OnlineAndInPersonSumAmountDouble); + await _workshopTempRepository.SaveChangesAsync(); + + //حذف سرویس های قبلی + _workshopServicesTempRepository.RemoveServices(workshop.Id); + + //سرویس قرداد + if (workshop.ContractAndCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, workshop.Id)); + //سرویس خدمات حضوری قرارداد + if (workshop.ContractAndCheckoutInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, workshop.Id)); + + //سرویس بیمه + if (workshop.Insurance) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("Insurance", workshop.CountPerson, workshop.Id)); + //سرویس خدمات حضوری بیمه + if (workshop.InsuranceInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, workshop.Id)); + + //سرویس حضورغیاب + if (workshop.RollCall) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("RollCall", workshop.CountPerson, workshop.Id)); + //سرویس فیش غیر رسمی + if (workshop.CustomizeCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, workshop.Id)); + + await _workshopServicesTempRepository.SaveChangesAsync(); + } + + } + + } + + } + #endregion + + #region Create + + if (createNewWorkshopList.Count > 0) + { + foreach (var workshop in createNewWorkshopList) + { + + if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) + return op.Failed("نام مجموعه نمی تواند خالی باشد"); + if (workshop.CountPerson == 0) + op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); + if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && + workshop.RollCall == false && workshop.Insurance == false) + op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); + + if (workshop.ContractAndCheckout) + workshop.ContractAndCheckoutInPerson = true; + if (workshop.Insurance) + workshop.InsuranceInPerson = true; + + //دریافت مبالغ سرویس ها + var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); + if (plan.OnlineAndInPersonSumAmountDouble > 0) + { + + + var createNewWorkshopTemp = new WorkshopTemp(workshop.WorkshopName, workshop.CountPerson, + workshop.ContractingPartyTempId, plan.OnlineAndInPersonSumAmountDouble); + await _workshopTempRepository.CreateAsync(createNewWorkshopTemp); + await _workshopTempRepository.SaveChangesAsync(); + + + + //سرویس قرداد + if (workshop.ContractAndCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); + //سرویس خدمات حضوری قرارداد + if (workshop.ContractAndCheckoutInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); + + //سرویس بیمه + if (workshop.Insurance) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("Insurance", workshop.CountPerson, createNewWorkshopTemp.id)); + //سرویس خدمات حضوری بیمه + if (workshop.InsuranceInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); + + //سرویس حضورغیاب + if (workshop.RollCall) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("RollCall", workshop.CountPerson, createNewWorkshopTemp.id)); + //سرویس فیش غیر رسمی + if (workshop.CustomizeCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); + + await _workshopServicesTempRepository.SaveChangesAsync(); + } + + } + } + + #endregion + + + return op.Succcedded(); + } + + /// + /// دریافت جمع کل خدمات برای یک کارگاه + /// + /// + /// + public InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel workshop) + { + return _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); + } + + + /// + /// بررسی و پرداخت + /// اطلاعات کامل مبالغ + /// + /// + /// + public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime") + { + //دریافت کارگاه ها + var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); + + double totalPayment1MonthDouble = 0; + + //بدست آوردن جمع کل برای یک ماه + foreach (var workshop in workshops) + { + totalPayment1MonthDouble += workshop.WorkshopServicesAmount; + } + + if (totalPayment1MonthDouble == 0) + return new ReviewAndPaymentViewModel(); + + var result = new ReviewAndPaymentViewModel(); + + int months = 0; + months = periodModel switch + { + "1" => 1, + "3" => 3, + "6" => 6, + "12" => 12, + _ => 12, + }; + //رند کردن مبالغ کارگاه ها + var roundAmount = (((Convert.ToInt32(totalPayment1MonthDouble))) / 1000000) * 1000000; + double roundAmount2 = roundAmount; + //بدست آوردن جمع کل مبالغ کارگاه بر اساس مدت قراداد + result.SumOfWorkshopsPaymentDouble = months * roundAmount2; + result.SumOfWorkshopsPaymentPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + + + result.PeriodModel = periodModel; + result.PaymentModel = paymentModel; + + + var tenPercent = result.SumOfWorkshopsPaymentDouble * 10 / 100; + //مالیات + result.ValueAddedTaxDouble = tenPercent; + result.ValueAddedTaxSt = tenPercent.ToMoney(); + if (paymentModel == "OneTime")//تخفیف 10 درصدی درصورت پرداخت یکجا + { + + double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; + + + //مبلغ بدون مالیات و با تخفیف + result.WithoutTaxPaymentDouble = discountOneTimePeyment; + result.WithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); + + //مبلغ با مالیات + result.TotalPaymentDouble = discountOneTimePeyment + tenPercent; + result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); + } + else + { + //مبلغ بدون مالیات + result.WithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; + result.WithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + + // مبلغ با مالیات + result.TotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; + result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); + } + + result.ContractingPartTempId = contractingPartyTempId; + + return result; + + } + + /// + /// ایجاد یا ویرایش قرارداد موقت + /// + /// + /// + public async Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax) + { + + var op = new OperationResult(); + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); + + if (institutionContractTemp == null) + { + var periodModelInt = Convert.ToInt32(periodModel); + var contractstart = DateTime.Now; + var contractEnd = DateTime.Now.AddMonths(periodModelInt); + var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractstart, contractEnd, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); + _institutionContractTempRepository.Create(create); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(); + } + else + { + if (institutionContractTemp.VerifyCodeEndTime != null) + { + var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value ); + if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0)) + return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); + } + + if (institutionContractTemp.RegistrationStatus == "Completed") + return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); + + + var periodModelInt = Convert.ToInt32(periodModel); + var contractstart = DateTime.Now; + var contractEnd = DateTime.Now.AddMonths(periodModelInt); + var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); + update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractstart, contractEnd, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(); + } + + + } + + + /// + /// دریافت کد برای کلاینت + /// از طرف سرور + /// + /// + /// + public async Task ReceivedCodeFromServer(long contractingPartyTempId) + { var op = new OperationResult(); var institutionContractTemp = await _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); if (institutionContractTemp == null) - return op.Failed("خظا"); - - var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); - - - - - if (institutionContractTemp.RegistrationStatus == "BeforeSendVerifyCode") - { - //ساخت کد شش رقمی - Random generator = new Random(); - String code = generator.Next(1, 1000000).ToString("D6"); - //ارسال اس ام اس - var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); - var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); - - if (!sendResult.IsSuccedded) - return op.Failed($"{sendResult.Message}"); - - //ذخیره کد در دیتا بیس - //ذخیره تاریخ ارسال و مهلت پایان - //ذخیره آیدی پیامک - //تغییر وضعیت به ارسال شده - if (update != null) - { - update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(1, "کد برای شما پیامک شد"); - } - - - } - - if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent") - - { - var spaning = (institutionContractTemp.VerifyCodeEndTime.Value - DateTime.Now); - if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))) - return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); - - if ((spaning > new TimeSpan(0, 0, 0) && spaning > new TimeSpan(0, 1, 0))) - { - //ساخت کد شش رقمی - Random generator = new Random(); - String code = generator.Next(1, 1000000).ToString("D6"); - //ارسال اس ام اس - var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); - var sendResult =await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); - - if(!sendResult.IsSuccedded) - return op.Failed($"{sendResult.Message}"); - - - - //ذخیره کد در دیتا بیس - //ذخیره تاریخ ارسال و مهلت پایان - //ذخیره آیدی پیامک - //تغییر وضعیت به ارسال شده - - if (update != null) - { - update.Update(code, "VerifyCodeSent",sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(1, "کد برای شما پیامک شد"); - } - - - - } - - } - - //if (institutionContractTemp.RegistrationStatus == "ReceivedCodeFromClient") - // return op.Succcedded(2, "انتقال به بخش پرداخت"); - - if (institutionContractTemp.RegistrationStatus == "Completed") - return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); - return op.Failed("خظا"); - } - - /// - /// ورود کد از طرف کلاینت - /// برا چک کردن - /// - /// - /// - /// - public async Task CheckVerifyCodeIsTrue(long contractingPartyTempId, string verifyCode) - { - var op = new OperationResult(); - var institutionContractTemp = await - _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); - if (institutionContractTemp == null) - return op.Failed("خظا"); - if(institutionContractTemp.RegistrationStatus != "VerifyCodeSent") return op.Failed("خطا"); - if(institutionContractTemp.VerifyCodeEndTime < DateTime.Now) - return op.Failed("کد شما منقضی شده است"); - - if(institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now) - { - if (institutionContractTemp.VerifyCode == verifyCode) - { - - - return op.Succcedded(); - } - else - { - return op.Failed("کد وارد شده صحیح نیست"); - } - - } + var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); - return op.Failed("کد وارد شده صحیح نیست"); - } - /// - /// تکمیل پرداخت - /// - /// - /// - /// - public async Task PayOffCompleted(long contractingPartyTempId) - { - var op = new OperationResult(); - return op.Succcedded(); - } + if (institutionContractTemp.RegistrationStatus == "BeforeSendVerifyCode") + { + //ساخت کد شش رقمی + Random generator = new Random(); + String code = generator.Next(1, 1000000).ToString("D6"); + //ارسال اس ام اس + var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); + var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); + + if (!sendResult.IsSuccedded) + return op.Failed($"{sendResult.Message}"); + + //ذخیره کد در دیتا بیس + //ذخیره تاریخ ارسال و مهلت پایان + //ذخیره آیدی پیامک + //تغییر وضعیت به ارسال شده + if (update != null) + { + update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(1, "کد برای شما پیامک شد"); + } + + + } + + if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent") + + { + + if(DateTime.Now < institutionContractTemp.VerifyCodeEndTime.Value) + return op.Failed("کد دریافت شده را وارد کنید"); + var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value); + if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))) + return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); + + if ((spaning > new TimeSpan(0, 1, 0))) + { + //ساخت کد شش رقمی + Random generator = new Random(); + String code = generator.Next(1, 1000000).ToString("D6"); + //ارسال اس ام اس + var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); + var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); + + if (!sendResult.IsSuccedded) + return op.Failed($"{sendResult.Message}"); + + + + //ذخیره کد در دیتا بیس + //ذخیره تاریخ ارسال و مهلت پایان + //ذخیره آیدی پیامک + //تغییر وضعیت به ارسال شده + + if (update != null) + { + update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(1, "کد برای شما پیامک شد"); + } + + + + } + + } + + //if (institutionContractTemp.RegistrationStatus == "ReceivedCodeFromClient") + // return op.Succcedded(2, "انتقال به بخش پرداخت"); + + if (institutionContractTemp.RegistrationStatus == "Completed") + return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); + return op.Failed("خظا"); + } + + /// + /// ورود کد از طرف کلاینت + /// برا چک کردن + /// + /// + /// + /// + public async Task CheckVerifyCodeIsTrue(long contractingPartyTempId, string verifyCode) + { + var op = new OperationResult(); + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); + if (institutionContractTemp == null) + return op.Failed("خظا"); + if (institutionContractTemp.RegistrationStatus != "VerifyCodeSent") + return op.Failed("خطا"); + + if (institutionContractTemp.VerifyCodeEndTime < DateTime.Now) + return op.Failed("کد شما منقضی شده است"); + + if (institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now) + { + if (institutionContractTemp.VerifyCode == verifyCode) + { + + + return op.Succcedded(); + } + else + { + return op.Failed("کد وارد شده صحیح نیست"); + } + + } + + + return op.Failed("کد وارد شده صحیح نیست"); + } + + + /// + /// تکمیل پرداخت + /// + /// + /// + /// + public async Task PayOffCompleted(long contractingPartyTempId) + { + var op = new OperationResult(); + return op.Succcedded(); + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/CompanyContext.cs b/CompanyManagment.EFCore/CompanyContext.cs index 92685f18..78e25081 100644 --- a/CompanyManagment.EFCore/CompanyContext.cs +++ b/CompanyManagment.EFCore/CompanyContext.cs @@ -8,6 +8,7 @@ using Company.Domain.CheckoutAgg; using Company.Domain.ClassifiedSalaryAgg; using Company.Domain.ClientEmployeeWorkshopAgg; using Company.Domain.Contact2Agg; +using Company.Domain.ContactUsAgg; using Company.Domain.ContarctingPartyAgg; using Company.Domain.ContractAgg; using Company.Domain.ContractingPartyAccountAgg; @@ -173,6 +174,8 @@ public class CompanyContext : DbContext public DbSet EmployeeClientTemps { get; set; } public DbSet LeftWorkTemps { get; set; } + public DbSet ContactUs { get; set; } + #endregion diff --git a/CompanyManagment.EFCore/Mapping/ContactUsMapping.cs b/CompanyManagment.EFCore/Mapping/ContactUsMapping.cs new file mode 100644 index 00000000..cc3b5ddf --- /dev/null +++ b/CompanyManagment.EFCore/Mapping/ContactUsMapping.cs @@ -0,0 +1,20 @@ +using Company.Domain.ContactUsAgg; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace CompanyManagment.EFCore.Mapping; + +public class ContactUsMapping:IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.HasKey(x => x.id); + builder.Property(x => x.FullName).HasMaxLength(200); + builder.Property(x => x.Title).HasMaxLength(200); + builder.Property(x => x.Email).HasMaxLength(200); + builder.Property(x => x.FirstName).HasMaxLength(100); + builder.Property(x => x.LastName).HasMaxLength(100); + builder.Property(x => x.Message).HasMaxLength(500); + builder.Property(x => x.PhoneNumber).HasMaxLength(20); + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs b/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs index 60d0179a..9274487d 100644 --- a/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs +++ b/CompanyManagment.EFCore/Mapping/PersonalContractingpartyMapping.cs @@ -39,7 +39,7 @@ public class PersonalContractingpartyMapping : IEntityTypeConfiguration x.IdNumberSerial).HasMaxLength(15); builder.Property(x => x.FatherName).HasMaxLength(20); builder.Property(x => x.DateOfBirth).IsRequired(false); - builder.Property(x => x.Gender).HasConversion( + builder.Property(x => x.Gender).HasConversion( v => v.ToString(), v => string.IsNullOrWhiteSpace(v) ? Gender.None : (Gender)Enum.Parse(typeof(Gender), v)).HasMaxLength(6); diff --git a/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .Designer.cs b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .Designer.cs new file mode 100644 index 00000000..0e4931ae --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .Designer.cs @@ -0,0 +1,9450 @@ +// +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("20250423184716_add contact us ")] + partial class addcontactus + { + /// + 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.ContactUsAgg.ContactUs", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Message") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Title") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.HasKey("id"); + + b.ToTable("ContactUs"); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DailyWage") + .HasColumnType("float"); + + 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("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("DailyWage") + .HasColumnType("float"); + + 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("SettingSalary") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("ShiftStatus") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + 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("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + 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.InstitutionPlanAgg.PlanPercentage", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractAndCheckoutInPersonPercent") + .HasColumnType("int"); + + b.Property("ContractAndCheckoutPercent") + .HasColumnType("int"); + + b.Property("CustomizeCheckoutPercent") + .HasColumnType("int"); + + b.Property("InsuranceInPersonPercent") + .HasColumnType("int"); + + b.Property("InsurancePercent") + .HasColumnType("int"); + + b.Property("RollCallPercent") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("PlanPercentage", (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("HasShiftDuration") + .HasColumnType("bit"); + + 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("ShiftDuration") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + 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("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + 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("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + 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("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RewardType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + 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("CreatedByAccountId") + .HasColumnType("bigint"); + + b.Property("CreatedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByAccountId") + .HasColumnType("bigint"); + + b.Property("LastModifiedByUserType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("SalaryAids", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SmsResultAgg.SmsResult", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractingPatyId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("InstitutionContractId") + .HasColumnType("bigint"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("Mobile") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("Status") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("TypeOfSms") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("SmsResults", (string)null); + }); + + modelBuilder.Entity("Company.Domain.SubtitleAgg.EntitySubtitle", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EntitySubtitleid") + .HasColumnType("bigint"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("OriginalTitle_Id") + .HasColumnType("bigint"); + + b.Property("Subtitle") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.HasKey("id"); + + b.HasIndex("EntitySubtitleid"); + + b.HasIndex("OriginalTitle_Id"); + + b.ToTable("TextManager_Subtitle", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxJobCategoryAgg.TaxJobCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("JobCategoryCode") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("JobCategoryName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.HasKey("id"); + + b.ToTable("TaxJobCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkCategoryAgg.TaxLeftWorkCategory", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BudgetLawExceptions") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("Country") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CurrencyType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployeeName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("EmploymentLocationStatus") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("ExchangeRate") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("InsuranceBranch") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("InsuranceName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobCategoryCode") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("JobCategoryId") + .HasColumnType("bigint"); + + b.Property("JobTitle") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("PaymentType") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RetirementDate") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TaxExempt") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfEmployment") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("TypeOfInsurance") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("TaxLeftWorkCategory", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TaxLeftWorkItemAgg.TaxLeftWorkItem", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("LeftWork") + .HasColumnType("datetime2"); + + b.Property("StartWork") + .HasColumnType("datetime2"); + + b.Property("TaxLeftWorkCategoryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("TaxLeftWorkCategoryId"); + + b.ToTable("TaxLeftWorkItem", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.ContractingPartyTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("City") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("FatherName") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("NationalCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(12) + .HasColumnType("nvarchar(12)"); + + b.Property("State") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("ContractingPartyTemp", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.InstitutionContractTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractEndGr") + .HasColumnType("datetime2"); + + b.Property("ContractStartGr") + .HasColumnType("datetime2"); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("MessageId") + .HasColumnType("int"); + + b.Property("OfficialCompany") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PaymentModel") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("PeriodModel") + .HasMaxLength(3) + .HasColumnType("nvarchar(3)"); + + b.Property("RegistrationStatus") + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b.Property("SendVerifyCodeTime") + .HasColumnType("datetime2"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("ValueAddedTax") + .HasColumnType("float"); + + b.Property("VerifyCode") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("VerifyCodeEndTime") + .HasColumnType("datetime2"); + + b.HasKey("id"); + + b.ToTable("InstitutionContractTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("ServiceName") + .HasMaxLength(40) + .HasColumnType("nvarchar(40)"); + + b.Property("WorkshopTempId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("WorkshopTempId"); + + b.ToTable("WorkshopServicesTemps", (string)null); + }); + + modelBuilder.Entity("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("ContractingPartyTempId") + .HasColumnType("bigint"); + + b.Property("CountPerson") + .HasColumnType("int"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("WorkshopName") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("WorkshopServicesAmount") + .HasColumnType("float"); + + b.HasKey("id"); + + b.ToTable("WorkshopTemps", (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("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutid") + .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("CustomizeCheckoutid", "Id"); + + b1.ToTable("CustomizeCheckouts_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutid") + .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("CustomizeCheckoutid"); + + b1.ToTable("CustomizeCheckouts_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + 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("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + 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("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .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("CustomizeCheckoutTempid", "Id"); + + b1.ToTable("CustomizeCheckoutTemps_CustomizeRotatingShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + { + b1.Property("CustomizeCheckoutTempid") + .HasColumnType("bigint"); + + b1.Property("EndTime") + .HasColumnType("time"); + + b1.Property("StartTime") + .HasColumnType("time"); + + b1.Property("WorkshopIrregularShifts") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutRegularShift", "RegularShifts", b1 => + { + b1.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("id")); + + b1.Property("CreationDate") + .HasColumnType("datetime2"); + + b1.Property("CustomizeCheckoutTempid") + .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("CustomizeCheckoutTempid"); + + b1.ToTable("CustomizeCheckoutTemps_RegularShifts"); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + 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("CustomizeRotatingShifts"); + + b.Navigation("Employee"); + + b.Navigation("IrregularShift"); + + b.Navigation("RegularShifts"); + + 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.TemporaryClientRegistrationAgg.WorkshopServicesTemp", b => + { + b.HasOne("Company.Domain.TemporaryClientRegistrationAgg.WorkshopTemp", "WorkshopTemp") + .WithMany("WorkshopServicesTemps") + .HasForeignKey("WorkshopTempId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("WorkshopTemp"); + }); + + 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.TemporaryClientRegistrationAgg.WorkshopTemp", b => + { + b.Navigation("WorkshopServicesTemps"); + }); + + 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/20250423184716_add contact us .cs b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .cs new file mode 100644 index 00000000..2b5fab3d --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250423184716_add contact us .cs @@ -0,0 +1,42 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addcontactus : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "ContactUs", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + FirstName = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + LastName = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Email = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + PhoneNumber = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), + Title = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + Message = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), + FullName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_ContactUs", x => x.id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "ContactUs"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index 028429e4..cacbffc0 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -529,6 +529,50 @@ namespace CompanyManagment.EFCore.Migrations b.ToTable("TextManager_Contact", (string)null); }); + modelBuilder.Entity("Company.Domain.ContactUsAgg.ContactUs", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FullName") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Message") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("PhoneNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Title") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.HasKey("id"); + + b.ToTable("ContactUs"); + }); + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => { b.Property("id") diff --git a/CompanyManagment.EFCore/Repository/ContactUsRepository.cs b/CompanyManagment.EFCore/Repository/ContactUsRepository.cs new file mode 100644 index 00000000..b49cf1ae --- /dev/null +++ b/CompanyManagment.EFCore/Repository/ContactUsRepository.cs @@ -0,0 +1,14 @@ +using _0_Framework.InfraStructure; +using Company.Domain.ContactUsAgg; +using Microsoft.EntityFrameworkCore; + +namespace CompanyManagment.EFCore.Repository; + +public class ContactUsRepository:RepositoryBase,IContactUsRepository +{ + private readonly CompanyContext _companyContext; + public ContactUsRepository(CompanyContext companyContext) : base(companyContext) + { + _companyContext = companyContext; + } +} \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs b/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs index d5168f44..ce605927 100644 --- a/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs +++ b/CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Numerics; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.InstitutionPlanAgg; @@ -170,7 +169,6 @@ public class PlanPercentageRepository : RepositoryBase, IP } - public InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel command) { var planPercentage = _context.PlanPercentages.FirstOrDefault(); @@ -184,7 +182,10 @@ public class PlanPercentageRepository : RepositoryBase, IP var dailyWage = dailyWageYearlySalery.YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه") .Select(x => x.ItemValue).FirstOrDefault(); - + if (command.ContractAndCheckout) + command.ContractAndCheckoutInPerson = true; + if(command.Insurance) + command.InsuranceInPerson = true; if (command.CountPerson > 0) { @@ -193,28 +194,28 @@ public class PlanPercentageRepository : RepositoryBase, IP .Select(plan => new InstitutionPlanViewModel { CountPerson = plan.CountPerson, - + ContractAndCheckoutDouble = command.ContractAndCheckout ? ((dailyWage * planPercentage.ContractAndCheckoutPercent / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + InsuranceDouble = command.Insurance ? (((dailyWage * planPercentage.InsurancePercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + RollCallDouble = command.RollCall ? (((dailyWage * planPercentage.RollCallPercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - - CustomizeCheckoutDouble = (((dailyWage * planPercentage.CustomizeCheckoutPercent) / 100) * plan.CountPerson * - plan.IncreasePercentage), - - ContractAndCheckoutInPersonDouble = command.ContractAndCheckoutInPerson ? (((dailyWage * planPercentage.ContractAndCheckoutInPersonPercent) / 100) * plan.CountPerson * + + CustomizeCheckoutDouble =command.CustomizeCheckout ? (((dailyWage * planPercentage.CustomizeCheckoutPercent) / 100) * plan.CountPerson * + plan.IncreasePercentage) : 0, + + ContractAndCheckoutInPersonDouble = command.ContractAndCheckoutInPerson ? (((dailyWage * planPercentage.ContractAndCheckoutInPersonPercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + InsuranceInPersonDouble = command.InsuranceInPerson ? (((dailyWage * planPercentage.InsuranceInPersonPercent) / 100) * plan.CountPerson * plan.IncreasePercentage) : 0, - + }).FirstOrDefault(); - if(planByCountPerson == null) + if (planByCountPerson == null) return new InstitutionPlanViewModel(); //مبلغ کل خدمات حضوری var inPersonSumAmount = planByCountPerson.ContractAndCheckoutDouble + planByCountPerson.InsuranceDouble + @@ -236,7 +237,7 @@ public class PlanPercentageRepository : RepositoryBase, IP { CountPerson = planByCountPerson.CountPerson, - ContractAndCheckout = planByCountPerson.ContractAndCheckoutDouble > 0 ? planByCountPerson.ContractAndCheckoutDouble.ToMoney() : "0", + ContractAndCheckout = planByCountPerson.ContractAndCheckoutDouble > 0 ? planByCountPerson.ContractAndCheckoutDouble.ToMoney() : "0", Insurance = planByCountPerson.InsuranceDouble > 0 ? planByCountPerson.InsuranceDouble.ToMoney() : "0", @@ -259,7 +260,7 @@ public class PlanPercentageRepository : RepositoryBase, IP }; - + } return new InstitutionPlanViewModel(); } diff --git a/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs b/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs index ddbc5ac1..eaf47e06 100644 --- a/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs +++ b/CompanyManagment.EFCore/Repository/WorkshopTempRepository.cs @@ -40,5 +40,11 @@ public class WorkshopTempRepository : RepositoryBase, IWorks return result; } + public async Task RemoveWorkshopTemps(List workshopTempIds) + { + var result = _context.WorkshopTemps.Where(x => workshopTempIds.Contains(x.id)); + _context.RemoveRange(result); + await _context.SaveChangesAsync(); + } } \ No newline at end of file diff --git a/PersonalContractingParty.Config/PersonalBootstrapper.cs b/PersonalContractingParty.Config/PersonalBootstrapper.cs index a5d5c00b..a4d595a5 100644 --- a/PersonalContractingParty.Config/PersonalBootstrapper.cs +++ b/PersonalContractingParty.Config/PersonalBootstrapper.cs @@ -205,6 +205,8 @@ using CompanyManagment.App.Contracts.EmployeeClientTemp; using CompanyManagment.App.Contracts.InstitutionPlan; using CompanyManagment.App.Contracts.LeftWorkTemp; using CompanyManagment.App.Contracts.TemporaryClientRegistration; +using Company.Domain.ContactUsAgg; +using CompanyManagment.App.Contracts.ContactUs; namespace PersonalContractingParty.Config; @@ -423,6 +425,9 @@ public class PersonalBootstrapper services.AddTransient(); services.AddTransient(); + + services.AddTransient(); + services.AddTransient(); #endregion #region Pooya diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/ChangeCode.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/ChangeCode.cshtml deleted file mode 100644 index 75daab98..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/ChangeCode.cshtml +++ /dev/null @@ -1,601 +0,0 @@ -@using _0_Framework.Application -@model CompanyManagment.App.Contracts.Checkout.CreateCheckout -@{ - - -} -@{ - - - - - - - - -} - - - - diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/Create.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/Create.cshtml deleted file mode 100644 index 88db8335..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/Create.cshtml +++ /dev/null @@ -1,1204 +0,0 @@ -@using _0_Framework.Application -@model CompanyManagment.App.Contracts.Employee.CreateEmployee - - - -
- - مشخصات پرسنل جدید -
-
-
-
مشخصات تکمیلی
-
مشخصات اجباری
- -
-
-
-
-
-
- -
-
- آقا -
-
- خانم -
- -
-
- -
-
-
- -
-
- متاهل -
-
- مجرد -
- -
-
-
-
-
- -
-
- ایرانی -
-
- غیر ایرانی -
-
-
-
-
- - -
-
-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
- - - -

فقط عدد وارد شود.

-
-
-
-
- - - -

فقط عدد وارد شود.

-
-
- - - -

فقط عدد وارد شود.

-
-
- - -
-
- - - - - -
-
-
-
- -
-
-
- - - - - - - - - - - - - - - - -
تاریخ تولدنام فرزند #
-
- -
- -
-
- -
-
1
-
- افزودن فرزند -
- -
-
-
-
-
-
-
-
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - - -

فقط عدد وارد شود.

-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
-
- -
-
-
- - -@if (!Model.HasWorkshop) -{ -
- شما هنوز کارگاهی ثبت نکرده اید، برای ثبت پرسنل ابتدا فرم ثبت کارگاه را تکمیل نمایید. -
-} - diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/Edit.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/Edit.cshtml deleted file mode 100644 index d7a669f5..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/Edit.cshtml +++ /dev/null @@ -1,1027 +0,0 @@ -@using _0_Framework.Application -@model CompanyManagment.App.Contracts.Employee.EditEmployee - - - -
- - ویرایش پرسنل -
-
-
-
مشخصات تکمیلی
-
مشخصات اجباری
- -
-
- -
-
-
-
- -
-
- آقا -
-
- خانم -
- -
-
- -
-
-
- -
-
- متاهل -
-
- مجرد -
- -
-
-
-
-
- -
-
- ایرانی -
-
- غیر ایرانی -
-
-
-
-
- - -
-
-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
- - - -

فقط عدد وارد شود.

-
-
-
-
- - - -

فقط عدد وارد شود.

-
-
- - - -

فقط عدد وارد شود.

-
-
- - -
-
- - - - - -
-
-
-
- -
-
-
- - - - - - - - - - - @{int index=0;} - @if(Model.EditEmployeChildrenList.Count>0){ - @for (var h = 0; h <= @Model.EditEmployeChildrenList.Count - 1; h++) - { - //int a = h; - - - - - - index = index + 1; - } - } - else - { - - - - - - } - - -
تاریخ تولدنام فرزند #
-
- -
-
- @if(index==0) - { - - - @* *@ - - } - else - { - - - @* *@ - - } -
- - -
-
- -
-
@(index + 1)
-
- -
- -
-
- -
-
1
-
- افزودن فرزند -
- -
-
-
-
-
-
-
-
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- - - -

فقط عدد وارد شود.

-
-
- - - -

فقط حروف فارسی وارد شود.

-
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
-
- -
-
-
- - - - - diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/EditPaidLeave.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/EditPaidLeave.cshtml deleted file mode 100644 index 6728328c..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/EditPaidLeave.cshtml +++ /dev/null @@ -1,247 +0,0 @@ -@model CompanyManagment.App.Contracts.Leave.EditLeave -@{ - -//int i = 1; - - -} -@{ - - - -} - - - - - - - - - diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/EditSick.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/EditSick.cshtml deleted file mode 100644 index 0664b0be..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/EditSick.cshtml +++ /dev/null @@ -1,366 +0,0 @@ -@model CompanyManagment.App.Contracts.Leave.EditLeave - -@{ -} - -
- -
- - - - @**@ - -
-
- - - - - - - - - \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml deleted file mode 100644 index 6d67e50f..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml +++ /dev/null @@ -1,730 +0,0 @@ -@page -@using Version = _0_Framework.Application.Version -@model EmployeePaymentModel - -@{ - Layout = "Shared/_ClientLayout"; - ViewData["title"] = " - حساب پرداخت به حقوق"; - var index = 1; -} - -@section Styles { - - - - @* This link called grid must be included, unless the table of payment wont work corectly *@ - - @* This link called grid must be included, unless the table of payment wont work corectly *@ - - - - - -} - - - -
- - -
-
-
-
- -
-

صورت حساب پرداخت به حقوق

-
@Model.WorkshopFullName
-
-
- -
-
-
- - - - -
- - - - -
-
- -
-
-
- - -
- -
-
- -
-
- -
- - -
-
- - -
-
- -
-
- - -
-
- -
- -
-
-
سال
-
ماه
-
-
-
تاریخ پرداخت
-
بانک مبداء
-
بانک مقصد
-
مبلغ (ریال)
-
-
-
-
-
-
-
-
-
- - -
- -
- - - - @foreach (var paymentList in Model.PaymentToEmployeeSearch) - { -
- -
-
-
- @paymentList.Year -
-
-
-
- @paymentList.Month -
-
- -
- -
- @if (paymentList.PaymentToEmployeeItemList.Count > 0) - { - @foreach (var paymentItem in paymentList.PaymentToEmployeeItemList) - { - var StylePadding = ""; - @if (paymentList.PaymentToEmployeeItemList.Count == 1) - { - StylePadding = "padding: 28px 10px 28px 10px;"; - } - -
-
-
-
- @paymentItem.PayDateFa -
-
-
-
-
-

@paymentItem.SourceBankName

-

@paymentItem.SourceBankAccountNumber

-
-
-
-
-

@paymentItem.DestinationBankName

-

@paymentItem.DestinationBankAccountNumber

-
-
-
-
- @(paymentItem.PaymentFa) ريال -
-
-
- } - } - else - { -
-
-
-
- - -
-
-
-
-
-

-

-
-
-
-
-

-

-
-
-
-
- - -
-
-
- } -
- -
-
-
- @*
@paymentList.BonusesPay
*@ -

جمع پرداختی

-

- @{ - if (!string.IsNullOrWhiteSpace(paymentList.PaymentToEmployeeTotalPayment)) - { - @paymentList.PaymentToEmployeeTotalPayment ریال - } - else - { - - - - - } - } -

-
-

- @{ - if (!string.IsNullOrWhiteSpace(paymentList.ComputePaymentToEmployeeTotalPayment)) - { - @paymentList.ComputePaymentToEmployeeTotalPayment ریال - } - else - { - - - - - } - } -

-
-
-
-

نمایش فیش حقوقی

-

- @{ - if (!string.IsNullOrWhiteSpace(paymentList.CheckoutTotalPayment)) - { - @paymentList.CheckoutTotalPayment ریال - } - else - { - - - - - } - } -

-
-

- @{ - if (!string.IsNullOrWhiteSpace(paymentList.ComputeCheckoutTotalPayment)) - { - @paymentList.ComputeCheckoutTotalPayment ریال - } - else - { - - - - - } - } -

-
- - @*
-

مجموع:

-

@paymentList.TotalPayment

-
*@ - -
- -
- } - -
-
- - - -
-
- -
-
- -
-
-
-
-

74,000,000

-
-
-

74,000,000

-
-
-

74,000,000

-
-
-
-
-
-
- -
-
-
-

مجموع پرداختی های کارفرما

-
-

74,000,000

-
-
-
-
-
-
-

74,000,000

-
-

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

-
-
-
- - -
-
- - -
-
- -
- - - - - - -@section Script { - - - - -} \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml.cs deleted file mode 100644 index f1979df0..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/EmployeePayment.cshtml.cs +++ /dev/null @@ -1,85 +0,0 @@ -using _0_Framework.Application; -using CompanyManagment.App.Contracts.Employee; -using CompanyManagment.App.Contracts.PaymentToEmployee; -using CompanyManagment.App.Contracts.Workshop; -using CompanyManagment.App.Contracts.YearlySalary; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace ServiceHost.Areas.Client.Pages.Company.Employees; - -public class EmployeePaymentModel : PageModel -{ - private readonly IAuthHelper _authHelper; - private readonly IEmployeeApplication _employeeApplication; - private readonly IPaymentToEmployeeApplication _paymentToEmployeeApplication; - - private readonly IWorkshopApplication _workshopApplication; - private readonly IYearlySalaryApplication _yearlySalaryApplication; - public CreatePaymentToEmployee Command; - public string EmployeeFullName; - public long EmployeeId; - public string Month; - public List PaymentToEmployeeSearch; - public PaymentToEmployeeSearchModel SearchModel; - - public string WorkshopFullName; - public long WorkshopId; - public string Year; - public List YearlyList; - - public EmployeePaymentModel(IWorkshopApplication workshopApplication, IEmployeeApplication employeeApplication, - IYearlySalaryApplication yearlySalaryApplication, IAuthHelper authHelper, - IPaymentToEmployeeApplication paymentToEmployeeApplication) - { - _workshopApplication = workshopApplication; - _employeeApplication = employeeApplication; - _yearlySalaryApplication = yearlySalaryApplication; - _authHelper = authHelper; - _paymentToEmployeeApplication = paymentToEmployeeApplication; // dependency injection - } - - public void OnGet(long workshopId, long employeeId, PaymentToEmployeeSearchModel searchModel) - { - var workshop = _workshopApplication.GetDetails(workshopId); - var employee = _employeeApplication.GetDetails(employeeId); - - var search = new PaymentToEmployeeSearchModel - { - EmployeeId = employeeId, - WorkshopId = workshopId, - Year = searchModel.Year, - Month = searchModel.Month - }; - - PaymentToEmployeeSearch = _paymentToEmployeeApplication.searchClient(search); - - WorkshopFullName = workshop.WorkshopFullName; - EmployeeFullName = employee.EmployeeFullName; - WorkshopId = workshopId; - EmployeeId = employeeId; - YearlyList = _yearlySalaryApplication.GetYears(); - - var command = new CreatePaymentToEmployee - { - EmployeeId = employeeId, - WorkshopId = workshopId - }; - Command = command; - } - - public IActionResult OnPostPaymentToPersonnelSave(CreatePaymentToEmployee command) - { - var payDateFa = command.CreatePaymentToEmployeeItem.PayDateFa; - command.Year = payDateFa.Substring(0, 4); - command.Month = payDateFa.Substring(5, 2); - - var result = _paymentToEmployeeApplication.Create(command); - - return new JsonResult(new - { - result.IsSuccedded, - message = result.Message - }); - } -} \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/LeftWork.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/LeftWork.cshtml deleted file mode 100644 index 1d9cf14e..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/LeftWork.cshtml +++ /dev/null @@ -1,1727 +0,0 @@ -@model CompanyManagment.App.Contracts.LeftWork.LeftWorkDividedList - -@*adding bime*@ - - - - -@Html.AntiForgeryToken() -
- -
شروع بکار و ترک کار پرسنل در بخش قرارداد
- - -
- کارگاه @Model.WorkshopName (@Model.EmployeeName) -
- -
- @if (Model.LeftWorkGroups != null && Model.LeftWorkGroups.Count > 0) - { - int index = 1; - @foreach (var item in @Model.LeftWorkGroups) - { -
-
-
-
-
-
- - -
-
-
- - -
-
-
-
-
- @if (index == 1) - { -
- -
-
- -
-
- - -
- } - else - { -
- -
-
- -
-
- - -
- } -
-
- - - - - - - - - - - - - - - - - - - - - @if (item.LeftWorkViewModels != null) - { - var leftworkViewModelList = item.LeftWorkViewModels; - for (int i = 0; i < leftworkViewModelList.Count; i++) - { - - - - - - - - - } - } - -
#تاریخ شروع بکارتاریخ آخرین روز کاریتاریخ ترک کارروزهای کارکرد
@(i + 1)@leftworkViewModelList[i].StartWorkDate@leftworkViewModelList[i].EndWorkDate@leftworkViewModelList[i].LeftWorkDate_
-
-
-
در صورت تمایل به محاسبه ی عناوین ذیل در فیش حقوقی، گزینه های موردنظر را فعال نمایید
-
-
- -
- -
- سنوات -
-
- -
- -
- عیدی و پاداش -
-
- -
- -
- مزد و مرخصی -
-
-
-
-
-
- - index = index + 1; - } - } - else - { -
-
-
-
-
-
- - -
-
-
- - -
-
-
-
-
-
- -
-
- -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
در صورت تمایل به محاسبه ی عناوین ذیل در فیش حقوقی، گزینه های موردنظر را فعال نمایید
-
-
-
- -
- سنوات -
-
- -
- -
- عیدی و پاداش -
-
-
- -
- مزد و مرخصی -
-
-
-
-
-
- } - - -
-
- - -
- -
-
-
- - - -
- - @* *@ -
- - - diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/LeftWorkInsurance.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/LeftWorkInsurance.cshtml deleted file mode 100644 index cb9cf94b..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/LeftWorkInsurance.cshtml +++ /dev/null @@ -1,1536 +0,0 @@ -@model CompanyManagment.App.Contracts.LeftWorkInsurance.LeftworkInsuranceDividedList - -@*adding bime*@ - - - - -@Html.AntiForgeryToken() -
- -
شروع بکار و ترک کار پرسنل در بخش بیمه
-
- @Model.WorkshopName (@Model.EmployeeName) -@*
- -
*@ -
- -
-
- -
- - -
-
-
- -
- @if (Model.LeftWorkInsuranceGroups != null && Model.LeftWorkInsuranceGroups.Count > 0) - { - int index = 1; - @foreach (var item in @Model.LeftWorkInsuranceGroups) - { -
-
-
-
-
-
- - -
-
-
- - -
-
-
- مشمول مزایا -
- @if (item.LeftworkInsuranceViewModels != null && item.LeftworkInsuranceViewModels.Count > 0) - { - - } - else - { - - } -
- عدم شمول مزایا -
-
-
-
- @if (index == 1) - { -
- -
-
- -
-
- - -
- } - else - { -
- -
-
- -
-
- - -
- } -
-
- - - - - - - - - - - - - - - - - - - - - @if (item.LeftworkInsuranceViewModels != null) - { - var leftworkInsuranceViewModelList = item.LeftworkInsuranceViewModels; - for (int i = 0; i < leftworkInsuranceViewModelList.Count; i++) - { - - - - - - - - - } - } - -
#تاریخ شروع بکارتاریخ آخرین روز کاریتاریخ ترک کارروزهای کارکرد
@(i + 1)@leftworkInsuranceViewModelList[i].StartWorkDate@leftworkInsuranceViewModelList[i].EndWorkDate@leftworkInsuranceViewModelList[i].LeftWorkDate_
-
-
-
-
- - index = index + 1; - } - } - else - { -
-
-
-
-
-
- - -
-
-
- - -
-
-
- مشمول مزایا -
- -
- عدم شمول مزایا -
-
-
-
-
- -
-
- -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- } - - -
-
- - -
-
-
-
- - -
-
- - - - - diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeave.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeave.cshtml deleted file mode 100644 index 6cf15e5e..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeave.cshtml +++ /dev/null @@ -1,501 +0,0 @@ -@model CompanyManagment.App.Contracts.Leave.CreateLeave -@{ - - int i = 1; - - -} -@{ - - -} -
- - -
- - - @**@ - -
-
-
- - - @**@ - @**@ - -
-
-
- - - - - - - \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeaveList.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeaveList.cshtml deleted file mode 100644 index b8441a4c..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/PaidLeaveList.cshtml +++ /dev/null @@ -1,92 +0,0 @@ -@model List -@{ - int i = 1; -} - - - - - - - - - - - - - @foreach (var item in Model) - { - - - - - - - @{ - i++; - } - - - } - -
# تاریخ شروع تاریخ پایان نوع مدت مرخصی مدت زمان(ساعت) عملیات
@i @item.StartLeave - @item.EndLeave - - @item.PaidLeaveType - - @item.LeaveHourses - - - - - -
- -
-
- - - \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/SickLeave.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/SickLeave.cshtml deleted file mode 100644 index 65235529..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/SickLeave.cshtml +++ /dev/null @@ -1,473 +0,0 @@ -@model CompanyManagment.App.Contracts.Leave.CreateLeave -@{ - int i = 1; -} -@{ - -} - - - -
- -
- - - - @**@ - - -
- -
-
- - - - - -
-
-@*
-
- - -
-
*@ -
- - - - - - \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/SickLeaveList.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/SickLeaveList.cshtml deleted file mode 100644 index 4a6dcc86..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/SickLeaveList.cshtml +++ /dev/null @@ -1,97 +0,0 @@ -@model List -@{ - int i = 1; -} -
-
-
-

سوابق مرخصی استعلاجی

-
-
-
-
- - - - - - - - - - - @foreach (var item in Model) - { - - - - - @{ - i++; - } - - - } - -
# تاریخ شروع تاریخ پایان عملیات
@i @item.StartLeave - @item.EndLeave - - - - - -
- -
-
-
-
-
-
-
- - - \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/alert.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/alert.cshtml deleted file mode 100644 index b6789b8f..00000000 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/alert.cshtml +++ /dev/null @@ -1,138 +0,0 @@ -@model CompanyManagment.App.Contracts.Checkout.CreateCheckout -@{ - - int i = 1; - int b = 0; -} -@if (Model.Contracts != null) -{ - @foreach (var item in Model.Contracts) - { - - @if (item.RedColor) - { - - } - @if (item.MoreThanOneMonth && item.Waiting == false) - { - - } - else if (item.Waiting && item.MoreThanOneMonth == false) - { - - } - else if (item.Waiting && item.MoreThanOneMonth) - { - - } - - - @i - - - - @if (item.Extension) - { - - - b++; - } - else - { - @if (item.RedColor) - { - - } - else - { - - } - - } - - - - - - @item.EmployeeName - - @{ - i++; - } - - } -} - - - - - - - - - diff --git a/ServiceHost/Pages/Index.cshtml b/ServiceHost/Pages/Index.cshtml index d790a3ff..19b4c2e4 100644 --- a/ServiceHost/Pages/Index.cshtml +++ b/ServiceHost/Pages/Index.cshtml @@ -1,761 +1,326 @@ @page @model IndexModel + @{ - ViewData["Title"] = "ورود"; + Layout = "Shared/_LayoutHome"; } -@section head -{ - @* *@ - - - - - - - - - - - - @* *@ - -} -@* *@ -@* *@ -
-
- -
- public double WithoutTaxPaymentDouble { get; set; } + public double OneTimeWithoutTaxPaymentDouble { get; set; } /// /// مبلغ پرداخت بدون مالیات /// string /// - public string WithoutTaxPaymentStr { get; set; } + public string OneTimeWithoutTaxPaymentStr { get; set; } /// /// مبلغ پرداخت کامل /// Double /// - public double TotalPaymentDouble { get; set; } + public double OneTimeTotalPaymentDouble { get; set; } /// /// مبلغ پرداخت کامل /// string /// - public string TotalPaymentStr { get; set; } + public string OneTimeTotalPaymentStr { get; set; } + + /// + /// مبلغ پرداخت بدون مالیات + /// Double + /// + public double MonthlyWithoutTaxPaymentDouble { get; set; } + + /// + /// مبلغ پرداخت بدون مالیات + /// string + /// + public string MonthlyWithoutTaxPaymentStr { get; set; } + + + /// + /// مبلغ پرداخت کامل + /// Double + /// + public double MonthlyTotalPaymentDouble { get; set; } + + /// + /// مبلغ پرداخت کامل + /// string + /// + public string MonthlyTotalPaymentStr { get; set; } + /// /// مالیات بر ارزش افزوده /// Double @@ -83,4 +109,9 @@ public class ReviewAndPaymentViewModel /// آی دی طرف حساب /// public long ContractingPartTempId { get; set; } + + /// + /// لیست اقساط ماهیانه + /// + public List MonthlyInstallments { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index c7bdbc8a..c7307dd1 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -367,7 +367,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati /// /// public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime") - { + { + //دریافت کارگاه ها var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); @@ -409,32 +410,92 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati //مالیات result.ValueAddedTaxDouble = tenPercent; result.ValueAddedTaxSt = tenPercent.ToMoney(); - if (paymentModel == "OneTime")//تخفیف 10 درصدی درصورت پرداخت یکجا - { + //پرداخت یکجا + #region OneTimePaymentResult - double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; + double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; + + + //مبلغ بدون مالیات و با تخفیف + result.OneTimeWithoutTaxPaymentDouble = discountOneTimePeyment; + result.OneTimeWithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); + + //مبلغ با مالیات + result.OneTimeTotalPaymentDouble = discountOneTimePeyment + tenPercent; + result.OneTimeTotalPaymentStr = result.OneTimeTotalPaymentDouble.ToMoney(); + #endregion - //مبلغ بدون مالیات و با تخفیف - result.WithoutTaxPaymentDouble = discountOneTimePeyment; - result.WithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); + //پرداخت ماهیانه + #region MonthlyPaymentResult - //مبلغ با مالیات - result.TotalPaymentDouble = discountOneTimePeyment + tenPercent; - result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); - } - else - { - //مبلغ بدون مالیات - result.WithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; - result.WithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + //مبلغ بدون مالیات + result.MonthlyWithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; + result.MonthlyWithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + + // مبلغ با مالیات + result.MonthlyTotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; + result.MonthlyTotalPaymentStr = result.MonthlyTotalPaymentDouble.ToMoney(); + var installmentList = new List(); - // مبلغ با مالیات - result.TotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; - result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney(); - } + var startDate = (DateTime.Now).ToFarsi(); - result.ContractingPartTempId = contractingPartyTempId; + if (periodModel == "1") + { + + installmentList.Add(new MonthlyInstallment() + { + InstallmentAmountStr = result.MonthlyTotalPaymentStr, + InstallmentCounter = "قسط شماره یک", + InstalmentDate = startDate + + }); + result.MonthlyInstallments = installmentList; + } + else + { + int instalmentCount = Convert.ToInt32(periodModel); + var instalmentAmount = result.MonthlyTotalPaymentDouble / instalmentCount; + var findEndOfMonth = startDate.FindeEndOfMonth(); + for (int i = 1; i <= instalmentCount; i++) + { + if (i > 1) + { + var currentMonthStart = ((findEndOfMonth.ToGeorgianDateTime()).AddDays(1)).ToFarsi(); + startDate = currentMonthStart.FindeEndOfMonth(); + findEndOfMonth = startDate; + } + + installmentList.Add(new MonthlyInstallment() + { + InstallmentAmountStr = instalmentAmount.ToMoney(), + InstallmentCounter = i switch + { + 1 => "قسط شماره یک", + 2 => "قسط شماره دو", + 3 => "قسط شماره سه", + 4 => "قسط شماره چهار", + 5 => "قسط شماره پنج", + 6 => "قسط شماره شش", + 7 => "قسط شماره هفت", + 8 => "قسط شماره هشت", + 9 => "قسط شماره نه", + 10 => "قسط شماره ده", + 11 => "قسط شماره یازده", + 12 => "قسط شماره دوازده", + _ => "قسط شماره دوازده", + }, + InstalmentDate = startDate + + }); + } + + } + + #endregion + + result.MonthlyInstallments = installmentList; + result.ContractingPartTempId = contractingPartyTempId; return result; diff --git a/ServiceHost/Pages/Register/Index.cshtml b/ServiceHost/Pages/Register/Index.cshtml index 8126abdb..f5e6925d 100644 --- a/ServiceHost/Pages/Register/Index.cshtml +++ b/ServiceHost/Pages/Register/Index.cshtml @@ -238,7 +238,7 @@
-
+
@@ -256,7 +256,7 @@
-
+
diff --git a/ServiceHost/Pages/Register/Index.cshtml.cs b/ServiceHost/Pages/Register/Index.cshtml.cs index e706a74e..4e2e0d74 100644 --- a/ServiceHost/Pages/Register/Index.cshtml.cs +++ b/ServiceHost/Pages/Register/Index.cshtml.cs @@ -73,9 +73,20 @@ namespace ServiceHost.Pages.register { data = result, }); - } + public async Task OnGetCreateOrUpdatePeriodTemp(List command,long contractingPartyTempId) + { + var result = await _temporaryClientRegistrationApplication.CreateOrUpdateWorkshopTemp(command, contractingPartyTempId); + + return new JsonResult(new + { + success = result.IsSuccedded, + message = result.Message, + }); + } + + public async Task OnPostCreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax) { var result = await _temporaryClientRegistrationApplication.CreateOrUpdateInstitutionContractTemp(contractingPartyTempId, periodModel, paymentModel, totalPayment, valueAddedTax); diff --git a/ServiceHost/Pages/Register/_Partials/_Step1.cshtml b/ServiceHost/Pages/Register/_Partials/_Step1.cshtml index 5d5383aa..8cb778ba 100644 --- a/ServiceHost/Pages/Register/_Partials/_Step1.cshtml +++ b/ServiceHost/Pages/Register/_Partials/_Step1.cshtml @@ -6,7 +6,7 @@
- +
-
+
-
-
+
+
-
@@ -23,16 +23,16 @@
مدت قرارداد
- - + + - - + + - - + + - +
@@ -40,48 +40,48 @@
-
+
مجموع مبالغ:
-
-
+
ارزش افزوده:
-
-
+
مبلغ قابل پرداخت:
-
@@ -96,6 +96,7 @@ var receivedCodeFromServerUrl = `@Url.Page("./Index", "ReceivedCodeFromServer")`; var totalPaymentAndWorkshopListUrl = `@Url.Page("./Index", "TotalPaymentAndWorkshopList")`; var createOrUpdateInstitutionContractTemp = `@Url.Page("./Index", "CreateOrUpdateInstitutionContractTemp")`; + var CreateOrUpdatePeriodTemp = `@Url.Page("./Index", "CreateOrUpdatePeriodTemp")`; \ No newline at end of file diff --git a/ServiceHost/Pages/Register/_Partials/_Step5.cshtml b/ServiceHost/Pages/Register/_Partials/_Step5.cshtml index 127844e5..1d34f766 100644 --- a/ServiceHost/Pages/Register/_Partials/_Step5.cshtml +++ b/ServiceHost/Pages/Register/_Partials/_Step5.cshtml @@ -28,21 +28,21 @@
-
- @*
+
+ @*
مبلغ قابل پرداخت:
۲۵,۰۰۰,۰۰۰ ریال
*@ -
+
مجموع مبالغ:
-
-
+
ارزش افزوده:
-
-
+
مبلغ قابل پرداخت:
-
diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css index 27cba5e1..c34b86f7 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/Index.css @@ -1,4 +1,9 @@ -.registerTitleSteps { +body { + height: 100vh; + overflow: hidden; +} + +.registerTitleSteps { font-size: 16px; font-weight: 900; color: #22A8A8; @@ -160,7 +165,9 @@ color: #A3E635; } - +#logoSvg { + width: 150px; +} .customRegisterForm { @@ -315,6 +322,10 @@ font-size: 13px !important; width: 122px !important; } + + #logoSvg { + width: 130px; + } } @media (max-width:992px) { @@ -337,6 +348,15 @@ .progressSteps.currentStep { display: flex; } + + body { + height: auto; + overflow: auto; + } + + #logoSvg { + width: 120px; + } } @media (max-width: 576px) { diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css index 8405b920..0a813e57 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css @@ -99,7 +99,7 @@ .main { - max-height: 480px; + height: 60vh; overflow-y: auto; } diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css index a00961ec..cb3d7e76 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css @@ -29,7 +29,7 @@ .cardHeight { - height: 500px; + height: 50%; overflow: auto; } @@ -180,6 +180,9 @@ display: grid; gap: 6px; grid-template-columns: repeat(2, minmax(0, 1fr)); + height: 120px; + overflow: auto; + align-content: start; } .infoPricesContainer .item { @@ -229,9 +232,9 @@ font-size: 11px; } - .cardHeight { + /*.cardHeight { height: 260px; - } + }*/ } @media (max-width:992px) { @@ -245,8 +248,12 @@ overflow: auto; } - .cardHeight { + /*.cardHeight { height: 48vh; + }*/ + + .checkLabelListOption { + font-size: 10px; } } diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css index 363e3b77..e3bf5a79 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step5.css @@ -13,7 +13,7 @@ .descriptionContainerStep5 { overflow-y: auto; - height: 66vh; + height: 60vh; } .titleDescStep5 { diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js index 3e015314..f099690b 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step1.js @@ -71,7 +71,7 @@ async function checkInputsStep1() { birthDate: birthdate, nationalCode: nationalCode }; - console.log(commandStep1); + var btnDisable = $('#btnGetUidInfo').addClass('disable'); var loading = $('#btnGetUidInfo .loading').show(); @@ -87,13 +87,15 @@ async function checkInputsStep1() { btnDisable.removeClass('disable'); loading.hide(); + // console.log(response.data); + // ************ Infos for Step 2 ************ $('#contractPartyId').val(response.data.id); $('#firstName').val(response.data.fName); $('#lastName').val(response.data.lName); $('#birthdayDate').val(response.data.dateOfBirthFa); $('#fatherName').val(response.data.fatherName); - $('#nationalNumber').val(response.data.nationalCode); + $('#nationalNumber').val(response.data.idNumber); globalPhone = response.data.phone; // The State and City diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js index 39bd8895..813f1524 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js @@ -11,9 +11,17 @@ $(document).ready(function () { $(".select2Option").select2({ language: "fa", dir: "rtl" - }); + }); + + autoScroll(); }); +function autoScroll() { + $('.main').animate({ + scrollTop: $('.accordion').height() + }, 2500); +} + $(document).on('input', '.operations-btns input[type="text"]', function() { let $input = $(this); let nameSpan = $input.closest(".accordion-item").find('.workshopListItem .workshopNameSpan'); @@ -169,7 +177,9 @@ function addNewWorkshop() { // Expand only the new one $newOperationsBtns.slideDown(300); - $newOpenBtn.addClass('expanded'); + $newOpenBtn.addClass('expanded'); + + autoScroll(); } $(document).on("click", ".btnRemove", function () { @@ -250,9 +260,9 @@ function createOrUpdateCommand() { return; } - let existingAmount = sumAmountArray.find(w => w.workshopDataId === dataId); + let existingAmount = sumAmountArray.find(w => w.workshopDataId === dataId); - let existingWorkshop = command.workshops.find(w => w.workshopId === workshopID); + let existingWorkshop = command.workshops.find(w => w.workshopId === dataId); if (existingWorkshop) { existingWorkshop.CountPerson = personnelCount; @@ -334,7 +344,7 @@ async function checkInputsStep3() { } - await loadSpecifiedWorkshop(); + await loadSpecifiedWorkshop(createOrUpdate); try { @@ -421,16 +431,14 @@ $(document).on('change', '.operations-btns select, .btnRadioContainer .radioOpti CountPerson: personnelCount, ...selectedOptions }; - - ajax.get(institutionPlanForWorkshopUrl, newWorkshopGetAmountCommand, false) - .then(response => { - console.log(response); + ajax.get(institutionPlanForWorkshopUrl, newWorkshopGetAmountCommand, false) + .then(response => { const amountStr = response.data.onlineAndInPersonSumAmountStr + ' ریال'; const amountDouble = response.data.onlineAndInPersonSumAmountDouble || 0; - let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); if (existingSumAmount) { + existingSumAmount.amountStr = amountStr; existingSumAmount.amount = amountDouble; } else { let newSumAmount = { @@ -440,6 +448,7 @@ $(document).on('change', '.operations-btns select, .btnRadioContainer .radioOpti }; sumAmountArray.push(newSumAmount); } + sumNumberOfAmount(); $(`#totalPayment_${dataId}`).text(amountStr); $(`#totalPay_${dataId}`).text(amountStr); @@ -464,7 +473,12 @@ function formatNumber(number) { } function loadWorkshopData(id) { - var html = ``; + var html = ``; + command = { + workshops: [] + }; + sumAmountArray = []; + ajax.get(getWorkshopTempUrl, { contractingPartyId: id }, true) .then(response => { if (response.data.length > 0) { @@ -558,7 +572,7 @@ function loadWorkshopData(id) {
`; - + var itemOfWorkshops = { Id: item.id, workshopId: item.id, @@ -687,6 +701,11 @@ function loadWorkshopData(id) { $(`#numberPersonnel_new_0`).val("25").trigger('change'); } + // console.log(command.workshops); + // console.log(sumAmountArray); sumNumberOfAmount(); - }); + + autoScroll(); + }); + } \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js index 24782eac..2b89c034 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js @@ -1,26 +1,36 @@ $(document).ready(function () { + $('input[name="radMonth"]').on('change', function () { + totalPaymentAndWorkshopList(); + }); + + $('input[name="radMonth"]:checked').trigger('change'); }); -async function loadSpecifiedWorkshop() { +function autoScrollStep4() { + $('.cardHeight').animate({ + scrollTop: $('.cardHeight').height() + }, 100); +} + +async function loadSpecifiedWorkshop(data) { var html = ''; - if (command.workshops.length > 0) { - command.workshops.forEach(function(item) { + if (data.workshops.length > 0) { + data.workshops.forEach(function(item) { html += `
نام کارگاه : ${item.WorkshopName}
ریال ${item.WorkshopServicesAmountStr}
-
+
- +
- +
- +
- + /// دریافت روزهای کارکرد پرسنل در لیست بیمه ماه مشخص شده diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs index ea15028c..6e654328 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ITemporaryClientRegistrationApplication.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading.Tasks; using _0_Framework.Application; using CompanyManagment.App.Contracts.InstitutionPlan; @@ -55,14 +56,14 @@ public interface ITemporaryClientRegistrationApplication /// /// Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, - string periodModel = "12", string paymentModel = "OneTime"); + string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth"); /// /// ایجاد یا ویرایش قرارداد موقت /// /// /// - Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax); + Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart); /// /// دریافت کد برای کلاینت diff --git a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs index 2a1c47c4..10912190 100644 --- a/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs +++ b/CompanyManagment.App.Contracts/TemporaryClientRegistration/ReviewAndPaymentViewModel.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace CompanyManagment.App.Contracts.TemporaryClientRegistration; @@ -114,4 +115,47 @@ public class ReviewAndPaymentViewModel /// لیست اقساط ماهیانه /// public List MonthlyInstallments { get; set; } + + + /// + /// تاریخ شروع قرارداد در اول ماه جاری + /// - + /// شمسی + /// + public string ContractStartCurrentMonthFa { get; set; } + + /// + /// تاریخ شروع قرارداد در اول ماه جاری + /// - + /// میلادی + /// + public DateTime ContractStartCurrentMonthGr { get; set; } + + /// + /// تاریخ شروع قرارداد در اول ماه بعد + /// - + /// شمسی + /// + public string ContractStartNextMonthFa{ get; set; } + + /// + /// تاریخ شروع قرارداد در اول ماه بعد + /// - + /// میلادی + /// + public DateTime ContractStartNextMonthGr { get; set; } + + /// + /// تاریخ پایان قرارداد + /// - + /// میلادی + /// + public DateTime ContractEndGr { get; set; } + + /// + /// تاریخ پایان قرارداد + /// - + /// شمسی + /// + public string ContractEndFa { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index c7307dd1..356e239d 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -18,683 +18,701 @@ namespace CompanyManagment.Application; public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrationApplication { - private readonly IContractingPartyTempRepository _contractingPartyTempRepository; - private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository; - private readonly IUidService _uidService; - private readonly IWorkshopTempRepository _workshopTempRepository; - private readonly IPlanPercentageRepository _planPercentageRepository; - private readonly IWorkshopServicesTempRepository _workshopServicesTempRepository; - private readonly IInstitutionContractTempRepository _institutionContractTempRepository; - private readonly ISmsService _smsService; - - public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IUidService uidService, IWorkshopTempRepository workshopTempRepository, IPlanPercentageRepository planPercentageRepository, IWorkshopServicesTempRepository workshopServicesTempRepository, IInstitutionContractTempRepository institutionContractTempRepository, ISmsService smsService) - { - _contractingPartyTempRepository = contractingPartyTempRepository; - _personalContractingPartyRepository = personalContractingPartyRepository; - _uidService = uidService; - _workshopTempRepository = workshopTempRepository; - _planPercentageRepository = planPercentageRepository; - _workshopServicesTempRepository = workshopServicesTempRepository; - _institutionContractTempRepository = institutionContractTempRepository; - _smsService = smsService; - } - - /// - /// احراز هویت - /// - /// - /// - /// - /// - public async Task> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile) - { - var op = new OperationResult(); - - #region Validations - - if (string.IsNullOrWhiteSpace(nationalCode) || string.IsNullOrWhiteSpace(dateOfBirth) || - string.IsNullOrWhiteSpace(mobile)) - return op.Failed("هیچ یک از فیلد ها نمیتواند خالی باشد"); - - - if (nationalCode.NationalCodeValid() != "valid") - return op.Failed("کد ملی نا معتبر است"); - - if (!dateOfBirth.IsPersianDateValid()) - return op.Failed("تاریخ تولد نا معتبر است"); - - if (!mobile.IsMobileValid()) - return op.Failed("شماره همراه نا معتبر است"); - - - - #endregion - - - var getExistContractingParty = await _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth); - - //اگر طرف حساب قبلا در دیتابیس وجود داشت - if (getExistContractingParty) - { - return op.Failed("طرف حساب با این مشخصات در سیستم وجود دارد"); - } - //اگر طرف حساب وجود نداشت - else - { - //دریافت اطلاعات طرف حساب موقت که قبلا ایجاد شده - var getExistTemp = _contractingPartyTempRepository.GetByNationalCode(nationalCode); - - var dateOfBirthGr = dateOfBirth.ToGeorgianDateTime(); - - - //اگر طرف حساب موقت قبلا ایجاد شده دیتای آن را برمیگرداند - if (getExistTemp != null) - { - var institutionContractTemp = await - _institutionContractTempRepository.GetInstitutionContractTemp(0, getExistTemp.Id); - - if (institutionContractTemp != null) - { - - if (institutionContractTemp.RegistrationStatus == "Completed") - return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); - } - - if (getExistTemp.DateOfBirth != dateOfBirthGr) - return op.Failed("تاریخ تولد مطابقت ندارد"); - if (getExistTemp.Phone != mobile) - return op.Failed("شما قبلا با شماره همراه دیگری ثبت نام نموده اید"); - return op.Succcedded(getExistTemp); - - } - //چک کردن مطابقت شماره همراه و کد ملی - var isMachMobilAndNationalCode = await _uidService.IsMachPhoneWithNationalCode(nationalCode, mobile); - if (isMachMobilAndNationalCode == null) - return op.Failed("خطا در سرویس احراز هویت"); - if (!isMachMobilAndNationalCode.IsMatched) - return op.Failed("شماره همراه وارد شده با کد ملی مطابقت ندارد"); - - //دریافت اطلاعات احراز هویت - var apiRespons = await _uidService.GetPersonalInfo(nationalCode, dateOfBirth); - - if (apiRespons == null) - return op.Failed("خطا در سرویس احراز هویت"); - if (apiRespons.ResponseContext.Status.Code != 0) - return op.Failed($"{apiRespons.ResponseContext.Status.Message}"); - - var idNumber = apiRespons.IdentificationInformation.ShenasnamehNumber == "0" - ? apiRespons.IdentificationInformation.NationalId - : apiRespons.IdentificationInformation.ShenasnamehNumber; - - //ایجاد طرف حساب موقت - var createTemp = new ContractingPartyTemp(apiRespons.BasicInformation.FirstName, - apiRespons.BasicInformation.LastName, nationalCode, idNumber, mobile, - apiRespons.BasicInformation.FatherName, "", "", "", - apiRespons.IdentificationInformation.ShenasnameSeri, - apiRespons.IdentificationInformation.ShenasnameSerial, apiRespons.BasicInformation.GenderEnum, - dateOfBirthGr); - await _contractingPartyTempRepository.CreateAsync(createTemp); - await _contractingPartyTempRepository.SaveChangesAsync(); - - var result = new ContractingPartyTempViewModel(); - result.Id = createTemp.id; - result.FName = createTemp.FName; - result.LName = createTemp.LName; - result.DateOfBirthFa = dateOfBirth; - result.FatherName = createTemp.FatherName; - result.IdNumberSerial = createTemp.IdNumberSerial; - result.IdNumber = idNumber; - - return op.Succcedded(result); - } - - - - } - - /// - /// تکمیل اطلاعات - /// - /// - /// - /// - /// - /// - - public async Task UpdateAddress(long id, string state, string city, string address) - { - var op = new OperationResult(); - var contractingPartyTemp = _contractingPartyTempRepository.Get(id); - - if (string.IsNullOrWhiteSpace(state) || string.IsNullOrWhiteSpace(city) || string.IsNullOrWhiteSpace(address)) - return op.Failed("اطلاعات ادرس را تکمیل کنید"); - - contractingPartyTemp.UpdateAddress(state, city, address); - await _contractingPartyTempRepository.SaveChangesAsync(); - - return op.Succcedded(); - } - - /// - /// دریافت کارگاه های ذخیره شده - /// - /// - /// - public Task> GetWorkshopTemp(long contractingPartyTempId) - { - return _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); - } - - /// - /// ایجاد یا ویرایش کارگاه و سرویس های آن - /// - /// - /// - public async Task CreateOrUpdateWorkshopTemp(List command, long contractingPartyTempId) - { - var op = new OperationResult(); - var updateWorkshopList = command.Where(x => x.Id > 0).ToList(); - var createNewWorkshopList = command.Where(x => x.Id == 0).ToList(); - - if (updateWorkshopList.Count == 0 && createNewWorkshopList.Count == 0) - return op.Failed("هیچ مجموعه ای ایجاد نشده است"); - var oldWorkshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); - - #region Update - if (updateWorkshopList.Count > 0) - { - var updateListIds = updateWorkshopList.Select(x => x.Id).ToList(); - var oldWorkshopsIds = oldWorkshops.Select(x => x.Id).ToList(); - var exceptWorkshops = oldWorkshopsIds.Except(updateListIds).ToList(); - if (exceptWorkshops.Any()) - await _workshopTempRepository.RemoveWorkshopTemps(exceptWorkshops); - - - foreach (var workshop in updateWorkshopList) - { - - if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) - return op.Failed("نام مجموعه نمی تواند خالی باشد"); - if (workshop.CountPerson == 0) - op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); - if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && - workshop.RollCall == false && workshop.Insurance == false) - op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); - var existWorkshops = _workshopTempRepository.Get(workshop.Id); - - if (existWorkshops != null) - { - if (workshop.ContractAndCheckout) - workshop.ContractAndCheckoutInPerson = true; - if (workshop.Insurance) - workshop.InsuranceInPerson = true; - - //دریافت مبالغ سرویس ها - var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); - if (plan.OnlineAndInPersonSumAmountDouble > 0) - { - //ویرایش مشخصات کارگاه - existWorkshops.Edit(workshop.WorkshopName, workshop.CountPerson, plan.OnlineAndInPersonSumAmountDouble); - await _workshopTempRepository.SaveChangesAsync(); - - //حذف سرویس های قبلی - _workshopServicesTempRepository.RemoveServices(workshop.Id); - - //سرویس قرداد - if (workshop.ContractAndCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, workshop.Id)); - //سرویس خدمات حضوری قرارداد - if (workshop.ContractAndCheckoutInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, workshop.Id)); - - //سرویس بیمه - if (workshop.Insurance) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("Insurance", workshop.CountPerson, workshop.Id)); - //سرویس خدمات حضوری بیمه - if (workshop.InsuranceInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, workshop.Id)); - - //سرویس حضورغیاب - if (workshop.RollCall) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("RollCall", workshop.CountPerson, workshop.Id)); - //سرویس فیش غیر رسمی - if (workshop.CustomizeCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, workshop.Id)); - - await _workshopServicesTempRepository.SaveChangesAsync(); - } - - } - - } - - } - #endregion - - #region Create - - if (createNewWorkshopList.Count > 0) - { - foreach (var workshop in createNewWorkshopList) - { - - if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) - return op.Failed("نام مجموعه نمی تواند خالی باشد"); - if (workshop.CountPerson == 0) - op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); - if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && - workshop.RollCall == false && workshop.Insurance == false) - op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); - - if (workshop.ContractAndCheckout) - workshop.ContractAndCheckoutInPerson = true; - if (workshop.Insurance) - workshop.InsuranceInPerson = true; - - //دریافت مبالغ سرویس ها - var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); - if (plan.OnlineAndInPersonSumAmountDouble > 0) - { - - - var createNewWorkshopTemp = new WorkshopTemp(workshop.WorkshopName, workshop.CountPerson, - workshop.ContractingPartyTempId, plan.OnlineAndInPersonSumAmountDouble); - await _workshopTempRepository.CreateAsync(createNewWorkshopTemp); - await _workshopTempRepository.SaveChangesAsync(); - - - - //سرویس قرداد - if (workshop.ContractAndCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); - //سرویس خدمات حضوری قرارداد - if (workshop.ContractAndCheckoutInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); - - //سرویس بیمه - if (workshop.Insurance) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("Insurance", workshop.CountPerson, createNewWorkshopTemp.id)); - //سرویس خدمات حضوری بیمه - if (workshop.InsuranceInPerson) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); - - //سرویس حضورغیاب - if (workshop.RollCall) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("RollCall", workshop.CountPerson, createNewWorkshopTemp.id)); - //سرویس فیش غیر رسمی - if (workshop.CustomizeCheckout) - await _workshopServicesTempRepository.CreateAsync( - new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); - - await _workshopServicesTempRepository.SaveChangesAsync(); - } - - } - } - - #endregion - - - return op.Succcedded(); - } - - /// - /// دریافت جمع کل خدمات برای یک کارگاه - /// - /// - /// - public InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel workshop) - { - return _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); - } - - - /// - /// بررسی و پرداخت - /// اطلاعات کامل مبالغ - /// - /// - /// - public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime") + private readonly IContractingPartyTempRepository _contractingPartyTempRepository; + private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository; + private readonly IUidService _uidService; + private readonly IWorkshopTempRepository _workshopTempRepository; + private readonly IPlanPercentageRepository _planPercentageRepository; + private readonly IWorkshopServicesTempRepository _workshopServicesTempRepository; + private readonly IInstitutionContractTempRepository _institutionContractTempRepository; + private readonly ISmsService _smsService; + + public TemporaryClientRegistrationApplication(IContractingPartyTempRepository contractingPartyTempRepository, IPersonalContractingPartyRepository personalContractingPartyRepository, IUidService uidService, IWorkshopTempRepository workshopTempRepository, IPlanPercentageRepository planPercentageRepository, IWorkshopServicesTempRepository workshopServicesTempRepository, IInstitutionContractTempRepository institutionContractTempRepository, ISmsService smsService) { - - //دریافت کارگاه ها - var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); + _contractingPartyTempRepository = contractingPartyTempRepository; + _personalContractingPartyRepository = personalContractingPartyRepository; + _uidService = uidService; + _workshopTempRepository = workshopTempRepository; + _planPercentageRepository = planPercentageRepository; + _workshopServicesTempRepository = workshopServicesTempRepository; + _institutionContractTempRepository = institutionContractTempRepository; + _smsService = smsService; + } - double totalPayment1MonthDouble = 0; + /// + /// احراز هویت + /// + /// + /// + /// + /// + public async Task> CreateContractingPartyTemp(string nationalCode, string dateOfBirth, string mobile) + { + var op = new OperationResult(); - //بدست آوردن جمع کل برای یک ماه - foreach (var workshop in workshops) - { - totalPayment1MonthDouble += workshop.WorkshopServicesAmount; - } + #region Validations - if (totalPayment1MonthDouble == 0) - return new ReviewAndPaymentViewModel(); - - var result = new ReviewAndPaymentViewModel(); - - int months = 0; - months = periodModel switch - { - "1" => 1, - "3" => 3, - "6" => 6, - "12" => 12, - _ => 12, - }; - //رند کردن مبالغ کارگاه ها - var roundAmount = (((Convert.ToInt32(totalPayment1MonthDouble))) / 1000000) * 1000000; - double roundAmount2 = roundAmount; - //بدست آوردن جمع کل مبالغ کارگاه بر اساس مدت قراداد - result.SumOfWorkshopsPaymentDouble = months * roundAmount2; - result.SumOfWorkshopsPaymentPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + if (string.IsNullOrWhiteSpace(nationalCode) || string.IsNullOrWhiteSpace(dateOfBirth) || + string.IsNullOrWhiteSpace(mobile)) + return op.Failed("هیچ یک از فیلد ها نمیتواند خالی باشد"); - result.PeriodModel = periodModel; - result.PaymentModel = paymentModel; + if (nationalCode.NationalCodeValid() != "valid") + return op.Failed("کد ملی نا معتبر است"); + + if (!dateOfBirth.IsPersianDateValid()) + return op.Failed("تاریخ تولد نا معتبر است"); + + if (!mobile.IsMobileValid()) + return op.Failed("شماره همراه نا معتبر است"); - var tenPercent = result.SumOfWorkshopsPaymentDouble * 10 / 100; - //مالیات - result.ValueAddedTaxDouble = tenPercent; - result.ValueAddedTaxSt = tenPercent.ToMoney(); + + #endregion + + + var getExistContractingParty = await _contractingPartyTempRepository.CheckExistOrAuthenticated(nationalCode, dateOfBirth); + + //اگر طرف حساب قبلا در دیتابیس وجود داشت + if (getExistContractingParty) + { + return op.Failed("طرف حساب با این مشخصات در سیستم وجود دارد"); + } + //اگر طرف حساب وجود نداشت + else + { + //دریافت اطلاعات طرف حساب موقت که قبلا ایجاد شده + var getExistTemp = _contractingPartyTempRepository.GetByNationalCode(nationalCode); + + var dateOfBirthGr = dateOfBirth.ToGeorgianDateTime(); + + + //اگر طرف حساب موقت قبلا ایجاد شده دیتای آن را برمیگرداند + if (getExistTemp != null) + { + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, getExistTemp.Id); + + if (institutionContractTemp != null) + { + + if (institutionContractTemp.RegistrationStatus == "Completed") + return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); + } + + if (getExistTemp.DateOfBirth != dateOfBirthGr) + return op.Failed("تاریخ تولد مطابقت ندارد"); + if (getExistTemp.Phone != mobile) + return op.Failed("شما قبلا با شماره همراه دیگری ثبت نام نموده اید"); + return op.Succcedded(getExistTemp); + + } + //چک کردن مطابقت شماره همراه و کد ملی + var isMachMobilAndNationalCode = await _uidService.IsMachPhoneWithNationalCode(nationalCode, mobile); + if (isMachMobilAndNationalCode == null) + return op.Failed("خطا در سرویس احراز هویت"); + if (!isMachMobilAndNationalCode.IsMatched) + return op.Failed("شماره همراه وارد شده با کد ملی مطابقت ندارد"); + + //دریافت اطلاعات احراز هویت + var apiRespons = await _uidService.GetPersonalInfo(nationalCode, dateOfBirth); + + if (apiRespons == null) + return op.Failed("خطا در سرویس احراز هویت"); + if (apiRespons.ResponseContext.Status.Code != 0) + return op.Failed($"{apiRespons.ResponseContext.Status.Message}"); + + var idNumber = apiRespons.IdentificationInformation.ShenasnamehNumber == "0" + ? apiRespons.IdentificationInformation.NationalId + : apiRespons.IdentificationInformation.ShenasnamehNumber; + + //ایجاد طرف حساب موقت + var createTemp = new ContractingPartyTemp(apiRespons.BasicInformation.FirstName, + apiRespons.BasicInformation.LastName, nationalCode, idNumber, mobile, + apiRespons.BasicInformation.FatherName, "", "", "", + apiRespons.IdentificationInformation.ShenasnameSeri, + apiRespons.IdentificationInformation.ShenasnameSerial, apiRespons.BasicInformation.GenderEnum, + dateOfBirthGr); + await _contractingPartyTempRepository.CreateAsync(createTemp); + await _contractingPartyTempRepository.SaveChangesAsync(); + + var result = new ContractingPartyTempViewModel(); + result.Id = createTemp.id; + result.FName = createTemp.FName; + result.LName = createTemp.LName; + result.DateOfBirthFa = dateOfBirth; + result.FatherName = createTemp.FatherName; + result.IdNumberSerial = createTemp.IdNumberSerial; + result.IdNumber = idNumber; + + return op.Succcedded(result); + } + + + + } + + /// + /// تکمیل اطلاعات + /// + /// + /// + /// + /// + /// + + public async Task UpdateAddress(long id, string state, string city, string address) + { + var op = new OperationResult(); + var contractingPartyTemp = _contractingPartyTempRepository.Get(id); + + if (string.IsNullOrWhiteSpace(state) || string.IsNullOrWhiteSpace(city) || string.IsNullOrWhiteSpace(address)) + return op.Failed("اطلاعات ادرس را تکمیل کنید"); + + contractingPartyTemp.UpdateAddress(state, city, address); + await _contractingPartyTempRepository.SaveChangesAsync(); + + return op.Succcedded(); + } + + /// + /// دریافت کارگاه های ذخیره شده + /// + /// + /// + public Task> GetWorkshopTemp(long contractingPartyTempId) + { + return _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); + } + + /// + /// ایجاد یا ویرایش کارگاه و سرویس های آن + /// + /// + /// + public async Task CreateOrUpdateWorkshopTemp(List command, long contractingPartyTempId) + { + var op = new OperationResult(); + var updateWorkshopList = command.Where(x => x.Id > 0).ToList(); + var createNewWorkshopList = command.Where(x => x.Id == 0).ToList(); + + if (updateWorkshopList.Count == 0 && createNewWorkshopList.Count == 0) + return op.Failed("هیچ مجموعه ای ایجاد نشده است"); + var oldWorkshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); + + #region Update + if (updateWorkshopList.Count > 0) + { + var updateListIds = updateWorkshopList.Select(x => x.Id).ToList(); + var oldWorkshopsIds = oldWorkshops.Select(x => x.Id).ToList(); + var exceptWorkshops = oldWorkshopsIds.Except(updateListIds).ToList(); + if (exceptWorkshops.Any()) + await _workshopTempRepository.RemoveWorkshopTemps(exceptWorkshops); + + + foreach (var workshop in updateWorkshopList) + { + + if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) + return op.Failed("نام مجموعه نمی تواند خالی باشد"); + if (workshop.CountPerson == 0) + op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); + if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && + workshop.RollCall == false && workshop.Insurance == false) + op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); + var existWorkshops = _workshopTempRepository.Get(workshop.Id); + + if (existWorkshops != null) + { + if (workshop.ContractAndCheckout) + workshop.ContractAndCheckoutInPerson = true; + if (workshop.Insurance) + workshop.InsuranceInPerson = true; + + //دریافت مبالغ سرویس ها + var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); + if (plan.OnlineAndInPersonSumAmountDouble > 0) + { + //ویرایش مشخصات کارگاه + existWorkshops.Edit(workshop.WorkshopName, workshop.CountPerson, plan.OnlineAndInPersonSumAmountDouble); + await _workshopTempRepository.SaveChangesAsync(); + + //حذف سرویس های قبلی + _workshopServicesTempRepository.RemoveServices(workshop.Id); + + //سرویس قرداد + if (workshop.ContractAndCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, workshop.Id)); + //سرویس خدمات حضوری قرارداد + if (workshop.ContractAndCheckoutInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, workshop.Id)); + + //سرویس بیمه + if (workshop.Insurance) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("Insurance", workshop.CountPerson, workshop.Id)); + //سرویس خدمات حضوری بیمه + if (workshop.InsuranceInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, workshop.Id)); + + //سرویس حضورغیاب + if (workshop.RollCall) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("RollCall", workshop.CountPerson, workshop.Id)); + //سرویس فیش غیر رسمی + if (workshop.CustomizeCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, workshop.Id)); + + await _workshopServicesTempRepository.SaveChangesAsync(); + } + + } + + } + + } + #endregion + + #region Create + + if (createNewWorkshopList.Count > 0) + { + foreach (var workshop in createNewWorkshopList) + { + + if (string.IsNullOrWhiteSpace(workshop.WorkshopName)) + return op.Failed("نام مجموعه نمی تواند خالی باشد"); + if (workshop.CountPerson == 0) + op.Failed($"تعداد پرسنل مجوعه {workshop.WorkshopName} صفر است"); + if (workshop.ContractAndCheckout == false && workshop.CustomizeCheckout == false && + workshop.RollCall == false && workshop.Insurance == false) + op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است"); + + if (workshop.ContractAndCheckout) + workshop.ContractAndCheckoutInPerson = true; + if (workshop.Insurance) + workshop.InsuranceInPerson = true; + + //دریافت مبالغ سرویس ها + var plan = _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); + if (plan.OnlineAndInPersonSumAmountDouble > 0) + { + + + var createNewWorkshopTemp = new WorkshopTemp(workshop.WorkshopName, workshop.CountPerson, + workshop.ContractingPartyTempId, plan.OnlineAndInPersonSumAmountDouble); + await _workshopTempRepository.CreateAsync(createNewWorkshopTemp); + await _workshopTempRepository.SaveChangesAsync(); + + + + //سرویس قرداد + if (workshop.ContractAndCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); + //سرویس خدمات حضوری قرارداد + if (workshop.ContractAndCheckoutInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("ContractAndCheckoutInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); + + //سرویس بیمه + if (workshop.Insurance) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("Insurance", workshop.CountPerson, createNewWorkshopTemp.id)); + //سرویس خدمات حضوری بیمه + if (workshop.InsuranceInPerson) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("InsuranceInPerson", workshop.CountPerson, createNewWorkshopTemp.id)); + + //سرویس حضورغیاب + if (workshop.RollCall) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("RollCall", workshop.CountPerson, createNewWorkshopTemp.id)); + //سرویس فیش غیر رسمی + if (workshop.CustomizeCheckout) + await _workshopServicesTempRepository.CreateAsync( + new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, createNewWorkshopTemp.id)); + + await _workshopServicesTempRepository.SaveChangesAsync(); + } + + } + } + + #endregion + + + return op.Succcedded(); + } + + /// + /// دریافت جمع کل خدمات برای یک کارگاه + /// + /// + /// + public InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel workshop) + { + return _planPercentageRepository.GetInstitutionPlanForWorkshop(workshop); + } + + + /// + /// بررسی و پرداخت + /// اطلاعات کامل مبالغ + /// + /// + /// + public async Task GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth") + { + + //دریافت کارگاه ها + var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId); + + double totalPayment1MonthDouble = 0; + + //بدست آوردن جمع کل برای یک ماه + foreach (var workshop in workshops) + { + totalPayment1MonthDouble += workshop.WorkshopServicesAmount; + } + + if (totalPayment1MonthDouble == 0) + return new ReviewAndPaymentViewModel(); + + var result = new ReviewAndPaymentViewModel(); + + int months = 0; + months = periodModel switch + { + "1" => 1, + "3" => 3, + "6" => 6, + "12" => 12, + _ => 12, + }; + //رند کردن مبالغ کارگاه ها + var roundAmount = (((Convert.ToInt64(totalPayment1MonthDouble))) / 1000000) * 1000000; + double roundAmount2 = roundAmount; + //بدست آوردن جمع کل مبالغ کارگاه بر اساس مدت قراداد + result.SumOfWorkshopsPaymentDouble = months * roundAmount2; + result.SumOfWorkshopsPaymentPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); + + + result.PeriodModel = periodModel; + result.PaymentModel = paymentModel; + + + var tenPercent = result.SumOfWorkshopsPaymentDouble * 10 / 100; + //مالیات + result.ValueAddedTaxDouble = tenPercent; + result.ValueAddedTaxSt = tenPercent.ToMoney(); //پرداخت یکجا #region OneTimePaymentResult - double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; - - - //مبلغ بدون مالیات و با تخفیف - result.OneTimeWithoutTaxPaymentDouble = discountOneTimePeyment; - result.OneTimeWithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); - - //مبلغ با مالیات - result.OneTimeTotalPaymentDouble = discountOneTimePeyment + tenPercent; - result.OneTimeTotalPaymentStr = result.OneTimeTotalPaymentDouble.ToMoney(); + double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent; + + + //مبلغ بدون مالیات و با تخفیف + result.OneTimeWithoutTaxPaymentDouble = discountOneTimePeyment; + result.OneTimeWithoutTaxPaymentStr = discountOneTimePeyment.ToMoney(); + + //مبلغ با مالیات + result.OneTimeTotalPaymentDouble = discountOneTimePeyment + tenPercent; + result.OneTimeTotalPaymentStr = result.OneTimeTotalPaymentDouble.ToMoney(); #endregion //پرداخت ماهیانه #region MonthlyPaymentResult - //مبلغ بدون مالیات - result.MonthlyWithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; - result.MonthlyWithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); - - // مبلغ با مالیات - result.MonthlyTotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; - result.MonthlyTotalPaymentStr = result.MonthlyTotalPaymentDouble.ToMoney(); - var installmentList = new List(); + //مبلغ بدون مالیات + result.MonthlyWithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble; + result.MonthlyWithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney(); - var startDate = (DateTime.Now).ToFarsi(); + // مبلغ با مالیات + result.MonthlyTotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent; + result.MonthlyTotalPaymentStr = result.MonthlyTotalPaymentDouble.ToMoney(); + var installmentList = new List(); - if (periodModel == "1") - { + var startDate = (DateTime.Now).ToFarsi(); + result.ContractStartCurrentMonthFa = $"{startDate.Substring(0, 8)}01"; + result.ContractStartCurrentMonthGr = result.ContractStartCurrentMonthFa.ToGeorgianDateTime(); + startDate = result.ContractStartCurrentMonthFa; - installmentList.Add(new MonthlyInstallment() - { - InstallmentAmountStr = result.MonthlyTotalPaymentStr, - InstallmentCounter = "قسط شماره یک", - InstalmentDate = startDate + result.ContractStartNextMonthGr = ((startDate.FindeEndOfMonth()).ToGeorgianDateTime()).AddDays(1); + result.ContractStartNextMonthFa = result.ContractStartNextMonthGr.ToFarsi(); - }); - result.MonthlyInstallments = installmentList; - } - else - { - int instalmentCount = Convert.ToInt32(periodModel); - var instalmentAmount = result.MonthlyTotalPaymentDouble / instalmentCount; - var findEndOfMonth = startDate.FindeEndOfMonth(); - for (int i = 1; i <= instalmentCount; i++) - { - if (i > 1) - { - var currentMonthStart = ((findEndOfMonth.ToGeorgianDateTime()).AddDays(1)).ToFarsi(); - startDate = currentMonthStart.FindeEndOfMonth(); - findEndOfMonth = startDate; - } + if (contractStartType == "nextMonth") + startDate = result.ContractStartNextMonthFa; - installmentList.Add(new MonthlyInstallment() - { - InstallmentAmountStr = instalmentAmount.ToMoney(), - InstallmentCounter = i switch - { - 1 => "قسط شماره یک", - 2 => "قسط شماره دو", - 3 => "قسط شماره سه", - 4 => "قسط شماره چهار", - 5 => "قسط شماره پنج", - 6 => "قسط شماره شش", - 7 => "قسط شماره هفت", - 8 => "قسط شماره هشت", - 9 => "قسط شماره نه", - 10 => "قسط شماره ده", - 11 => "قسط شماره یازده", - 12 => "قسط شماره دوازده", - _ => "قسط شماره دوازده", - }, - InstalmentDate = startDate - }); - } - } + var findeEnd = Tools.FindEndOfContract(startDate, periodModel); + var contractEndDate = findeEnd.endDateGr; + result.ContractEndGr = contractEndDate; + result.ContractEndFa = contractEndDate.ToFarsi(); + + if (periodModel == "1") + { + + installmentList.Add(new MonthlyInstallment() + { + InstallmentAmountStr = result.MonthlyTotalPaymentStr, + InstallmentCounter = "سررسید پرداخت اول", + InstalmentDate = (DateTime.Now).ToFarsi() + + }); + result.MonthlyInstallments = installmentList; + } + else + { + int instalmentCount = Convert.ToInt32(periodModel); + var instalmentAmount = result.MonthlyTotalPaymentDouble / instalmentCount; + var findEndOfMonth = startDate.FindeEndOfMonth(); + for (int i = 1; i <= instalmentCount; i++) + { + if (i > 1) + { + var currentMonthStart = ((findEndOfMonth.ToGeorgianDateTime()).AddDays(1)).ToFarsi(); + startDate = currentMonthStart.FindeEndOfMonth(); + findEndOfMonth = startDate; + } + + installmentList.Add(new MonthlyInstallment() + { + InstallmentAmountStr = instalmentAmount.ToMoney(), + InstallmentCounter = i switch + { + 1 => "سررسید پرداخت اول", + 2 => "سررسید پرداخت دوم", + 3 => "سررسید پرداخت سوم", + 4 => "سررسید پرداخت چهارم", + 5 => "سررسید پرداخت پنجم", + 6 => "سررسید پرداخت ششم", + 7 => "سررسید پرداخت هفتم", + 8 => "سررسید پرداخت هشتم", + 9 => "سررسید پرداخت نهم", + 10 => "سررسید پرداخت دهم", + 11 => "سررسید پرداخت یازدهم", + 12 => "سررسید پرداخت دوازدهم", + _ => "سررسید پرداخت دوازدهم", + }, + InstalmentDate = startDate + + }); + } + + } #endregion - + result.MonthlyInstallments = installmentList; result.ContractingPartTempId = contractingPartyTempId; - return result; + return result; - } + } - /// - /// ایجاد یا ویرایش قرارداد موقت - /// - /// - /// - public async Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax) - { - - var op = new OperationResult(); - var institutionContractTemp = await - _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); - - if (institutionContractTemp == null) - { - var periodModelInt = Convert.ToInt32(periodModel); - var contractstart = DateTime.Now; - var contractEnd = DateTime.Now.AddMonths(periodModelInt); - var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractstart, contractEnd, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); - _institutionContractTempRepository.Create(create); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(); - } - else - { - if (institutionContractTemp.VerifyCodeEndTime != null) - { - var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value ); - if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0)) - return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); - } - - if (institutionContractTemp.RegistrationStatus == "Completed") - return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); - - - var periodModelInt = Convert.ToInt32(periodModel); - var contractstart = DateTime.Now; - var contractEnd = DateTime.Now.AddMonths(periodModelInt); - var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); - update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractstart, contractEnd, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(); - } - - - } - - - /// - /// دریافت کد برای کلاینت - /// از طرف سرور - /// - /// - /// - public async Task ReceivedCodeFromServer(long contractingPartyTempId) - { + /// + /// ایجاد یا ویرایش قرارداد موقت + /// + /// + /// + public async Task CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart) + { var op = new OperationResult(); - var institutionContractTemp = await + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); + var contractStartDate = contractStart; + string contractStartFa = contractStart.ToFarsi(); + var findeEnd = Tools.FindEndOfContract(contractStartFa, periodModel); + var contractEndDate = findeEnd.endDateGr; + if (institutionContractTemp == null) + { + var periodModelInt = Convert.ToInt32(periodModel); + + var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); + _institutionContractTempRepository.Create(create); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(); + } + else + { + if (institutionContractTemp.VerifyCodeEndTime != null) + { + var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value); + if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0)) + return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); + } + + if (institutionContractTemp.RegistrationStatus == "Completed") + return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); + + + var periodModelInt = Convert.ToInt32(periodModel); + var contractstart = DateTime.Now; + var contractEnd = DateTime.Now.AddMonths(periodModelInt); + var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); + update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(); + } + + + } + + + /// + /// دریافت کد برای کلاینت + /// از طرف سرور + /// + /// + /// + public async Task ReceivedCodeFromServer(long contractingPartyTempId) + { + + var op = new OperationResult(); + var institutionContractTemp = await _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); if (institutionContractTemp == null) return op.Failed("خطا"); - var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); + var update = _institutionContractTempRepository.Get(institutionContractTemp.Id); - if (institutionContractTemp.RegistrationStatus == "BeforeSendVerifyCode") - { - //ساخت کد شش رقمی - Random generator = new Random(); - String code = generator.Next(1, 1000000).ToString("D6"); - //ارسال اس ام اس - var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); - var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); + if (institutionContractTemp.RegistrationStatus == "BeforeSendVerifyCode") + { + //ساخت کد شش رقمی + Random generator = new Random(); + String code = generator.Next(1, 1000000).ToString("D6"); + //ارسال اس ام اس + var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); + var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); - if (!sendResult.IsSuccedded) - return op.Failed($"{sendResult.Message}"); + if (!sendResult.IsSuccedded) + return op.Failed($"{sendResult.Message}"); - //ذخیره کد در دیتا بیس - //ذخیره تاریخ ارسال و مهلت پایان - //ذخیره آیدی پیامک - //تغییر وضعیت به ارسال شده - if (update != null) - { - update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(1, "کد برای شما پیامک شد"); - } + //ذخیره کد در دیتا بیس + //ذخیره تاریخ ارسال و مهلت پایان + //ذخیره آیدی پیامک + //تغییر وضعیت به ارسال شده + if (update != null) + { + update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(1, "کد برای شما پیامک شد"); + } - } + } - if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent") + if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent") - { + { - if(DateTime.Now < institutionContractTemp.VerifyCodeEndTime.Value) - return op.Failed("کد دریافت شده را وارد کنید"); - var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value); - if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))) - return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); + if (DateTime.Now < institutionContractTemp.VerifyCodeEndTime.Value) + return op.Failed("کد دریافت شده را وارد کنید"); + var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value); + if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))) + return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید"); - if ((spaning > new TimeSpan(0, 1, 0))) - { - //ساخت کد شش رقمی - Random generator = new Random(); - String code = generator.Next(1, 1000000).ToString("D6"); - //ارسال اس ام اس - var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); - var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); + if ((spaning > new TimeSpan(0, 1, 0))) + { + //ساخت کد شش رقمی + Random generator = new Random(); + String code = generator.Next(1, 1000000).ToString("D6"); + //ارسال اس ام اس + var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId); + var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code); - if (!sendResult.IsSuccedded) - return op.Failed($"{sendResult.Message}"); + if (!sendResult.IsSuccedded) + return op.Failed($"{sendResult.Message}"); - //ذخیره کد در دیتا بیس - //ذخیره تاریخ ارسال و مهلت پایان - //ذخیره آیدی پیامک - //تغییر وضعیت به ارسال شده + //ذخیره کد در دیتا بیس + //ذخیره تاریخ ارسال و مهلت پایان + //ذخیره آیدی پیامک + //تغییر وضعیت به ارسال شده - if (update != null) - { - update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); - _institutionContractTempRepository.SaveChanges(); - return op.Succcedded(1, "کد برای شما پیامک شد"); - } + if (update != null) + { + update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2)); + _institutionContractTempRepository.SaveChanges(); + return op.Succcedded(1, "کد برای شما پیامک شد"); + } - } + } - } + } - //if (institutionContractTemp.RegistrationStatus == "ReceivedCodeFromClient") - // return op.Succcedded(2, "انتقال به بخش پرداخت"); + //if (institutionContractTemp.RegistrationStatus == "ReceivedCodeFromClient") + // return op.Succcedded(2, "انتقال به بخش پرداخت"); - if (institutionContractTemp.RegistrationStatus == "Completed") - return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); - return op.Failed("خظا"); - } + if (institutionContractTemp.RegistrationStatus == "Completed") + return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید"); + return op.Failed("خظا"); + } - /// - /// ورود کد از طرف کلاینت - /// برا چک کردن - /// - /// - /// - /// - public async Task CheckVerifyCodeIsTrue(long contractingPartyTempId, string verifyCode) - { - var op = new OperationResult(); - var institutionContractTemp = await - _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); - if (institutionContractTemp == null) - return op.Failed("خظا"); - if (institutionContractTemp.RegistrationStatus != "VerifyCodeSent") - return op.Failed("خطا"); + /// + /// ورود کد از طرف کلاینت + /// برا چک کردن + /// + /// + /// + /// + public async Task CheckVerifyCodeIsTrue(long contractingPartyTempId, string verifyCode) + { + var op = new OperationResult(); + var institutionContractTemp = await + _institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId); + if (institutionContractTemp == null) + return op.Failed("خظا"); + if (institutionContractTemp.RegistrationStatus != "VerifyCodeSent") + return op.Failed("خطا"); - if (institutionContractTemp.VerifyCodeEndTime < DateTime.Now) - return op.Failed("کد شما منقضی شده است"); + if (institutionContractTemp.VerifyCodeEndTime < DateTime.Now) + return op.Failed("کد شما منقضی شده است"); - if (institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now) - { - if (institutionContractTemp.VerifyCode == verifyCode) - { + if (institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now) + { + if (institutionContractTemp.VerifyCode == verifyCode) + { - return op.Succcedded(); - } - else - { - return op.Failed("کد وارد شده صحیح نیست"); - } + return op.Succcedded(); + } + else + { + return op.Failed("کد وارد شده صحیح نیست"); + } - } + } - return op.Failed("کد وارد شده صحیح نیست"); - } + return op.Failed("کد وارد شده صحیح نیست"); + } - /// - /// تکمیل پرداخت - /// - /// - /// - /// - public async Task PayOffCompleted(long contractingPartyTempId) - { - var op = new OperationResult(); - return op.Succcedded(); - } + /// + /// تکمیل پرداخت + /// + /// + /// + /// + public async Task PayOffCompleted(long contractingPartyTempId) + { + var op = new OperationResult(); + return op.Succcedded(); + } } \ No newline at end of file diff --git a/ServiceHost/Pages/Register/Index.cshtml.cs b/ServiceHost/Pages/Register/Index.cshtml.cs index 4e2e0d74..41dfc6c9 100644 --- a/ServiceHost/Pages/Register/Index.cshtml.cs +++ b/ServiceHost/Pages/Register/Index.cshtml.cs @@ -66,9 +66,9 @@ namespace ServiceHost.Pages.register } - public async Task OnGetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime") + public async Task OnGetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth") { - var result = await _temporaryClientRegistrationApplication.GetTotalPaymentAndWorkshopList(contractingPartyTempId, periodModel, paymentModel); + var result = await _temporaryClientRegistrationApplication.GetTotalPaymentAndWorkshopList(contractingPartyTempId, periodModel, paymentModel, contractStartType); return new JsonResult(new { data = result, @@ -87,9 +87,9 @@ namespace ServiceHost.Pages.register } - public async Task OnPostCreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax) + public async Task OnPostCreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart) { - var result = await _temporaryClientRegistrationApplication.CreateOrUpdateInstitutionContractTemp(contractingPartyTempId, periodModel, paymentModel, totalPayment, valueAddedTax); + var result = await _temporaryClientRegistrationApplication.CreateOrUpdateInstitutionContractTemp(contractingPartyTempId, periodModel, paymentModel, totalPayment, valueAddedTax, contractStart); return new JsonResult(new { success = result.IsSuccedded, diff --git a/ServiceHost/Pages/Register/_Partials/_Step4.cshtml b/ServiceHost/Pages/Register/_Partials/_Step4.cshtml index b205d28a..ee144b89 100644 --- a/ServiceHost/Pages/Register/_Partials/_Step4.cshtml +++ b/ServiceHost/Pages/Register/_Partials/_Step4.cshtml @@ -6,7 +6,7 @@
-
+
@@ -16,75 +16,93 @@ پرداخت یکجا
-
مدت قرارداد
-
- - +
+
مدت قرارداد
+
+ + - - + + - - + + - - + + +
+
- +
+
+
+
+
+ + -
-
-
-
مجموع مبالغ:
-
-
-
-
-
ارزش افزوده:
-
-
- -
-
-
مبلغ قابل پرداخت:
-
-
- + + +
+
+ +
+
+
+
مجموع مبالغ:
+
-
+
+
+
ارزش افزوده:
+
-
+ +
+
+
مبلغ قابل پرداخت:
+
-
+ +
+
diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css index 0a813e57..c64dc86a 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step3.css @@ -32,8 +32,8 @@ .openBtnWP { background-color: #B6F2E1; - width: 25px; - height: 25px; + width: 30px; + height: 30px; border-radius: 6px; } @@ -71,6 +71,36 @@ color: #0B5959; font-size: 18px; font-weight: 600; + width: 150px; + text-align: center; +} + +.totalPayCon { + display: flex; + justify-content: space-between; + align-items: center; + gap: 3px; +} + +.numberSpanInput { + width: 60px; + text-align: center; + direction: ltr; +} + +.errorString { + animation: shake 300ms; + color: #eb3434 !important; + display: none; + font-size: 12px; +} + +.orderCustom1 { + order: 1; +} + +.orderCustom2 { + order: 2; } .divider { @@ -85,9 +115,10 @@ .totalPaymentWP { color: #1ABA3D; - font-size: 19px; - font-weight: 800; + font-size: 18px; + font-weight: 600; text-align: end; + width: 150px; } .titleInfoWP { @@ -176,7 +207,7 @@ text-align: center; padding: 6px 9px; border-radius: 9px; - width: 160px; + width: 180px; transition: all 0.3s ease-in-out; cursor: pointer; -webkit-user-select: none; @@ -227,19 +258,13 @@ } - - - - - - - @media only screen and (max-width: 1366px) { /*.btnRadioContainer { grid-template-columns: repeat(2, minmax(0, 1fr)); }*/ .radioLabelListOption { - width: 134px; + width: 144px; + font-size: 10px; } .totalPayWP { @@ -255,7 +280,16 @@ @media only screen and (max-width: 1200px) { .btnRadioContainer { - grid-template-columns: repeat(3, minmax(0, 1fr)); + /*grid-template-columns: repeat(3, minmax(0, 1fr));*/ + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .orderCustom1 { + order: 2; + } + + .orderCustom2 { + order: 1; } .totalPayWP { @@ -264,7 +298,7 @@ } .radioLabelListOption { - width: 129px; + width: 145px; padding: 4px 6px; } } @@ -293,6 +327,7 @@ .totalPayWP { font-size: 13px; + width: 120px; } .totalPaymentWP { @@ -302,6 +337,38 @@ } } +@media only screen and (max-width: 625px) { + .workshopListItem .titleWP { + font-size: 11px; + font-weight: 700; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + } + + .totalPayWP { + font-size: 11px; + width: 110px; + font-weight: 700; + display: none; + } + + .totalPaymentWP { + margin-top: 18px; + } + + .totalPayCon { + justify-content: center; + gap: 6px; + } + + .openBtnWP, + .btnRemove { + width: 25px; + height: 25px; + } +} + @@ -327,8 +394,6 @@ - - diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css index cb3d7e76..08f40f3c 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/css/_Partials/_Step4.css @@ -29,7 +29,7 @@ .cardHeight { - height: 50%; + height: 30vh; overflow: auto; } @@ -121,6 +121,9 @@ display: flex; flex-direction: column; gap: 9px; + height: 260px; + justify-content: space-between; + padding: 12px 9px; } .footerStep4Container .titleFooter { @@ -172,16 +175,20 @@ } -.infoPricesContainer { +.infoPricesContainerDiv { + height: 70px; + overflow: auto; padding: 6px; border: 1px solid #E7E7E7; - border-radius: 16px; background-color: #F5F5F5; + border-radius: 9px; +} + +.infoPricesContainer { display: grid; gap: 6px; - grid-template-columns: repeat(2, minmax(0, 1fr)); - height: 120px; - overflow: auto; + grid-auto-flow: column; + grid-template-rows: repeat(6, minmax(0, 1fr)); align-content: start; } @@ -243,7 +250,7 @@ } .infoPricesContainer { - grid-template-columns: repeat(1, minmax(0, 1fr)); + grid-template-rows: repeat(1, minmax(0, 1fr)); height: 130px; overflow: auto; } diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js index 813f1524..e0c30caa 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step3.js @@ -8,10 +8,10 @@ var workshopDataId = 0; $(document).ready(function () { var $inputs = $('.operations-btns input'); - $(".select2Option").select2({ - language: "fa", - dir: "rtl" - }); + // $(".select2Option").select2({ + // language: "fa", + // dir: "rtl" + //}); autoScroll(); }); @@ -22,21 +22,78 @@ function autoScroll() { }, 2500); } -$(document).on('input', '.operations-btns input[type="text"]', function() { - let $input = $(this); - let nameSpan = $input.closest(".accordion-item").find('.workshopListItem .workshopNameSpan'); - nameSpan.text($input.val()); +$(document).on('input', '.operations-btns .workshopName', function () { + let $input = $(this); + let nameSpan = $input.closest(".accordion-item").find('.workshopListItem .workshopNameSpan'); + nameSpan.text($input.val()); updateAddButtonText(); }); -$(document).on('change', ".operations-btns select", function () { +$(document).on('input', '.operations-btns .numberSpanInput', function () { let $input = $(this); - let numberSpan = $input.closest(".accordion-item").find('.workshopListItem .numberSpan'); - numberSpan.text($input.val()); + let value = $input.val().replace(/\D/g, ''); + $input.val(value); + + let number = parseInt(value, 10); + + if (isNaN(number) || number === 0) { + $input.addClass("errored"); + $('.errorString').show().text('عدد وارد شده نامعتبر است.'); + } else if (number > 2000) { + $input.addClass("errored"); + $('.errorString').show().text('تعداد وارد شده نباید بیشتر از ۲۰۰۰ باشد.'); + //$input.val('2000'); + } else if (number < 3) { + $input.addClass("errored"); + $('.errorString').show().text('تعداد وارد شده باید حداقل ۳ نفر باشد.'); + //$input.val('3'); + } else { + $('.errorString').hide().text(''); + $input.removeClass("errored"); + } + + let numberSpan = $input.closest(".accordion-item").find('.workshopListItem .numberSpan'); + numberSpan.text($input.val()); updateAddButtonText(); }); -$(document).on('change', '.btnRadioContainer .radioOption', updateAddButtonText); +$(document).on('change input', '.btnRadioContainer .radioOption', function () { + const accordionItem = $(this).closest('.accordion-item'); + const dataId = accordionItem.data('id'); + const dataIsNew = accordionItem.data('new'); + + // Services radio btn + const $contract = $(`#ContractAndCheckout${dataIsNew ? `_` : ''}${dataId}`); + const $contractAndCheckoutInPerson = $(`#ContractAndCheckoutInPerson${dataIsNew ? `_` : ''}${dataId}`); + const $insurance = $(`#Insurance${dataIsNew ? `_` : ''}${dataId}`); + const $insuranceInPerson = $(`#InsuranceInPerson${dataIsNew ? `_` : ''}${dataId}`); + const $rollCall = $(`#RollCall${dataIsNew ? `_` : ''}${dataId}`); + const $customize = $(`#CustomizeCheckout${dataIsNew ? `_` : ''}${dataId}`); + + if (!$contract.prop('checked')) { + $rollCall.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $contractAndCheckoutInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $contractAndCheckoutInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + $rollCall.prop('disabled', false).closest('div').find('label').removeClass('disable'); + + if ($rollCall.prop('checked')) { + $customize.prop('disabled', false).closest('div').find('label').removeClass('disable'); + } else { + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + } + } + + if (!$insurance.prop('checked')) { + $insuranceInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $insuranceInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + } + // Services radio btn + updateAddButtonText(); +}); +// $(document).on('change', '.btnRadioContainer .radioOption', updateAddButtonText); $(document).on("click", ".btnAdd", function () { let $currentWorkshop = $(".accordion-item").last(); @@ -44,7 +101,7 @@ $(document).on("click", ".btnAdd", function () { let allInputsFilled = true; let atLeastOneChecked = false; - $currentWorkshop.find('.operations-btns input[type="text"]').each(function () { + $currentWorkshop.find('.operations-btns input').each(function () { if ($(this).val().trim() === "") { allInputsFilled = false; validateField($(this), "ابتدا اطلاعات کارگاه را وارد نمائید", 3500); @@ -52,8 +109,8 @@ $(document).on("click", ".btnAdd", function () { } else { workshopName = $(this).val().trim(); } - }); - + }); + $currentWorkshop.find('.btnRadioContainer .radioOption').each(function () { if ($(this).prop('checked')) { atLeastOneChecked = true; @@ -72,55 +129,57 @@ function addNewWorkshop() { workshopDataId = workshopDataId + 1; var workshopHtml = `
-
- -
-
-
- 25 - نفر -
-
-
- - -
-
- -
- +
+
+ +
+
+ +
+
+
+ - + نفر +
+
+
+
-
+
+
+ +
+ +
-
+
نام مجموعه (کارگاه)
- +
تعداد پرسنل: - + +
@@ -138,23 +197,35 @@ function addNewWorkshop() {
-
+
- +
-
+
- +
+
+ + +
+
+ + +
-
-
- - -
+
+
+
+
+ - +
+
+
@@ -163,10 +234,10 @@ function addNewWorkshop() { $('.accordion').append(workshopHtml); - $(`.select2Option_new_${workshopDataId}`).select2({ - language: "fa", - dir: "rtl" - }); + //$(`.select2Option_new_${workshopDataId}`).select2({ + // language: "fa", + // dir: "rtl" + // }); $(".operations-btns").slideUp(300); $(".openBtnWP").removeClass('expanded'); @@ -220,13 +291,13 @@ function createOrUpdateCommand() { let selectedRollCall = false; let selectedCustomizeCheckout = false; let allInputsFilled = true; - let atLeastOneChecked = false; + let atLeastOneChecked = false; let workshopID = command.workshops.length; if (!allInputsFilled) return; - $currentWorkshop.find('.operations-btns input[type="text"]').each(function() { + $currentWorkshop.find('.operations-btns .workshopName').each(function() { if ($(this).val() === "") { allInputsFilled = false; validateField($(this), "ابتدا اطلاعات کارگاه را وارد نمائید", 3500); @@ -234,9 +305,17 @@ function createOrUpdateCommand() { } else { workshopName = $(this).val(); } + }); + + $currentWorkshop.find('.numberSpanInput').each(function () { + let val = parseInt($(this).val(), 10); + if (isNaN(val) || val === 0 || val < 3 || val > 2000) { + validateField($(this), "لطفا تعداد پرسنل را مشخص نمایید.", 3500); + return false; + } }); - personnelCount = parseInt($currentWorkshop.find(".operations-btns select").val()) || 0; + personnelCount = parseInt($currentWorkshop.find(".operations-btns .numberSpanInput").val()); function checkCheckbox(serviceName) { const selector = `.btnRadioContainer #${serviceName}${dataIsNew ? `_` : ''}${dataId}`; @@ -299,7 +378,8 @@ function createOrUpdateCommand() { function updateAddButtonText() { let allInputsFilled = true; - let atLeastOneChecked = false; + let atLeastOneChecked = false; + let allNumbersValid = true; $(".accordion-item").each(function () { let $workshop = $(this); @@ -307,7 +387,7 @@ function updateAddButtonText() { let isChecked = false; atLeastOneChecked = false; - $workshop.find('.operations-btns input[type="text"]').each(function () { + $workshop.find('.operations-btns .workshopName').each(function () { if ($(this).val().trim() === "") { isFilled = false; return false; @@ -321,12 +401,20 @@ function updateAddButtonText() { } }); + $workshop.find('.numberSpanInput').each(function () { + let val = parseInt($(this).val(), 10); + if (isNaN(val) || val === 0 || val < 3 || val > 2000) { + allNumbersValid = false; + return false; + } + }); + if (!isFilled) allInputsFilled = false; if (isChecked) atLeastOneChecked = true; }); - if (allInputsFilled && atLeastOneChecked) { + if (allInputsFilled && atLeastOneChecked && allNumbersValid) { $('.btnAdd').prop('disabled', false).removeClass('disable'); $('#nextStep3').prop('disabled', false).removeClass('disable'); } else { @@ -387,27 +475,38 @@ function updateRemoveButtons() { $(".btnRemove").last().prop('disabled', false).removeClass("disable"); } -$(document).on('change', '.operations-btns select, .btnRadioContainer .radioOption', function () { +// Get Amounts for a Workshop service +$(document).on('change input', '.operations-btns .numberSpanInput, .btnRadioContainer .radioOption', function () { const accordionItem = $(this).closest('.accordion-item'); const dataId = accordionItem.data('id'); const dataIsNew = accordionItem.data('new'); const $totalPayment = $(`#totalPayment_${dataId}`); const $totalPay = $(`#totalPay_${dataId}`); - + const personnelCount = parseInt($(`#numberPersonnel${dataIsNew ? `_` : ''}${dataId}`).val()) || 0; if (personnelCount === 0) { let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); if (existingSumAmount) { sumAmountArray = sumAmountArray.filter(w => w.workshopDataId !== dataId); - } + } sumNumberOfAmount(); - $totalPayment.text('-'); - $totalPay.text('-'); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); return; - } + } else if (personnelCount > 2000) { + sumNumberOfAmount(); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); + return; + } else if (personnelCount < 3) { + sumNumberOfAmount(); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); + return; + } - const serviceKeys = ['ContractAndCheckout', 'Insurance', 'RollCall', 'CustomizeCheckout']; + const serviceKeys = ['ContractAndCheckout', 'Insurance', 'RollCall', 'CustomizeCheckout', 'ContractAndCheckoutInPerson', 'InsuranceInPerson']; const selectedOptions = {}; let atLeastOneChecked = false; serviceKeys.forEach(key => { @@ -416,25 +515,26 @@ $(document).on('change', '.operations-btns select, .btnRadioContainer .radioOpti if (isChecked) atLeastOneChecked = true; }); + if (!atLeastOneChecked) { let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); if (existingSumAmount) { sumAmountArray = sumAmountArray.filter(w => w.workshopDataId !== dataId); } sumNumberOfAmount(); - $totalPayment.text('-'); - $totalPay.text('-'); + $totalPayment.addClass('justify-content-center').text('-'); + $totalPay.addClass('justify-content-center').text('-'); return; } var newWorkshopGetAmountCommand = { CountPerson: personnelCount, ...selectedOptions - }; - + }; + ajax.get(institutionPlanForWorkshopUrl, newWorkshopGetAmountCommand, false) .then(response => { - const amountStr = response.data.onlineAndInPersonSumAmountStr + ' ریال'; + const amountStr = response.data.onlineAndInPersonSumAmountStr; const amountDouble = response.data.onlineAndInPersonSumAmountDouble || 0; let existingSumAmount = sumAmountArray.find(w => w.workshopDataId === dataId); if (existingSumAmount) { @@ -449,10 +549,10 @@ $(document).on('change', '.operations-btns select, .btnRadioContainer .radioOpti sumAmountArray.push(newSumAmount); } - sumNumberOfAmount(); - $(`#totalPayment_${dataId}`).text(amountStr); - $(`#totalPay_${dataId}`).text(amountStr); - + sumNumberOfAmount(); + + $(`#totalPayment_${dataId}`).removeClass('justify-content-center').html(`${amountStr} ریال`); + $(`#totalPay_${dataId}`).removeClass('justify-content-center').html(`${amountStr} ریال`); }); }); @@ -466,6 +566,7 @@ function sumNumberOfAmount() { var formatted = formatNumber(sumAllAmount); $('#totalSumDisplay').text(formatted + ' ریال'); } + function formatNumber(number) { return Math.round(number) .toString() @@ -478,62 +579,69 @@ function loadWorkshopData(id) { workshops: [] }; sumAmountArray = []; + //$('#accordionHtml').html(''); ajax.get(getWorkshopTempUrl, { contractingPartyId: id }, true) - .then(response => { + .then(response => { if (response.data.length > 0) { - response.data.forEach(function(item, index) { + response.data.forEach(function (item, index) { + html += `
-
- ${item.workshopName} -
+ +
+
+ ${item.workshopName} +
+
-
-
- ${item.countPerson} - نفر -
-
-
- ${item.workshopServicesAmountStr} ریال -
-
- -
- -
+
+
+
+ ${item.countPerson} + نفر +
+
+
+
+ ${item.workshopServicesAmountStr} + ریال +
+
+
+ +
+ +
+
-
+
نام مجموعه (کارگاه)
- +
تعداد پرسنل: - + +
@@ -551,29 +659,45 @@ function loadWorkshopData(id) {
-
+
-
+
+
+ + +
+
+ + +
-
-
- ${item.workshopServicesAmountStr} -
+
+
+
+
+ ${item.workshopServicesAmountStr} + ریال +
+
+
`; - - var itemOfWorkshops = { + + //$('#accordionHtml').html(html); + //loadRadioChecked(item.id); + + var itemOfWorkshops = { Id: item.id, workshopId: item.id, WorkshopName: item.workshopName, @@ -596,36 +720,44 @@ function loadWorkshopData(id) { amount: item.workshopServicesAmount }; sumAmountArray.push(itemOfAmount); - }); + + }); } else { html += `
-
- + +
+
+ +
-
-
- 25 - نفر -
-
-
- - -
-
- -
- +
+
+
+ - + نفر +
+
+
+
-
+
+
+ +
+ +
@@ -636,19 +768,14 @@ function loadWorkshopData(id) {
نام مجموعه (کارگاه)
- +
تعداد پرسنل: - + +
@@ -666,23 +793,35 @@ function loadWorkshopData(id) {
-
+
-
+
+
+ + +
+
+ + +
-
- - -
+
+
+
+ - +
+
+
@@ -693,19 +832,55 @@ function loadWorkshopData(id) { if (command.workshops.length > 0) { command.workshops.forEach(function(item) { - $(`#numberPersonnel${item.Id}`).select2(); - $(`#numberPersonnel${item.Id}`).val(item.CountPerson).trigger('change'); + //$(`#numberPersonnel${item.Id}`).select2(); + //$(`#numberPersonnel${item.Id}`).val(item.CountPerson).trigger('change'); + $(`#numberPersonnel${item.Id}`).val(item.CountPerson); }); } else { - $(`#numberPersonnel_new_0`).select2(); - $(`#numberPersonnel_new_0`).val("25").trigger('change'); + //$(`#numberPersonnel_new_0`).select2(); + //$(`#numberPersonnel_new_0`).val("25").trigger('change'); + $(`#numberPersonnel_new_0`).val(""); } // console.log(command.workshops); // console.log(sumAmountArray); sumNumberOfAmount(); + autoScroll(); + loadRadioChecked(); + updateAddButtonText(); + function loadRadioChecked() { + if (command.workshops.length > 0) { + command.workshops.forEach(function (item) { + let $contract = $(`#ContractAndCheckout${item.Id}`); + let $contractAndCheckoutInPerson = $(`#ContractAndCheckoutInPerson${item.Id}`); + let $insurance = $(`#Insurance${item.Id}`); + let $insuranceInPerson = $(`#InsuranceInPerson${item.Id}`); + let $rollCall = $(`#RollCall${item.Id}`); + let $customize = $(`#CustomizeCheckout${item.Id}`); - autoScroll(); + if (!$contract.prop('checked')) { + $rollCall.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + $contractAndCheckoutInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $contractAndCheckoutInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + $rollCall.prop('disabled', false).closest('div').find('label').removeClass('disable'); + + if ($rollCall.prop('checked')) { + $customize.prop('disabled', false).closest('div').find('label').removeClass('disable'); + } else { + $customize.prop('checked', false).prop('disabled', true).closest('div').find('label').addClass('disable'); + } + } + + if (!$insurance.prop('checked')) { + $insuranceInPerson.prop('checked', false).prop('disabled', false).closest('div').find('label').addClass('disable'); + } else { + $insuranceInPerson.prop('checked', true).prop('disabled', false).closest('div').find('label').removeClass('disable'); + } + }); + } + } }); } \ No newline at end of file diff --git a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js index 2b89c034..d247aa3f 100644 --- a/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js +++ b/ServiceHost/wwwroot/AssetsClient/pages/Register/js/_Partials/_Step4.js @@ -1,10 +1,16 @@ $(document).ready(function () { - $('input[name="radMonth"]').on('change', function () { totalPaymentAndWorkshopList(); }); - $('input[name="radMonth"]:checked').trigger('change'); + $('input[name="radMonth"]:checked').trigger('change'); + + + $('input[name="radFinanceContract"]').on('change', function () { + totalPaymentAndWorkshopList(); + }); + + $('input[name="radFinanceContract"]:checked').trigger('change'); }); function autoScrollStep4() { @@ -15,13 +21,14 @@ function autoScrollStep4() { async function loadSpecifiedWorkshop(data) { var html = ''; - + + if (data.workshops.length > 0) { data.workshops.forEach(function(item) { html += `
نام کارگاه : ${item.WorkshopName}
-
ریال ${item.WorkshopServicesAmountStr}
+
${item.WorkshopServicesAmountStr} ریال
@@ -101,10 +108,28 @@ async function totalPaymentAndWorkshopList() { } var hasPriceStatic = $('#priceStatic').hasClass('active'); - - ajax.get(totalPaymentAndWorkshopListUrl, { contractingPartyTempId: parseInt($('#contractPartyId').val()) || 0, periodModel: months }) + var selectedRadFinanceContract = $('input[name="radFinanceContract"]:checked').val(); + var financeContract = ""; + + switch (selectedRadFinanceContract) { + case 'currentMonth': + financeContract = 'currentMonth'; + break; + case 'nextMonth': + financeContract = 'nextMonth'; + break; + } + + ajax.get(totalPaymentAndWorkshopListUrl, + { + contractingPartyTempId: parseInt($('#contractPartyId').val()) || 0, + periodModel: months, + contractStartType: financeContract + }) .then(response => { + // console.log(response.data); + if (hasPriceStatic) { $(`#sumOfWorkshopsPaymentPayment`).text(response.data.oneTimeWithoutTaxPaymentStr + " ریال"); $(`#totalPaymentStr`).text(response.data.oneTimeTotalPaymentStr + " ریال"); @@ -128,7 +153,7 @@ async function totalPaymentAndWorkshopList() { $(`#totalPaymentDoubleInput`).val(hasPriceStatic ? response.data.oneTimeTotalPaymentDouble : response.data.monthlyTotalPaymentDouble); $(`#valueAddedTaxDoubleInput`).val(response.data.valueAddedTaxDouble); - $('#priceStepContainer').html(''); + $('#priceStepContainerHtml').html(''); if (response.data.monthlyInstallments) { response.data.monthlyInstallments?.forEach(function (item) { var html = ` @@ -138,10 +163,23 @@ async function totalPaymentAndWorkshopList() {
${item.installmentAmountStr} ریال
`; - $('#priceStepContainer').append(html); + $('#priceStepContainerHtml').append(html); }); - } + } + + $('#ContractStartMonthView').text( + $('#contractStartCurrentMonthFa').prop('checked') + ? response.data.contractStartCurrentMonthFa + : response.data.contractStartNextMonthFa + ); + + $('#ContractStartMonthGr').val( + $('#contractStartCurrentMonthFa').prop('checked') + ? response.data.contractStartCurrentMonthGr + : response.data.contractStartNextMonthGr + ); }); + } //$(document).on('change', '.btnCheckContainer .checkOption', createOrUpdateCommand); @@ -166,6 +204,19 @@ async function checkInputsStep4() { case 'twelveMonth': months = 12; break; + } + + + var selectedRadFinanceContract = $('input[name="radFinanceContract"]:checked').val(); + var financeContract = ""; + + switch (selectedRadFinanceContract) { + case 'currentMonth': + financeContract = 'currentMonth'; + break; + case 'nextMonth': + financeContract = 'nextMonth'; + break; } var priceMethod = $('#priceStatic').hasClass('active') ? "OneTime" : "Monthly"; @@ -176,6 +227,7 @@ async function checkInputsStep4() { contractingPartyTempId: parseInt($('#contractPartyId').val()) || 0, periodModel: months, paymentModel: priceMethod, + contractStart: $('#ContractStartMonthGr').val(), totalPayment: Number($('#totalPaymentDoubleInput').val()), valueAddedTax: Number($('#valueAddedTaxDoubleInput').val()) }, true); @@ -216,13 +268,7 @@ $('#priceStatic').on('click', function () { $('#priceStepContainer').hide(); $('#priceStep').removeClass('active'); $(this).addClass('active'); - - if ($(this).hasClass("active")) { - $(".cardHeight").css("height", "50%"); - } else { - $(".cardHeight").css("height", "39%"); - } - + totalPaymentAndWorkshopList(); }); @@ -231,12 +277,6 @@ $('#priceStep').on('click', function () { $('#priceStatic').removeClass('active'); $(this).addClass('active'); - if ($(this).hasClass("active")) { - $(".cardHeight").css("height", "39%"); - } else { - $(".cardHeight").css("height", "50%"); - } - totalPaymentAndWorkshopList(); }); From 3a6f87eaca76dfa6d69760b06862e12c72da4e16 Mon Sep 17 00:00:00 2001 From: MahanCh Date: Wed, 7 May 2025 22:45:42 +0330 Subject: [PATCH 04/10] fix some register financial bugs --- .../TemporaryClientRegistrationApplication.cs | 7 +++- .../Pages/Register/_Partials/_Step4.cshtml | 41 +++++++++++-------- .../pages/Register/js/_Partials/_Step1.js | 16 +++++--- .../pages/Register/js/_Partials/_Step4.js | 27 ++++++++---- 4 files changed, 58 insertions(+), 33 deletions(-) diff --git a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs index 356e239d..855ca8bc 100644 --- a/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs +++ b/CompanyManagment.Application/TemporaryClientRegistrationApplication.cs @@ -475,7 +475,12 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati var findEndOfMonth = startDate.FindeEndOfMonth(); for (int i = 1; i <= instalmentCount; i++) { - if (i > 1) + if (i == 1) + { + startDate = (DateTime.Now).ToFarsi(); + + } + else if (i > 1) { var currentMonthStart = ((findEndOfMonth.ToGeorgianDateTime()).AddDays(1)).ToFarsi(); startDate = currentMonthStart.FindeEndOfMonth(); diff --git a/ServiceHost/Pages/Register/_Partials/_Step4.cshtml b/ServiceHost/Pages/Register/_Partials/_Step4.cshtml index ee144b89..b900ff82 100644 --- a/ServiceHost/Pages/Register/_Partials/_Step4.cshtml +++ b/ServiceHost/Pages/Register/_Partials/_Step4.cshtml @@ -23,19 +23,30 @@
مدت قرارداد
-
- - +
+
+ + - - + + +
- - +
+ + - - + + + + + + + + +
+