diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs index 7fb0c7e3..f28e3246 100644 --- a/0_Framework/Application/Tools.cs +++ b/0_Framework/Application/Tools.cs @@ -1396,6 +1396,73 @@ public static class Tools return false; return true; } + + /// + /// چک میکند که در دو شیفت استاتیک تداخل زمانی وجود دارد یا خیر + /// چک میکند که آیا ساعات وارد شده ولید هستند یا خیر + /// + /// + /// + /// + /// + /// + public static bool InterferenceTime(string start1, string end1, string start2, string end2) + { + if (!CheckValidHm(start1)) + return true; + + if (!CheckValidHm(end1)) + return true; + + if (!CheckValidHm(start2)) + return true; + + if (!CheckValidHm(end2)) + return true; + + //اگه دو شیفت نبود + if (string.IsNullOrWhiteSpace(start1) || string.IsNullOrWhiteSpace(start2)) + return false; + + + try + { + var start1Gr = Convert.ToDateTime(start1); + var end1Gr = Convert.ToDateTime(end1); + + if (end1Gr < start1Gr) + end1Gr = end1Gr.AddDays(1); + + var start2Gr = Convert.ToDateTime(start2); + var end2Gr = Convert.ToDateTime(end2); + + + start2Gr = new DateTime(end1Gr.Year, end1Gr.Month, end1Gr.Day, start2Gr.Hour, start2Gr.Minute, + start2Gr.Second); + + + end2Gr = new DateTime(end1Gr.Year, end1Gr.Month, end1Gr.Day, end2Gr.Hour, end2Gr.Minute, + end2Gr.Second); + if (end2Gr < start2Gr) + end2Gr = end2Gr.AddDays(1); + + var diff = (end1Gr - start1Gr).Add((end2Gr - start2Gr)); + if (diff > new TimeSpan(24,0,0)) + return true; + + if (start2Gr <= end1Gr) + return true; + + return false; + } + catch (Exception) + { + + return true; + } + + + } public static DateTime FindFirstDayOfMonthGr(this DateTime date) { var pc = new PersianCalendar(); diff --git a/0_Framework/Application/UID/UidService.cs b/0_Framework/Application/UID/UidService.cs index 3d472dcb..ccf3c0ef 100644 --- a/0_Framework/Application/UID/UidService.cs +++ b/0_Framework/Application/UID/UidService.cs @@ -10,67 +10,70 @@ namespace _0_Framework.Application.UID; public class UidService : IUidService { - private readonly HttpClient _httpClient; - private const string BaseUrl= "https://json-api.uid.ir/api/inquiry/"; + private readonly HttpClient _httpClient; + private const string BaseUrl = "https://json-api.uid.ir/api/inquiry/"; - public UidService() - { - _httpClient = new HttpClient() - { - BaseAddress = new Uri(BaseUrl) - }; - } + public UidService() + { + _httpClient = new HttpClient() + { + BaseAddress = new Uri(BaseUrl) + }; + } - public async Task GetPersonalInfo(string nationalCode, string birthDate) - { - var request = new PersonalInfoRequest - { - BirthDate = birthDate , - NationalId = nationalCode, - RequestContext = new UidRequestContext() - }; - var json = JsonConvert.SerializeObject(request); - var contentType = new StringContent(json, Encoding.UTF8, "application/json"); + public async Task GetPersonalInfo(string nationalCode, string birthDate) + { + var request = new PersonalInfoRequest + { + BirthDate = birthDate, + NationalId = nationalCode, + RequestContext = new UidRequestContext() + }; + var json = JsonConvert.SerializeObject(request); + var contentType = new StringContent(json, Encoding.UTF8, "application/json"); - var requestResult = await _httpClient.PostAsync("person/v2", contentType); - try - { - if (!requestResult.IsSuccessStatusCode) - return null; - var responseResult = await requestResult.Content.ReadFromJsonAsync(); - if (responseResult.BasicInformation != null) - { - responseResult.BasicInformation.FirstName = responseResult.BasicInformation.FirstName?.ToPersian(); - responseResult.BasicInformation.LastName = responseResult.BasicInformation.LastName?.ToPersian(); - responseResult.BasicInformation.FatherName = responseResult.BasicInformation.FatherName?.ToPersian(); - } + try + { + var requestResult = await _httpClient.PostAsync("person/v2", contentType); + if (!requestResult.IsSuccessStatusCode) + return null; + var responseResult = await requestResult.Content.ReadFromJsonAsync(); + if (responseResult.BasicInformation != null) + { + responseResult.BasicInformation.FirstName = responseResult.BasicInformation.FirstName?.ToPersian(); + responseResult.BasicInformation.LastName = responseResult.BasicInformation.LastName?.ToPersian(); + responseResult.BasicInformation.FatherName = responseResult.BasicInformation.FatherName?.ToPersian(); + } - return responseResult; - } - catch - { + return responseResult; + } + catch + { - return null; - } - } + return new PersonalInfoResponse(new UidBasicInformation(), + new IdentificationInformation(default, default, default, default, default), new RegistrationStatus(), + new ResponseContext(new UidStatus(14, ""))); + } + + } - public async Task IsMachPhoneWithNationalCode(string nationalCode, string phoneNumber) - { - var request = new PersonalInfoRequest - { - MobileNumber = phoneNumber, - NationalId = nationalCode, - RequestContext = new UidRequestContext() - }; - var json = JsonConvert.SerializeObject(request); - var contentType = new StringContent(json, Encoding.UTF8, "application/json"); + public async Task IsMachPhoneWithNationalCode(string nationalCode, string phoneNumber) + { + var request = new PersonalInfoRequest + { + MobileNumber = phoneNumber, + NationalId = nationalCode, + RequestContext = new UidRequestContext() + }; + var json = JsonConvert.SerializeObject(request); + var contentType = new StringContent(json, Encoding.UTF8, "application/json"); - var requestResult = await _httpClient.PostAsync("mobile/owner/v2", contentType); - if (!requestResult.IsSuccessStatusCode) - return null; + var requestResult = await _httpClient.PostAsync("mobile/owner/v2", contentType); + if (!requestResult.IsSuccessStatusCode) + return null; - var responseResult = await requestResult.Content.ReadFromJsonAsync(); - return responseResult; - } + var responseResult = await requestResult.Content.ReadFromJsonAsync(); + return responseResult; + } } \ No newline at end of file diff --git a/AccountManagement.Application.Contracts/Media/IMediaApplication.cs b/AccountManagement.Application.Contracts/Media/IMediaApplication.cs index a4148a11..cbeb3184 100644 --- a/AccountManagement.Application.Contracts/Media/IMediaApplication.cs +++ b/AccountManagement.Application.Contracts/Media/IMediaApplication.cs @@ -4,12 +4,13 @@ using System.Collections.Generic; namespace AccountManagement.Application.Contracts.Media { - public interface IMediaApplication - { - MediaViewModel Get(long id); - OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, List allowedExtensions); - OperationResult MoveFile(long mediaId, string newRelativePath); - OperationResult DeleteFile(long mediaId); - List GetRange(IEnumerable select); - } -} + public interface IMediaApplication + { + MediaViewModel Get(long id); + OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, + List allowedExtensions, string category); + OperationResult MoveFile(long mediaId, string newRelativePath); + OperationResult DeleteFile(long mediaId); + List GetRange(IEnumerable select); + } +} \ No newline at end of file diff --git a/AccountManagement.Application/MediaApplication.cs b/AccountManagement.Application/MediaApplication.cs index a0a37355..354027da 100644 --- a/AccountManagement.Application/MediaApplication.cs +++ b/AccountManagement.Application/MediaApplication.cs @@ -9,147 +9,113 @@ using Microsoft.AspNetCore.Http; namespace AccountManagement.Application { - public class MediaApplication:IMediaApplication - { + public class MediaApplication : IMediaApplication + { - private const string _basePath = "Medias"; - private readonly IMediaRepository _mediaRepository; + private const string _basePath = "Medias"; + private readonly IMediaRepository _mediaRepository; - public MediaApplication(IMediaRepository mediaRepository) - { - _mediaRepository = mediaRepository; - } + public MediaApplication(IMediaRepository mediaRepository) + { + _mediaRepository = mediaRepository; + } - /// - /// دریافت فایل و نوشتن آن در مسیر داده شده، و ثبت مدیا - /// - /// فایل - /// برچسب فایل که در نام فایل ظاهر می شود - /// مسیر فایل - /// [.png,.jpg,.jpeg] پسوند های مجاز مثلا - /// حداکثر حجم فایل به مگابایت - /// - public OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath,int maximumFileLength,List allowedExtensions) - { - OperationResult op = new(); - var path = Path.Combine(_basePath, relativePath); - var fileExtension = Path.GetExtension(file.FileName); - - if (file == null || file.Length == 0) - return op.Failed("خطای سیستمی"); - - if (file.Length > (maximumFileLength * 1024 * 1024)) - return op.Failed($"حجم فایل نمی تواند بیشتر از " + - $"{maximumFileLength}" + - $"مگابایت باشد"); - - if (!allowedExtensions.Contains(fileExtension.ToLower())) - { - var operationMessage = ":فرمت فایل باید یکی از موارد زیر باشد"; - operationMessage += "\n"; - operationMessage += string.Join(" ", allowedExtensions); - return op.Failed(operationMessage); - } + /// + /// دریافت فایل و نوشتن آن در مسیر داده شده، و ثبت مدیا + /// + /// فایل + /// برچسب فایل که در نام فایل ظاهر می شود + /// مسیر فایل + /// حداکثر حجم فایل به مگابایت + /// [.png,.jpg,.jpeg] پسوند های مجاز مثلا + /// + /// + public OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, + List allowedExtensions, string category) + { + return _mediaRepository.UploadFile(file, fileLabel, relativePath, maximumFileLength, allowedExtensions, category); + } - Directory.CreateDirectory(path); + /// + /// حذف فایل + /// + public OperationResult DeleteFile(long mediaId) + { + OperationResult op = new(); + var media = _mediaRepository.Get(mediaId); + if (media == null) + return op.Failed("رکورد مورد نظر یافت نشد"); + try + { + if (File.Exists(media.Path)) + File.Delete(media.Path); + else + return op.Failed("فایل یافت نشد"); + } + catch + { + return op.Failed("خطایی در حذف فایل رخ داده است"); + } - var extension = Path.GetExtension(file.FileName); + _mediaRepository.Remove(media.id); + _mediaRepository.SaveChanges(); + return op.Succcedded(); + } - var uniqueFileName = $"{fileLabel}-{DateTime.Now.Ticks}{extension}"; - var filePath = Path.Combine(path, uniqueFileName); - using (var fileStream = new FileStream(filePath, FileMode.CreateNew)) - { - file.CopyTo(fileStream); - } - var mediaEntity = new Media(filePath, extension, "فایل", "EmployeeDocuments"); - _mediaRepository.Create(mediaEntity); - _mediaRepository.SaveChanges(); + /// + /// جابجا کردن فایل + /// + public OperationResult MoveFile(long mediaId, string newRelativePath) + { + OperationResult op = new(); + var media = _mediaRepository.Get(mediaId); + var oldPath = media.Path; + var path = Path.Combine(_basePath, newRelativePath); + Directory.CreateDirectory(path); - return op.Succcedded(mediaEntity.id); + string filepath = Path.Combine(path, Path.GetFileName(oldPath)); + try + { + File.Move(oldPath, filepath); + } + catch + { + return op.Failed("در جابجایی فایل خطایی رخ داده است"); + } - } + media.Edit(filepath, media.Type, media.Category); + _mediaRepository.SaveChanges(); + return op.Succcedded(); + } + public MediaViewModel Get(long id) + { + var media = _mediaRepository.Get(id); + if (media == null) + return new(); + return new MediaViewModel() + { + Category = media.Category, + Path = media.Path, + Id = media.id, + Type = media.Type + }; + } - /// - /// حذف فایل - /// - public OperationResult DeleteFile(long mediaId) - { - OperationResult op = new(); - var media = _mediaRepository.Get(mediaId); - if (media == null) - return op.Failed("رکورد مورد نظر یافت نشد"); - try - { - if (File.Exists(media.Path)) - File.Delete(media.Path); - else - return op.Failed("فایل یافت نشد"); - } - catch - { - return op.Failed("خطایی در حذف فایل رخ داده است"); - } + public List GetRange(IEnumerable ids) + { + var medias = _mediaRepository.GetRange(ids); + return medias.Select(x => new MediaViewModel() + { + Category = x.Category, + Path = x.Path, + Id = x.id, + Type = x.Type, + }).ToList(); + } - _mediaRepository.Remove(media.id); - _mediaRepository.SaveChanges(); - return op.Succcedded(); - } - - /// - /// جابجا کردن فایل - /// - public OperationResult MoveFile(long mediaId, string newRelativePath) - { - OperationResult op = new(); - var media = _mediaRepository.Get(mediaId); - var oldPath = media.Path; - var path = Path.Combine(_basePath, newRelativePath); - Directory.CreateDirectory(path); - - string filepath = Path.Combine(path, Path.GetFileName(oldPath)); - try - { - File.Move(oldPath, filepath); - } - catch - { - return op.Failed("در جابجایی فایل خطایی رخ داده است"); - } - - media.Edit(filepath, media.Type, media.Category); - _mediaRepository.SaveChanges(); - return op.Succcedded(); - } - - public MediaViewModel Get(long id) - { - var media = _mediaRepository.Get(id); - if (media == null) - return new(); - return new MediaViewModel() - { - Category = media.Category, - Path = media.Path, - Id = media.id, - Type = media.Type - }; - } - - public List GetRange(IEnumerable ids) - { - var medias = _mediaRepository.GetRange(ids); - return medias.Select(x=>new MediaViewModel() - { - Category = x.Category, - Path = x.Path, - Id = x.id, - Type = x.Type, - }).ToList(); - } - - } + } } diff --git a/AccountManagement.Domain/AssignAgg/Assign.cs b/AccountManagement.Domain/AssignAgg/Assign.cs index 6f1a5810..4b098569 100644 --- a/AccountManagement.Domain/AssignAgg/Assign.cs +++ b/AccountManagement.Domain/AssignAgg/Assign.cs @@ -2,6 +2,7 @@ using AccountManagement.Domain.TaskAgg; using System; using System.Collections.Generic; +using System.Linq; using AccountManagement.Domain.TaskMessageAgg; namespace AccountManagement.Domain.AssignAgg; @@ -158,4 +159,24 @@ public class Assign : EntityBase IsDoneRequest=isDoneRequest; DoneDescription=doneDescription; } + + public void ChangeAssignedId(long assignedId) + { + AssignedId = assignedId; + } + + public void SetAssignerId(long assignerId) + { + AssignerId = assignerId; + } + + public void ChangeSender(long senderId) + { + Task.SetSender(senderId); + var taskMessageItemsEnumerable =TaskMessageList.SelectMany(m => m.TaskMessageItemsList); + foreach (var taskMessageItems in taskMessageItemsEnumerable) + { + taskMessageItems.SetSenderId(senderId); + } + } } \ No newline at end of file diff --git a/AccountManagement.Domain/MediaAgg/IMediaRepository.cs b/AccountManagement.Domain/MediaAgg/IMediaRepository.cs index b8ccb898..f84117d6 100644 --- a/AccountManagement.Domain/MediaAgg/IMediaRepository.cs +++ b/AccountManagement.Domain/MediaAgg/IMediaRepository.cs @@ -1,12 +1,15 @@ using System.Collections.Generic; +using _0_Framework.Application; using _0_Framework.Domain; using AccountManagement.Application.Contracts.Media; +using Microsoft.AspNetCore.Http; namespace AccountManagement.Domain.MediaAgg; -public interface IMediaRepository:IRepository +public interface IMediaRepository : IRepository { + public string BasePath { get; protected set; } void CreateMediaWithTaskMedia(long taskId, long mediaId); List GetMediaByTaskId(long taskId); void Remove(long id); @@ -23,4 +26,6 @@ public interface IMediaRepository:IRepository #endregion + OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, + List allowedExtensions, string category); } \ No newline at end of file diff --git a/AccountManagement.Domain/TaskAgg/Tasks.cs b/AccountManagement.Domain/TaskAgg/Tasks.cs index 39d94082..44878729 100644 --- a/AccountManagement.Domain/TaskAgg/Tasks.cs +++ b/AccountManagement.Domain/TaskAgg/Tasks.cs @@ -1,10 +1,12 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Security.AccessControl; using _0_Framework.Domain; using AccountManagement.Domain.AssignAgg; using AccountManagement.Domain.TaskMediaAgg; using AccountManagement.Domain.TaskScheduleAgg; +using OfficeOpenXml.Style; namespace AccountManagement.Domain.TaskAgg; @@ -80,4 +82,40 @@ public class Tasks : EntityBase TaskScheduleId = taskScheduleId; } + public void ChangeSender(long senderId) + { + var prevSender = SenderId; + + var assigners = Assigns.Where(x => x.AssignerId == prevSender).ToList(); + + foreach (var assigner in assigners) + { + assigner.SetAssignerId(senderId); + } + + var senderMessageItem = Assigns + .SelectMany(x=>x.TaskMessageList + .SelectMany(m=>m.TaskMessageItemsList)).Where(x=>x.SenderAccountId == prevSender).ToList(); + + var receiverMessageItem = Assigns.SelectMany(x=>x.TaskMessageList + .SelectMany(m=>m.TaskMessageItemsList)).Where(x=>x.ReceiverAccountId == prevSender).ToList(); + + + SenderId = senderId; + + foreach (var taskMessageItems in senderMessageItem) + { + taskMessageItems.SetSenderId(senderId); + } + foreach (var taskMessageItems in receiverMessageItem) + { + taskMessageItems.SetReceiver(senderId); + } + + } + + public void SetSender(long senderId) + { + SenderId = senderId; + } } \ No newline at end of file diff --git a/AccountManagement.Domain/TaskMessageItemsAgg/TaskMessageItems.cs b/AccountManagement.Domain/TaskMessageItemsAgg/TaskMessageItems.cs index 155017f2..a63f881e 100644 --- a/AccountManagement.Domain/TaskMessageItemsAgg/TaskMessageItems.cs +++ b/AccountManagement.Domain/TaskMessageItemsAgg/TaskMessageItems.cs @@ -19,4 +19,13 @@ public class TaskMessageItems:EntityBase public TaskMessage TaskMessage { get; set; } + public void SetSenderId(long senderId) + { + SenderAccountId = senderId; + } + + public void SetReceiver(long receiverId) + { + ReceiverAccountId = receiverId; + } } \ No newline at end of file diff --git a/AccountMangement.Infrastructure.EFCore/Repository/MediaRepository.cs b/AccountMangement.Infrastructure.EFCore/Repository/MediaRepository.cs index 541ce3f1..756bfae3 100644 --- a/AccountMangement.Infrastructure.EFCore/Repository/MediaRepository.cs +++ b/AccountMangement.Infrastructure.EFCore/Repository/MediaRepository.cs @@ -1,5 +1,8 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.IO; using System.Linq; +using _0_Framework.Application; using _0_Framework.InfraStructure; using AccountManagement.Application.Contracts.Media; using AccountManagement.Domain.AdminResponseMediaAgg; @@ -7,27 +10,35 @@ using AccountManagement.Domain.ClientResponseMediaAgg; using AccountManagement.Domain.MediaAgg; using AccountManagement.Domain.TaskMediaAgg; using AccountManagement.Domain.TicketMediasAgg; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; namespace AccountMangement.Infrastructure.EFCore.Repository; -public class MediaRepository:RepositoryBase,IMediaRepository +public class MediaRepository : RepositoryBase, IMediaRepository { + private const string _basePath = "Storage/Medias"; + public string BasePath { get; set; } + + private readonly AccountContext _accountContext; - public MediaRepository( AccountContext taskManagerContext) : base(taskManagerContext) + public MediaRepository(AccountContext taskManagerContext, IWebHostEnvironment webHostEnvironment) : base(taskManagerContext) { _accountContext = taskManagerContext; + BasePath = webHostEnvironment.ContentRootPath + "/Storage"; } //ساخت جدول واسط بین مدیا و نسک //نکته: این متد ذخیره انجام نمیدهد + public void CreateMediaWithTaskMedia(long taskId, long mediaId) { - var Taskmedias = new TaskMedia(taskId,mediaId); + var Taskmedias = new TaskMedia(taskId, mediaId); _accountContext.Add(Taskmedias); } public void Remove(long id) { - var media = Get(id); + var media = Get(id); Remove(media); } @@ -77,6 +88,48 @@ public class MediaRepository:RepositoryBase,IMediaRepository { return _accountContext.Medias.Where(x => mediaIds.Contains(x.id)).ToList(); } + + public OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, + List allowedExtensions, string category) + { + OperationResult op = new(); + var path = Path.Combine(_basePath, relativePath); + var fileExtension = Path.GetExtension(file.FileName); + + if (file == null || file.Length == 0) + return op.Failed("خطای سیستمی"); + + if (file.Length > (maximumFileLength * 1024 * 1024)) + return op.Failed($"حجم فایل نمی تواند بیشتر از " + + $"{maximumFileLength}" + + $"مگابایت باشد"); + + if (!allowedExtensions.Contains(fileExtension.ToLower())) + { + var operationMessage = ":فرمت فایل باید یکی از موارد زیر باشد"; + operationMessage += "\n"; + operationMessage += string.Join(" ", allowedExtensions); + return op.Failed(operationMessage); + } + + + Directory.CreateDirectory(path); + + var extension = Path.GetExtension(file.FileName); + + var uniqueFileName = $"{fileLabel}-{DateTime.Now.Ticks}{extension}"; + var filePath = Path.Combine(path, uniqueFileName); + using (var fileStream = new FileStream(filePath, FileMode.CreateNew)) + { + file.CopyTo(fileStream); + } + var mediaEntity = new Media(filePath, extension, "فایل", category); + Create(mediaEntity); + SaveChanges(); + + return op.Succcedded(mediaEntity.id); + + } } #endregion diff --git a/Company.Domain/CheckoutAgg/Checkout.cs b/Company.Domain/CheckoutAgg/Checkout.cs index 760f8259..a0a24239 100644 --- a/Company.Domain/CheckoutAgg/Checkout.cs +++ b/Company.Domain/CheckoutAgg/Checkout.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using _0_Framework.Application; using _0_Framework.Domain; +using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using Company.Domain.CheckoutAgg.ValueObjects; using Company.Domain.CustomizeCheckoutAgg.ValueObjects; using Company.Domain.WorkshopAgg; @@ -29,7 +30,7 @@ public class Checkout : EntityBase string overNightWorkValue, string fridayWorkValue, string rotatingShifValue, string absenceValue, string totalDayOfLeaveCompute, string totalDayOfYearsCompute, string totalDayOfBunosesCompute, ICollection loanInstallments, - ICollection salaryAids) + ICollection salaryAids,CheckoutRollCall checkoutRollCall) { EmployeeFullName = employeeFullName; FathersName = fathersName; @@ -88,6 +89,7 @@ public class Checkout : EntityBase TotalDayOfBunosesCompute = totalDayOfBunosesCompute; LoanInstallments = loanInstallments; SalaryAids = salaryAids; + CheckoutRollCall = checkoutRollCall; } public string EmployeeFullName { get; private set; } @@ -196,7 +198,8 @@ public class Checkout : EntityBase public ICollection LoanInstallments { get; set; } = []; public ICollection SalaryAids { get; set; } = []; - #endregion + public CheckoutRollCall CheckoutRollCall { get; private set; } + #endregion public Workshop Workshop { get; set; } @@ -308,4 +311,149 @@ public class Checkout : EntityBase LoanInstallments = lonaInstallments; InstallmentDeduction = installmentsAmount; } + + public void SetCheckoutRollCall(CheckoutRollCall checkoutRollCall) + { + CheckoutRollCall = checkoutRollCall; + } +} + +public class CheckoutRollCall +{ + private CheckoutRollCall(){} + public CheckoutRollCall(TimeSpan totalMandatoryTimeSpan, TimeSpan totalPresentTimeSpan, TimeSpan totalBreakTimeSpan, + TimeSpan totalWorkingTimeSpan, TimeSpan totalPaidLeaveTmeSpan, TimeSpan totalSickLeaveTimeSpan, + ICollection rollCallDaysCollection) + { + TotalMandatoryTimeSpan = totalMandatoryTimeSpan; + TotalPresentTimeSpan = totalPresentTimeSpan; + TotalBreakTimeSpan = totalBreakTimeSpan; + TotalWorkingTimeSpan = totalWorkingTimeSpan; + TotalPaidLeaveTmeSpan = totalPaidLeaveTmeSpan; + TotalSickLeaveTimeSpan = totalSickLeaveTimeSpan; + RollCallDaysCollection = rollCallDaysCollection; + } + + + /// + /// مجموع ساعت موظفی + /// + public TimeSpan TotalMandatoryTimeSpan { get; private set; } + + /// + /// مجموع ساعت حضور + /// + public TimeSpan TotalPresentTimeSpan { get; private set; } + + /// + /// مجموع ساعت استراحت + /// + public TimeSpan TotalBreakTimeSpan { get; private set; } + + /// + /// مجموع ساعت کارکرد + /// + public TimeSpan TotalWorkingTimeSpan { get; private set; } + + /// + /// مجموع ساعت مرخصی استحقاقی + /// + public TimeSpan TotalPaidLeaveTmeSpan { get; private set; } + + /// + /// مجموع ساعت مرخصی استعلاجی + /// + public TimeSpan TotalSickLeaveTimeSpan { get; private set; } + + /// + /// روز های حضور غیاب + /// + public ICollection RollCallDaysCollection { get; private set; } +} + +public class CheckoutRollCallDay +{ + private CheckoutRollCallDay(){} + public CheckoutRollCallDay(DateTime date, string firstStartDate, string firstEndDate, + string secondStartDate, string secondEndDate, TimeSpan breakTimeSpan, + bool isSliced, TimeSpan workingTimeSpan, bool isAbsent, bool isFriday, + bool isHoliday, string leaveType) + { + Date = date; + FirstStartDate = firstStartDate; + FirstEndDate = firstEndDate; + SecondStartDate = secondStartDate; + SecondEndDate = secondEndDate; + BreakTimeSpan = breakTimeSpan; + IsSliced = isSliced; + WorkingTimeSpan = workingTimeSpan; + IsAbsent = isAbsent; + IsFriday = isFriday; + IsHoliday = isHoliday; + LeaveType = leaveType; + } + + public long Id { get; set; } + + /// + /// تاریخ + /// + public DateTime Date { get; private set; } + /// + /// ورود اول + /// + public string FirstStartDate { get; private set; } + + /// + /// خروج اول + /// + public string FirstEndDate { get; private set; } + + /// + /// ورود دوم + /// + public string SecondStartDate { get; private set; } + + /// + /// خروج دوم + /// + public string SecondEndDate { get; private set; } + + /// + /// ساعت استراحت + /// + public TimeSpan BreakTimeSpan { get; private set; } + + /// + /// مقدار زمان کارکرد + /// + public TimeSpan WorkingTimeSpan { get; private set; } + + /// + /// آیا منقطع است؟ + /// + public bool IsSliced { get; private set; } + + /// + /// آیا غیبت است + /// + public bool IsAbsent { get; private set; } + + /// + /// آیا جمعه است + /// + public bool IsFriday { get; private set; } + + /// + /// آیا تعطیل رسمی است + /// + public bool IsHoliday { get; private set; } + + /// + /// نوع مرخصی - درصورت نداشتن مرخصی مقدارش null میباشد + /// + public string LeaveType { get; private set; } + + public long CheckoutId { get; set; } + } \ No newline at end of file diff --git a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs index 6828fe80..90d2f576 100644 --- a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs +++ b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs @@ -59,6 +59,16 @@ public interface ICheckoutRepository : IRepository OperationResult DeleteAllCheckouts(List ids); OperationResult DeleteCheckout(long id); List CheckHasSignature(List ids); + + /// + /// لیست تصفیه حساب + /// جدید + /// + /// + /// + /// + Task> SearchCheckoutOptimized(CheckoutSearchModel searchModel); + Task> SearchForMainCheckout(CheckoutSearchModel searchModel); #endregion diff --git a/Company.Domain/EmployeeComputeOptionsAgg/EmployeeComputeOptions.cs b/Company.Domain/EmployeeComputeOptionsAgg/EmployeeComputeOptions.cs index 0f724037..4bb2974f 100644 --- a/Company.Domain/EmployeeComputeOptionsAgg/EmployeeComputeOptions.cs +++ b/Company.Domain/EmployeeComputeOptionsAgg/EmployeeComputeOptions.cs @@ -3,36 +3,110 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using _0_Framework.Application; using _0_Framework.Domain; namespace Company.Domain.EmployeeComputeOptionsAgg { public class EmployeeComputeOptions : EntityBase { - public EmployeeComputeOptions(long workshopId, long employeeId, string computeOptions, string bonusesOptions, string yearsOptions) - { - WorkshopId = workshopId; - EmployeeId = employeeId; - ComputeOptions = computeOptions; - BonusesOptions = bonusesOptions; - YearsOptions = yearsOptions; - } + public EmployeeComputeOptions(long workshopId, long employeeId, string computeOptions, string bonusesOptions, string yearsOptions, + bool createContract, bool signContract, bool createCheckout, bool signCheckout, string contractTerm, IsActive cutContractEndOfYear) + { + WorkshopId = workshopId; + EmployeeId = employeeId; + ComputeOptions = computeOptions; + BonusesOptions = bonusesOptions; + YearsOptions = yearsOptions; + ContractTerm = contractTerm; + CutContractEndOfYear = contractTerm == "1" ? IsActive.None : cutContractEndOfYear; - public long WorkshopId { get; private set;} - public long EmployeeId { get; private set;} + SetContractAndCheckoutOptions(createContract, signContract, createCheckout, signCheckout); + } - //نحوه محاسبه مزد مرخصی - public string ComputeOptions { get; private set; } - //نحوه محاسبه عیدی - public string BonusesOptions { get; private set; } - //نحوه محاسبه سنوات - public string YearsOptions { get; private set; } - public void Edit(string computeOptions, string bonusesOptions, string yearsOptions) - { - ComputeOptions = computeOptions; - BonusesOptions = bonusesOptions; - YearsOptions = yearsOptions; - } - } + + public long WorkshopId { get; private set; } + public long EmployeeId { get; private set; } + + //نحوه محاسبه مزد مرخصی + public string ComputeOptions { get; private set; } + //نحوه محاسبه عیدی + public string BonusesOptions { get; private set; } + //نحوه محاسبه سنوات + public string YearsOptions { get; private set; } + + /// + /// ایجاد قرارداد + /// + public bool CreateContract { get; private set; } + + /// + /// امضای قرارداد + /// + public bool SignContract { get; private set; } + /// + /// ایجاد تصفیه + /// + public bool CreateCheckout { get; private set; } + /// + /// امضای تصفیه + /// + public bool SignCheckout { get; private set; } + + /// + /// مدت قرارداد + /// + public string ContractTerm { get; private set; } + + /// + /// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد + /// این آیتم + /// True + /// است + /// + public IsActive CutContractEndOfYear { get; private set; } + + + + public void Edit(string computeOptions, string bonusesOptions, string yearsOptions, bool createContract, bool signContract, bool createCheckout, + bool signCheckout, string contractTerm, IsActive cutContractEndOfYear) + { + ComputeOptions = computeOptions; + BonusesOptions = bonusesOptions; + YearsOptions = yearsOptions; + + ContractTerm = contractTerm; + CutContractEndOfYear = contractTerm == "1" ? IsActive.None : cutContractEndOfYear; + SetContractAndCheckoutOptions(createContract, signContract, createCheckout, signCheckout); + } + + + + private void SetContractAndCheckoutOptions(bool createContract, bool signContract, bool createCheckout, + bool signCheckout) + { + CreateContract = createContract; + if (createContract) + { + SignContract = signContract; + CreateCheckout = createCheckout; + if (createCheckout) + { + SignCheckout = signCheckout; + } + else + { + SignCheckout = false; + } + } + else + { + SignContract = false; + CreateCheckout = false; + SignCheckout = false; + } + } + } } + diff --git a/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs b/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs index d40fca9c..1ff57039 100644 --- a/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs +++ b/Company.Domain/InsuranceListAgg/IInsuranceListRepository.cs @@ -60,4 +60,13 @@ public interface IInsuranceListRepository:IRepository #region client List SearchForClient(InsuranceListSearchModel searchModel); #endregion -} \ No newline at end of file + + #region Mahan + Task GetInsuranceOperationDetails(long id); + + Task GetTabCounts(InsuranceListSearchModel searchModel); + + #endregion +} + + diff --git a/Company.Domain/InsuranceListAgg/InsuranceList.cs b/Company.Domain/InsuranceListAgg/InsuranceList.cs index b0880d7f..3da643cb 100644 --- a/Company.Domain/InsuranceListAgg/InsuranceList.cs +++ b/Company.Domain/InsuranceListAgg/InsuranceList.cs @@ -4,7 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using _0_Framework.Domain; +using Company.Domain.InsuranceListAgg.ValueObjects; using Company.Domain.InsuranceWorkshopAgg; +using CompanyManagment.App.Contracts.InsuranceList.Enums; namespace Company.Domain.InsuranceListAgg; @@ -151,6 +153,21 @@ public class InsuranceList : EntityBase /// public double SumOfMarriedAllowance { get; private set; } + #region Mahan + /// + /// بازرسی + /// + public InsuranceListInspection Inspection { get; set; } =new (InsuranceListInspectionType.None,DateTime.MinValue, 0); + /// + /// بدهی + /// + public InsuranceListDebt Debt { get; set; } = new(InsuranceListDebtType.None, DateTime.MinValue, 0, 0); + /// + /// تاییدیه کارفرما + /// + public InsuranceListEmployerApproval EmployerApproval { get; set; } = new(InsuranceListEmployerApprovalStatus.None, string.Empty); + #endregion + public List InsuranceListWorkshops { get; set; } public void Edit(int sumOfEmployees, int sumOfWorkingDays, double sumOfSalaries, double sumOfBenefitsIncluded, double included, @@ -174,4 +191,22 @@ public class InsuranceList : EntityBase SumOfDailyWagePlusBaseYears = sumOfDailyWage + sumOfBaseYears; } -} \ No newline at end of file + + public void SetDebt(InsuranceListDebt debt) + { + Debt = debt; + } + public void SetInspection(InsuranceListInspection inspection) + { + Inspection = inspection; + } + public void SetEmployerApproval(InsuranceListEmployerApproval employerApproval) + { + EmployerApproval = employerApproval; + } + public void SetConfirmSentlist(bool confirmSentlist) + { + ConfirmSentlist = confirmSentlist; + } + +} diff --git a/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListDebt.cs b/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListDebt.cs new file mode 100644 index 00000000..1d3b488b --- /dev/null +++ b/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListDebt.cs @@ -0,0 +1,31 @@ +using System; +using CompanyManagment.App.Contracts.InsuranceList.Enums; + +namespace Company.Domain.InsuranceListAgg.ValueObjects; + +public class InsuranceListDebt +{ + public InsuranceListDebt(InsuranceListDebtType type, DateTime debtDate, double amount, long mediaId) + { + Type = type; + if (type == InsuranceListDebtType.None) + { + DebtDate = DateTime.MinValue; + Amount = 0; + MediaId = 0; + } + else + { + DebtDate = debtDate; + Amount = amount; + MediaId = mediaId; + IsDone = true; + } + } + + public InsuranceListDebtType Type { get; set; } + public DateTime DebtDate { get; set; } + public double Amount { get; set; } + public long MediaId { get; set; } + public bool IsDone { get; set; } +} \ No newline at end of file diff --git a/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListEmployerApproval.cs b/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListEmployerApproval.cs new file mode 100644 index 00000000..64a53bf4 --- /dev/null +++ b/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListEmployerApproval.cs @@ -0,0 +1,26 @@ +using System.Security.Cryptography; +using CompanyManagment.App.Contracts.InsuranceList.Enums; + +namespace Company.Domain.InsuranceListAgg.ValueObjects; + +public class InsuranceListEmployerApproval +{ + public InsuranceListEmployerApproval(InsuranceListEmployerApprovalStatus status, string description) + { + Status = status; + if (status == InsuranceListEmployerApprovalStatus.None) + { + Description = string.Empty; + } + else + { + + Description = description; + IsDone = true; + } + } + + public InsuranceListEmployerApprovalStatus Status { get; set; } + public string Description { get; set; } + public bool IsDone { get; set; } +} \ No newline at end of file diff --git a/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListInspection.cs b/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListInspection.cs new file mode 100644 index 00000000..4a1d15dd --- /dev/null +++ b/Company.Domain/InsuranceListAgg/ValueObjects/InsuranceListInspection.cs @@ -0,0 +1,29 @@ +using System; +using CompanyManagment.App.Contracts.InsuranceList.Enums; + +namespace Company.Domain.InsuranceListAgg.ValueObjects; + +public class InsuranceListInspection +{ + public InsuranceListInspection(InsuranceListInspectionType type, DateTime lastInspectionDateTime, long mediaId) + { + Type = type; + if (type == InsuranceListInspectionType.None) + { + LastInspectionDateTime = DateTime.MinValue; + MediaId = 0; + } + else + { + LastInspectionDateTime = lastInspectionDateTime; + MediaId = mediaId; + IsDone = true; + } + } + + public InsuranceListInspectionType Type { get; set; } + public DateTime LastInspectionDateTime { get; set; } + public long MediaId { get; set; } + public bool IsDone { get; set; } + +} \ No newline at end of file diff --git a/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs b/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs index 78c73415..3b0e36e3 100644 --- a/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs +++ b/Company.Domain/LeftWorkAgg/ILeftWorkRepository.cs @@ -5,6 +5,7 @@ using _0_Framework.Application; using _0_Framework.Domain; using CompanyManagment.App.Contracts.LeftWork; using CompanyManagment.App.Contracts.PersonnleCode; +using CompanyManagment.App.Contracts.Workshop.DTOs; namespace Company.Domain.LeftWorkAgg; @@ -46,4 +47,11 @@ public interface ILeftWorkRepository : IRepository Task GetLastLeftWork(long employeeId, long workshopId); List SearchCreateContract(LeftWorkSearchModel searchModel); + + /// + /// دریافت اطلاعات کارگاه و پرسنل برای ایجاد قرارداد + /// + /// + /// + AutoExtensionDto AutoExtentionEmployees(long workshopId); } \ No newline at end of file diff --git a/Company.Domain/WorkshopAgg/Workshop.cs b/Company.Domain/WorkshopAgg/Workshop.cs index a6246c50..c1a56263 100644 --- a/Company.Domain/WorkshopAgg/Workshop.cs +++ b/Company.Domain/WorkshopAgg/Workshop.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Globalization; using System.Security.AccessControl; +using _0_Framework.Application; using _0_Framework.Domain; using Company.Domain.CheckoutAgg; using Company.Domain.ClientEmployeeWorkshopAgg; @@ -92,7 +93,7 @@ public class Workshop : EntityBase string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm, string agreementNumber, bool fixedSalary, string population,long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay, bool totalPaymentHide, bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking, - bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance) + bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear) { WorkshopName = workshopName; WorkshopSureName = workshopSureName; @@ -136,7 +137,12 @@ public class Workshop : EntityBase WorkshopHolidayWorking = workshopHolidayWorking; InsuranceCheckoutOvertime = insuranceCheckoutOvertime; InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance; - } + CreateContract = createContract; + SignContract = signContract; + CreateCheckout = createCheckout; + SignCheckout = signCheckout; + CutContractEndOfYear = cutContractEndOfYear; + } public string WorkshopName { get; private set; } @@ -210,6 +216,19 @@ public class Workshop : EntityBase /// محاسبه حق اولاد در لیست بیمه /// public bool InsuranceCheckoutFamilyAllowance { get; private set; } + + public bool CreateContract { get; private set; } + public bool SignContract { get; private set; } + public bool CreateCheckout { get; private set; } + public bool SignCheckout { get; private set; } + + /// + /// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد + /// این آیتم + /// True + /// است + /// + public IsActive CutContractEndOfYear { get; private set; } //public Employer Employer { get; private set; } public Workshop() @@ -243,7 +262,7 @@ public class Workshop : EntityBase string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm, string agreementNumber, bool fixedSalary, string population, long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay, bool totalPaymentHide, bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking, - bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance) + bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear) { WorkshopName = workshopName; WorkshopSureName = workshopSureName; @@ -284,7 +303,12 @@ public class Workshop : EntityBase WorkshopHolidayWorking = workshopHolidayWorking; InsuranceCheckoutOvertime = insuranceCheckoutOvertime; InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance; - } + CreateContract = createContract; + SignContract = signContract; + CreateCheckout = createCheckout; + SignCheckout = signCheckout; + CutContractEndOfYear = cutContractEndOfYear; + } public void Active(string archiveCode) diff --git a/CompanyManagment.App.Contracts/Checkout/CheckoutViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CheckoutViewModel.cs index 134682a0..2dea371f 100644 --- a/CompanyManagment.App.Contracts/Checkout/CheckoutViewModel.cs +++ b/CompanyManagment.App.Contracts/Checkout/CheckoutViewModel.cs @@ -132,7 +132,118 @@ public class CheckoutViewModel /// مدت مرخصی استحقاقی /// public string TotalPaidLeave { get; set; } + + + public bool HasSignCheckout { get; set; } + + public TimeSpan TotalHourlyLeave { get; set; } public List MonthlyRollCall { get; set; } public List InstallmentViewModels { get; set; } public List SalaryAidViewModels { get; set; } + public CheckoutRollCallViewModel CheckoutRollCall { get; set; } + +} + +public class CheckoutRollCallViewModel +{ + /// + /// مجموع ساعت موظفی + /// + public TimeSpan TotalMandatoryTimeSpan { get; set; } + + /// + /// مجموع ساعت حضور + /// + public TimeSpan TotalPresentTimeSpan { get; set; } + + /// + /// مجموع ساعت استراحت + /// + public TimeSpan TotalBreakTimeSpan { get; set; } + + /// + /// مجموع ساعت کارکرد + /// + public TimeSpan TotalWorkingTimeSpan { get; set; } + + /// + /// مجموع ساعت مرخصی استحقاقی + /// + public TimeSpan TotalPaidLeaveTmeSpan { get; set; } + + /// + /// مجموع ساعت مرخصی استعلاجی + /// + public TimeSpan TotalSickLeaveTimeSpan { get; set; } + + /// + /// روز های حضور غیاب + /// + public ICollection RollCallDaysCollection { get; set; } +} + +public class CheckoutRollCallDayViewModel +{ + public long Id { get; set; } + + /// + /// تاریخ + /// + public DateTime Date { get; set; } + /// + /// ورود اول + /// + public string FirstStartDate { get; set; } + + /// + /// خروج اول + /// + public string FirstEndDate { get; set; } + + /// + /// ورود دوم + /// + public string SecondStartDate { get; set; } + + /// + /// خروج دوم + /// + public string SecondEndDate { get; set; } + + /// + /// ساعت استراحت + /// + public TimeSpan BreakTimeSpan { get; set; } + + /// + /// مقدار زمان کارکرد + /// + public TimeSpan WorkingTimeSpan { get; set; } + + /// + /// آیا منقطع است؟ + /// + public bool IsSliced { get; set; } + + /// + /// آیا غیبت است + /// + public bool IsAbsent { get; set; } + + /// + /// آیا جمعه است + /// + public bool IsFriday { get; set; } + + /// + /// آیا تعطیل رسمی است + /// + public bool IsHoliday { get; set; } + + /// + /// نوع مرخصی - درصورت نداشتن مرخصی مقدارش null میباشد + /// + public string LeaveType { get; set; } + + public long CheckoutId { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs index dee0bc11..423d087c 100644 --- a/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs +++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.RollCall; using CompanyManagment.App.Contracts.YearlySalary; using Microsoft.AspNetCore.Mvc.Rendering; @@ -138,4 +139,20 @@ public class CreateCheckout public string ShiftWork { get; set; } + /// + /// محاسبه اضافه کار در بیمه + /// + public bool HasInsuranceChekoutOverTime {get; set; } + + + public List GroupedRollCalls { get; set; } + + public TimeSpan TotalWorkingTimeSpan { get; set; } + + public TimeSpan TotalBreakTimeSpan { get; set; } + + public TimeSpan TotalPresentTimeSpan { get; set; } + public TimeSpan TotalPaidLeave { get; set; } + public TimeSpan TotalSickLeave { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs index c0daaa97..1414d918 100644 --- a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs +++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs @@ -39,7 +39,11 @@ public class CreateCheckoutListViewModel public string Description { get; set; } + /// + /// آیا پرسنل اجازه ایجاد قرارداد دارد + /// + public bool EmployeeHasCreateCheckout { get; set; } - + public bool HasWorkFlow { get; set; } public List CreateCheckoutList { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs index 40321f83..74f5cccb 100644 --- a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs +++ b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs @@ -27,6 +27,14 @@ public interface ICheckoutApplication Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart, string contractEnd); + /// + /// لیست تصفیه حساب + /// جدید + /// + /// + /// + /// + Task> SearchCheckoutOptimized(CheckoutSearchModel searchModel); Task> Search(CheckoutSearchModel searchModel); List SimpleSearch(CheckoutSearchModel searchModel); List PrintAll(List id); diff --git a/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs b/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs index 0596d434..0e8ce49c 100644 --- a/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs +++ b/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using CompanyManagment.App.Contracts.Loan; +using CompanyManagment.App.Contracts.RollCall; using CompanyManagment.App.Contracts.SalaryAid; using CompanyManagment.App.Contracts.WorkingHoursTemp; @@ -45,6 +46,15 @@ public class ComputingViewModel public bool HasRotatingShift { get; set; } + public List GroupedRollCalls { get; set; } + + public TimeSpan TotalWorkingTimeSpan { get; set; } + + public TimeSpan TotalBreakTimeSpan { get; set; } + + public TimeSpan TotalPresentTimeSpan { get; set; } + public TimeSpan TotalPaidLeave { get; set; } + public TimeSpan TotalSickLeave { get; set; } //public List holidays; } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Contract/ContractViweModel.cs b/CompanyManagment.App.Contracts/Contract/ContractViweModel.cs index f9d453b4..4e575494 100644 --- a/CompanyManagment.App.Contracts/Contract/ContractViweModel.cs +++ b/CompanyManagment.App.Contracts/Contract/ContractViweModel.cs @@ -63,6 +63,10 @@ public class ContractViweModel public string EmployeeLName { get; set; } public string IsBlockCantracingParty { get; set; } + /// + /// آیا مجاز به امضاء قرادا می باشد + /// + public bool HasSignContract { get; set; } public IQueryable WorkshopEmployerList { get; set; } public List Employers { get; set; } public List Workshops { get; set; } diff --git a/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs b/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs index 29f9346c..1918c115 100644 --- a/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs +++ b/CompanyManagment.App.Contracts/Employee/CreateEmployeeByClient.cs @@ -28,6 +28,8 @@ public class CreateEmployeeByClient public List EmployeeDocumentItems { get; set; } public bool HasEmployeeDocument { get; set; } public bool HasRollCallService { get; set; } + public bool CanceledAuthorize { get; set; } + public string BirthDate { get; set; } } diff --git a/CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs b/CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs index 3e4c10e6..4f6dce73 100644 --- a/CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs +++ b/CompanyManagment.App.Contracts/Employee/EmployeeByNationalCodeInWorkshopViewModel.cs @@ -17,6 +17,7 @@ public record EmployeeByNationalCodeInWorkshopViewModel public long PersonnelCode { get; set; } public List EmployeeBankInfos { get; set; } public EmployeeByNationalCodeEmployeeDocumentViewModel EmployeeDocument { get; set; } + public bool AuthorizedCanceled { get; set; } } diff --git a/CompanyManagment.App.Contracts/Employee/EmployeeDataFromApiViewModel.cs b/CompanyManagment.App.Contracts/Employee/EmployeeDataFromApiViewModel.cs index c28dc277..c6fca7ad 100644 --- a/CompanyManagment.App.Contracts/Employee/EmployeeDataFromApiViewModel.cs +++ b/CompanyManagment.App.Contracts/Employee/EmployeeDataFromApiViewModel.cs @@ -26,4 +26,5 @@ public class EmployeeDataFromApiViewModel /// public string IdNumberSeri { get; set; } + public bool AuthorizedCanceled { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/EmployeeComputeOptions/CreateEmployeeComputeOptions.cs b/CompanyManagment.App.Contracts/EmployeeComputeOptions/CreateEmployeeComputeOptions.cs index c9e9fa35..a9edb6e2 100644 --- a/CompanyManagment.App.Contracts/EmployeeComputeOptions/CreateEmployeeComputeOptions.cs +++ b/CompanyManagment.App.Contracts/EmployeeComputeOptions/CreateEmployeeComputeOptions.cs @@ -1,4 +1,5 @@ -using System; +using _0_Framework.Application; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -17,5 +18,35 @@ namespace CompanyManagment.App.Contracts.EmployeeComputeOptions public string BonusesOptions { get; set; } //نحوه محاسبه سنوات public string YearsOptions { get; set; } + + /// + /// ایجاد قرارداد + /// + public bool CreateContract { get; set; } + /// + /// امضای قرارداد + /// + public bool SignContract { get; set; } + /// + /// ایجاد تصفیه + /// + public bool CreateCheckout { get; set; } + /// + /// امضای تصفیه + /// + public bool SignCheckout { get; set; } + + /// + /// مدت قرارداد + /// + public string ContractTerm { get; set; } + + /// + /// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد + /// این آیتم + /// True + /// است + /// + public IsActive CutContractEndOfYear { get; set; } } } diff --git a/CompanyManagment.App.Contracts/EmployeeComputeOptions/EmployeeComputeOptionsViewModel.cs b/CompanyManagment.App.Contracts/EmployeeComputeOptions/EmployeeComputeOptionsViewModel.cs index 5a6caa28..78249c6c 100644 --- a/CompanyManagment.App.Contracts/EmployeeComputeOptions/EmployeeComputeOptionsViewModel.cs +++ b/CompanyManagment.App.Contracts/EmployeeComputeOptions/EmployeeComputeOptionsViewModel.cs @@ -1,4 +1,6 @@ -namespace CompanyManagment.App.Contracts.EmployeeComputeOptions; +using _0_Framework.Application; + +namespace CompanyManagment.App.Contracts.EmployeeComputeOptions; public class EmployeeComputeOptionsViewModel { @@ -12,4 +14,34 @@ public class EmployeeComputeOptionsViewModel public string BonusesOptions { get; set; } //نحوه محاسبه سنوات public string YearsOptions { get; set; } + /// + /// ایجاد قرارداد + /// + public bool CreateContract { get; set; } + /// + /// امضای قرارداد + /// + public bool SignContract { get; set; } + /// + /// ایجاد تصفیه + /// + public bool CreateCheckout { get; set; } + /// + /// امضای تصفیه + /// + public bool SignCheckout { get; set; } + + + /// + /// مدت قرارداد + /// + public string ContractTerm { get; set; } + + /// + /// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد + /// این آیتم + /// True + /// است + /// + public IsActive CutContractEndOfYear { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/EditInsuranceList.cs b/CompanyManagment.App.Contracts/InsuranceList/EditInsuranceList.cs index 9a45fa67..93301e98 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/EditInsuranceList.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/EditInsuranceList.cs @@ -14,9 +14,6 @@ public class EditInsuranceList:CreateInsuranceList public bool FixedSalary { get; set; } public string Population { get; set; } public long? InsuranceJobId { get; set; } - - /// - /// پرسنل هایی که قرارداد ترک کار کرده اند ولی ترک کار بیمه ندارند - /// public List LeftWorkEmployees { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs b/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs index 3dcb1c29..66d08800 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/EmployeeDetailsForInsuranceListViewModel.cs @@ -298,4 +298,6 @@ public class EmployeeDetailsForInsuranceListViewModel ///// DSK_SPOUSE ///// //public double SumOfMarriedAllowance { get; set; } + public string Month { get; set; } + public string Year { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListDebtType.cs b/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListDebtType.cs new file mode 100644 index 00000000..8af13a94 --- /dev/null +++ b/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListDebtType.cs @@ -0,0 +1,8 @@ +namespace CompanyManagment.App.Contracts.InsuranceList.Enums; + +public enum InsuranceListDebtType +{ + None, + Old, + New +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListEmployerApprovalStatus.cs b/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListEmployerApprovalStatus.cs new file mode 100644 index 00000000..cce4e634 --- /dev/null +++ b/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListEmployerApprovalStatus.cs @@ -0,0 +1,14 @@ +namespace CompanyManagment.App.Contracts.InsuranceList.Enums; + +public enum InsuranceListEmployerApprovalStatus +{ + None, + /// + /// تاییدیه شفاهی (اذنی) + /// + VerbalApproval, + /// + /// تاییدیه کاغذی + /// + WrittenApproval +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListInspectionType.cs b/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListInspectionType.cs new file mode 100644 index 00000000..184cb99d --- /dev/null +++ b/CompanyManagment.App.Contracts/InsuranceList/Enums/InsuranceListInspectionType.cs @@ -0,0 +1,8 @@ +namespace CompanyManagment.App.Contracts.InsuranceList.Enums; + +public enum InsuranceListInspectionType +{ + None, + Old, + New +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/IInsuranceListApplication.cs b/CompanyManagment.App.Contracts/InsuranceList/IInsuranceListApplication.cs index 16b954d3..a93637cb 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/IInsuranceListApplication.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/IInsuranceListApplication.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using _0_Framework.Application; using CompanyManagment.App.Contracts.InsuranceList; +using Microsoft.AspNetCore.Http; namespace CompanyManagment.App.Contracts.InsuranceList; @@ -17,9 +18,9 @@ public interface IInsuranceListApplication MainEmployeeDetailsViewModel SearchEmployeeForCreateInsuranceList(EmployeeForCreateInsuranceListSearchModel searchModel); double MarriedAllowance(string maritalStatus, long jobId, bool includedStatus, - int countWorkingDays, double marriedAlowance, int endMonthCurrentDay); + int countWorkingDays, double marriedAlowance, int endMonthCurrentDay); - OperationResult CreateEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command); + OperationResult CreateEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command); OperationResult EditEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command); OperationResult Remove(long id); EditInsuranceList GetDetailsForEdit(long id); @@ -34,4 +35,16 @@ public interface IInsuranceListApplication //farokhiChanges (double basic, int totalYear) BasicYear(long employeeId, long worshopId, DateTime startDate); double GetMonthlyBaseYear(double dayliBase, int countWorkingDays); + + #region Mahan + /// + /// مراحل اجرایی برای تکمیل و ارسال لیست بیمه + /// + /// + Task ConfirmInsuranceOperation(InsuranceListConfirmOperation command); + Task GetInsuranceOperationDetails(long id); + + Task GetTabCounts(InsuranceListSearchModel searchModel); + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/InsuranceListConfirmOperation.cs b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListConfirmOperation.cs new file mode 100644 index 00000000..a13d7d1b --- /dev/null +++ b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListConfirmOperation.cs @@ -0,0 +1,48 @@ +using CompanyManagment.App.Contracts.InsuranceList.Enums; +using Microsoft.AspNetCore.Http; + +namespace CompanyManagment.App.Contracts.InsuranceList; + +public class InsuranceListConfirmOperation +{ + public long InsuranceListId { get; set; } + /// + /// بازرسی + /// + public CreateInsuranceListInspection Inspection { get; set; } + /// + /// بدهی + /// + public CreateInsuranceListDebt Debt { get; set; } + /// + /// تاییدیه کارفرما + /// + public CreateInsuranceListApproval Approval { get; set; } + public bool ConfirmSentList { get; set; } +} +public class CreateInsuranceListApproval +{ + public InsuranceListEmployerApprovalStatus ApprovalStatus { get; set; } + public string Description { get; set; } +} + +public class CreateInsuranceListDebt +{ + public InsuranceListDebtType Type { get; set; } + public string DebtDate { get; set; } + public string Amount { get; set; } + public IFormFile DebtFile { get; set; } + public long DebtFileMediaId { get; set; } + public string FilePath { get; set; } +} + +public class CreateInsuranceListInspection +{ + public InsuranceListInspectionType Type { get; set; } + public string LastInspectionDate { get; set; } + public IFormFile InspectionFile { get; set; } + public long InspectionFileMediaId { get; set; } + public string FilePath { get; set; } + + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/InsuranceListSearchModel.cs b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListSearchModel.cs index 432e79be..45606294 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/InsuranceListSearchModel.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListSearchModel.cs @@ -25,4 +25,29 @@ public class InsuranceListSearchModel public int PageIndex { get; set; } public bool SearchAll { get; set; } + + public InsuranceListSearchStatus Status { get; set; } +} + +public enum InsuranceListSearchStatus +{ + /// + /// انجام نشده + /// + NotStarted = 0, + + /// + /// در حال انجام امور + /// + InProgress = 1, + + /// + /// آماده ارسال لیست + /// + ReadyToSendList = 2, + + /// + /// انجام بیمه + /// + Done = 3 } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/InsuranceListTabsCountViewModel.cs b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListTabsCountViewModel.cs new file mode 100644 index 00000000..5764a66b --- /dev/null +++ b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListTabsCountViewModel.cs @@ -0,0 +1,24 @@ +namespace CompanyManagment.App.Contracts.InsuranceList; + +public class InsuranceListTabsCountViewModel +{ + /// + /// انجام نشده + /// + public int NotStarted { get; set; } + + /// + /// در حال انجام امور + /// + public int InProgress { get; set; } + + /// + /// آماده ارسال لیست + /// + public int ReadyToSendList { get; set; } + + /// + /// انجام بیمه + /// + public int Done { get; set; } +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/InsuranceList/InsuranceListViewModel.cs b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListViewModel.cs index 604d89b4..4a31820e 100644 --- a/CompanyManagment.App.Contracts/InsuranceList/InsuranceListViewModel.cs +++ b/CompanyManagment.App.Contracts/InsuranceList/InsuranceListViewModel.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using CompanyManagment.App.Contracts.InsuranceList.Enums; namespace CompanyManagment.App.Contracts.InsuranceList; @@ -27,4 +28,16 @@ public class InsuranceListViewModel public long WorkShopId { get; set; } public string IsBlockCantracingParty { get; set; } public long EmployerId { get; set; } + + /// وضعیت بازرسی + public bool InspectionDone { get; set; } + /// وضعیت بدهی + public bool DebtDone { get; set; } + /// تاییدیه کارفرما + public bool EmployerApproved { get; set; } + + /// + /// نوع تاییدیه کارفرما + /// + public InsuranceListEmployerApprovalStatus EmployerApprovalStatus { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs b/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs index 8e5a19b6..349884bd 100644 --- a/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs +++ b/CompanyManagment.App.Contracts/LeftWork/ILeftWorkApplication.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using _0_Framework.Application; using CompanyManagment.App.Contracts.PersonnleCode; +using CompanyManagment.App.Contracts.Workshop.DTOs; using Microsoft.AspNetCore.Mvc; namespace CompanyManagment.App.Contracts.LeftWork; @@ -30,4 +31,10 @@ public interface ILeftWorkApplication OperationResult CreateLeftWorkByLeftWorkGroups(string employeeFullName, long commandEmployeeId, List commandPersonnelCode, List leftWorkGroups); OperationResult CheckDeleteLeftWork(long workshopId, long employeeId, string date, int type); OperationResult CheckEditLeftWork(long workshopId, long employeeId, string date, int type); + /// + /// دریافت اطلاعات کارگاه و پرسنل برای ایجاد قرارداد + /// + /// + /// + AutoExtensionDto AutoExtentionEmployees(long workshopId); } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/RollCall/ShiftList.cs b/CompanyManagment.App.Contracts/RollCall/ShiftList.cs index e405366e..0cf64861 100644 --- a/CompanyManagment.App.Contracts/RollCall/ShiftList.cs +++ b/CompanyManagment.App.Contracts/RollCall/ShiftList.cs @@ -6,10 +6,12 @@ public class ShiftList { public DateTime Start { get; set; } public DateTime End { get; set; } - /// - /// تاخیر در ورود (مدت زمانی که کارمند با تأخیر وارد شده است) - /// - public TimeSpan LateEntryDuration { get; set; } + + public DateTime EndWithOutResTime { get; set; } + /// + /// تاخیر در ورود (مدت زمانی که کارمند با تأخیر وارد شده است) + /// + public TimeSpan LateEntryDuration { get; set; } /// /// تعجیل در ورود (مدت زمانی که کارمند زودتر از زمان مشخص وارد شده است) diff --git a/CompanyManagment.App.Contracts/Workshop/ConnectedPersonnelViewModel.cs b/CompanyManagment.App.Contracts/Workshop/ConnectedPersonnelViewModel.cs index 8830cd2d..eb6baebf 100644 --- a/CompanyManagment.App.Contracts/Workshop/ConnectedPersonnelViewModel.cs +++ b/CompanyManagment.App.Contracts/Workshop/ConnectedPersonnelViewModel.cs @@ -1,4 +1,5 @@ -using System; +using _0_Framework.Application; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -26,4 +27,34 @@ public class ConnectedPersonnelViewModel public string BonusesOptions { get; set; } //نحوه محاسبه سنوات public string YearsOptions { get; set; } + + /// + /// ایجاد قرارداد + /// + public bool CreateContract { get; set; } + /// + /// امضای قرارداد + /// + public bool SignContract { get; set; } + /// + /// ایجاد تصفیه + /// + public bool CreateCheckout { get; set; } + /// + /// امضای تصفیه + /// + public bool SignCheckout { get; set; } + + /// + /// مدت قرارداد + /// + public string ContractTerm { get; set; } + + /// + /// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد + /// این آیتم + /// True + /// است + /// + public IsActive CutContractEndOfYear { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/CreateWorkshop.cs b/CompanyManagment.App.Contracts/Workshop/CreateWorkshop.cs index cd0d05b0..5ade90d9 100644 --- a/CompanyManagment.App.Contracts/Workshop/CreateWorkshop.cs +++ b/CompanyManagment.App.Contracts/Workshop/CreateWorkshop.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using _0_Framework.Application; using AccountManagement.Application.Contracts.Account; using CompanyManagment.App.Contracts.Employer; using CompanyManagment.App.Contracts.InsuranceJob; @@ -116,4 +117,29 @@ public class CreateWorkshop /// public bool InsuranceCheckoutFamilyAllowance { get; set; } + /// + /// ایجاد قرارداد + /// + public bool CreateContract { get; set; } + /// + /// امضاء قراداد + /// + public bool SignContract { get; set; } + /// + /// ایجات تصفیه حساب + /// + public bool CreateCheckout { get; set; } + /// + /// امضاء تصفیه حساب + /// + public bool SignCheckout { get; set; } + + /// + /// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد + /// این آیتم + /// True + /// است + /// + public IsActive CutContractEndOfYear { get; set; } + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionDto.cs b/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionDto.cs new file mode 100644 index 00000000..48b93965 --- /dev/null +++ b/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionDto.cs @@ -0,0 +1,64 @@ +using System.Collections.Generic; +using Microsoft.AspNetCore.Mvc.Rendering; + +namespace CompanyManagment.App.Contracts.Workshop.DTOs; + +public class AutoExtensionDto +{ + /// + /// نام کارگاه + /// + public string WorkshopName { get; set; } + + /// + /// آیا کارفرما خطای اطلاعات هویتی دارد + /// + public bool EmployerWarning { get; set; } + + /// + /// پیام خطاهای کارفرما + /// + public string EmployerWarningMessage { get; set; } + + /// + /// آیا کارگاه پرسنل دارد + /// + public bool HavingPersonel { get; set; } + + /// + /// آی دی کارگاه + /// + public long WorkshopId { get; set; } + + /// + /// کد بایگانی کارگاه + /// + public string ArchiveCode { get; set; } + /// + /// آدرس کارگاه + /// + public string WAddress1 { get; set; } + + /// + /// آی دی کارفرما + /// + public long EmployerId { get; set; } + + /// + /// سلکت لیست پرسنل + /// + public SelectList EmployeeSelectList { get; set; } + + /// + /// لیست پرسنل + /// + public List EmployeeList { get; set; } + + /// + /// آیا مجاز به ایجاد قراداد است؟ + /// + public bool CreateContract { get; set; } + + + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionEmployeeListDto.cs b/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionEmployeeListDto.cs new file mode 100644 index 00000000..f92c4330 --- /dev/null +++ b/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionEmployeeListDto.cs @@ -0,0 +1,38 @@ +namespace CompanyManagment.App.Contracts.Workshop.DTOs; + +public class AutoExtensionEmployeeListDto +{ + /// + /// آی دی پرسنل + /// + public long EmployeeId { get; set; } + /// + /// نام کامل پرسنل + /// + public string EmployeeName { get; set; } + + /// + /// کد پرسنلی + /// + public long PersonnelCode { get; set; } + + /// + /// سمت + /// + public string JobType { get; set; } + + /// + /// آی دی شغل + /// + public long JobTypeId { get; set; } + + /// + /// آیا پرسنل اجازه ایجاد قرارداد دارد + /// + public bool EmployeeHasCreateContract { get; set; } + + + public string ContarctStart { get; set; } + public string ContractEnd { get; set; } + +} \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/Workshop/WorkshopViewModel.cs b/CompanyManagment.App.Contracts/Workshop/WorkshopViewModel.cs index 83ae5e48..434fedcd 100644 --- a/CompanyManagment.App.Contracts/Workshop/WorkshopViewModel.cs +++ b/CompanyManagment.App.Contracts/Workshop/WorkshopViewModel.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using _0_Framework.Application; using CompanyManagment.App.Contracts.Employee; using CompanyManagment.App.Contracts.Employer; using CompanyManagment.App.Contracts.LeftWork; @@ -80,5 +81,31 @@ public class WorkshopViewModel public string HasRollCallFreeVip { get; set; } - #endregion + #endregion + + + /// + /// ایجاد قرارداد + /// + public bool CreateContract { get; set; } + /// + /// امضاء قراداد + /// + public bool SignContract { get; set; } + /// + /// ایجات تصفیه حساب + /// + public bool CreateCheckout { get; set; } + /// + /// امضاء تصفیه حساب + /// + public bool SignCheckout { get; set; } + + /// + /// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد + /// این آیتم + /// True + /// است + /// + public IsActive CutContractEndOfYear { get; set; } } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs b/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs index d068375a..42e5b33e 100644 --- a/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs +++ b/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs @@ -25,4 +25,5 @@ public interface IYearlySalaryApplication InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year); #endregion + } \ No newline at end of file diff --git a/CompanyManagment.Application/AndroidApkVersionApplication.cs b/CompanyManagment.Application/AndroidApkVersionApplication.cs index e201ca52..ac41133c 100644 --- a/CompanyManagment.Application/AndroidApkVersionApplication.cs +++ b/CompanyManagment.Application/AndroidApkVersionApplication.cs @@ -48,9 +48,9 @@ public class AndroidApkVersionApplication : IAndroidApkVersionApplication Directory.CreateDirectory(path); - var apk = new ApkReader.ApkReader().Read(file.OpenReadStream()); + //var apk = new ApkReader.ApkReader().Read(file.OpenReadStream()); - string uniqueFileName = $"{Path.GetFileNameWithoutExtension(file.FileName)}.v{apk.VersionName}{Path.GetExtension(file.FileName)}"; + string uniqueFileName = $"{Path.GetFileNameWithoutExtension(file.FileName)}{Path.GetExtension(file.FileName)}"; string filepath = Path.Combine(path, uniqueFileName); @@ -60,7 +60,7 @@ public class AndroidApkVersionApplication : IAndroidApkVersionApplication await file.CopyToAsync(stream); } - var entity = new AndroidApkVersion(apk.VersionName, apk.VersionCode, IsActive.True, filepath); + var entity = new AndroidApkVersion("0", "0", IsActive.True, filepath); _androidApkVersionRepository.Create(entity); _androidApkVersionRepository.SaveChanges(); return op.Succcedded(); diff --git a/CompanyManagment.Application/BankApplication.cs b/CompanyManagment.Application/BankApplication.cs index 7dabda37..d4c0a44d 100644 --- a/CompanyManagment.Application/BankApplication.cs +++ b/CompanyManagment.Application/BankApplication.cs @@ -55,7 +55,7 @@ namespace CompanyManagment.Application if(command.BankLogoPictureFile != null && command.BankLogoPictureFile.Length >0 ) { var uploadResult = _mediaApplication.UploadFile(command.BankLogoPictureFile, command.BankName, - _basePath, 10, [".jpg", ".jpeg", ".png",".svg"]); + _basePath, 10, [".jpg", ".jpeg", ".png",".svg"], "Bank"); if (uploadResult.IsSuccedded == false) return uploadResult; mediaId = uploadResult.SendId; @@ -81,7 +81,7 @@ namespace CompanyManagment.Application if (command.BankLogoPictureFile != null && command.BankLogoPictureFile.Length > 0) { var uploadResult = _mediaApplication.UploadFile(command.BankLogoPictureFile, command.BankName, - _basePath, 10, [".jpg", ".jpeg", ".png",".svg"]); + _basePath, 10, [".jpg", ".jpeg", ".png",".svg"], "Bank"); if (uploadResult.IsSuccedded == false) return uploadResult; _mediaApplication.DeleteFile(entity.BankLogoMediaId); diff --git a/CompanyManagment.Application/CheckoutApplication.cs b/CompanyManagment.Application/CheckoutApplication.cs index b7778cf3..7f6e34a5 100644 --- a/CompanyManagment.Application/CheckoutApplication.cs +++ b/CompanyManagment.Application/CheckoutApplication.cs @@ -14,267 +14,415 @@ using CompanyManagment.App.Contracts.Checkout; using CompanyManagment.App.Contracts.PersonalContractingParty; using CompanyManagment.App.Contracts.Leave; using CompanyManagment.App.Contracts.MandantoryHours; +using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; +using Company.Domain.EmployeeAgg; +using CompanyManagment.App.Contracts.HolidayItem; +using CompanyManagment.App.Contracts.RollCall; +using CompanyManagment.EFCore.Migrations; +using CompanyManagment.EFCore.Repository; +using System.Globalization; +using Company.Domain.LeaveAgg; +using Company.Domain.WorkshopAgg; namespace CompanyManagment.Application; public class CheckoutApplication : ICheckoutApplication { - private readonly ICheckoutRepository _checkoutRepository; - private readonly IYearlySalaryRepository _yearlySalaryRepository; - private readonly ILeftWorkRepository _leftWorkRepository; - private readonly IEmployerRepository _employerRepository; - private readonly IPersonalContractingPartyApp _contractingPartyApp; - private readonly ILeaveApplication _leaveApplication; - private readonly IMandatoryHoursApplication _mandatoryHoursApplication; - private readonly IRollCallMandatoryRepository _rollCallMandatoryRepository; + private readonly ICheckoutRepository _checkoutRepository; + private readonly IYearlySalaryRepository _yearlySalaryRepository; + private readonly ILeftWorkRepository _leftWorkRepository; + private readonly IEmployerRepository _employerRepository; + private readonly IPersonalContractingPartyApp _contractingPartyApp; + private readonly ILeaveApplication _leaveApplication; + private readonly IMandatoryHoursApplication _mandatoryHoursApplication; + private readonly IRollCallMandatoryRepository _rollCallMandatoryRepository; + private readonly IRollCallRepository _rollCallRepository; + private readonly IHolidayItemApplication _holidayItemApplication; - public CheckoutApplication(ICheckoutRepository checkoutRepository, IYearlySalaryRepository yearlySalaryRepository, - ILeftWorkRepository leftWorkRepository, - IEmployerRepository employerRepository, IPersonalContractingPartyApp contractingPartyApp, ILeaveApplication leaveApplication, IMandatoryHoursApplication mandatoryHoursApplication, IRollCallMandatoryRepository rollCallMandatoryRepository) - { - _checkoutRepository = checkoutRepository; - _yearlySalaryRepository = yearlySalaryRepository; - _leftWorkRepository = leftWorkRepository; - _employerRepository = employerRepository; - _contractingPartyApp = contractingPartyApp; - _leaveApplication = leaveApplication; - _mandatoryHoursApplication = mandatoryHoursApplication; - _rollCallMandatoryRepository = rollCallMandatoryRepository; - } + public CheckoutApplication(ICheckoutRepository checkoutRepository, IYearlySalaryRepository yearlySalaryRepository, + ILeftWorkRepository leftWorkRepository, + IEmployerRepository employerRepository, IPersonalContractingPartyApp contractingPartyApp, ILeaveApplication leaveApplication, IMandatoryHoursApplication mandatoryHoursApplication, IRollCallMandatoryRepository rollCallMandatoryRepository, IRollCallRepository rollCallRepository, IHolidayItemApplication holidayItemApplication) + { + _checkoutRepository = checkoutRepository; + _yearlySalaryRepository = yearlySalaryRepository; + _leftWorkRepository = leftWorkRepository; + _employerRepository = employerRepository; + _contractingPartyApp = contractingPartyApp; + _leaveApplication = leaveApplication; + _mandatoryHoursApplication = mandatoryHoursApplication; + _rollCallMandatoryRepository = rollCallMandatoryRepository; + _rollCallRepository = rollCallRepository; + _holidayItemApplication = holidayItemApplication; + } - [SuppressMessage("ReSharper.DPA", "DPA0007: Large number of DB records", MessageId = "count: 241")] - public void Create(CreateCheckout command) - { - var operation = new OperationResult(); - var syear = Convert.ToInt32(command.ContractStart.Substring(0, 4)); - var smonth = Convert.ToInt32(command.ContractStart.Substring(5, 2)); - string month = string.Empty; - switch (smonth) - { - case 1: - month = "فروردین"; - break; - case 2: - month = "اردیبهشت"; - break; - case 3: - month = "خرداد"; - break; - case 4: - month = "تیر"; - break; - case 5: - month = "مرداد"; - break; - case 6: - month = "شهریور"; - break; - case 7: - month = "مهر"; - break; - case 8: - month = "آبان"; - break; - case 9: - month = "آذر"; - break; - case 10: - month = "دی"; - break; - case 11: - month = "بهمن"; - break; - case 12: - month = "اسفند"; - break; - } - var year = syear.ToString(); + [SuppressMessage("ReSharper.DPA", "DPA0007: Large number of DB records", MessageId = "count: 241")] + public void Create(CreateCheckout command) + { + var operation = new OperationResult(); + var syear = Convert.ToInt32(command.ContractStart.Substring(0, 4)); + var smonth = Convert.ToInt32(command.ContractStart.Substring(5, 2)); + string month = string.Empty; + switch (smonth) + { + case 1: + month = "فروردین"; + break; + case 2: + month = "اردیبهشت"; + break; + case 3: + month = "خرداد"; + break; + case 4: + month = "تیر"; + break; + case 5: + month = "مرداد"; + break; + case 6: + month = "شهریور"; + break; + case 7: + month = "مهر"; + break; + case 8: + month = "آبان"; + break; + case 9: + month = "آذر"; + break; + case 10: + month = "دی"; + break; + case 11: + month = "بهمن"; + break; + case 12: + month = "اسفند"; + break; + } + var year = syear.ToString(); - #region SickLeav + #region SickLeav - //var serachModel = new LeaveSearchModel() - //{ - // EmployeeId = command.EmployeeId, - // WorkshopId = command.WorkshopId, - // LeaveType = "استعلاجی", - // StartLeave = command.ContractStart, - // EndLeave = command.ContractEnd, - // IsAccepted = true, - //}; - //var leavList = _leaveApplication.search(serachModel); - // int sickLeaveCount = 0; - //if (leavList.Count > 0) - //{ + //var serachModel = new LeaveSearchModel() + //{ + // EmployeeId = command.EmployeeId, + // WorkshopId = command.WorkshopId, + // LeaveType = "استعلاجی", + // StartLeave = command.ContractStart, + // EndLeave = command.ContractEnd, + // IsAccepted = true, + //}; + //var leavList = _leaveApplication.search(serachModel); + // int sickLeaveCount = 0; + //if (leavList.Count > 0) + //{ - // foreach (var leave in leavList) - // { - // if (leave.StartLeaveGr < command.ContractStartGr && leave.EndLeaveGr <= command.ContractEndGr) - // { - // int res = (int)((leave.EndLeaveGr - command.ContractStartGr).TotalDays +1); - // sickLeaveCount += res; - // } - // else if (leave.StartLeaveGr >= command.ContractStartGr && leave.EndLeaveGr > command.ContractEndGr) - // { - // int res = (int)((command.ContractEndGr - leave.StartLeaveGr).TotalDays + 1); - // sickLeaveCount += res; - // } - // else - // { - // int res = (int)((leave.EndLeaveGr - leave.StartLeaveGr).TotalDays + 1); - // sickLeaveCount += res; - // } + // foreach (var leave in leavList) + // { + // if (leave.StartLeaveGr < command.ContractStartGr && leave.EndLeaveGr <= command.ContractEndGr) + // { + // int res = (int)((leave.EndLeaveGr - command.ContractStartGr).TotalDays +1); + // sickLeaveCount += res; + // } + // else if (leave.StartLeaveGr >= command.ContractStartGr && leave.EndLeaveGr > command.ContractEndGr) + // { + // int res = (int)((command.ContractEndGr - leave.StartLeaveGr).TotalDays + 1); + // sickLeaveCount += res; + // } + // else + // { + // int res = (int)((leave.EndLeaveGr - leave.StartLeaveGr).TotalDays + 1); + // sickLeaveCount += res; + // } - // } - //} + // } + //} + + #endregion + + var dayliWage = command.DayliWage.MoneyToDouble(); + // کمک هزینه اقلام + var consumableItem = command.ConsumableItems.MoneyToDouble(); + //حق اولاد + var familyAllowance = command.FamilyAllowance.MoneyToDouble(); + //کمک هزینه مسکن + var housingAllowance = command.HousingAllowance.MoneyToDouble(); + //حق تاهل + var marriedAllowance = command.MarriedAllowance.MoneyToDouble(); + var MontlyYearsBunos = + _yearlySalaryRepository.GetMontlyBunosYears(command.WeeklyTime, command.ContractStartGr, command.ContractEndGr, dayliWage, command.WorkingWeeklyTime, command.officialholiday, command.friday, command.TotalHolidaysAndNotH, command.TotalHolidaysAndNotM, command.Basic, command.FridayStarttoEnd, command.DailFeeComplete, command.HasRollCall, command.HolidayWorking, command.ShiftWork); + //دستمزد ماهانه + var monthlyWage = MontlyYearsBunos.MontlyWage; + //سنوات + var years = command.YearsPay; + //عیدی و پاداش + var bunos = command.BonusesPay; + //پایه سنوات + var bacicYears = MontlyYearsBunos.BasicYears; + var sumOfWorkingDays = MontlyYearsBunos.SumOfWorkingDay; + if (command.friday > 0) + { + var fridayPercent = dayliWage * 40 / 100; + //فوق العاده جمعه کاری + command.FridayPay = fridayPercent * command.friday; + } + //حق بیمه سهم کارگر + #region InsuranceDeduction + + var insuranceOverTime = command.HasInsuranceChekoutOverTime ? command.OvertimePay : 0; + var insuranceDeduction = (monthlyWage + bacicYears + consumableItem + housingAllowance + marriedAllowance + insuranceOverTime) * 7 / 100; #endregion - var dayliWage = command.DayliWage.MoneyToDouble(); - // کمک هزینه اقلام - var consumableItem = command.ConsumableItems.MoneyToDouble(); - //حق اولاد - var familyAllowance = command.FamilyAllowance.MoneyToDouble(); - //کمک هزینه مسکن - var housingAllowance = command.HousingAllowance.MoneyToDouble(); - //حق تاهل - var marriedAllowance = command.MarriedAllowance.MoneyToDouble(); - var MontlyYearsBunos = - _yearlySalaryRepository.GetMontlyBunosYears(command.WeeklyTime, command.ContractStartGr, command.ContractEndGr, dayliWage, command.WorkingWeeklyTime, command.officialholiday, command.friday, command.TotalHolidaysAndNotH, command.TotalHolidaysAndNotM, command.Basic, command.FridayStarttoEnd, command.DailFeeComplete, command.HasRollCall, command.HolidayWorking, command.ShiftWork); - //دستمزد ماهانه - var monthlyWage = MontlyYearsBunos.MontlyWage; - //سنوات - var years = command.YearsPay; - //عیدی و پاداش - var bunos = command.BonusesPay; - //پایه سنوات - var bacicYears = MontlyYearsBunos.BasicYears; - var sumOfWorkingDays = MontlyYearsBunos.SumOfWorkingDay; - if (command.friday > 0) - { - var fridayPercent = dayliWage * 40 / 100; - //فوق العاده جمعه کاری - command.FridayPay = fridayPercent * command.friday; - } - //حق بیمه سهم کارگر - var insuranceDeduction = (monthlyWage + bacicYears + consumableItem + housingAllowance + marriedAllowance) * 7 / 100; if (command.OvertimePay > 0 && command.AbsenceDeduction > 0) - { - if (command.AbsenceDeduction >= command.OvertimePay) - { - command.AbsenceDeduction = command.AbsenceDeduction - command.OvertimePay; - command.OvertimePay = 0; - } - else - { - command.OvertimePay = command.OvertimePay - command.AbsenceDeduction; - command.AbsenceDeduction = 0; - } + { + if (command.AbsenceDeduction >= command.OvertimePay) + { + command.AbsenceDeduction = command.AbsenceDeduction - command.OvertimePay; + command.OvertimePay = 0; + } + else + { + command.OvertimePay = command.OvertimePay - command.AbsenceDeduction; + command.AbsenceDeduction = 0; + } - } - var checkoutStart = $"{command.Year}/{command.Month}/01"; - var checkoutEnd = checkoutStart.FindeEndOfMonth(); - var salaryAids = - _rollCallMandatoryRepository.SalaryAidsForCheckout(command.EmployeeId, command.WorkshopId, checkoutStart.ToGeorgianDateTime(), checkoutEnd.ToGeorgianDateTime()) - .Select(x => new CheckoutSalaryAid(x.Amount, x.SalaryAidDateTimeGe, x.SalaryAidDateTimeFa, x.CalculationDateTimeGe, x.CalculationDateTimeFa, x.Id)).ToList(); + } + var checkoutStart = $"{command.Year}/{command.Month}/01"; + var checkoutEnd = checkoutStart.FindeEndOfMonth(); + var salaryAids = + _rollCallMandatoryRepository.SalaryAidsForCheckout(command.EmployeeId, command.WorkshopId, checkoutStart.ToGeorgianDateTime(), checkoutEnd.ToGeorgianDateTime()) + .Select(x => new CheckoutSalaryAid(x.Amount, x.SalaryAidDateTimeGe, x.SalaryAidDateTimeFa, x.CalculationDateTimeGe, x.CalculationDateTimeFa, x.Id)).ToList(); - command.SalaryAidDeduction = salaryAids.Sum(x => x.Amount.MoneyToDouble()); + command.SalaryAidDeduction = salaryAids.Sum(x => x.Amount.MoneyToDouble()); - var loanInstallments = _rollCallMandatoryRepository.LoanInstallmentForCheckout(command.EmployeeId, - command.WorkshopId, command.ContractStartGr, command.ContractEndGr) - .Select(x => new CheckoutLoanInstallment(x.Amount, x.Month, x.Year, x.IsActive, x.RemainingAmount, x.LoanAmount, x.Id)).ToList(); + var loanInstallments = _rollCallMandatoryRepository.LoanInstallmentForCheckout(command.EmployeeId, + command.WorkshopId, command.ContractStartGr, command.ContractEndGr) + .Select(x => new CheckoutLoanInstallment(x.Amount, x.Month, x.Year, x.IsActive, x.RemainingAmount, x.LoanAmount, x.Id)).ToList(); - command.InstallmentDeduction = loanInstallments.Sum(x => x.AmountForMonth.MoneyToDouble()); + command.InstallmentDeduction = loanInstallments.Sum(x => x.AmountForMonth.MoneyToDouble()); - var totalClaimsDouble = monthlyWage + bacicYears + consumableItem + housingAllowance + marriedAllowance + command.OvertimePay + - command.NightworkPay + familyAllowance + bunos + years + command.LeavePay + command.FridayPay + command.ShiftPay; - var totalClaims = totalClaimsDouble.ToMoney(); - var totalDeductionDouble = insuranceDeduction + command.AbsenceDeduction + command.InstallmentDeduction + command.SalaryAidDeduction; - var totalDeductions = totalDeductionDouble.ToMoney(); - var totalPayment = totalClaimsDouble - totalDeductionDouble; + - if (_checkoutRepository.Exists(x => - x.Month == command.Month && x.Year == command.Year && x.ContractNo == command.ContractNo)) - { - operation.Failed("امکان ثبت رکورد تکراری وجود ندارد"); - } - else - { - if (string.IsNullOrWhiteSpace(command.Signature)) - { - command.Signature = "0"; - } + var firstDayOfMonth = $"{command.ContractStart.Substring(0, 8)}01".ToGeorgianDateTime(); + var firstDayOfCurrentMonth = new DateTime(syear, smonth, 1, new PersianCalendar()); + + LeaveSearchModel sickLeaveSearch = new LeaveSearchModel() + { + EmployeeId = command.EmployeeId, + WorkshopId = command.WorkshopId, + StartLeaveGr = command.ContractStartGr, + EndLeaveGr = command.ContractEndGr, + IsAccepted = true, + }; + var leaves = _leaveApplication.search(sickLeaveSearch); + + firstDayOfMonth.AddMonthsFa(1, out var lastDayOfCurrentMonth); + + lastDayOfCurrentMonth = lastDayOfCurrentMonth.AddDays(-1); + + int dateRange = (int)(lastDayOfCurrentMonth - firstDayOfCurrentMonth).TotalDays + 1; + + var holidays = _holidayItemApplication.Search(new HolidayItemSearchModel() + { + HolidayYear = command.ContractStartGr.ToFarsiYear() + }); + //all the dates from start to end, to be compared with present days to get absent dates + var completeDaysList = Enumerable.Range(0, dateRange).Select(offset => firstDayOfCurrentMonth.AddDays(offset).Date).ToList(); + + var absentRecords = completeDaysList + .ExceptBy(command.GroupedRollCalls.Select(x => x.CreationDate.Date), y => y.Date) + .Select(x => + { + var leave = leaves.FirstOrDefault(y => + y.EmployeeId == command.EmployeeId && y.EndLeaveGr.Date >= x.Date && y.StartLeaveGr.Date <= x.Date); + var isHoliday = holidays.Any(y => y.HolidaydateGr == x.Date); + var isFriday = x.Date.DayOfWeek == DayOfWeek.Friday; + var isNormalWorkingDay = isHoliday == false && isFriday == false; + return new CheckoutDailyRollCallViewModel() + { + StartDate1 = null, + EndDate1 = null, + DateTimeGr = x.Date, + DayOfWeek = x.Date.DayOfWeek.ToString(), + RollCallDateFa = x.Date.ToFarsi(), + LeaveType = leave != null ? leave.LeaveType : "", + IsAbsent = leave == null && isNormalWorkingDay + }; + }); + + var presentDays = command.GroupedRollCalls.Select(x => + { + + var orderedRollcalls = x.ShiftList.OrderBy(y => y.Start); + + var rollCallTimeSpanPerDay = x.SumOneDaySpan; + TimeSpan breakTimePerDay = x.BreakTime; + + return new CheckoutDailyRollCallViewModel() + { + StartDate1 = orderedRollcalls.FirstOrDefault().Start.ToString("HH:mm"), + EndDate1 = orderedRollcalls.FirstOrDefault().EndWithOutResTime.ToString("HH:mm"), + + StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.Start.ToString("HH:mm") ?? "", + EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndWithOutResTime.ToString("HH:mm") ?? "", + + TotalhourseSpan = rollCallTimeSpanPerDay, + + BreakTimeTimeSpan = breakTimePerDay, + + DayOfWeek = x.CreationDate.DayOfWeek.DayOfWeeKToPersian(), + RollCallDateFa = x.CreationDate.Date.ToFarsi(), + DateTimeGr = x.CreationDate.Date, + IsSliced = x.ShiftList.Count() > 2, + IsAbsent = false + }; + }); + + + presentDays = presentDays.Select(x => new CheckoutDailyRollCallViewModel + { + StartDate1 = x.StartDate1, + EndDate1 = x.EndDate1, + EndDate2 = x.EndDate2, + StartDate2 = x.StartDate2, + TotalWorkingHours = $"{(int)(x.TotalhourseSpan.TotalHours)}:{x.TotalhourseSpan.Minutes:00}", + BreakTimeString = $"{(int)(x.BreakTimeTimeSpan.TotalHours)}:{x.BreakTimeTimeSpan.Minutes:00}", + TotalhourseSpan = x.TotalhourseSpan, + BreakTimeTimeSpan = x.BreakTimeTimeSpan, + DayOfWeek = x.DayOfWeek, + RollCallDateFa = x.RollCallDateFa, + DateTimeGr = x.DateTimeGr, + IsSliced = x.IsSliced, + IsAbsent = false + }); + + var result = presentDays.Concat(absentRecords).OrderBy(x => x.DateTimeGr).ToList(); + result.ForEach(x => + { + x.IsHoliday = holidays.Any(y => x.DateTimeGr.Date == y.HolidaydateGr.Date); + x.IsFriday = x.DateTimeGr.DayOfWeek == DayOfWeek.Friday; + }); + + var checkoutRollCallDays = result.Select(x => new CheckoutRollCallDay(x.DateTimeGr, + x.StartDate1, x.EndDate1, x.StartDate2, x.EndDate2, + x.BreakTimeTimeSpan, x.IsSliced, x.TotalhourseSpan, x.IsAbsent, x.IsFriday, x.IsHoliday, x.LeaveType)) + .ToList(); + + + double mandatoryHours = _mandatoryHoursApplication.GetMandatoryHoursByYearAndMonth(syear, smonth); + int mandatoryWholeHours = (int)mandatoryHours; + int mandatoryMinutes = (int)((mandatoryHours - mandatoryWholeHours) * 60); + + var totalMandatoryHours = TimeSpan.FromHours(mandatoryWholeHours).Add(TimeSpan.FromMinutes(mandatoryMinutes)); + var checkoutRollCall = new CheckoutRollCall(totalMandatoryHours, command.TotalPresentTimeSpan, command.TotalBreakTimeSpan, + command.TotalWorkingTimeSpan, command.TotalPaidLeave, command.TotalSickLeave, checkoutRollCallDays); - var checkout = new Checkout(command.EmployeeFullName, command.FathersName, command.NationalCode - , command.DateOfBirth, command.EmployeeId, command.WorkshopName, command.WorkshopId, command.ContractNo, command.ContractStartGr, command.ContractEndGr, month, year, - command.ContractId, command.WorkingHoursId, monthlyWage, bacicYears, consumableItem, housingAllowance - , command.OvertimePay, command.NightworkPay, command.FridayPay, 0, command.ShiftPay, familyAllowance, bunos, years, command.LeavePay, insuranceDeduction, 0, command.InstallmentDeduction, command.SalaryAidDeduction, command.AbsenceDeduction, sumOfWorkingDays, - command.ArchiveCode, command.PersonnelCode, totalClaims, totalDeductions, totalPayment, command.Signature, marriedAllowance, command.LeaveCheckout, command.CreditLeaves, command.AbsencePeriod, command.AverageHoursPerDay, command.HasRollCall, command.OverTimeWorkValue, command.OverNightWorkValue - , command.FridayWorkValue, command.RotatingShiftValue, command.AbsenceValue, command.TotalDayOfLeaveCompute, command.TotalDayOfYearsCompute, command.TotalDayOfBunosesCompute, loanInstallments, salaryAids); - _checkoutRepository.CreateCkeckout(checkout).GetAwaiter().GetResult(); - //_checkoutRepository.SaveChanges(); - //var employeeFullName = new SqlParameter("@EmployeeFullName", SqlDbType.NVarChar, 50); - //employeeFullName.Value = command.EmployeeFullName; - //var fathersName = new SqlParameter("@FathersName", SqlDbType.NVarChar, 20); - //fathersName.Value = command.EmployeeFullName; + var totalClaimsDouble = monthlyWage + bacicYears + consumableItem + housingAllowance + marriedAllowance + command.OvertimePay + + command.NightworkPay + familyAllowance + bunos + years + command.LeavePay + command.FridayPay + command.ShiftPay; + var totalClaims = totalClaimsDouble.ToMoney(); + var totalDeductionDouble = insuranceDeduction + command.AbsenceDeduction + command.InstallmentDeduction + command.SalaryAidDeduction; + var totalDeductions = totalDeductionDouble.ToMoney(); + var totalPayment = totalClaimsDouble - totalDeductionDouble; - } + if (_checkoutRepository.Exists(x => + x.Month == command.Month && x.Year == command.Year && x.ContractNo == command.ContractNo)) + { + operation.Failed("امکان ثبت رکورد تکراری وجود ندارد"); + } + else + { + if (string.IsNullOrWhiteSpace(command.Signature)) + { + command.Signature = "0"; + } - } - public OperationResult Edit(EditCheckout command) + var checkout = new Checkout(command.EmployeeFullName, command.FathersName, command.NationalCode + , command.DateOfBirth, command.EmployeeId, command.WorkshopName, command.WorkshopId, command.ContractNo, command.ContractStartGr, command.ContractEndGr, month, year, + command.ContractId, command.WorkingHoursId, monthlyWage, bacicYears, consumableItem, housingAllowance + , command.OvertimePay, command.NightworkPay, command.FridayPay, 0, command.ShiftPay, familyAllowance, bunos, years, command.LeavePay, insuranceDeduction, 0, command.InstallmentDeduction, command.SalaryAidDeduction, command.AbsenceDeduction, sumOfWorkingDays, + command.ArchiveCode, command.PersonnelCode, totalClaims, totalDeductions, totalPayment, command.Signature, marriedAllowance, command.LeaveCheckout, command.CreditLeaves, command.AbsencePeriod, command.AverageHoursPerDay, command.HasRollCall, command.OverTimeWorkValue, command.OverNightWorkValue + , command.FridayWorkValue, command.RotatingShiftValue, command.AbsenceValue, command.TotalDayOfLeaveCompute, command.TotalDayOfYearsCompute, command.TotalDayOfBunosesCompute, + loanInstallments, salaryAids,checkoutRollCall); + + _checkoutRepository.CreateCkeckout(checkout).GetAwaiter().GetResult(); + //_checkoutRepository.SaveChanges(); + + //var employeeFullName = new SqlParameter("@EmployeeFullName", SqlDbType.NVarChar, 50); + //employeeFullName.Value = command.EmployeeFullName; + //var fathersName = new SqlParameter("@FathersName", SqlDbType.NVarChar, 20); + //fathersName.Value = command.EmployeeFullName; + + } + + + } + + public OperationResult Edit(EditCheckout command) + { + throw new NotImplementedException(); + } + + public EditCheckout GetDetails(long id) + { + return _checkoutRepository.GetDetails(id); + } + + public async Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, + string contractStart, string contractEnd) + { + return await _checkoutRepository.GetContractResultToCreateCheckout(workshopId, employeeId, year, month, contractStart, + contractEnd); + + } + + public Task> SearchCheckoutOptimized(CheckoutSearchModel searchModel) { - throw new NotImplementedException(); + return _checkoutRepository.SearchCheckoutOptimized(searchModel); } - public EditCheckout GetDetails(long id) - { - return _checkoutRepository.GetDetails(id); - } - - public async Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, - string contractStart, string contractEnd) - { - return await _checkoutRepository.GetContractResultToCreateCheckout(workshopId, employeeId, year, month, contractStart, - contractEnd); - - } public async Task> Search(CheckoutSearchModel searchModel) { + var watch = System.Diagnostics.Stopwatch.StartNew(); + watch.Start(); var result = new List(); - var query = await _checkoutRepository.SearchForMainCheckout(searchModel); - query = query.Select(x => new CheckoutViewModel() - { - Id = x.Id, - EmployeeFullName = x.EmployeeFullName, - ContractStart = x.ContractStart, - ContractEnd = x.ContractEnd, - ContractStartGr = x.ContractStartGr, - ContractEndGr = x.ContractEndGr, - PersonnelCode = x.PersonnelCode, - PersonnelCodeInt = x.PersonnelCodeInt, - ArchiveCode = x.ArchiveCode, - SumOfWorkingDays = x.SumOfWorkingDays, - WorkshopName = x.WorkshopName, - Month = x.Month, - Year = x.Year, - ContractNo = x.ContractNo, - ContractId = x.ContractId, - WorkshopId = x.WorkshopId, - EmployeeId = x.EmployeeId, - IsActiveString = x.IsActiveString, - Signature = x.Signature, - CreationDate = x.CreationDate, - EmployerName = _employerRepository.GetEmployerByWorkshopId(x.WorkshopId).FirstOrDefault()?.EmployerFullName, - IsBlockCantracingParty = _employerRepository.GetEmployerByWorkshopId(x.WorkshopId).FirstOrDefault()?.IsBlockContractingParty, - }).ToList(); + var query = await _checkoutRepository.SearchForMainCheckout(searchModel); + query = query.Select(x => new CheckoutViewModel() + { + Id = x.Id, + EmployeeFullName = x.EmployeeFullName, + ContractStart = x.ContractStart, + ContractEnd = x.ContractEnd, + ContractStartGr = x.ContractStartGr, + ContractEndGr = x.ContractEndGr, + PersonnelCode = x.PersonnelCode, + PersonnelCodeInt = x.PersonnelCodeInt, + ArchiveCode = x.ArchiveCode, + SumOfWorkingDays = x.SumOfWorkingDays, + WorkshopName = x.WorkshopName, + Month = x.Month, + Year = x.Year, + ContractNo = x.ContractNo, + ContractId = x.ContractId, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + IsActiveString = x.IsActiveString, + Signature = x.Signature, + CreationDate = x.CreationDate, + EmployerName = _employerRepository.GetEmployerByWorkshopId(x.WorkshopId).FirstOrDefault()?.EmployerFullName, + IsBlockCantracingParty = _employerRepository.GetEmployerByWorkshopId(x.WorkshopId).FirstOrDefault()?.IsBlockContractingParty, + }).ToList(); //foreach (var items in query) //{ // var s = _employerRepository.GetEmployerByWorkshopId(items.WorkshopId); @@ -289,220 +437,241 @@ public class CheckoutApplication : ICheckoutApplication // // = employerName; //} - + Console.WriteLine("old : " + watch.Elapsed); return query; - } + } - public List SimpleSearch(CheckoutSearchModel searchModel) - { - return _checkoutRepository.SimpleSearch(searchModel); - } + public List SimpleSearch(CheckoutSearchModel searchModel) + { + return _checkoutRepository.SimpleSearch(searchModel); + } - public List PrintAll(List id) - { - var result = _checkoutRepository.PrintAll(id); - var oneRecord = result.FirstOrDefault(); - if (oneRecord == null) - return new(); - result.ForEach(x => - { + public List PrintAll(List id) + { + var result = _checkoutRepository.PrintAll(id); + var oneRecord = result.FirstOrDefault(); + if (oneRecord == null) + return new(); + result.ForEach(x => + { - int yearFa; - int monthFa; - try - { - yearFa = int.Parse(oneRecord.Year); - monthFa = oneRecord.Month.ToMonthByStringValue(); - } - catch (Exception e) - { - return; - } - double mandatoryHours = _mandatoryHoursApplication.GetMandatoryHoursByYearAndMonth(yearFa, monthFa); - int mandatoryWholeHours = (int)mandatoryHours; - int mandatoryMinutes = (int)((mandatoryHours - mandatoryWholeHours) * 60); - var totalWorking = new TimeSpan(x.MonthlyRollCall.Sum(y => y.TotalhourseSpan.Ticks)); - var totalBreakTime = new TimeSpan(x.MonthlyRollCall.Sum(y => y.BreakTimeTimeSpan.Ticks)); - var totalPresent = totalWorking + totalBreakTime; - x.TotalWorkingTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalWorking.TotalHours, totalWorking.Minutes, "-"); - x.TotalBreakTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalBreakTime.TotalHours, totalBreakTime.Minutes, "-"); - x.TotalPresentTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalPresent.TotalHours, totalPresent.Minutes, "-"); - x.TotalMandatoryTimeStr = Tools.ToFarsiHoursAndMinutes(mandatoryWholeHours, mandatoryMinutes, "-"); + int yearFa; + int monthFa; + try + { + yearFa = int.Parse(oneRecord.Year); + monthFa = oneRecord.Month.ToMonthByStringValue(); + } + catch (Exception e) + { + return; + } + double mandatoryHours = _mandatoryHoursApplication.GetMandatoryHoursByYearAndMonth(yearFa, monthFa); + int mandatoryWholeHours = (int)mandatoryHours; + int mandatoryMinutes = (int)((mandatoryHours - mandatoryWholeHours) * 60); + var totalWorking = new TimeSpan(x.MonthlyRollCall.Sum(y => y.TotalhourseSpan.Ticks)); + var totalBreakTime = new TimeSpan(x.MonthlyRollCall.Sum(y => y.BreakTimeTimeSpan.Ticks)); + TimeSpan totalPresent = totalWorking + totalBreakTime; + if (x.CheckoutRollCall == null) + { + if (x.HasRollCall) + { + totalWorking = new TimeSpan(x.MonthlyRollCall.Sum(x => x.TotalhourseSpan.Ticks)) - + x.TotalHourlyLeave; + totalBreakTime = new TimeSpan(x.MonthlyRollCall.Sum(x => x.BreakTimeTimeSpan.Ticks)); + totalPresent = totalWorking + totalBreakTime; + } + else + { + totalBreakTime = new TimeSpan(x.MonthlyRollCall.Sum(x => x.BreakTimeTimeSpan.Ticks)); + totalPresent = new TimeSpan(x.MonthlyRollCall.Sum(x => x.TotalhourseSpan.Ticks)); + totalWorking = totalPresent - totalBreakTime; + } - }); - return result; - } + x.TotalWorkingTimeStr = + Tools.ToFarsiHoursAndMinutes((int)totalWorking.TotalHours, totalWorking.Minutes, "-"); + x.TotalBreakTimeStr = + Tools.ToFarsiHoursAndMinutes((int)totalBreakTime.TotalHours, totalBreakTime.Minutes, "-"); + x.TotalPresentTimeStr = + Tools.ToFarsiHoursAndMinutes((int)totalPresent.TotalHours, totalPresent.Minutes, "-"); + x.TotalMandatoryTimeStr = Tools.ToFarsiHoursAndMinutes(mandatoryWholeHours, mandatoryMinutes, "-"); + } + }); + + return result; + } - public CheckoutViewModel PrintOne(long id) - { - var result = _checkoutRepository.PrintOne(id); + public CheckoutViewModel PrintOne(long id) + { + var result = _checkoutRepository.PrintOne(id); - int yearFa; - int monthFa; - try - { - yearFa = int.Parse(result.Year); - monthFa = result.Month.ToMonthByStringValue(); - } - catch (Exception e) - { - return new(); - } - double mandatoryHours = _mandatoryHoursApplication.GetMandatoryHoursByYearAndMonth(yearFa, monthFa); - int mandatoryWholeHours = (int)mandatoryHours; - int mandatoryMinutes = (int)((mandatoryHours - mandatoryWholeHours) * 60); - TimeSpan totalWorking; - TimeSpan totalBreakTime; - TimeSpan totalPresent; - if (result.HasRollCall) - { - totalWorking = new TimeSpan(result.MonthlyRollCall.Sum(x => x.TotalhourseSpan.Ticks)); - totalBreakTime = new TimeSpan(result.MonthlyRollCall.Sum(x => x.BreakTimeTimeSpan.Ticks)); - totalPresent = totalWorking + totalBreakTime; - } - else - { - totalBreakTime = new TimeSpan(result.MonthlyRollCall.Sum(x => x.BreakTimeTimeSpan.Ticks)); - totalPresent = new TimeSpan(result.MonthlyRollCall.Sum(x => x.TotalhourseSpan.Ticks)); - totalWorking = totalPresent - totalBreakTime; - } + int yearFa; + int monthFa; + try + { + yearFa = int.Parse(result.Year); + monthFa = result.Month.ToMonthByStringValue(); + } + catch (Exception e) + { + return new(); + } + double mandatoryHours = _mandatoryHoursApplication.GetMandatoryHoursByYearAndMonth(yearFa, monthFa); + int mandatoryWholeHours = (int)mandatoryHours; + int mandatoryMinutes = (int)((mandatoryHours - mandatoryWholeHours) * 60); + TimeSpan totalWorking; + TimeSpan totalBreakTime; + TimeSpan totalPresent; + TimeSpan totalHoursLeave; + if (result.HasRollCall) + { + totalWorking = new TimeSpan(result.MonthlyRollCall.Sum(x => x.TotalhourseSpan.Ticks)) - result.TotalHourlyLeave; + totalBreakTime = new TimeSpan(result.MonthlyRollCall.Sum(x => x.BreakTimeTimeSpan.Ticks)); + totalPresent = totalWorking + totalBreakTime; + } + else + { + totalBreakTime = new TimeSpan(result.MonthlyRollCall.Sum(x => x.BreakTimeTimeSpan.Ticks)); + totalPresent = new TimeSpan(result.MonthlyRollCall.Sum(x => x.TotalhourseSpan.Ticks)); + totalWorking = totalPresent - totalBreakTime; + } - result.TotalWorkingTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalWorking.TotalHours, totalWorking.Minutes, "-"); - result.TotalBreakTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalBreakTime.TotalHours, totalBreakTime.Minutes, "-"); - result.TotalPresentTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalPresent.TotalHours, totalPresent.Minutes, "-"); - result.TotalMandatoryTimeStr = Tools.ToFarsiHoursAndMinutes(mandatoryWholeHours, mandatoryMinutes, "-"); + result.TotalWorkingTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalWorking.TotalHours, totalWorking.Minutes, "-"); + result.TotalBreakTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalBreakTime.TotalHours, totalBreakTime.Minutes, "-"); + result.TotalPresentTimeStr = Tools.ToFarsiHoursAndMinutes((int)totalPresent.TotalHours, totalPresent.Minutes, "-"); + result.TotalMandatoryTimeStr = Tools.ToFarsiHoursAndMinutes(mandatoryWholeHours, mandatoryMinutes, "-"); - return result; - } + return result; + } - public CheckoutLeavePrintViewModel LeavePrint(long id) - { - return _checkoutRepository.PrintLeave(id); - } + public CheckoutLeavePrintViewModel LeavePrint(long id) + { + return _checkoutRepository.PrintLeave(id); + } - public OperationResult Sign(long id) - { - var opration = new OperationResult(); - var contract = _checkoutRepository.Get(id); - if (contract == null) - return opration.Failed("رکورد مورد نظر یافت نشد"); + public OperationResult Sign(long id) + { + var opration = new OperationResult(); + var contract = _checkoutRepository.Get(id); + if (contract == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); - contract.Sign(); + contract.Sign(); - _checkoutRepository.SaveChanges(); - opration.IsSuccedded = true; - return opration.Succcedded(); - } + _checkoutRepository.SaveChanges(); + opration.IsSuccedded = true; + return opration.Succcedded(); + } - public OperationResult UnSign(long id) - { - var opration = new OperationResult(); - var contract = _checkoutRepository.Get(id); - if (contract == null) - return opration.Failed("رکورد مورد نظر یافت نشد"); + public OperationResult UnSign(long id) + { + var opration = new OperationResult(); + var contract = _checkoutRepository.Get(id); + if (contract == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); - contract.UnSign(); + contract.UnSign(); - _checkoutRepository.SaveChanges(); - opration.IsSuccedded = true; - return opration.Succcedded(); - } + _checkoutRepository.SaveChanges(); + opration.IsSuccedded = true; + return opration.Succcedded(); + } - public OperationResult Active(long id) - { - var opration = new OperationResult(); - var contract = _checkoutRepository.Get(id); - if (contract == null) - return opration.Failed("رکورد مورد نظر یافت نشد"); + public OperationResult Active(long id) + { + var opration = new OperationResult(); + var contract = _checkoutRepository.Get(id); + if (contract == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); - contract.Active(); + contract.Active(); - _checkoutRepository.SaveChanges(); - return opration.Succcedded(); - } + _checkoutRepository.SaveChanges(); + return opration.Succcedded(); + } - public OperationResult DeActive(long id) - { - var opration = new OperationResult(); - var contract = _checkoutRepository.Get(id); - if (contract == null) - return opration.Failed("رکورد مورد نظر یافت نشد"); + public OperationResult DeActive(long id) + { + var opration = new OperationResult(); + var contract = _checkoutRepository.Get(id); + if (contract == null) + return opration.Failed("رکورد مورد نظر یافت نشد"); - contract.DeActive(); + contract.DeActive(); - _checkoutRepository.SaveChanges(); + _checkoutRepository.SaveChanges(); - return opration.Succcedded(); - } + return opration.Succcedded(); + } - public OperationResult RemoveCheckout(long id) - { - return _checkoutRepository.RemoveCheckout(id); - } + public OperationResult RemoveCheckout(long id) + { + return _checkoutRepository.RemoveCheckout(id); + } - public OperationResult CustomSet(long id, double rewardPay, double salaryAidDeduction) - { - var opration = new OperationResult(); - var checkout = _checkoutRepository.Get(id); - var totalClaimsDouble = checkout.TotalClaims.MoneyToDouble(); - var totalDeductionsDouble = checkout.TotalDeductions.MoneyToDouble(); - totalClaimsDouble = (double)(totalClaimsDouble - checkout.RewardPay); - totalDeductionsDouble = totalDeductionsDouble - checkout.SalaryAidDeduction; + public OperationResult CustomSet(long id, double rewardPay, double salaryAidDeduction) + { + var opration = new OperationResult(); + var checkout = _checkoutRepository.Get(id); + var totalClaimsDouble = checkout.TotalClaims.MoneyToDouble(); + var totalDeductionsDouble = checkout.TotalDeductions.MoneyToDouble(); + totalClaimsDouble = (double)(totalClaimsDouble - checkout.RewardPay); + totalDeductionsDouble = totalDeductionsDouble - checkout.SalaryAidDeduction; - var totalClaims = totalClaimsDouble + rewardPay; - var totalDeductions = totalDeductionsDouble + salaryAidDeduction; + var totalClaims = totalClaimsDouble + rewardPay; + var totalDeductions = totalDeductionsDouble + salaryAidDeduction; - var totalClaimsString = totalClaims.ToMoney(); - var totalDeductionsString = totalDeductions.ToMoney(); - var totalPayment = totalClaims - totalDeductions; + var totalClaimsString = totalClaims.ToMoney(); + var totalDeductionsString = totalDeductions.ToMoney(); + var totalPayment = totalClaims - totalDeductions; - checkout.CustomSet(rewardPay, salaryAidDeduction, totalClaimsString, totalDeductionsString, totalPayment); + checkout.CustomSet(rewardPay, salaryAidDeduction, totalClaimsString, totalDeductionsString, totalPayment); - _checkoutRepository.SaveChanges(); - opration.IsSuccedded = true; - return opration.Succcedded(); - } + _checkoutRepository.SaveChanges(); + opration.IsSuccedded = true; + return opration.Succcedded(); + } - #region Client + #region Client - public List SearchForClient(CheckoutSearchModel searchModel) - { - return _checkoutRepository.SearchForClient(searchModel); - } + public List SearchForClient(CheckoutSearchModel searchModel) + { + return _checkoutRepository.SearchForClient(searchModel); + } - #endregion - #region NewChangeByHeydari - public List CheckHasSignature(List ids) - { - return _checkoutRepository.CheckHasSignature(ids); - } - public OperationResult DeleteAllCheckouts(List ids) - { - return _checkoutRepository.DeleteAllCheckouts(ids); - } - public OperationResult DeleteCheckout(long id) - { - return _checkoutRepository.DeleteCheckout(id); - } - public async Task> SearchForMainCheckout(CheckoutSearchModel searchModel) - { - return await _checkoutRepository.SearchForMainCheckout(searchModel); - } - #endregion - #region Pooya + #endregion + #region NewChangeByHeydari + public List CheckHasSignature(List ids) + { + return _checkoutRepository.CheckHasSignature(ids); + } + public OperationResult DeleteAllCheckouts(List ids) + { + return _checkoutRepository.DeleteAllCheckouts(ids); + } + public OperationResult DeleteCheckout(long id) + { + return _checkoutRepository.DeleteCheckout(id); + } + public async Task> SearchForMainCheckout(CheckoutSearchModel searchModel) + { + return await _checkoutRepository.SearchForMainCheckout(searchModel); + } + #endregion + #region Pooya - public List<(long EmployeeId, DateTime CheckoutStart, DateTime CheckoutEnd)> GetLastCheckoutsByWorkshopIdForWorkFlow(long workshopId, DateTime start, DateTime end) - { - return _checkoutRepository.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, start, end); - } + public List<(long EmployeeId, DateTime CheckoutStart, DateTime CheckoutEnd)> GetLastCheckoutsByWorkshopIdForWorkFlow(long workshopId, DateTime start, DateTime end) + { + return _checkoutRepository.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, start, end); + } - #endregion + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/ContractApplication.cs b/CompanyManagment.Application/ContractApplication.cs index 8bcc1c80..4d670a54 100644 --- a/CompanyManagment.Application/ContractApplication.cs +++ b/CompanyManagment.Application/ContractApplication.cs @@ -12,6 +12,7 @@ using Company.Domain.YearlySalaryAgg; using Company.Domain.YearlySalaryItemsAgg; using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.EmployeeComputeOptions; using CompanyManagment.App.Contracts.Employer; using CompanyManagment.App.Contracts.LeftWork; using CompanyManagment.App.Contracts.PersonalContractingParty; @@ -39,6 +40,7 @@ public class ContractApplication : IContractApplication private readonly IPersonnelCodeRepository _personnelCodeRepository; private readonly IWorkingHoursTempApplication _workingHoursTempApplication; private readonly IPersonalContractingPartyApp _contractingPartyApp; + private readonly IEmployeeComputeOptionsApplication _employeeComputeOptionsApplication; public List EmpList; @@ -54,7 +56,7 @@ public class ContractApplication : IContractApplication IYearlySalaryRepository yearlySalaryRepository, IYearlySalaryItemRepository yearlySalaryItemRepository , IEmployeeApplication employeeApplication, IEmployerApplication employerApplication, IWorkshopApplication workshopApplication, IEmployerRepository employerRepository, - IWorkingHoursApplication workingHoursApplication, IWorkingHoursItemsApplication workingHoursItemsApplication, ILeftWorkRepository leftWorkRepository, IPersonnelCodeRepository personnelCodeRepository, IWorkingHoursTempApplication workingHoursTempApplication, IPersonalContractingPartyApp contractingPartyApp) + IWorkingHoursApplication workingHoursApplication, IWorkingHoursItemsApplication workingHoursItemsApplication, ILeftWorkRepository leftWorkRepository, IPersonnelCodeRepository personnelCodeRepository, IWorkingHoursTempApplication workingHoursTempApplication, IPersonalContractingPartyApp contractingPartyApp, IEmployeeComputeOptionsApplication employeeComputeOptionsApplication) { _contractRepository = contractRepository; _holidayItemRepository = holidayItemRepository; @@ -70,6 +72,7 @@ public class ContractApplication : IContractApplication _personnelCodeRepository = personnelCodeRepository; _workingHoursTempApplication = workingHoursTempApplication; _contractingPartyApp = contractingPartyApp; + _employeeComputeOptionsApplication = employeeComputeOptionsApplication; //_leftWorkApplication = leftWorkApplication; } @@ -3155,7 +3158,7 @@ public class ContractApplication : IContractApplication EmployeeFName = x.EmployeeFName, EmployeeLName = x.EmployeeLName, IsBlockCantracingParty = _contractingPartyApp.IsBlockByEmployerId(x.EmployerId), - + HasSignContract = _employeeComputeOptionsApplication.GetEmployeeOptions(x.WorkshopIds,x.EmployeeId).SignContract }).ToList(); diff --git a/CompanyManagment.Application/EmployeeAplication.cs b/CompanyManagment.Application/EmployeeAplication.cs index 7201bbac..5842c8eb 100644 --- a/CompanyManagment.Application/EmployeeAplication.cs +++ b/CompanyManagment.Application/EmployeeAplication.cs @@ -197,6 +197,7 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli return opration.Failed("کد ملی وارد شده تکراری است"); } } + @@ -995,10 +996,24 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli //{ // return op.Failed("این پرسنل قبلا افزوده شده است و در انتظار تایید میباشد"); //} + var employee = _EmployeeRepository.GetByNationalCodeIgnoreQueryFilter(command.NationalCode); + var workshop = _WorkShopRepository.GetDetails(command.WorkshopId); - if (employee == null) + + if (employee == null && command.CanceledAuthorize) + { + var birthDate = command.BirthDate.ToGeorgianDateTime(); + var dateOfIssue = new DateTime(1922, 1, 1); + + employee = new Employee(command.FirstName, command.LastName, null, birthDate, + dateOfIssue, null, command.NationalCode, null, command.Gender, "ایرانی", null, null); + _EmployeeRepository.Create(employee); + _EmployeeRepository.SaveChanges(); + + } + if (employee == null) { return op.Failed("خطای سیستمی. لطفا دوباره تلاش کنید . درصورت تکرار این مشکل با تیم پشتیبان تماس بگیرید"); } @@ -1241,6 +1256,11 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli if (employee == null) { var personalInfo = await _uidService.GetPersonalInfo(nationalCode, birthDate); + + if (personalInfo.ResponseContext.Status.Code == 14) + { + return op.Failed("سامانه احراز هویت در دسترس نمیباشد لطفا اطلاعات پرسنل را به صورت دستی وارد کنید",new EmployeeByNationalCodeInWorkshopViewModel(){AuthorizedCanceled = true}); + } if (personalInfo.ResponseContext.Status.Code != 0) { return op.Failed("کد ملی و تاریخ تولد با هم همخانی ندارند"); @@ -1539,7 +1559,11 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli if (employee.IsAuthorized == false) { var apiResult = await _uidService.GetPersonalInfo(nationalCode, birthDate); + if (apiResult.ResponseContext.Status.Code == 14) + { + return op.Failed("این پرسنل در بانک اطلاعات موجود میباشد"); + } if (apiResult.ResponseContext.Status.Code != 0) { return op.Failed("کد ملی و تاریخ تولد با هم همخانی ندارند"); @@ -1595,7 +1619,16 @@ public class EmployeeAplication : RepositoryBase, IEmployeeAppli return op.Succcedded(data); } var apiResult = await _uidService.GetPersonalInfo(nationalCode, birthDate); + if (apiResult.ResponseContext.Status.Code == 14) + { + return op.Failed("سامانه احراز هویت در دسترس نمیباشد لطفا اطلاعات پرسنل را به صورت دستی وارد کنید", new EmployeeDataFromApiViewModel() { AuthorizedCanceled = true }); + } + + if (apiResult.ResponseContext.Status.Code == 3) + { + return op.Failed("کد ملی نامعتبر است"); + } if (apiResult.ResponseContext.Status.Code != 0) { return op.Failed("کد ملی و تاریخ تولد با هم همخانی ندارند"); diff --git a/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs b/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs index 74760e7e..d7becaf1 100644 --- a/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs +++ b/CompanyManagment.Application/EmployeeComputeOptionsApplication.cs @@ -21,41 +21,54 @@ public class EmployeeComputeOptionsApplication : IEmployeeComputeOptionsApplicat public OperationResult Create(CreateEmployeeComputeOptions command) { - var opration = new OperationResult(); + + var opration = new OperationResult(); + if (command.CreateContract && command.ContractTerm != "1" && command.CutContractEndOfYear == IsActive.None) + return opration.Failed("لطفا تعیین کنید که قراداد منتهی به پایان سال یاشد یا نباشد"); + + if (command.ContractTerm == "1") + command.CutContractEndOfYear = IsActive.None; + + try - { - if (_employeeComputeOptionsRepository.Exists(x => - x.EmployeeId == command.EmployeeId && x.WorkshopId == command.WorkshopId)) - { - var query = GetEmployeeOptions(command.WorkshopId, command.EmployeeId); - var editOptions = _employeeComputeOptionsRepository.Get(query.Id); - editOptions.Edit(command.ComputeOptions, command.BonusesOptions, command.YearsOptions); - _employeeComputeOptionsRepository.SaveChanges(); - return opration.Succcedded(); - } - else - { - var createOptions = new EmployeeComputeOptions(command.WorkshopId, command.EmployeeId, - command.ComputeOptions, command.BonusesOptions, command.YearsOptions); - _employeeComputeOptionsRepository.Create(createOptions); - _employeeComputeOptionsRepository.SaveChanges(); - return opration.Succcedded(); - } - } - catch (Exception a) - { - return opration.Failed("ثبت با خطا مواجه شد"); - } - + { + if (_employeeComputeOptionsRepository.Exists(x => + x.EmployeeId == command.EmployeeId && x.WorkshopId == command.WorkshopId)) + { + var query = GetEmployeeOptions(command.WorkshopId, command.EmployeeId); + var editOptions = _employeeComputeOptionsRepository.Get(query.Id); + + editOptions.Edit(command.ComputeOptions, command.BonusesOptions, command.YearsOptions, + command.CreateContract, command.SignContract, command.CreateCheckout, command.SignCheckout, command.ContractTerm, command.CutContractEndOfYear); + + _employeeComputeOptionsRepository.SaveChanges(); + return opration.Succcedded(); + } + else + { + var createOptions = new EmployeeComputeOptions(command.WorkshopId, command.EmployeeId, + command.ComputeOptions, command.BonusesOptions, command.YearsOptions, command.CreateContract, + command.SignContract, command.CreateCheckout, command.SignCheckout, command.ContractTerm, command.CutContractEndOfYear); + + _employeeComputeOptionsRepository.Create(createOptions); + _employeeComputeOptionsRepository.SaveChanges(); + return opration.Succcedded(); + } + } + catch (Exception a) + { + return opration.Failed("ثبت با خطا مواجه شد"); + } + } public EmployeeComputeOptionsViewModel GetEmployeeOptions(long workshopId, long employeeId) { - return _employeeComputeOptionsRepository.GetEmployeeOptions(workshopId, employeeId); + return _employeeComputeOptionsRepository.GetEmployeeOptions(workshopId, employeeId); } public List GetAllByWorkshopId(long workshopId) { - return _employeeComputeOptionsRepository.GetAllByWorkshopId(workshopId); + return _employeeComputeOptionsRepository.GetAllByWorkshopId(workshopId); } } \ No newline at end of file diff --git a/CompanyManagment.Application/InsuranceListApplication.cs b/CompanyManagment.Application/InsuranceListApplication.cs index 95d3f118..251be235 100644 --- a/CompanyManagment.Application/InsuranceListApplication.cs +++ b/CompanyManagment.Application/InsuranceListApplication.cs @@ -1,10 +1,13 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.Linq; using System.Runtime.InteropServices; +using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; +using AccountManagement.Domain.MediaAgg; using Company.Domain.CheckoutAgg; using Company.Domain.DateSalaryAgg; using Company.Domain.DateSalaryItemAgg; @@ -15,6 +18,7 @@ using Company.Domain.empolyerAgg; using Company.Domain.InsuranceEmployeeInfoAgg; using Company.Domain.InsuranceJobItemAgg; using Company.Domain.InsuranceListAgg; +using Company.Domain.InsuranceListAgg.ValueObjects; using Company.Domain.InsurancWorkshopInfoAgg; using Company.Domain.LeftWorkAgg; using Company.Domain.LeftWorkInsuranceAgg; @@ -25,6 +29,7 @@ using CompanyManagment.App.Contracts.EmployeeInsurancListData; using CompanyManagment.App.Contracts.InsuranceEmployeeInfo; using CompanyManagment.App.Contracts.InsuranceJobItem; using CompanyManagment.App.Contracts.InsuranceList; +using CompanyManagment.App.Contracts.InsuranceList.Enums; using CompanyManagment.App.Contracts.InsuranceYearlySalary; using CompanyManagment.App.Contracts.LeftWorkInsurance; using CompanyManagment.App.Contracts.PersonalContractingParty; @@ -32,69 +37,72 @@ using CompanyManagment.App.Contracts.YearlySalary; using CompanyManagment.App.Contracts.YearlySalaryItems; using CompanyManagment.EFCore.Migrations; using MD.PersianDateTime.Standard; +using Microsoft.AspNetCore.Authorization.Infrastructure; +using Microsoft.AspNetCore.Http; namespace CompanyManagment.Application; -public class InsuranceListApplication: IInsuranceListApplication +public class InsuranceListApplication : IInsuranceListApplication { - //private readonly ITransactionManager _transactionManager; - private readonly IInsuranceListRepository _insuranceListRepositpry; - private readonly IEmployeeInsurancListDataRepository _employeeInsurancListDataRepository; - private readonly IInsuranceEmployeeInfoRepository _insuranceEmployeeInfoRepository; - private readonly IEmployeeRepository _employeeRepository; - private readonly IWorkshopRepository _workShopRepository; - private readonly ILeftWorkInsuranceApplication _leftWorkInsuranceApplication; - private readonly IInsuranceEmployeeInfoApplication _insuranceEmployeeInfoApplication; - private readonly IEmployeeInsurancListDataApplication _employeeInsurancListDataApplication; - private readonly IYearlySalaryApplication _yearlySalaryApplication; - private readonly IYearlySalaryItemApplication _yearlySalaryItemApplication; - private readonly IInsuranceWorkshopInfoRepository _insuranceWorkshopInfoRepository; - private readonly IInsuranceJobItemRepositpry _insuranceJobItemRepository; - private readonly IDateSalaryRepository _dateSalaryRepository; - private readonly IDateSalaryItemRepository _dateSalaryItemRepository; - private readonly IPersonalContractingPartyApp _contractingPartyApp; - private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository; - private readonly IInsuranceYearlySalaryApplication _insuranceYearlySalaryApplication; - private readonly ICheckoutRepository _checkoutRepository; + //private readonly ITransactionManager _transactionManager; + private readonly IInsuranceListRepository _insuranceListRepositpry; + private readonly IEmployeeInsurancListDataRepository _employeeInsurancListDataRepository; + private readonly IInsuranceEmployeeInfoRepository _insuranceEmployeeInfoRepository; + private readonly IEmployeeRepository _employeeRepository; + private readonly IWorkshopRepository _workShopRepository; + private readonly ILeftWorkInsuranceApplication _leftWorkInsuranceApplication; + private readonly IInsuranceEmployeeInfoApplication _insuranceEmployeeInfoApplication; + private readonly IEmployeeInsurancListDataApplication _employeeInsurancListDataApplication; + private readonly IYearlySalaryApplication _yearlySalaryApplication; + private readonly IYearlySalaryItemApplication _yearlySalaryItemApplication; + private readonly IInsuranceWorkshopInfoRepository _insuranceWorkshopInfoRepository; + private readonly IInsuranceJobItemRepositpry _insuranceJobItemRepository; + private readonly IDateSalaryRepository _dateSalaryRepository; + private readonly IDateSalaryItemRepository _dateSalaryItemRepository; + private readonly IPersonalContractingPartyApp _contractingPartyApp; + private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository; + private readonly IInsuranceYearlySalaryApplication _insuranceYearlySalaryApplication; + private readonly ICheckoutRepository _checkoutRepository; + private readonly IMediaRepository _mediaRepository; + public InsuranceListApplication(IInsuranceListRepository insuranceListRepositpry, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceEmployeeInfoRepository insuranceEmployeeInfoRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workShopRepository, ILeftWorkInsuranceApplication leftWorkInsuranceApplication, IInsuranceEmployeeInfoApplication insuranceEmployeeInfoApplication, IEmployeeInsurancListDataApplication employeeInsurancListDataApplication, IYearlySalaryApplication yearlySalaryApplication, IYearlySalaryItemApplication yearlySalaryItemApplication, IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository, IInsuranceJobItemRepositpry insuranceJobItemRepository, IDateSalaryRepository dateSalaryRepository, IDateSalaryItemRepository dateSalaryItemRepository, IPersonalContractingPartyApp contractingPartyApp, ILeftWorkInsuranceRepository leftWorkInsuranceRepository, IInsuranceYearlySalaryApplication insuranceYearlySalaryApplication, ICheckoutRepository checkoutRepository, IMediaRepository mediaRepository) + { + // _transactionManager = transactionManager; - public InsuranceListApplication( IInsuranceListRepository insuranceListRepositpry, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceEmployeeInfoRepository insuranceEmployeeInfoRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workShopRepository, ILeftWorkInsuranceApplication leftWorkInsuranceApplication, IInsuranceEmployeeInfoApplication insuranceEmployeeInfoApplication, IEmployeeInsurancListDataApplication employeeInsurancListDataApplication, IYearlySalaryApplication yearlySalaryApplication,IYearlySalaryItemApplication yearlySalaryItemApplication ,IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository,IInsuranceJobItemRepositpry insuranceJobItemRepository, IDateSalaryRepository dateSalaryRepository, IDateSalaryItemRepository dateSalaryItemRepository, IPersonalContractingPartyApp contractingPartyApp, ILeftWorkInsuranceRepository leftWorkInsuranceRepository, IInsuranceYearlySalaryApplication insuranceYearlySalaryApplication, ICheckoutRepository checkoutRepository) - { - // _transactionManager = transactionManager; - - _insuranceListRepositpry = insuranceListRepositpry; - _employeeInsurancListDataRepository = employeeInsurancListDataRepository; - _insuranceEmployeeInfoRepository = insuranceEmployeeInfoRepository; - _employeeRepository = employeeRepository; - _workShopRepository = workShopRepository; - _leftWorkInsuranceApplication = leftWorkInsuranceApplication; - _insuranceEmployeeInfoApplication = insuranceEmployeeInfoApplication; - _employeeInsurancListDataApplication = employeeInsurancListDataApplication; - _yearlySalaryApplication = yearlySalaryApplication; - _yearlySalaryItemApplication = yearlySalaryItemApplication; - _insuranceWorkshopInfoRepository = insuranceWorkshopInfoRepository; - _insuranceJobItemRepository = insuranceJobItemRepository; - _dateSalaryRepository = dateSalaryRepository; - _dateSalaryItemRepository = dateSalaryItemRepository; - _contractingPartyApp = contractingPartyApp; - _leftWorkInsuranceRepository = leftWorkInsuranceRepository; - _insuranceYearlySalaryApplication = insuranceYearlySalaryApplication; - _checkoutRepository = checkoutRepository; - } + _insuranceListRepositpry = insuranceListRepositpry; + _employeeInsurancListDataRepository = employeeInsurancListDataRepository; + _insuranceEmployeeInfoRepository = insuranceEmployeeInfoRepository; + _employeeRepository = employeeRepository; + _workShopRepository = workShopRepository; + _leftWorkInsuranceApplication = leftWorkInsuranceApplication; + _insuranceEmployeeInfoApplication = insuranceEmployeeInfoApplication; + _employeeInsurancListDataApplication = employeeInsurancListDataApplication; + _yearlySalaryApplication = yearlySalaryApplication; + _yearlySalaryItemApplication = yearlySalaryItemApplication; + _insuranceWorkshopInfoRepository = insuranceWorkshopInfoRepository; + _insuranceJobItemRepository = insuranceJobItemRepository; + _dateSalaryRepository = dateSalaryRepository; + _dateSalaryItemRepository = dateSalaryItemRepository; + _contractingPartyApp = contractingPartyApp; + _leftWorkInsuranceRepository = leftWorkInsuranceRepository; + _insuranceYearlySalaryApplication = insuranceYearlySalaryApplication; + _checkoutRepository = checkoutRepository; + _mediaRepository = mediaRepository; + } public OperationResult Create(CreateInsuranceList command) { - + var operation = new OperationResult(); - if (command.WorkshopId==0 ) + if (command.WorkshopId == 0) { return operation.Failed(" انتخاب کارگاه اجباری می باشد "); } - if ( command.Month == "0" ) + if (command.Month == "0") { return operation.Failed(" انتخاب ماه اجباری می باشد "); } - if ( command.Year == "0") + if (command.Year == "0") { return operation.Failed("انتخاب سال اجباری می باشد "); } @@ -114,64 +122,64 @@ public class InsuranceListApplication: IInsuranceListApplication { var createInsuranceEmployeeInfo = new CreateInsuranceEmployeeInfo(); - createInsuranceEmployeeInfo.EmployeeId = item.EmployeeId; - createInsuranceEmployeeInfo.FName = item.FName; - createInsuranceEmployeeInfo.LName = item.LName; - createInsuranceEmployeeInfo.FatherName = item.FatherName; - createInsuranceEmployeeInfo.PlaceOfIssue = item.PlaceOfIssue; - createInsuranceEmployeeInfo.NationalCode = item.NationalCode; - createInsuranceEmployeeInfo.IdNumber = item.IdNumber; - createInsuranceEmployeeInfo.Gender = item.Gender; - createInsuranceEmployeeInfo.InsuranceCode = item.InsuranceCode; - createInsuranceEmployeeInfo.DateOfBirthGr = item.DateOfBirth.ToGeorgianDateTime(); - createInsuranceEmployeeInfo.DateOfIssueGr = item.DateOfIssue.ToGeorgianDateTime(); - _insuranceEmployeeInfoApplication.Create(createInsuranceEmployeeInfo); - } - else - { + createInsuranceEmployeeInfo.EmployeeId = item.EmployeeId; + createInsuranceEmployeeInfo.FName = item.FName; + createInsuranceEmployeeInfo.LName = item.LName; + createInsuranceEmployeeInfo.FatherName = item.FatherName; + createInsuranceEmployeeInfo.PlaceOfIssue = item.PlaceOfIssue; + createInsuranceEmployeeInfo.NationalCode = item.NationalCode; + createInsuranceEmployeeInfo.IdNumber = item.IdNumber; + createInsuranceEmployeeInfo.Gender = item.Gender; + createInsuranceEmployeeInfo.InsuranceCode = item.InsuranceCode; + createInsuranceEmployeeInfo.DateOfBirthGr = item.DateOfBirth.ToGeorgianDateTime(); + createInsuranceEmployeeInfo.DateOfIssueGr = item.DateOfIssue.ToGeorgianDateTime(); + _insuranceEmployeeInfoApplication.Create(createInsuranceEmployeeInfo); + } + else + { - var insuranceEmployeeInfo = new EditInsuranceEmployeeInfo(); - insuranceEmployeeInfo.Id = item.InsuranceEmployeeInformationId; - insuranceEmployeeInfo.EmployeeId = item.EmployeeId; - insuranceEmployeeInfo.FName = item.FName; - insuranceEmployeeInfo.LName = item.LName; - insuranceEmployeeInfo.FatherName = item.FatherName; - insuranceEmployeeInfo.PlaceOfIssue = item.PlaceOfIssue; - insuranceEmployeeInfo.NationalCode = item.NationalCode; - insuranceEmployeeInfo.IdNumber = item.IdNumber; - insuranceEmployeeInfo.Gender = item.Gender; - insuranceEmployeeInfo.InsuranceCode = item.InsuranceCode; - insuranceEmployeeInfo.DateOfBirthGr = item.DateOfBirth.ToGeorgianDateTime(); - insuranceEmployeeInfo.DateOfIssueGr = item.DateOfIssue.ToGeorgianDateTime(); - _insuranceEmployeeInfoApplication.Edit(insuranceEmployeeInfo); + var insuranceEmployeeInfo = new EditInsuranceEmployeeInfo(); + insuranceEmployeeInfo.Id = item.InsuranceEmployeeInformationId; + insuranceEmployeeInfo.EmployeeId = item.EmployeeId; + insuranceEmployeeInfo.FName = item.FName; + insuranceEmployeeInfo.LName = item.LName; + insuranceEmployeeInfo.FatherName = item.FatherName; + insuranceEmployeeInfo.PlaceOfIssue = item.PlaceOfIssue; + insuranceEmployeeInfo.NationalCode = item.NationalCode; + insuranceEmployeeInfo.IdNumber = item.IdNumber; + insuranceEmployeeInfo.Gender = item.Gender; + insuranceEmployeeInfo.InsuranceCode = item.InsuranceCode; + insuranceEmployeeInfo.DateOfBirthGr = item.DateOfBirth.ToGeorgianDateTime(); + insuranceEmployeeInfo.DateOfIssueGr = item.DateOfIssue.ToGeorgianDateTime(); + _insuranceEmployeeInfoApplication.Edit(insuranceEmployeeInfo); - } - } - } - else - { - return operation.Failed(" لیست پرسنل در کارگاه و تاریخ انتخاب شده خالی است "); - } - #endregion + } + } + } + else + { + return operation.Failed(" لیست پرسنل در کارگاه و تاریخ انتخاب شده خالی است "); + } + #endregion - string startMonthCurrent = command.Year + "/" + command.Month + "/01"; - string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - command.StartDate = startMonthCurrent.ToGeorgianDateTime(); - command.EndDate = endMonthCurrent.ToGeorgianDateTime(); + string startMonthCurrent = command.Year + "/" + command.Month + "/01"; + string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); + command.StartDate = startMonthCurrent.ToGeorgianDateTime(); + command.EndDate = endMonthCurrent.ToGeorgianDateTime(); - #region InsuranceList + #region InsuranceList - operation = _insuranceListRepositpry.CreateInsuranceList(command); + operation = _insuranceListRepositpry.CreateInsuranceList(command); - #endregion + #endregion - return operation; - } - } + return operation; + } + } public OperationResult Edit(EditInsuranceList command) { - + var operation = new OperationResult(); if (command.WorkshopId == 0) { @@ -185,21 +193,21 @@ public class InsuranceListApplication: IInsuranceListApplication { return operation.Failed("انتخاب سال اجباری می باشد "); } - else if (_insuranceListRepositpry.Exists(x =>x.id!=command.Id && x.WorkshopId == command.WorkshopId && x.Month == command.Month && x.Year == command.Year)) + else if (_insuranceListRepositpry.Exists(x => x.id != command.Id && x.WorkshopId == command.WorkshopId && x.Month == command.Month && x.Year == command.Year)) { return operation.Failed(" لیست بیمه برای کارگاه، سال و ماه انتخاب شده قبلا ایجاد شده است "); } else { - #region EmployeeDetailsForInsurance - if (command.EmployeeDetailsForInsuranceList != null && command.EmployeeDetailsForInsuranceList.Count > 0) - { - foreach (var item in command.EmployeeDetailsForInsuranceList) - { - if (item.InsuranceEmployeeInformationId == 0) - { - var createInsuranceEmployeeInfo = new CreateInsuranceEmployeeInfo(); + #region EmployeeDetailsForInsurance + if (command.EmployeeDetailsForInsuranceList != null && command.EmployeeDetailsForInsuranceList.Count > 0) + { + foreach (var item in command.EmployeeDetailsForInsuranceList) + { + if (item.InsuranceEmployeeInformationId == 0) + { + var createInsuranceEmployeeInfo = new CreateInsuranceEmployeeInfo(); createInsuranceEmployeeInfo.EmployeeId = item.EmployeeId; createInsuranceEmployeeInfo.FName = item.FName; @@ -211,144 +219,144 @@ public class InsuranceListApplication: IInsuranceListApplication createInsuranceEmployeeInfo.Gender = item.Gender; createInsuranceEmployeeInfo.InsuranceCode = item.InsuranceCode; createInsuranceEmployeeInfo.DateOfBirthGr = item.DateOfBirth.ToGeorgianDateTime(); - createInsuranceEmployeeInfo.DateOfIssueGr =!string.IsNullOrEmpty(item.DateOfIssue)? item.DateOfIssue.ToGeorgianDateTime(): "1300/10/11".ToGeorgianDateTime(); + createInsuranceEmployeeInfo.DateOfIssueGr = !string.IsNullOrEmpty(item.DateOfIssue) ? item.DateOfIssue.ToGeorgianDateTime() : "1300/10/11".ToGeorgianDateTime(); _insuranceEmployeeInfoApplication.Create(createInsuranceEmployeeInfo); } else { - var insuranceEmployeeInfo = new EditInsuranceEmployeeInfo(); - insuranceEmployeeInfo.Id = item.InsuranceEmployeeInformationId; - insuranceEmployeeInfo.EmployeeId = item.EmployeeId; - insuranceEmployeeInfo.FName = item.FName; - insuranceEmployeeInfo.LName = item.LName; - insuranceEmployeeInfo.FatherName = item.FatherName; - insuranceEmployeeInfo.PlaceOfIssue = item.PlaceOfIssue; - insuranceEmployeeInfo.NationalCode = item.NationalCode; - insuranceEmployeeInfo.IdNumber = item.IdNumber; - insuranceEmployeeInfo.Gender = item.Gender; - insuranceEmployeeInfo.InsuranceCode = item.InsuranceCode; - insuranceEmployeeInfo.DateOfBirthGr = item.DateOfBirth.ToGeorgianDateTime(); - insuranceEmployeeInfo.DateOfIssueGr = !string.IsNullOrEmpty(item.DateOfIssue) ? item.DateOfIssue.ToGeorgianDateTime() : "1300/10/11".ToGeorgianDateTime(); ; - _insuranceEmployeeInfoApplication.Edit(insuranceEmployeeInfo); + var insuranceEmployeeInfo = new EditInsuranceEmployeeInfo(); + insuranceEmployeeInfo.Id = item.InsuranceEmployeeInformationId; + insuranceEmployeeInfo.EmployeeId = item.EmployeeId; + insuranceEmployeeInfo.FName = item.FName; + insuranceEmployeeInfo.LName = item.LName; + insuranceEmployeeInfo.FatherName = item.FatherName; + insuranceEmployeeInfo.PlaceOfIssue = item.PlaceOfIssue; + insuranceEmployeeInfo.NationalCode = item.NationalCode; + insuranceEmployeeInfo.IdNumber = item.IdNumber; + insuranceEmployeeInfo.Gender = item.Gender; + insuranceEmployeeInfo.InsuranceCode = item.InsuranceCode; + insuranceEmployeeInfo.DateOfBirthGr = item.DateOfBirth.ToGeorgianDateTime(); + insuranceEmployeeInfo.DateOfIssueGr = !string.IsNullOrEmpty(item.DateOfIssue) ? item.DateOfIssue.ToGeorgianDateTime() : "1300/10/11".ToGeorgianDateTime(); ; + _insuranceEmployeeInfoApplication.Edit(insuranceEmployeeInfo); - } - } - } - else - { - return operation.Failed(" لیست پرسنل در کارگاه و تاریخ انتخاب شده خالی است "); - } - #endregion + } + } + } + else + { + return operation.Failed(" لیست پرسنل در کارگاه و تاریخ انتخاب شده خالی است "); + } + #endregion - string startMonthCurrent = command.Year + "/" + command.Month + "/01"; - string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - command.StartDate = startMonthCurrent.ToGeorgianDateTime(); - command.EndDate = endMonthCurrent.ToGeorgianDateTime(); + string startMonthCurrent = command.Year + "/" + command.Month + "/01"; + string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); + command.StartDate = startMonthCurrent.ToGeorgianDateTime(); + command.EndDate = endMonthCurrent.ToGeorgianDateTime(); - #region InsuranceList + #region InsuranceList - operation = _insuranceListRepositpry.EditInsuranceList(command); + operation = _insuranceListRepositpry.EditInsuranceList(command); - #endregion + #endregion - if (command.InsuranceWorkshopInfo != null) - { - var insuranceWorkshopInfoObj = - _insuranceWorkshopInfoRepository.Get(command.InsuranceWorkshopInfo.InsuranceWorkshopInfoId); - insuranceWorkshopInfoObj.Edit(command.InsuranceWorkshopInfo.WorkshopName, - command.InsuranceWorkshopInfo.InsuranceCode, command.InsuranceWorkshopInfo.AgreementNumber, - command.InsuranceWorkshopInfo.EmployerName, command.InsuranceWorkshopInfo.Address, command.InsuranceWorkshopInfo.ListNumber); - _insuranceWorkshopInfoRepository.SaveChanges(); + if (command.InsuranceWorkshopInfo != null) + { + var insuranceWorkshopInfoObj = + _insuranceWorkshopInfoRepository.Get(command.InsuranceWorkshopInfo.InsuranceWorkshopInfoId); + insuranceWorkshopInfoObj.Edit(command.InsuranceWorkshopInfo.WorkshopName, + command.InsuranceWorkshopInfo.InsuranceCode, command.InsuranceWorkshopInfo.AgreementNumber, + command.InsuranceWorkshopInfo.EmployerName, command.InsuranceWorkshopInfo.Address, command.InsuranceWorkshopInfo.ListNumber); + _insuranceWorkshopInfoRepository.SaveChanges(); - } + } return operation; } - - } - public EditInsuranceList GetDetails(long id) - { - var insuranceListDetails = _insuranceListRepositpry.GetDetails(id); - string startMonthCurrent = insuranceListDetails.Year + "/" + insuranceListDetails.Month + "/01"; - string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); - var year = Convert.ToInt32(insuranceListDetails.Year); - var month = Convert.ToInt32(insuranceListDetails.Month); - var day = 1; - var persianCurrentStartDate = new PersianDateTime(year, month, day); - var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); + } + + public EditInsuranceList GetDetails(long id) + { + var insuranceListDetails = _insuranceListRepositpry.GetDetails(id); + string startMonthCurrent = insuranceListDetails.Year + "/" + insuranceListDetails.Month + "/01"; + string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); + var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + var year = Convert.ToInt32(insuranceListDetails.Year); + var month = Convert.ToInt32(insuranceListDetails.Month); + var day = 1; + var persianCurrentStartDate = new PersianDateTime(year, month, day); + var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); - var model = new YearlySalarySearchModel(); - model.StartDateGr = startMonthCurrent.ToGeorgianDateTime(); - model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); - model.year = insuranceListDetails.Year; - var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); - var yearlysalaryItem = new YearlysalaryItemViewModel(); - var housingAllowance = new YearlysalaryItemViewModel(); - var consumableItems = new YearlysalaryItemViewModel(); - if (yearSalaryObj != null) - { - yearlysalaryItem = _yearlySalaryItemApplication - .GetItemsByYearlySalaryId(yearSalaryObj.Id).FirstOrDefault(x => x.ItemName == "مزد روزانه"); - housingAllowance = _yearlySalaryItemApplication - .GetItemsByYearlySalaryId(yearSalaryObj.Id).FirstOrDefault(x => x.ItemName == "کمک هزینه مسکن"); - consumableItems = _yearlySalaryItemApplication - .GetItemsByYearlySalaryId(yearSalaryObj.Id).FirstOrDefault(x => x.ItemName == "کمک هزینه اقلام"); - } + var model = new YearlySalarySearchModel(); + model.StartDateGr = startMonthCurrent.ToGeorgianDateTime(); + model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); + model.year = insuranceListDetails.Year; + var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); + var yearlysalaryItem = new YearlysalaryItemViewModel(); + var housingAllowance = new YearlysalaryItemViewModel(); + var consumableItems = new YearlysalaryItemViewModel(); + if (yearSalaryObj != null) + { + yearlysalaryItem = _yearlySalaryItemApplication + .GetItemsByYearlySalaryId(yearSalaryObj.Id).FirstOrDefault(x => x.ItemName == "مزد روزانه"); + housingAllowance = _yearlySalaryItemApplication + .GetItemsByYearlySalaryId(yearSalaryObj.Id).FirstOrDefault(x => x.ItemName == "کمک هزینه مسکن"); + consumableItems = _yearlySalaryItemApplication + .GetItemsByYearlySalaryId(yearSalaryObj.Id).FirstOrDefault(x => x.ItemName == "کمک هزینه اقلام"); + } foreach (var item in insuranceListDetails.EmployeeDetailsForInsuranceList) { - - item.IncludeStatus = _leftWorkInsuranceApplication.GetLeftPersonelByWorkshopIdAndEmployeeId(insuranceListDetails.WorkshopId,item.EmployeeId).IncludeStatus; + + item.IncludeStatus = _leftWorkInsuranceApplication.GetLeftPersonelByWorkshopIdAndEmployeeId(insuranceListDetails.WorkshopId, item.EmployeeId).IncludeStatus; if (!string.IsNullOrEmpty(item.LeftWorkDate)) { var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); - var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); - if (persianLeftDateUser <= persianCurrentEndDate) - item.HasLeftWorkInMonth = true; - else - item.HasLeftWorkInMonth = false; - } - else - { - item.HasLeftWorkInMonth = false; - } - var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); - var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); - var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); - var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); - if (persianStartDateUser < persianCurrentStartDate) - item.HasStartWorkInMonth = false; - else - item.HasStartWorkInMonth = true; - item.StartMonthCurrent = startMonthCurrent; - item.DailyWageStr = item.DailyWage.ToMoney(); + var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); + if (persianLeftDateUser <= persianCurrentEndDate) + item.HasLeftWorkInMonth = true; + else + item.HasLeftWorkInMonth = false; + } + else + { + item.HasLeftWorkInMonth = false; + } + var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); + var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); + var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); + var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); + if (persianStartDateUser < persianCurrentStartDate) + item.HasStartWorkInMonth = false; + else + item.HasStartWorkInMonth = true; + item.StartMonthCurrent = startMonthCurrent; + item.DailyWageStr = item.DailyWage.ToMoney(); - item.HousingAllowance = housingAllowance.ItemValue; - item.ConsumableItems = consumableItems.ItemValue; - item.EndMonthCurrentDay = dayMonthCurrent; - } - insuranceListDetails.EmployeeDetailsForInsuranceList = insuranceListDetails.EmployeeDetailsForInsuranceList.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) - .ThenBy(x => x.LName).ToList(); + item.HousingAllowance = housingAllowance.ItemValue; + item.ConsumableItems = consumableItems.ItemValue; + item.EndMonthCurrentDay = dayMonthCurrent; + } + insuranceListDetails.EmployeeDetailsForInsuranceList = insuranceListDetails.EmployeeDetailsForInsuranceList.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) + .ThenBy(x => x.LName).ToList(); - insuranceListDetails.AllInsuredShare = insuranceListDetails.InsuredShare + - insuranceListDetails.EmployerShare + - insuranceListDetails.UnEmploymentInsurance; + insuranceListDetails.AllInsuredShare = insuranceListDetails.InsuredShare + + insuranceListDetails.EmployerShare + + insuranceListDetails.UnEmploymentInsurance; - insuranceListDetails.LeftWorkEmployees = - _leftWorkInsuranceRepository.GetEmployeesWithContractExitOnly(insuranceListDetails.WorkshopId); + insuranceListDetails.LeftWorkEmployees = + _leftWorkInsuranceRepository.GetEmployeesWithContractExitOnly(insuranceListDetails.WorkshopId); - return insuranceListDetails; - } + return insuranceListDetails; + } - public List Search(InsuranceListSearchModel searchModel) + public List Search(InsuranceListSearchModel searchModel) { return _insuranceListRepositpry.OptimizedSearch(searchModel); //var result = _insuranceListRepositpry.Search(searchModel); @@ -371,19 +379,19 @@ public class InsuranceListApplication: IInsuranceListApplication // EmployerId = x.EmployerId, // IsBlockCantracingParty = _contractingPartyApp.IsBlockByEmployerId(x.EmployerId), - //}).ToList(); - //return result; - } + //}).ToList(); + //return result; + } /// /// محاسبه جدول پرسنل در مودال ایجاد لیست بیمه /// /// /// - public MainEmployeeDetailsViewModel SearchEmployeeForCreateInsuranceList( EmployeeForCreateInsuranceListSearchModel searchModel) + public MainEmployeeDetailsViewModel SearchEmployeeForCreateInsuranceList(EmployeeForCreateInsuranceListSearchModel searchModel) { - var watch = new Stopwatch(); - + var watch = new Stopwatch(); + var result = new MainEmployeeDetailsViewModel(); var workshopId = searchModel.WorkshopIds.FirstOrDefault(); var workshop = _workShopRepository.GetDetails(workshopId); @@ -392,41 +400,40 @@ public class InsuranceListApplication: IInsuranceListApplication double monthlybaseYear = 0; // اگر در این سال و ماه برای این کارگاه لیست بیمه ایجاد نشده بود if (!_insuranceListRepositpry.Exists(x => - x.Year == searchModel.Year && x.Month == searchModel.Month && - searchModel.WorkshopIds.Contains(x.WorkshopId))) + x.Year == searchModel.Year && x.Month == searchModel.Month && + searchModel.WorkshopIds.Contains(x.WorkshopId))) { var startMonthFa = $"{searchModel.Year}/{searchModel.Month.PadLeft(2, '0')}/01"; DateTime startDateGr = startMonthFa.ToGeorgianDateTime(); - DateTime endDateGr = startMonthFa.FindeEndOfMonth() - .ToGeorgianDateTime(); + DateTime endDateGr = startMonthFa.FindeEndOfMonth() + .ToGeorgianDateTime(); int endOfMonth = Convert.ToInt32((startMonthFa.FindeEndOfMonth()).Substring(8, 2)); - - //مقادیر سالانه این تاریخ - var yearlysaleries = _yearlySalaryApplication.GetInsuranceItems(startDateGr, endDateGr, searchModel.Year); + //مقادیر سالانه این تاریخ + var yearlysaleries = _yearlySalaryApplication.GetInsuranceItems(startDateGr, endDateGr, searchModel.Year); - // دریافت اطلاعات هویتی و شروع و ترک کار کارکنان - var employeesInfoAndLeftWorks = - _leftWorkInsuranceApplication.GetEmployeeInsuranceLeftWorksAndInformation(workshopId, startDateGr, - endDateGr); + // دریافت اطلاعات هویتی و شروع و ترک کار کارکنان + var employeesInfoAndLeftWorks = + _leftWorkInsuranceApplication.GetEmployeeInsuranceLeftWorksAndInformation(workshopId, startDateGr, + endDateGr); var employeeInsurancDataPreviusList = _insuranceListRepositpry.GetEmployeeInsuranceDataAmonthAgo(startDateGr, workshopId); - watch.Start(); - var computeResult = employeesInfoAndLeftWorks.Select(employee => + watch.Start(); + var computeResult = employeesInfoAndLeftWorks.Select(employee => { var dateOfBirth = employee.DateOfBirthGr.ToFarsi(); var dateOfIssue = employee.DateOfIssueGr.ToFarsi(); var leftDate = employee.LeftWorkDateGr?.AddDays(-1) ?? new DateTime(); - bool isManager = employee.JobId is 10 or 16 or 17 or 18 or 3498; + bool isManager = employee.JobId is 10 or 16 or 17 or 18 or 3498; //آیا در کارگاه تیک محاسبه اضافه کار یا حق اولاد زده شده است؟ bool hasWorkshopOverTimeOrFamilyAllowance = workshop.InsuranceCheckoutFamilyAllowance || workshop.InsuranceCheckoutOvertime; - + //آیا پرسنل فیش حقوق دارد //این مورد زمانی چک می شود که تیک محاسبه در کارگاه زده شده باشد // در غیر اینصورت بصورت پیشفرض دارای فیش حقوق در نظر گرفته می شود @@ -439,21 +446,24 @@ public class InsuranceListApplication: IInsuranceListApplication searchModel.Year, searchModel.Month); if (checkout.hasChekout) { - + familyAllowance = checkout.FamilyAlloance; overTimePay = checkout.OverTimePay; - + } else { + //چون کارفرما فیش حقوقی ندارد + //ولی در لیست بیمه حضور دارد + //برای جلوگیری از هشدار فرانت کارفرما را داری فیش حقوقی فرض میکنیم employeeHasCheckout = isManager == false ? false : true; } } - - var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employee.StartWorkDateGr, leftDate, startDateGr,endDateGr, employee.EmployeeId); - var leftWorkFa = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr.ToFarsi(): ""; + + var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employee.StartWorkDateGr, leftDate, startDateGr, endDateGr, employee.EmployeeId); + var leftWorkFa = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr.ToFarsi() : ""; var startWorkFa = employee.StartWorkDateGr.ToFarsi(); //به دست آوردن دستمزد روزانه با توجه به اینکه کارگاه مشاغل مقطوع است یا خیر @@ -463,487 +473,487 @@ public class InsuranceListApplication: IInsuranceListApplication var res = GetDailyWageFixedSalary(searchModel.Year, workshopId, employee.EmployeeId, startDateGr, endDateGr, employee.JobId, searchModel.Population, searchModel.InsuranceJobId); dailyWage = res ?? 0; - + } else { var res = ComputeDailyWage(yearlysaleries.DayliWage, employee.EmployeeId, workshopId, searchModel.Year); dailyWage = res; } - - + + //بدست آوردن پایه سنوات var baseYears = _insuranceListRepositpry.GetEmployeeInsuranceBaseYear(employee.EmployeeId, workshopId, - workingDays.countWorkingDays, startDateGr, endDateGr,workingDays.startWork, workingDays.endWork, workingDays.hasLeftWorkInMonth); + workingDays.countWorkingDays, startDateGr, endDateGr, workingDays.startWork, workingDays.endWork, workingDays.hasLeftWorkInMonth); //آیا کارفرما یا مدیر عامل است؟ - - baseYears.baseYear = isManager ? 0 : baseYears.baseYear; - Console.WriteLine(employee.JobId + " - "+ baseYears.baseYear); - //جمع مزد روزانه و پایه سنوات - var dailyWagePlusBaseYears = dailyWage + baseYears.baseYear; - - //دستمزد ماهانه با محاسبه پایه سنوات + baseYears.baseYear = isManager ? 0 : baseYears.baseYear; + Console.WriteLine(employee.JobId + " - " + baseYears.baseYear); + //جمع مزد روزانه و پایه سنوات + var dailyWagePlusBaseYears = dailyWage + baseYears.baseYear; + + + //دستمزد ماهانه با محاسبه پایه سنوات var monthlySalary = GetRoundValue(dailyWagePlusBaseYears * workingDays.countWorkingDays); - //حق تاهل - var marriedAllowance = employee.MaritalStatus == "متاهل" && !isManager ? yearlysaleries.MarriedAllowance : 0; + //حق تاهل + var marriedAllowance = employee.MaritalStatus == "متاهل" && !isManager ? yearlysaleries.MarriedAllowance : 0; //محاسبه مزایای ماهانه - var monthlyBenefits = GetMonthlyBenefits(endOfMonth, yearlysaleries.ConsumableItems, yearlysaleries.HousingAllowance, marriedAllowance, workingDays.countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, employee.JobId, employee.EmployeeId,employee.IncludeStatus); + var monthlyBenefits = GetMonthlyBenefits(endOfMonth, yearlysaleries.ConsumableItems, yearlysaleries.HousingAllowance, marriedAllowance, workingDays.countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, employee.JobId, employee.EmployeeId, employee.IncludeStatus); - //if (employee.EmployeeId is 7999)// سید عباس خوشکلام سلیمان - // monthlyBenefits = 80869389; - //if (employee.EmployeeId is 43787)// شهرام براهیمی سیقلان - // monthlyBenefits = 54748472; - if (workshop.InsuranceCheckoutOvertime && employeeHasCheckout && !isManager) - { + //if (employee.EmployeeId is 7999)// سید عباس خوشکلام سلیمان + // monthlyBenefits = 80869389; + //if (employee.EmployeeId is 43787)// شهرام براهیمی سیقلان + // monthlyBenefits = 54748472; + if (workshop.InsuranceCheckoutOvertime && employeeHasCheckout && !isManager) + { monthlyBenefits = GetRoundValue(monthlyBenefits += overTimePay); } - - //سرای ملک - // نوشین خالی - // 39692467 - //if (employee.EmployeeId == 45280) - // monthlyBenefits += 39692467; - var marriedAllowanceCompute = MarriedAllowance(employee.MaritalStatus, employee.JobId, employee.IncludeStatus, - workingDays.countWorkingDays, yearlysaleries.MarriedAllowance, endOfMonth); - //محاسبه جمع مزایای مشمول و دستمزد ماهانه - var benefitsIncludedContinuous = monthlyBenefits + monthlySalary; + //سرای ملک + // نرجس خالی + // 39692467 + if (employee.EmployeeId == 45280) + monthlyBenefits += 39692467; - //benefitsIncludedContinuous = employee.JobId != 16 ? benefitsIncludedContinuous : 0; - //محاسبه حق بیمه سهم بیمه شده - var insuranceShare = (benefitsIncludedContinuous * 7) / 100; + var marriedAllowanceCompute = MarriedAllowance(employee.MaritalStatus, employee.JobId, employee.IncludeStatus, + workingDays.countWorkingDays, yearlysaleries.MarriedAllowance, endOfMonth); + //محاسبه جمع مزایای مشمول و دستمزد ماهانه + var benefitsIncludedContinuous = monthlyBenefits + monthlySalary; - //محاسبه حق بیمه سهم کارفرما - var employerShare = (benefitsIncludedContinuous * 20) / 100; + //benefitsIncludedContinuous = employee.JobId != 16 ? benefitsIncludedContinuous : 0; + //محاسبه حق بیمه سهم بیمه شده + var insuranceShare = (benefitsIncludedContinuous * 7) / 100; - // محاسبه بیمه بیکاری - var unEmploymentInsurance = (benefitsIncludedContinuous * 3) / 100; + //محاسبه حق بیمه سهم کارفرما + var employerShare = (benefitsIncludedContinuous * 20) / 100; + + // محاسبه بیمه بیکاری + var unEmploymentInsurance = (benefitsIncludedContinuous * 3) / 100; - var employeeListData = employeeInsurancDataPreviusList - .FirstOrDefault(e => e.EmployeeId == employee.EmployeeId); - //مزیای عیر مشمول لیست قبل - var benefitsIncludedNonContinuous = - employeeListData?.BenefitsIncludedNonContinuous ?? 0; - if (workshop.InsuranceCheckoutFamilyAllowance && employeeHasCheckout && !isManager) - { + var employeeListData = employeeInsurancDataPreviusList + .FirstOrDefault(e => e.EmployeeId == employee.EmployeeId); + //مزیای عیر مشمول لیست قبل + var benefitsIncludedNonContinuous = + employeeListData != null ? employeeListData.BenefitsIncludedNonContinuous : 0; + if (workshop.InsuranceCheckoutFamilyAllowance && employeeHasCheckout && !isManager) + { + + benefitsIncludedNonContinuous = GetRoundValue(benefitsIncludedNonContinuous + familyAllowance); + } + - benefitsIncludedNonContinuous = GetRoundValue(benefitsIncludedNonContinuous + familyAllowance); - } - - var includedAndNotIncluded = benefitsIncludedContinuous + benefitsIncludedNonContinuous; return new EmployeeDetailsForInsuranceListViewModel - { - #region EmployeeInfo + { + #region EmployeeInfo EmployeeHasCheckout = employeeHasCheckout, InsuranceEmployeeInformationId = employee.InsuranceEmployeeInformationId, - EmployeeId = employee.EmployeeId, - FName = employee.FName, - LName = employee.LName, - FatherName = employee.FatherName, - DateOfBirth = dateOfBirth == "1300/10/11" ? "" : dateOfBirth, - DateOfIssue = dateOfIssue, - DateOfBirthGr = employee.DateOfBirthGr, - DateOfIssueGr = employee.DateOfIssueGr, - PlaceOfIssue = employee.PlaceOfIssue, - IdNumber = employee.IdNumber, - Gender = employee.Gender, - NationalCode = employee.NationalCode, - Nationality = employee.Nationality, - InsuranceCode = employee.InsuranceCode, + EmployeeId = employee.EmployeeId, + FName = employee.FName, + LName = employee.LName, + FatherName = employee.FatherName, + DateOfBirth = dateOfBirth == "1300/10/11" ? "" : dateOfBirth, + DateOfIssue = dateOfIssue, + DateOfBirthGr = employee.DateOfBirthGr, + DateOfIssueGr = employee.DateOfIssueGr, + PlaceOfIssue = employee.PlaceOfIssue, + IdNumber = employee.IdNumber, + Gender = employee.Gender, + NationalCode = employee.NationalCode, + Nationality = employee.Nationality, + InsuranceCode = employee.InsuranceCode, // آیا وضعیت تاهل پرسنل ست شده است IsMaritalStatusSet = !string.IsNullOrWhiteSpace(employee.MaritalStatus), MaritalStatus = employee.MaritalStatus, - StartMonthCurrent = startMonthFa, - WorkingDays = workingDays.countWorkingDays, - StartWorkDate = startWorkFa, - StartWorkDateGr = employee.StartWorkDateGr, - LeftWorkDate = leftWorkFa, - LeftWorkDateGr = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr : null, - JobId = employee.JobId, - JobName = employee.JobName, - JobCode = employee.JobCode, + StartMonthCurrent = startMonthFa, + WorkingDays = workingDays.countWorkingDays, + StartWorkDate = startWorkFa, + StartWorkDateGr = employee.StartWorkDateGr, + LeftWorkDate = leftWorkFa, + LeftWorkDateGr = workingDays.hasLeftWorkInMonth ? employee.LeftWorkDateGr : null, + JobId = employee.JobId, + JobName = employee.JobName, + JobCode = employee.JobCode, - HasStartWorkInMonth = workingDays.hasStartWorkInMonth, - HasLeftWorkInMonth = workingDays.hasLeftWorkInMonth, - #endregion + HasStartWorkInMonth = workingDays.hasStartWorkInMonth, + HasLeftWorkInMonth = workingDays.hasLeftWorkInMonth, + #endregion - #region Compute - //مشمول مزایا بودن - IncludeStatus = employee.IncludeStatus, + #region Compute + //مشمول مزایا بودن + IncludeStatus = employee.IncludeStatus, //دستمزد روزانه - DailyWage = GetRoundValue(dailyWage), + DailyWage = GetRoundValue(dailyWage), DailyWageStr = dailyWage.ToMoney(), - HasConfilictJobs = dailyWage == 0, + HasConfilictJobs = dailyWage == 0, - //پایه سنوات - BaseYears = baseYears.baseYear, + //پایه سنوات + BaseYears = baseYears.baseYear, - //مجموع مزد روزانه و پایه سنوات - DailyWagePlusBaseYears = dailyWagePlusBaseYears, + //مجموع مزد روزانه و پایه سنوات + DailyWagePlusBaseYears = dailyWagePlusBaseYears, - //حق تاهل - MarriedAllowance = marriedAllowanceCompute, + //حق تاهل + MarriedAllowance = marriedAllowanceCompute, //دستمزد ماهانه MonthlySalary = monthlySalary, - - + + //مزایای ماهانه MonthlyBenefits = monthlyBenefits, - //جمع مزایای مشمول و دستمزد ماهانه - BenefitsIncludedContinuous = benefitsIncludedContinuous, + //جمع مزایای مشمول و دستمزد ماهانه + BenefitsIncludedContinuous = benefitsIncludedContinuous, - //مزایای غیر مشمول * - BenefitsIncludedNonContinuous = benefitsIncludedNonContinuous, + //مزایای غیر مشمول * + BenefitsIncludedNonContinuous = benefitsIncludedNonContinuous, - // جمع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول * - IncludedAndNotIncluded = includedAndNotIncluded, + // جمع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول * + IncludedAndNotIncluded = includedAndNotIncluded, - //حق بیمه سهم بیمه شده - InsuranceShare = GetRoundValue(insuranceShare), + //حق بیمه سهم بیمه شده + InsuranceShare = GetRoundValue(insuranceShare), - //حق بیمه سهم کارفرما - EmployerShare = GetRoundValue(employerShare), + //حق بیمه سهم کارفرما + EmployerShare = GetRoundValue(employerShare), - //بیمه بیکاری - UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance), + //بیمه بیکاری + UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance), - //کمک هزینه مسکن - HousingAllowance = yearlysaleries.HousingAllowance, - //کمک هزینه اقلام - ConsumableItems = yearlysaleries.ConsumableItems, + //کمک هزینه مسکن + HousingAllowance = yearlysaleries.HousingAllowance, + //کمک هزینه اقلام + ConsumableItems = yearlysaleries.ConsumableItems, - EndMonthCurrentDay = endOfMonth, - YearlySalaryItem = yearlysaleries.DayliWage, - MonthlyBaseYearsStr = "0", - MonthlyBaseYears = 0, - OverTimePay = overTimePay, - FamilyAllowance = familyAllowance - #endregion + EndMonthCurrentDay = endOfMonth, + YearlySalaryItem = yearlysaleries.DayliWage, + MonthlyBaseYearsStr = "0", + MonthlyBaseYears = 0, + OverTimePay = overTimePay, + FamilyAllowance = familyAllowance + #endregion }; - }).ToList(); + }).ToList(); Console.WriteLine("New Compute : " + watch.Elapsed); - watch.Stop(); + watch.Stop(); - watch.Start(); + watch.Start(); - #region Old_heydari - //List list = new List(); - //var leftWorkInsuranceViewModel = _leftWorkInsuranceApplication.SearchForCreateInsuranceList(searchModel); - ////int leftWorkInsuranceCount= leftWorkInsuranceViewModelList.Count(); + #region Old_heydari + //List list = new List(); + //var leftWorkInsuranceViewModel = _leftWorkInsuranceApplication.SearchForCreateInsuranceList(searchModel); + ////int leftWorkInsuranceCount= leftWorkInsuranceViewModelList.Count(); - //string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; - //string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); + //string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; + //string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - //var model = new YearlySalarySearchModel(); - //var startDate = startMonthCurrent.ToGeorgianDateTime(); - //var endDate = endMonthCurrent.ToGeorgianDateTime(); - //model.StartDateGr = startDate; - //model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); - //model.year = searchModel.Year; + //var model = new YearlySalarySearchModel(); + //var startDate = startMonthCurrent.ToGeorgianDateTime(); + //var endDate = endMonthCurrent.ToGeorgianDateTime(); + //model.StartDateGr = startDate; + //model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); + //model.year = searchModel.Year; - //foreach (var item in leftWorkInsuranceViewModel) - //{ - // var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); + //foreach (var item in leftWorkInsuranceViewModel) + //{ + // var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); - // var employeeDetailsForInsuranceObj = new EmployeeDetailsForInsuranceListViewModel(); - // employeeDetailsForInsuranceObj.HasConfilictJobs = false; + // var employeeDetailsForInsuranceObj = new EmployeeDetailsForInsuranceListViewModel(); + // employeeDetailsForInsuranceObj.HasConfilictJobs = false; - // // آیا وضعیت تاهل پرسنل ست شده است - // employeeDetailsForInsuranceObj.IsMaritalStatusSet = - // !string.IsNullOrWhiteSpace(employeeObject.MaritalStatus); - // //دزیافت اطلاعات هویتی پرسنل - // //در صورت نداشن دیتا از جدول پرسنل پر می شود - // #region PersonnelInfo + // // آیا وضعیت تاهل پرسنل ست شده است + // employeeDetailsForInsuranceObj.IsMaritalStatusSet = + // !string.IsNullOrWhiteSpace(employeeObject.MaritalStatus); + // //دزیافت اطلاعات هویتی پرسنل + // //در صورت نداشن دیتا از جدول پرسنل پر می شود + // #region PersonnelInfo - // if (_insuranceEmployeeInfoRepository.Exists(x => x.EmployeeId == item.EmployeeId)) - // { - // var employeeInfoObject = _insuranceEmployeeInfoApplication.GetDetailsByEmployeeId(item.EmployeeId); - // employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = employeeInfoObject.Id; - // employeeDetailsForInsuranceObj.EmployeeId = employeeInfoObject.EmployeeId; - // employeeDetailsForInsuranceObj.FName = employeeInfoObject.FName; - // employeeDetailsForInsuranceObj.LName = employeeInfoObject.LName; - // employeeDetailsForInsuranceObj.FatherName = employeeInfoObject.FatherName; - // employeeDetailsForInsuranceObj.DateOfBirth = employeeInfoObject.DateOfBirth; - // employeeDetailsForInsuranceObj.DateOfIssue = employeeInfoObject.DateOfIssue; - // employeeDetailsForInsuranceObj.DateOfBirthGr = employeeInfoObject.DateOfBirthGr; - // employeeDetailsForInsuranceObj.DateOfIssueGr = employeeInfoObject.DateOfIssueGr; - // employeeDetailsForInsuranceObj.PlaceOfIssue = employeeInfoObject.PlaceOfIssue; - // employeeDetailsForInsuranceObj.IdNumber = employeeInfoObject.IdNumber; - // employeeDetailsForInsuranceObj.Gender = employeeInfoObject.Gender; + // if (_insuranceEmployeeInfoRepository.Exists(x => x.EmployeeId == item.EmployeeId)) + // { + // var employeeInfoObject = _insuranceEmployeeInfoApplication.GetDetailsByEmployeeId(item.EmployeeId); + // employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = employeeInfoObject.Id; + // employeeDetailsForInsuranceObj.EmployeeId = employeeInfoObject.EmployeeId; + // employeeDetailsForInsuranceObj.FName = employeeInfoObject.FName; + // employeeDetailsForInsuranceObj.LName = employeeInfoObject.LName; + // employeeDetailsForInsuranceObj.FatherName = employeeInfoObject.FatherName; + // employeeDetailsForInsuranceObj.DateOfBirth = employeeInfoObject.DateOfBirth; + // employeeDetailsForInsuranceObj.DateOfIssue = employeeInfoObject.DateOfIssue; + // employeeDetailsForInsuranceObj.DateOfBirthGr = employeeInfoObject.DateOfBirthGr; + // employeeDetailsForInsuranceObj.DateOfIssueGr = employeeInfoObject.DateOfIssueGr; + // employeeDetailsForInsuranceObj.PlaceOfIssue = employeeInfoObject.PlaceOfIssue; + // employeeDetailsForInsuranceObj.IdNumber = employeeInfoObject.IdNumber; + // employeeDetailsForInsuranceObj.Gender = employeeInfoObject.Gender; - // //از جدول پرسنل پر می شود - // employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; //employeeInfoObject.NationalCode; - // employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; - // employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; //employeeInfoObject.InsuranceCode; - // } - // else - // { - // // var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); - // employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = 0; - // //employeeDetailsForInsuranceObj.EmployeeInsurancListDataId = 0; - // employeeDetailsForInsuranceObj.EmployeeId = employeeObject.Id; - // employeeDetailsForInsuranceObj.FName = employeeObject.FName; - // employeeDetailsForInsuranceObj.LName = employeeObject.LName; - // employeeDetailsForInsuranceObj.FatherName = employeeObject.FatherName; - // employeeDetailsForInsuranceObj.DateOfBirth = (employeeObject.DateOfBirth == "1300/10/11" ? "" : employeeObject.DateOfBirth); - // employeeDetailsForInsuranceObj.DateOfIssue = employeeObject.DateOfIssue; - // employeeDetailsForInsuranceObj.PlaceOfIssue = employeeObject.PlaceOfIssue; - // employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; - // employeeDetailsForInsuranceObj.IdNumber = employeeObject.IdNumber; - // employeeDetailsForInsuranceObj.Gender = employeeObject.Gender; - // employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; - // employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; - // } - // #endregion + // //از جدول پرسنل پر می شود + // employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; //employeeInfoObject.NationalCode; + // employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; + // employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; //employeeInfoObject.InsuranceCode; + // } + // else + // { + // // var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); + // employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = 0; + // //employeeDetailsForInsuranceObj.EmployeeInsurancListDataId = 0; + // employeeDetailsForInsuranceObj.EmployeeId = employeeObject.Id; + // employeeDetailsForInsuranceObj.FName = employeeObject.FName; + // employeeDetailsForInsuranceObj.LName = employeeObject.LName; + // employeeDetailsForInsuranceObj.FatherName = employeeObject.FatherName; + // employeeDetailsForInsuranceObj.DateOfBirth = (employeeObject.DateOfBirth == "1300/10/11" ? "" : employeeObject.DateOfBirth); + // employeeDetailsForInsuranceObj.DateOfIssue = employeeObject.DateOfIssue; + // employeeDetailsForInsuranceObj.PlaceOfIssue = employeeObject.PlaceOfIssue; + // employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; + // employeeDetailsForInsuranceObj.IdNumber = employeeObject.IdNumber; + // employeeDetailsForInsuranceObj.Gender = employeeObject.Gender; + // employeeDetailsForInsuranceObj.InsuranceCode = employeeObject.InsuranceCode; + // employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; + // } + // #endregion - // //روزهای کارکرد پرسنل - // #region ComputingWorkingDays + // //روزهای کارکرد پرسنل + // #region ComputingWorkingDays - // int startWork = 0; - // int endWork = 0; + // int startWork = 0; + // int endWork = 0; - // var year = Convert.ToInt32(searchModel.Year); - // var month = Convert.ToInt32(searchModel.Month); - // var day = 1; - // var persianCurrentStartDate = new PersianDateTime(year, month, day); - // var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); - // var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); - // //آخرین روز ماه جاری - // var endMonthCurrentDay = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + // var year = Convert.ToInt32(searchModel.Year); + // var month = Convert.ToInt32(searchModel.Month); + // var day = 1; + // var persianCurrentStartDate = new PersianDateTime(year, month, day); + // var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + // var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); + // //آخرین روز ماه جاری + // var endMonthCurrentDay = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); - // var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); - // var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); - // var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); - // var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); + // var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); + // var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); + // var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); + // var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); - // if (persianStartDateUser < persianCurrentStartDate) - // employeeDetailsForInsuranceObj.HasStartWorkInMonth = false; - // else - // employeeDetailsForInsuranceObj.HasStartWorkInMonth = true; + // if (persianStartDateUser < persianCurrentStartDate) + // employeeDetailsForInsuranceObj.HasStartWorkInMonth = false; + // else + // employeeDetailsForInsuranceObj.HasStartWorkInMonth = true; - // //اگر شروع به کار کاربر از ابتدای ماه جاری کمتر باشد - // if (persianStartDateUser <= persianCurrentStartDate) - // { - // startWork = 1; - // } - // else - // { - // startWork = dayStartDateUser; - // } + // //اگر شروع به کار کاربر از ابتدای ماه جاری کمتر باشد + // if (persianStartDateUser <= persianCurrentStartDate) + // { + // startWork = 1; + // } + // else + // { + // startWork = dayStartDateUser; + // } - // if (!string.IsNullOrEmpty(item.LeftWorkDate)) - // { - // var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); - // var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); - // var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); - // var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); - // var persianEndDateUser = persianLeftDateUser.AddDays(-1); - // var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); + // if (!string.IsNullOrEmpty(item.LeftWorkDate)) + // { + // var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); + // var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); + // var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); + // var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); + // var persianEndDateUser = persianLeftDateUser.AddDays(-1); + // var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); - // //if (persianLeftDateUser <= persianCurrentEndDate) - // // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; - // //else - // // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + // //if (persianLeftDateUser <= persianCurrentEndDate) + // // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; + // //else + // // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - // //ترک کارش در ماه و سال جاری بود نمایش داده شود - // if (!item.LeftWorkDate.Contains(searchModel.Year + "/" + searchModel.Month)) - // { - // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - // item.LeftWorkDate = string.Empty; - // item.LeftWorkDateGr = null; - // } - // else - // { - // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; - // } + // //ترک کارش در ماه و سال جاری بود نمایش داده شود + // if (!item.LeftWorkDate.Contains(searchModel.Year + "/" + searchModel.Month)) + // { + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + // item.LeftWorkDate = string.Empty; + // item.LeftWorkDateGr = null; + // } + // else + // { + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; + // } - // //اگر پایان به کار کاربر از پایان ماه جاری بیشتر باشد - // if (persianEndDateUser >= persianCurrentEndDate) - // { - // endWork = endMonthCurrentDay; - // } - // else - // { - // endWork = Convert.ToInt32(persianEndDateUserStr.Substring(8, 2)); - // } - // } - // else - // { - // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - // endWork = endMonthCurrentDay; - // } + // //اگر پایان به کار کاربر از پایان ماه جاری بیشتر باشد + // if (persianEndDateUser >= persianCurrentEndDate) + // { + // endWork = endMonthCurrentDay; + // } + // else + // { + // endWork = Convert.ToInt32(persianEndDateUserStr.Substring(8, 2)); + // } + // } + // else + // { + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + // endWork = endMonthCurrentDay; + // } - // int countWorkingDays = 0; - // for (int i = startWork; i <= endWork; i++) - // { - // countWorkingDays = countWorkingDays + 1; - // } - // //farokhiChanges - // //روزهای کارکرد پرسنل با آی دی های زیر دستی تعریف شد - // switch (item.EmployeeId) - // { + // int countWorkingDays = 0; + // for (int i = startWork; i <= endWork; i++) + // { + // countWorkingDays = countWorkingDays + 1; + // } + // //farokhiChanges + // //روزهای کارکرد پرسنل با آی دی های زیر دستی تعریف شد + // switch (item.EmployeeId) + // { - // //case 3812://ثابت- کسری حاجی پور - // // countWorkingDays = 15; - // // break; - // case 40463://ثابت - // countWorkingDays = 10; - // break; - // case 40469://ثابت - // countWorkingDays = 7; - // break; - // case 9950://ثابت - // countWorkingDays = 15; - // break; - // case 9640://ثابت - // countWorkingDays = 15; - // break; - // case 40998://ثابت - // countWorkingDays = 15; - // break; - // case 6219://ثابت - // countWorkingDays = 15; - // break; - // //case 7897://ثابت - // // countWorkingDays = 15; - // break; - // } - // #endregion + // //case 3812://ثابت- کسری حاجی پور + // // countWorkingDays = 15; + // // break; + // case 40463://ثابت + // countWorkingDays = 10; + // break; + // case 40469://ثابت + // countWorkingDays = 7; + // break; + // case 9950://ثابت + // countWorkingDays = 15; + // break; + // case 9640://ثابت + // countWorkingDays = 15; + // break; + // case 40998://ثابت + // countWorkingDays = 15; + // break; + // case 6219://ثابت + // countWorkingDays = 15; + // break; + // //case 7897://ثابت + // // countWorkingDays = 15; + // break; + // } + // #endregion - // employeeDetailsForInsuranceObj.IncludeStatus = item.IncludeStatus; + // employeeDetailsForInsuranceObj.IncludeStatus = item.IncludeStatus; - // #region InsuranceJob - // double dailyWage = employeeDetailsForInsuranceObj.DailyWage; - // if (searchModel.FixedSalary) - // { - // dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, workshopId, item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); - // employeeDetailsForInsuranceObj.HasConfilictJobs = (dailyWage == 0 ? true : false); - // } - // #endregion + // #region InsuranceJob + // double dailyWage = employeeDetailsForInsuranceObj.DailyWage; + // if (searchModel.FixedSalary) + // { + // dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, workshopId, item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); + // employeeDetailsForInsuranceObj.HasConfilictJobs = (dailyWage == 0 ? true : false); + // } + // #endregion - // if (yearlysaleries != null) - // { - // if (!searchModel.FixedSalary) - // { - // //dailyWage= yearlysalaryItem.ItemValue; - // dailyWage = ComputeDailyWage(yearlysaleries.DayliWage, item.EmployeeId, workshopId, searchModel.Year); - // //(double basic, int totalYears) basicResult = BasicYear(item.EmployeeId, workshopId, startDate); - // //var basic = basicResult.basic; + // if (yearlysaleries != null) + // { + // if (!searchModel.FixedSalary) + // { + // //dailyWage= yearlysalaryItem.ItemValue; + // dailyWage = ComputeDailyWage(yearlysaleries.DayliWage, item.EmployeeId, workshopId, searchModel.Year); + // //(double basic, int totalYears) basicResult = BasicYear(item.EmployeeId, workshopId, startDate); + // //var basic = basicResult.basic; - // //if (basicResult.totalYears > 0) - // //{ - // // monthlybaseYear = GetMonthlyBaseYear(basicResult.basic, countWorkingDays); - // //} - // } - // employeeDetailsForInsuranceObj.DailyWage = GetRoundValue(dailyWage); - // employeeDetailsForInsuranceObj.BaseYears = 0; + // //if (basicResult.totalYears > 0) + // //{ + // // monthlybaseYear = GetMonthlyBaseYear(basicResult.basic, countWorkingDays); + // //} + // } + // employeeDetailsForInsuranceObj.DailyWage = GetRoundValue(dailyWage); + // employeeDetailsForInsuranceObj.BaseYears = 0; - // employeeDetailsForInsuranceObj.DailyWageStr = employeeDetailsForInsuranceObj.DailyWage.ToMoney(); - // employeeDetailsForInsuranceObj.DailyWagePlusBaseYears = 0; - // employeeDetailsForInsuranceObj.MonthlySalary = GetRoundValue(dailyWage * countWorkingDays); - // employeeDetailsForInsuranceObj.HousingAllowance = yearlysaleries.HousingAllowance; - // employeeDetailsForInsuranceObj.ConsumableItems = yearlysaleries.ConsumableItems; - // employeeDetailsForInsuranceObj.EndMonthCurrentDay = endMonthCurrentDay; - // employeeDetailsForInsuranceObj.YearlySalaryItem = yearlysaleries.DayliWage; - // employeeDetailsForInsuranceObj.MonthlyBaseYearsStr = monthlybaseYear.ToMoney(); + // employeeDetailsForInsuranceObj.DailyWageStr = employeeDetailsForInsuranceObj.DailyWage.ToMoney(); + // employeeDetailsForInsuranceObj.DailyWagePlusBaseYears = 0; + // employeeDetailsForInsuranceObj.MonthlySalary = GetRoundValue(dailyWage * countWorkingDays); + // employeeDetailsForInsuranceObj.HousingAllowance = yearlysaleries.HousingAllowance; + // employeeDetailsForInsuranceObj.ConsumableItems = yearlysaleries.ConsumableItems; + // employeeDetailsForInsuranceObj.EndMonthCurrentDay = endMonthCurrentDay; + // employeeDetailsForInsuranceObj.YearlySalaryItem = yearlysaleries.DayliWage; + // employeeDetailsForInsuranceObj.MonthlyBaseYearsStr = monthlybaseYear.ToMoney(); - // employeeDetailsForInsuranceObj.MarriedAllowance = 0; + // employeeDetailsForInsuranceObj.MarriedAllowance = 0; - // if (item.IncludeStatus) - // { - // var marital = employeeObject.MaritalStatus == "متاهل" ? yearlysaleries.MarriedAllowance : 0; - // employeeDetailsForInsuranceObj.MonthlyBenefits = GetMonthlyBenefits(endMonthCurrentDay, yearlysaleries.ConsumableItems, yearlysaleries.HousingAllowance, marital, countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, item.JobId, item.EmployeeId); - // } - // else - // { - // employeeDetailsForInsuranceObj.MonthlyBenefits = 0; - // } + // if (item.IncludeStatus) + // { + // var marital = employeeObject.MaritalStatus == "متاهل" ? yearlysaleries.MarriedAllowance : 0; + // employeeDetailsForInsuranceObj.MonthlyBenefits = GetMonthlyBenefits(endMonthCurrentDay, yearlysaleries.ConsumableItems, yearlysaleries.HousingAllowance, marital, countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, item.JobId, item.EmployeeId); + // } + // else + // { + // employeeDetailsForInsuranceObj.MonthlyBenefits = 0; + // } - // if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت - // { - // employeeDetailsForInsuranceObj.MonthlyBenefits = 0; - // } - // //farokhiChanges - // if (item.EmployeeId == 42783) - // employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; + // if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت + // { + // employeeDetailsForInsuranceObj.MonthlyBenefits = 0; + // } + // //farokhiChanges + // if (item.EmployeeId == 42783) + // employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; - // employeeDetailsForInsuranceObj.BenefitsIncludedContinuous = employeeDetailsForInsuranceObj.MonthlyBenefits + employeeDetailsForInsuranceObj.MonthlySalary; + // employeeDetailsForInsuranceObj.BenefitsIncludedContinuous = employeeDetailsForInsuranceObj.MonthlyBenefits + employeeDetailsForInsuranceObj.MonthlySalary; - // //حق بیمه سهم بیمه شده - // var insuranceShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 7) / 100; - // employeeDetailsForInsuranceObj.InsuranceShare = GetRoundValue(insuranceShare); //Math.Round(insuranceShare, MidpointRounding.ToPositiveInfinity); + // //حق بیمه سهم بیمه شده + // var insuranceShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 7) / 100; + // employeeDetailsForInsuranceObj.InsuranceShare = GetRoundValue(insuranceShare); //Math.Round(insuranceShare, MidpointRounding.ToPositiveInfinity); - // //حق بیمه سهم کارفرما - // var employerShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 20) / 100; - // employeeDetailsForInsuranceObj.EmployerShare = GetRoundValue(employerShare); //Math.Round(employerShare, MidpointRounding.ToPositiveInfinity); + // //حق بیمه سهم کارفرما + // var employerShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 20) / 100; + // employeeDetailsForInsuranceObj.EmployerShare = GetRoundValue(employerShare); //Math.Round(employerShare, MidpointRounding.ToPositiveInfinity); - // //if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId==10)//کمک دولت - // //{employeeDetailsForInsuranceObj.InsuranceShare = 0;} + // //if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId==10)//کمک دولت + // //{employeeDetailsForInsuranceObj.InsuranceShare = 0;} - // var unEmploymentInsurance = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 3) / 100; - // employeeDetailsForInsuranceObj.UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance); + // var unEmploymentInsurance = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 3) / 100; + // employeeDetailsForInsuranceObj.UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance); - // employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous; - // employeeDetailsForInsuranceObj.IncludedAndNotIncluded = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous + employeeDetailsForInsuranceObj.BenefitsIncludedContinuous; + // employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous; + // employeeDetailsForInsuranceObj.IncludedAndNotIncluded = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous + employeeDetailsForInsuranceObj.BenefitsIncludedContinuous; - // } + // } - // employeeDetailsForInsuranceObj.StartMonthCurrent = startMonthCurrent; - // employeeDetailsForInsuranceObj.WorkingDays = countWorkingDays; - // employeeDetailsForInsuranceObj.StartWorkDate = item.StartWorkDate; - // employeeDetailsForInsuranceObj.LeftWorkDate = item.LeftWorkDate; - // employeeDetailsForInsuranceObj.JobId = item.JobId; - // employeeDetailsForInsuranceObj.JobName = item.JobName; - // employeeDetailsForInsuranceObj.JobCode = item.JobCode; - // if (!string.IsNullOrWhiteSpace(item.LeftWorkDate)) - // employeeDetailsForInsuranceObj.LeftWorkDateGr = item.LeftWorkDateGr; + // employeeDetailsForInsuranceObj.StartMonthCurrent = startMonthCurrent; + // employeeDetailsForInsuranceObj.WorkingDays = countWorkingDays; + // employeeDetailsForInsuranceObj.StartWorkDate = item.StartWorkDate; + // employeeDetailsForInsuranceObj.LeftWorkDate = item.LeftWorkDate; + // employeeDetailsForInsuranceObj.JobId = item.JobId; + // employeeDetailsForInsuranceObj.JobName = item.JobName; + // employeeDetailsForInsuranceObj.JobCode = item.JobCode; + // if (!string.IsNullOrWhiteSpace(item.LeftWorkDate)) + // employeeDetailsForInsuranceObj.LeftWorkDateGr = item.LeftWorkDateGr; - // employeeDetailsForInsuranceObj.StartWorkDateGr = item.StartWorkDateGr; - // //farokhiChanges - // if (item.EmployeeId == 42783) - // employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; + // employeeDetailsForInsuranceObj.StartWorkDateGr = item.StartWorkDateGr; + // //farokhiChanges + // if (item.EmployeeId == 42783) + // employeeDetailsForInsuranceObj.MonthlyBenefits = 53082855; - // list.Add(employeeDetailsForInsuranceObj); - //} + // list.Add(employeeDetailsForInsuranceObj); + //} - //result.EmployeeDetailsForInsuranceList = list.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) - // .ThenBy(x => x.LName).ToList(); + //result.EmployeeDetailsForInsuranceList = list.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) + // .ThenBy(x => x.LName).ToList(); - #endregion + #endregion - result.EmployeeDetailsForInsuranceList = computeResult.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) - .ThenBy(x => x.LName).ToList(); - Console.WriteLine("ToList compute : " + watch.Elapsed); - result.IsExist = false; - result.IsBlock = isBolock; - result.MaritalStatus = yearlysaleries.MarriedAllowance; + result.EmployeeDetailsForInsuranceList = computeResult.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) + .ThenBy(x => x.LName).ToList(); + Console.WriteLine("ToList compute : " + watch.Elapsed); + result.IsExist = false; + result.IsBlock = isBolock; + result.MaritalStatus = yearlysaleries.MarriedAllowance; } else @@ -951,205 +961,206 @@ public class InsuranceListApplication: IInsuranceListApplication result.IsExist = true; result.IsBlock = isBolock; } - + return result; } - public double MarriedAllowance(string maritalStatus,long jobId, bool includedStatus, - int countWorkingDays, double marriedAlowance,int endMonthCurrentDay) + public double MarriedAllowance(string maritalStatus, long jobId, bool includedStatus, + int countWorkingDays, double marriedAlowance, int endMonthCurrentDay) { - bool isManager = jobId is 10 or 16 or 17 or 18 or 3498; - if (isManager)//اگر مدیر عامل بود - return 0; - if (maritalStatus != "متاهل")//اگر مجرد بود - return 0; - - if(countWorkingDays == endMonthCurrentDay) - return (marriedAlowance); + bool isManager = jobId is 10 or 16 or 17 or 18 or 3498; + if (isManager)//اگر مدیر عامل بود + return 0; + if (maritalStatus != "متاهل")//اگر مجرد بود + return 0; + + if (countWorkingDays == endMonthCurrentDay) + return (marriedAlowance); return endMonthCurrentDay switch { - 29 => GetRoundValue((marriedAlowance / 29) * countWorkingDays), - 30 => GetRoundValue((marriedAlowance / 30) * countWorkingDays), - 31 => GetRoundValue((marriedAlowance / 31) * countWorkingDays), - _ => marriedAlowance + 29 => GetRoundValue((marriedAlowance / 29) * countWorkingDays), + 30 => GetRoundValue((marriedAlowance / 30) * countWorkingDays), + 31 => GetRoundValue((marriedAlowance / 31) * countWorkingDays), + _ => marriedAlowance }; } - public OperationResult CreateEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command) - { - var result = new OperationResult(); - try - { - //_transactionManager.BeginTransaction(); + public OperationResult CreateEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command) + { + var result = new OperationResult(); - var createInsuranceEmployeeInfo = new CreateInsuranceEmployeeInfo(); - createInsuranceEmployeeInfo.EmployeeId = command.EmployeeId; - createInsuranceEmployeeInfo.FName = command.FName; - createInsuranceEmployeeInfo.LName = command.LName; - createInsuranceEmployeeInfo.FatherName = command.FatherName; - createInsuranceEmployeeInfo.PlaceOfIssue = command.PlaceOfIssue; - createInsuranceEmployeeInfo.NationalCode = command.NationalCode; - createInsuranceEmployeeInfo.IdNumber = command.IdNumber; - createInsuranceEmployeeInfo.Gender = command.Gender; - createInsuranceEmployeeInfo.InsuranceCode = command.InsuranceCode; - createInsuranceEmployeeInfo.DateOfBirthGr = command.DateOfBirth.ToGeorgianDateTime(); - createInsuranceEmployeeInfo.DateOfIssueGr = command.DateOfIssue.ToGeorgianDateTime(); - result = _insuranceEmployeeInfoApplication.Create(createInsuranceEmployeeInfo); + try + { + //_transactionManager.BeginTransaction(); - //var createEmployeeInsuranceListData = new CreateEmployeeInsurancListData(); - //createEmployeeInsuranceListData.InsuranceListId = command.InsuranceListId; - //createEmployeeInsuranceListData.EmployeeId = command.EmployeeId; - ////روزهای کارکرد پرسنل - //createEmployeeInsuranceListData.WorkingDays = command.WorkingDays; - //// دستمزد روزانه - //createEmployeeInsuranceListData.DailyWage = command.DailyWage; - ////دستمزد ماهانه - //createEmployeeInsuranceListData.MonthlySalary = command.MonthlySalary; - ////مزایای ماهانه - //createEmployeeInsuranceListData.MonthlyBenefits = command.MonthlyBenefits; - ////دستمزد و مزایای ماهانه مشمول - //createEmployeeInsuranceListData.MonthlyBenefitsIncluded = command.MonthlyBenefitsIncluded; - //// مزایای مشمول مستمر - //createEmployeeInsuranceListData.BenefitsIncludedContinuous = command.BenefitsIncludedContinuous; - ////مزایای مشمول غیر مستمر - //createEmployeeInsuranceListData.BenefitsIncludedNonContinuous = command.BenefitsIncludedNonContinuous; - ////سهم بیمه حق کارگر - //createEmployeeInsuranceListData.InsuranceShare = command.InsuranceShare; - //// تاریخ شروع به کار - //createEmployeeInsuranceListData.StartWorkDate = command.StartWorkDate.ToGeorgian(); - ////تاریخ ترک کار - //if() - //createEmployeeInsuranceListData.LeftWorkDate = command.LeftWorkDate.ToGeorgian(); - //// آی دی شغل - //createEmployeeInsuranceListData.JobId = command.JobId; - //result = _employeeInsurancListDataApplication.Create(createEmployeeInsuranceListData); + var createInsuranceEmployeeInfo = new CreateInsuranceEmployeeInfo(); + createInsuranceEmployeeInfo.EmployeeId = command.EmployeeId; + createInsuranceEmployeeInfo.FName = command.FName; + createInsuranceEmployeeInfo.LName = command.LName; + createInsuranceEmployeeInfo.FatherName = command.FatherName; + createInsuranceEmployeeInfo.PlaceOfIssue = command.PlaceOfIssue; + createInsuranceEmployeeInfo.NationalCode = command.NationalCode; + createInsuranceEmployeeInfo.IdNumber = command.IdNumber; + createInsuranceEmployeeInfo.Gender = command.Gender; + createInsuranceEmployeeInfo.InsuranceCode = command.InsuranceCode; + createInsuranceEmployeeInfo.DateOfBirthGr = command.DateOfBirth.ToGeorgianDateTime(); + createInsuranceEmployeeInfo.DateOfIssueGr = command.DateOfIssue.ToGeorgianDateTime(); + result = _insuranceEmployeeInfoApplication.Create(createInsuranceEmployeeInfo); - // _transactionManager.CommitTransaction(); - } - catch (Exception ex) - { - result.IsSuccedded = false; - result.Message = "ثبت اطلاعات با خطا مواجه شد"; - // _transactionManager.RollbackTransaction(); - } + //var createEmployeeInsuranceListData = new CreateEmployeeInsurancListData(); + //createEmployeeInsuranceListData.InsuranceListId = command.InsuranceListId; + //createEmployeeInsuranceListData.EmployeeId = command.EmployeeId; + ////روزهای کارکرد پرسنل + //createEmployeeInsuranceListData.WorkingDays = command.WorkingDays; + //// دستمزد روزانه + //createEmployeeInsuranceListData.DailyWage = command.DailyWage; + ////دستمزد ماهانه + //createEmployeeInsuranceListData.MonthlySalary = command.MonthlySalary; + ////مزایای ماهانه + //createEmployeeInsuranceListData.MonthlyBenefits = command.MonthlyBenefits; + ////دستمزد و مزایای ماهانه مشمول + //createEmployeeInsuranceListData.MonthlyBenefitsIncluded = command.MonthlyBenefitsIncluded; + //// مزایای مشمول مستمر + //createEmployeeInsuranceListData.BenefitsIncludedContinuous = command.BenefitsIncludedContinuous; + ////مزایای مشمول غیر مستمر + //createEmployeeInsuranceListData.BenefitsIncludedNonContinuous = command.BenefitsIncludedNonContinuous; + ////سهم بیمه حق کارگر + //createEmployeeInsuranceListData.InsuranceShare = command.InsuranceShare; + //// تاریخ شروع به کار + //createEmployeeInsuranceListData.StartWorkDate = command.StartWorkDate.ToGeorgian(); + ////تاریخ ترک کار + //if() + //createEmployeeInsuranceListData.LeftWorkDate = command.LeftWorkDate.ToGeorgian(); + //// آی دی شغل + //createEmployeeInsuranceListData.JobId = command.JobId; + //result = _employeeInsurancListDataApplication.Create(createEmployeeInsuranceListData); - return result; + // _transactionManager.CommitTransaction(); + } + catch (Exception ex) + { + result.IsSuccedded = false; + result.Message = "ثبت اطلاعات با خطا مواجه شد"; + // _transactionManager.RollbackTransaction(); + } - } + return result; - public OperationResult EditEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command) - { - var result = new OperationResult(); + } - try - { - //_transactionManager.BeginTransaction(); - var insuranceEmployeeInfo = new EditInsuranceEmployeeInfo(); - insuranceEmployeeInfo.Id = command.InsuranceEmployeeInformationId; - insuranceEmployeeInfo.EmployeeId = command.EmployeeId; - insuranceEmployeeInfo.FName = command.FName; - insuranceEmployeeInfo.LName = command.LName; - insuranceEmployeeInfo.FatherName = command.FatherName; - insuranceEmployeeInfo.PlaceOfIssue = command.PlaceOfIssue; - insuranceEmployeeInfo.NationalCode = command.NationalCode; - insuranceEmployeeInfo.IdNumber = command.IdNumber; - insuranceEmployeeInfo.Gender = command.Gender; - insuranceEmployeeInfo.InsuranceCode = command.InsuranceCode; - insuranceEmployeeInfo.DateOfBirthGr = command.DateOfBirth.ToGeorgianDateTime(); - insuranceEmployeeInfo.DateOfIssueGr = command.DateOfIssue.ToGeorgianDateTime(); - result = _insuranceEmployeeInfoApplication.Edit(insuranceEmployeeInfo); + public OperationResult EditEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command) + { + var result = new OperationResult(); + + try + { + //_transactionManager.BeginTransaction(); + var insuranceEmployeeInfo = new EditInsuranceEmployeeInfo(); + insuranceEmployeeInfo.Id = command.InsuranceEmployeeInformationId; + insuranceEmployeeInfo.EmployeeId = command.EmployeeId; + insuranceEmployeeInfo.FName = command.FName; + insuranceEmployeeInfo.LName = command.LName; + insuranceEmployeeInfo.FatherName = command.FatherName; + insuranceEmployeeInfo.PlaceOfIssue = command.PlaceOfIssue; + insuranceEmployeeInfo.NationalCode = command.NationalCode; + insuranceEmployeeInfo.IdNumber = command.IdNumber; + insuranceEmployeeInfo.Gender = command.Gender; + insuranceEmployeeInfo.InsuranceCode = command.InsuranceCode; + insuranceEmployeeInfo.DateOfBirthGr = command.DateOfBirth.ToGeorgianDateTime(); + insuranceEmployeeInfo.DateOfIssueGr = command.DateOfIssue.ToGeorgianDateTime(); + result = _insuranceEmployeeInfoApplication.Edit(insuranceEmployeeInfo); - // var createEmployeeInsuranceListData = new EditEmployeeInsurancListData(); - // createEmployeeInsuranceListData.InsuranceListId = command.InsuranceListId; - //// createEmployeeInsuranceListData.Id = command.EmployeeInsurancListDataId; - // createEmployeeInsuranceListData.EmployeeId = command.EmployeeId; - // //روزهای کارکرد پرسنل - // createEmployeeInsuranceListData.WorkingDays = command.WorkingDays; - // // دستمزد روزانه - // createEmployeeInsuranceListData.DailyWage = command.DailyWage; - // //دستمزد ماهانه - // createEmployeeInsuranceListData.MonthlySalary = command.MonthlySalary; - // //مزایای ماهانه - // createEmployeeInsuranceListData.MonthlyBenefits = command.MonthlyBenefits; - // //دستمزد و مزایای ماهانه مشمول - // createEmployeeInsuranceListData.MonthlyBenefitsIncluded = command.MonthlyBenefitsIncluded; - // // مزایای مشمول مستمر - // createEmployeeInsuranceListData.BenefitsIncludedContinuous = command.BenefitsIncludedContinuous; - // //مزایای مشمول غیر مستمر - // createEmployeeInsuranceListData.BenefitsIncludedNonContinuous = command.BenefitsIncludedNonContinuous; - // //سهم بیمه حق کارگر - // createEmployeeInsuranceListData.InsuranceShare = command.InsuranceShare; - // // تاریخ شروع به کار - // createEmployeeInsuranceListData.StartWorkDate = command.StartWorkDate.ToGeorgian(); - // //تاریخ ترک کار - // createEmployeeInsuranceListData.LeftWorkDate = command.LeftWorkDate.ToGeorgian(); - // // آی دی شغل - // createEmployeeInsuranceListData.JobId = command.JobId; - // result = _employeeInsurancListDataApplication.Edit(createEmployeeInsuranceListData); + // var createEmployeeInsuranceListData = new EditEmployeeInsurancListData(); + // createEmployeeInsuranceListData.InsuranceListId = command.InsuranceListId; + //// createEmployeeInsuranceListData.Id = command.EmployeeInsurancListDataId; + // createEmployeeInsuranceListData.EmployeeId = command.EmployeeId; + // //روزهای کارکرد پرسنل + // createEmployeeInsuranceListData.WorkingDays = command.WorkingDays; + // // دستمزد روزانه + // createEmployeeInsuranceListData.DailyWage = command.DailyWage; + // //دستمزد ماهانه + // createEmployeeInsuranceListData.MonthlySalary = command.MonthlySalary; + // //مزایای ماهانه + // createEmployeeInsuranceListData.MonthlyBenefits = command.MonthlyBenefits; + // //دستمزد و مزایای ماهانه مشمول + // createEmployeeInsuranceListData.MonthlyBenefitsIncluded = command.MonthlyBenefitsIncluded; + // // مزایای مشمول مستمر + // createEmployeeInsuranceListData.BenefitsIncludedContinuous = command.BenefitsIncludedContinuous; + // //مزایای مشمول غیر مستمر + // createEmployeeInsuranceListData.BenefitsIncludedNonContinuous = command.BenefitsIncludedNonContinuous; + // //سهم بیمه حق کارگر + // createEmployeeInsuranceListData.InsuranceShare = command.InsuranceShare; + // // تاریخ شروع به کار + // createEmployeeInsuranceListData.StartWorkDate = command.StartWorkDate.ToGeorgian(); + // //تاریخ ترک کار + // createEmployeeInsuranceListData.LeftWorkDate = command.LeftWorkDate.ToGeorgian(); + // // آی دی شغل + // createEmployeeInsuranceListData.JobId = command.JobId; + // result = _employeeInsurancListDataApplication.Edit(createEmployeeInsuranceListData); - // _transactionManager.CommitTransaction(); - } - catch (Exception ex) - { - result.IsSuccedded = false; - result.Message = "ثبت اطلاعات با خطا مواجه شد"; - // _transactionManager.RollbackTransaction(); - } + // _transactionManager.CommitTransaction(); + } + catch (Exception ex) + { + result.IsSuccedded = false; + result.Message = "ثبت اطلاعات با خطا مواجه شد"; + // _transactionManager.RollbackTransaction(); + } - return result; + return result; - } + } - public OperationResult Remove(long id) - { - return _insuranceListRepositpry.Remove(id); - } + public OperationResult Remove(long id) + { + return _insuranceListRepositpry.Remove(id); + } - public EditInsuranceList GetDetailsForEdit(long id) - { - var insuranceListDetails = _insuranceListRepositpry.GetDetailsForEdit(id); - //string startMonthCurrent = insuranceListDetails.Year + "/" + insuranceListDetails.Month + "/01"; - //string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - //var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); - //var year = Convert.ToInt32(insuranceListDetails.Year); - //var month = Convert.ToInt32(insuranceListDetails.Month); - //var day = 1; - //var persianCurrentStartDate = new PersianDateTime(year, month, day); - //var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); + public EditInsuranceList GetDetailsForEdit(long id) + { + var insuranceListDetails = _insuranceListRepositpry.GetDetailsForEdit(id); + //string startMonthCurrent = insuranceListDetails.Year + "/" + insuranceListDetails.Month + "/01"; + //string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); + //var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + //var year = Convert.ToInt32(insuranceListDetails.Year); + //var month = Convert.ToInt32(insuranceListDetails.Month); + //var day = 1; + //var persianCurrentStartDate = new PersianDateTime(year, month, day); + //var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); - //var model = new YearlySalarySearchModel(); - //model.StartDateGr = startMonthCurrent.ToGeorgianDateTime(); - //model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); - //model.year = insuranceListDetails.Year; - //var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); - //var yearlysalaryItem = new YearlysalaryItemViewModel(); - //var housingAllowance = new YearlysalaryItemViewModel(); - //var consumableItems = new YearlysalaryItemViewModel(); - //if (yearSalaryObj != null) - //{ - // yearlysalaryItem = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - // .Where(x => x.ItemName == "مزد روزانه").FirstOrDefault(); - // housingAllowance = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - // .Where(x => x.ItemName == "کمک هزینه مسکن").FirstOrDefault(); - // consumableItems = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - // .Where(x => x.ItemName == "کمک هزینه اقلام").FirstOrDefault(); - //} + //var model = new YearlySalarySearchModel(); + //model.StartDateGr = startMonthCurrent.ToGeorgianDateTime(); + //model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); + //model.year = insuranceListDetails.Year; + //var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); + //var yearlysalaryItem = new YearlysalaryItemViewModel(); + //var housingAllowance = new YearlysalaryItemViewModel(); + //var consumableItems = new YearlysalaryItemViewModel(); + //if (yearSalaryObj != null) + //{ + // yearlysalaryItem = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + // .Where(x => x.ItemName == "مزد روزانه").FirstOrDefault(); + // housingAllowance = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + // .Where(x => x.ItemName == "کمک هزینه مسکن").FirstOrDefault(); + // consumableItems = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + // .Where(x => x.ItemName == "کمک هزینه اقلام").FirstOrDefault(); + //} - return insuranceListDetails; - } + return insuranceListDetails; + } public double GetRoundValue(double value) { string strValue = value.ToString(); if (strValue.IndexOf('.') > -1) { - - string a = strValue.Substring(strValue.IndexOf('.')+1, 1); + + string a = strValue.Substring(strValue.IndexOf('.') + 1, 1); if (int.Parse(a) > 5) { return (Math.Round(value, MidpointRounding.ToPositiveInfinity)); @@ -1160,33 +1171,33 @@ public class InsuranceListApplication: IInsuranceListApplication } } - return value; - } + return value; + } //محاسبه پرسنل در جدول - DSKWOR EDIT public MainEmployeeDetailsViewModel SearchEmployeeListForEditByInsuranceListId(EmployeeForEditInsuranceListSearchModel searchModel) { - var mainEmployeeDetailsViewModel= new MainEmployeeDetailsViewModel(); - var mainEmployeeDetailsViewModel2= new MainEmployeeDetailsViewModel(); - var mainEmployeeDetailsViewModelForNewPersonel= new MainEmployeeDetailsViewModel(); + var mainEmployeeDetailsViewModel = new MainEmployeeDetailsViewModel(); + var mainEmployeeDetailsViewModel2 = new MainEmployeeDetailsViewModel(); + var mainEmployeeDetailsViewModelForNewPersonel = new MainEmployeeDetailsViewModel(); - List ids = searchModel.WorkshopIds.Where(x=>x!=searchModel.WorkshopId).ToList(); + List ids = searchModel.WorkshopIds.Where(x => x != searchModel.WorkshopId).ToList(); searchModel.Month = searchModel.Month.PadLeft(2, '0'); - if (!_insuranceListRepositpry.Exists(x => x.Year == searchModel.Year && x.Month == searchModel.Month && (ids!=null && ids.Count > 0 && ids.Contains(x.WorkshopId)))) + if (!_insuranceListRepositpry.Exists(x => x.Year == searchModel.Year && x.Month == searchModel.Month && (ids != null && ids.Count > 0 && ids.Contains(x.WorkshopId)))) { - mainEmployeeDetailsViewModel = _insuranceListRepositpry.SearchEmployeeListForEditByInsuranceListId(searchModel); + mainEmployeeDetailsViewModel = _insuranceListRepositpry.SearchEmployeeListForEditByInsuranceListId(searchModel); - var employeeForCreateInsurance = new EmployeeForCreateInsuranceListSearchModel(); - employeeForCreateInsurance.Month = searchModel.Month; - employeeForCreateInsurance.Year = searchModel.Year; - employeeForCreateInsurance.WorkshopIds = ids; - #region OtherWorkshop - if (ids != null && ids.Count > 0)//اگر ورکشاپهای دیگر را انتخاب کرد - { - mainEmployeeDetailsViewModel2 = SearchEmployeeForCreateInsuranceList(employeeForCreateInsurance); - } - #endregion + var employeeForCreateInsurance = new EmployeeForCreateInsuranceListSearchModel(); + employeeForCreateInsurance.Month = searchModel.Month; + employeeForCreateInsurance.Year = searchModel.Year; + employeeForCreateInsurance.WorkshopIds = ids; + #region OtherWorkshop + if (ids != null && ids.Count > 0)//اگر ورکشاپهای دیگر را انتخاب کرد + { + mainEmployeeDetailsViewModel2 = SearchEmployeeForCreateInsuranceList(employeeForCreateInsurance); + } + #endregion #region NewPersonel @@ -1194,11 +1205,11 @@ public class InsuranceListApplication: IInsuranceListApplication var searchModelForCreate = new EmployeeForCreateInsuranceListSearchModel(); searchModelForCreate.Month = searchModel.Month; searchModelForCreate.Year = searchModel.Year; - searchModelForCreate.WorkshopIds=new List(){ searchModel.WorkshopId }; + searchModelForCreate.WorkshopIds = new List() { searchModel.WorkshopId }; var leftWorkInsuranceViewModelList = _leftWorkInsuranceApplication.SearchForCreateInsuranceList(searchModelForCreate); var newEmployeeId = leftWorkInsuranceViewModelList.Select(x => x.EmployeeId).ToList(); var oldEmployeeId = mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList.Select(x => x.EmployeeId).ToList(); - if(!newEmployeeId.SequenceEqual(oldEmployeeId)) + if (!newEmployeeId.SequenceEqual(oldEmployeeId)) { var employeeAddIds = new List(); var employeeRemoveIds = new List(); @@ -1223,24 +1234,24 @@ public class InsuranceListApplication: IInsuranceListApplication if (employeeAddIds != null && employeeAddIds.Count > 0) { leftWorkInsuranceViewModelList = leftWorkInsuranceViewModelList.Where(x => employeeAddIds.Contains(x.EmployeeId)).ToList(); - mainEmployeeDetailsViewModelForNewPersonel = GetEmployeeForInsuranceList(leftWorkInsuranceViewModelList,searchModel); + mainEmployeeDetailsViewModelForNewPersonel = GetEmployeeForInsuranceList(leftWorkInsuranceViewModelList, searchModel); if (mainEmployeeDetailsViewModelForNewPersonel.EmployeeDetailsForInsuranceList != null && mainEmployeeDetailsViewModelForNewPersonel.EmployeeDetailsForInsuranceList.Count > 0) { mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList = mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList.Union(mainEmployeeDetailsViewModelForNewPersonel.EmployeeDetailsForInsuranceList).ToList(); } } - if (employeeRemoveIds != null && employeeRemoveIds.Count>0) + if (employeeRemoveIds != null && employeeRemoveIds.Count > 0) { mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList = mainEmployeeDetailsViewModel .EmployeeDetailsForInsuranceList.Where(x => !employeeRemoveIds.Contains(x.EmployeeId)) .ToList(); - } + } - } - #endregion + } + #endregion string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; @@ -1251,12 +1262,12 @@ public class InsuranceListApplication: IInsuranceListApplication var day = 1; var persianCurrentStartDate = new PersianDateTime(year, month, day); var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); - + var model = new YearlySalarySearchModel(); model.StartDateGr = startMonthCurrent.ToGeorgianDateTime(); model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); model.year = searchModel.Year; - + var yearlysalaryItem = new YearlysalaryItemViewModel(); var housingAllowance = new YearlysalaryItemViewModel(); var consumableItems = new YearlysalaryItemViewModel(); @@ -1270,82 +1281,82 @@ public class InsuranceListApplication: IInsuranceListApplication int endWork = 0; item.IsMaritalStatusSet = // آیا وضعیت تاهل پرسنل ست شده است !string.IsNullOrWhiteSpace(employeeObject.MaritalStatus); - + #region HasConfilictLeftWork - bool hasConfilict = false; - // // اگر شروع به کار و ترک کارش در جدول ترک کار تغییر کرده باشد - if (item.HasConfilictLeftWork)//item.LeftWorkDate != item.StrLeftWorkDateNew || (item.StartWorkDate != item.StrStartWorkDateNew && !string.IsNullOrEmpty(item.StrStartWorkDateNew) ) ||(item.JobId!=item.JobIdNew && item.JobIdNew!=0)) - { - if (item.LeftWorkDate != item.StrLeftWorkDateNew) - { - item.LeftWorkDate = item.StrLeftWorkDateNew; - item.LeftWorkDateGr = item.LeftWorkDateNew; + bool hasConfilict = false; + // // اگر شروع به کار و ترک کارش در جدول ترک کار تغییر کرده باشد + if (item.HasConfilictLeftWork)//item.LeftWorkDate != item.StrLeftWorkDateNew || (item.StartWorkDate != item.StrStartWorkDateNew && !string.IsNullOrEmpty(item.StrStartWorkDateNew) ) ||(item.JobId!=item.JobIdNew && item.JobIdNew!=0)) + { + if (item.LeftWorkDate != item.StrLeftWorkDateNew) + { + item.LeftWorkDate = item.StrLeftWorkDateNew; + item.LeftWorkDateGr = item.LeftWorkDateNew; - } + } - if (item.StartWorkDate != item.StrStartWorkDateNew && - !string.IsNullOrEmpty(item.StrStartWorkDateNew)) - { - item.StartWorkDate = item.StrStartWorkDateNew; - item.StartWorkDateGr = item.StartWorkDateNew; - } + if (item.StartWorkDate != item.StrStartWorkDateNew && + !string.IsNullOrEmpty(item.StrStartWorkDateNew)) + { + item.StartWorkDate = item.StrStartWorkDateNew; + item.StartWorkDateGr = item.StartWorkDateNew; + } - if (item.JobId != item.JobIdNew && item.JobIdNew != 0) - { - item.JobId = item.JobIdNew; - item.JobCode = item.JobCodeNew; - item.JobName = item.JobNameNew; - } + if (item.JobId != item.JobIdNew && item.JobIdNew != 0) + { + item.JobId = item.JobIdNew; + item.JobCode = item.JobCodeNew; + item.JobName = item.JobNameNew; + } - item.IncludeStatus = item.IncludeStatusNew;//(item.IncludeStatus==item.IncludeStatusNew); + item.IncludeStatus = item.IncludeStatusNew;//(item.IncludeStatus==item.IncludeStatusNew); - hasConfilict = true; - } + hasConfilict = true; + } - #endregion + #endregion - var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); - if (yearSalaryObj != null) - { - yearlysalaryItem = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "مزد روزانه").FirstOrDefault(); - housingAllowance = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "کمک هزینه مسکن").FirstOrDefault(); - consumableItems = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "کمک هزینه اقلام").FirstOrDefault(); - maritalStatus = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "حق تاهل").FirstOrDefault(); - item.HousingAllowance = housingAllowance.ItemValue; - item.ConsumableItems = consumableItems.ItemValue; - //item.MarriedAllowance = maritalStatus.ItemValue; - item.YearlySalaryItem = yearlysalaryItem.ItemValue; + var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); + if (yearSalaryObj != null) + { + yearlysalaryItem = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "مزد روزانه").FirstOrDefault(); + housingAllowance = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "کمک هزینه مسکن").FirstOrDefault(); + consumableItems = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "کمک هزینه اقلام").FirstOrDefault(); + maritalStatus = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "حق تاهل").FirstOrDefault(); + item.HousingAllowance = housingAllowance.ItemValue; + item.ConsumableItems = consumableItems.ItemValue; + //item.MarriedAllowance = maritalStatus.ItemValue; + item.YearlySalaryItem = yearlysalaryItem.ItemValue; - } + } //ترک کارش در ماه و سال جاری بود نمایش داده شود - if (!string.IsNullOrEmpty(item.LeftWorkDate) && !item.LeftWorkDate.Contains(searchModel.Year+"/"+searchModel.Month ) ) + if (!string.IsNullOrEmpty(item.LeftWorkDate) && !item.LeftWorkDate.Contains(searchModel.Year + "/" + searchModel.Month)) { item.LeftWorkDate = string.Empty; item.LeftWorkDateGr = null; } - if (!string.IsNullOrEmpty(item.LeftWorkDate)) //&& item.LeftWorkDate.Substring(5, 2)==searchModel.Month && item.LeftWorkDate.Substring(0, 4) == searchModel.Year) - { - // item.HasLeftWorkInMonth = true; - var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); - var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); - var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); + if (!string.IsNullOrEmpty(item.LeftWorkDate)) //&& item.LeftWorkDate.Substring(5, 2)==searchModel.Month && item.LeftWorkDate.Substring(0, 4) == searchModel.Year) + { + // item.HasLeftWorkInMonth = true; + var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); + var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); + var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); - var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); - var persianEndDateUser = persianLeftDateUser.AddDays(-1); - var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); + var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); + var persianEndDateUser = persianLeftDateUser.AddDays(-1); + var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); - if (persianLeftDateUser <= persianCurrentEndDate) - item.HasLeftWorkInMonth = true; - else - item.HasLeftWorkInMonth = false; + if (persianLeftDateUser <= persianCurrentEndDate) + item.HasLeftWorkInMonth = true; + else + item.HasLeftWorkInMonth = false; //اگر پایان به کار کاربر از پایان ماه جاری بیشتر باشد if (persianEndDateUser >= persianCurrentEndDate) @@ -1366,8 +1377,8 @@ public class InsuranceListApplication: IInsuranceListApplication var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); - - if(persianStartDateUser <= persianCurrentStartDate) + + if (persianStartDateUser <= persianCurrentStartDate) { startWork = 1; } @@ -1376,18 +1387,18 @@ public class InsuranceListApplication: IInsuranceListApplication startWork = dayStartDateUser; } - if(persianStartDateUser < persianCurrentStartDate) + if (persianStartDateUser < persianCurrentStartDate) item.HasStartWorkInMonth = false; else item.HasStartWorkInMonth = true; - + if (hasConfilict) //اگر ترک کار شخص تغییر کرده بود، دوباره محاسبه شود { item.StartMonthCurrent = startMonthCurrent; item.HousingAllowance = housingAllowance.ItemValue; item.ConsumableItems = consumableItems.ItemValue; - item.DailyWage= ComputeDailyWage(yearlysalaryItem.ItemValue, item.EmployeeId, searchModel.WorkshopId, searchModel.Year); + item.DailyWage = ComputeDailyWage(yearlysalaryItem.ItemValue, item.EmployeeId, searchModel.WorkshopId, searchModel.Year); item.DailyWageStr = item.DailyWage.ToMoney(); } else @@ -1399,63 +1410,63 @@ public class InsuranceListApplication: IInsuranceListApplication { #region InsuranceJob - double dailyWage = item.DailyWage; - if (searchModel.FixedSalary) - { - dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, searchModel.WorkshopId, item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); - item.HasConfilictJobs = (dailyWage == 0 ? true : false); - } - #endregion + double dailyWage = item.DailyWage; + if (searchModel.FixedSalary) + { + dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, searchModel.WorkshopId, item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); + item.HasConfilictJobs = (dailyWage == 0 ? true : false); + } + #endregion - if (hasConfilict) - { - int countWorkingDays = 0; - for (int i = startWork; i <= endWork; i++) - { - countWorkingDays = countWorkingDays + 1; - } + if (hasConfilict) + { + int countWorkingDays = 0; + for (int i = startWork; i <= endWork; i++) + { + countWorkingDays = countWorkingDays + 1; + } - item.MonthlySalary = GetRoundValue(dailyWage * countWorkingDays); - item.WorkingDays = countWorkingDays; - if (item.IncludeStatus) - { - var marital = employeeObject.MaritalStatus == "متاهل" ? maritalStatus.ItemValue : 0; - item.MonthlyBenefits = GetMonthlyBenefits(dayMonthCurrent, consumableItems.ItemValue, housingAllowance.ItemValue, marital, countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, item.JobId, item.EmployeeId, item.IncludeStatus); - } - else - { - item.MonthlyBenefits = 0; - } - } + item.MonthlySalary = GetRoundValue(dailyWage * countWorkingDays); + item.WorkingDays = countWorkingDays; + if (item.IncludeStatus) + { + var marital = employeeObject.MaritalStatus == "متاهل" ? maritalStatus.ItemValue : 0; + item.MonthlyBenefits = GetMonthlyBenefits(dayMonthCurrent, consumableItems.ItemValue, housingAllowance.ItemValue, marital, countWorkingDays, searchModel.TypeOfInsuranceSendWorkshop, item.JobId, item.EmployeeId, item.IncludeStatus); + } + else + { + item.MonthlyBenefits = 0; + } + } - if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت - { - item.MonthlyBenefits = 0; - } + if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت + { + item.MonthlyBenefits = 0; + } - item.BenefitsIncludedContinuous = item.MonthlyBenefits + item.MonthlySalary; + item.BenefitsIncludedContinuous = item.MonthlyBenefits + item.MonthlySalary; - var insuranceShare = (item.BenefitsIncludedContinuous * 7) / 100; - item.InsuranceShare = GetRoundValue(insuranceShare); - //} + var insuranceShare = (item.BenefitsIncludedContinuous * 7) / 100; + item.InsuranceShare = GetRoundValue(insuranceShare); + //} - var employerShare = (item.BenefitsIncludedContinuous * 20) / 100; - item.EmployerShare = GetRoundValue(employerShare); + var employerShare = (item.BenefitsIncludedContinuous * 20) / 100; + item.EmployerShare = GetRoundValue(employerShare); - var unEmploymentInsurance = (item.BenefitsIncludedContinuous * 3) / 100; - item.UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance); + var unEmploymentInsurance = (item.BenefitsIncludedContinuous * 3) / 100; + item.UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance); // item.BenefitsIncludedNonContinuous = item.BenefitsIncludedContinuous; - item.IncludedAndNotIncluded = item.BenefitsIncludedContinuous + item.BenefitsIncludedNonContinuous; + item.IncludedAndNotIncluded = item.BenefitsIncludedContinuous + item.BenefitsIncludedNonContinuous; } - + } - if (mainEmployeeDetailsViewModel2.EmployeeDetailsForInsuranceList!=null && mainEmployeeDetailsViewModel2.EmployeeDetailsForInsuranceList.Count>0) + if (mainEmployeeDetailsViewModel2.EmployeeDetailsForInsuranceList != null && mainEmployeeDetailsViewModel2.EmployeeDetailsForInsuranceList.Count > 0) mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList = mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList.Union(mainEmployeeDetailsViewModel2.EmployeeDetailsForInsuranceList).OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth).ThenBy(x => x.LName).ToList(); else mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList = mainEmployeeDetailsViewModel.EmployeeDetailsForInsuranceList.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth).ThenBy(x => x.LName).ToList(); - + mainEmployeeDetailsViewModel.IsExist = false; mainEmployeeDetailsViewModel.MaritalStatus = maritalStatus.ItemValue; } @@ -1466,96 +1477,96 @@ public class InsuranceListApplication: IInsuranceListApplication return mainEmployeeDetailsViewModel; } - public MainEmployeeDetailsViewModel GetEmployeeListForEditByInsuranceListId( - EmployeeForEditInsuranceListSearchModel searchModel) - { - var result = new MainEmployeeDetailsViewModel(); - var workshopId = searchModel.WorkshopIds.FirstOrDefault(); - var startMonthFa = $"{searchModel.Year}/{searchModel.Month.PadLeft(2, '0')}/01"; - DateTime startDateGr = startMonthFa.ToGeorgianDateTime(); - DateTime endDateGr = startMonthFa.FindeEndOfMonth() - .ToGeorgianDateTime(); - int endOfMonth = Convert.ToInt32((startMonthFa.FindeEndOfMonth()).Substring(8, 2)); + public MainEmployeeDetailsViewModel GetEmployeeListForEditByInsuranceListId( + EmployeeForEditInsuranceListSearchModel searchModel) + { + var result = new MainEmployeeDetailsViewModel(); + var workshopId = searchModel.WorkshopIds.FirstOrDefault(); + var startMonthFa = $"{searchModel.Year}/{searchModel.Month.PadLeft(2, '0')}/01"; + DateTime startDateGr = startMonthFa.ToGeorgianDateTime(); + DateTime endDateGr = startMonthFa.FindeEndOfMonth() + .ToGeorgianDateTime(); + int endOfMonth = Convert.ToInt32((startMonthFa.FindeEndOfMonth()).Substring(8, 2)); - //مقادیر سالانه این تاریخ - var yearlysaleries = _yearlySalaryApplication.GetInsuranceItems(startDateGr, endDateGr, searchModel.Year); + //مقادیر سالانه این تاریخ + var yearlysaleries = _yearlySalaryApplication.GetInsuranceItems(startDateGr, endDateGr, searchModel.Year); - // دریافت اطلاعات هویتی و شروع و ترک کار کارکنان - //var employeesInfoAndLeftWorks = - // _leftWorkInsuranceApplication.GetEmployeeInsuranceLeftWorksAndInformation(workshopId, startDateGr, - // endDateGr); + // دریافت اطلاعات هویتی و شروع و ترک کار کارکنان + //var employeesInfoAndLeftWorks = + // _leftWorkInsuranceApplication.GetEmployeeInsuranceLeftWorksAndInformation(workshopId, startDateGr, + // endDateGr); var employeeInsurancDataPreviusList = - _insuranceListRepositpry.GetEmployeeInsuranceDataForEdit(searchModel.InsuranceId,startDateGr,endDateGr); + _insuranceListRepositpry.GetEmployeeInsuranceDataForEdit(searchModel.InsuranceId, startDateGr, endDateGr); - var computeResult = employeeInsurancDataPreviusList.Select(employeeData => - { - var dateOfBirth = employeeData.DateOfBirthGr.ToFarsi(); - var dateOfIssue = employeeData.DateOfIssueGr.ToFarsi(); - var leftDate = employeeData.LeftWorkDateGr != null ? employeeData.LeftWorkDateGr.Value.AddDays(-1) : new DateTime(); - var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employeeData.StartWorkDateGr, leftDate, startDateGr, endDateGr, employeeData.EmployeeId); - var leftWorkFa = workingDays.hasLeftWorkInMonth ? employeeData.LeftWorkDateGr.ToFarsi() : ""; - var startWorkFa = employeeData.StartWorkDateGr.ToFarsi(); - var workshop = _workShopRepository.GetDetails(workshopId); + var computeResult = employeeInsurancDataPreviusList.Select(employeeData => + { + var dateOfBirth = employeeData.DateOfBirthGr.ToFarsi(); + var dateOfIssue = employeeData.DateOfIssueGr.ToFarsi(); + var leftDate = employeeData.LeftWorkDateGr != null ? employeeData.LeftWorkDateGr.Value.AddDays(-1) : new DateTime(); + var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employeeData.StartWorkDateGr, leftDate, startDateGr, endDateGr, employeeData.EmployeeId); + var leftWorkFa = workingDays.hasLeftWorkInMonth ? employeeData.LeftWorkDateGr.ToFarsi() : ""; + var startWorkFa = employeeData.StartWorkDateGr.ToFarsi(); + var workshop = _workShopRepository.GetDetails(workshopId); - //آیا کارفرما است - bool isManager = employeeData.JobId is 10 or 16 or 17 or 18 or 3498; + //آیا کارفرما است + bool isManager = employeeData.JobId is 10 or 16 or 17 or 18 or 3498; - //محاسبه حق بیمه سهم کارفرما - var employerShare = (employeeData.BenefitsIncludedContinuous * 20) / 100; + //محاسبه حق بیمه سهم کارفرما + var employerShare = (employeeData.BenefitsIncludedContinuous * 20) / 100; - // محاسبه بیمه بیکاری - var unEmploymentInsurance = (employeeData.BenefitsIncludedContinuous * 3) / 100; + // محاسبه بیمه بیکاری + var unEmploymentInsurance = (employeeData.BenefitsIncludedContinuous * 3) / 100; - //آیا در کارگاه تیک محاسبه اضافه کار یا حق اولاد زده شده است؟ - //این مورد زمانی چک می شود که تیک محاسبه در کارگاه زده شده باشد - // در غیر اینصورت بصورت پیشفرض دارای فیش حقوق در نظر گرفته می شود - bool hasWorkshopOverTimeOrFamilyAllowance = - workshop.InsuranceCheckoutFamilyAllowance || workshop.InsuranceCheckoutOvertime; + //آیا در کارگاه تیک محاسبه اضافه کار یا حق اولاد زده شده است؟ + //این مورد زمانی چک می شود که تیک محاسبه در کارگاه زده شده باشد + // در غیر اینصورت بصورت پیشفرض دارای فیش حقوق در نظر گرفته می شود + bool hasWorkshopOverTimeOrFamilyAllowance = + workshop.InsuranceCheckoutFamilyAllowance || workshop.InsuranceCheckoutOvertime; - bool employeeHasCheckout = true; - bool hasOverTimePay = false; - bool hasFamilyAllowance = false; + bool employeeHasCheckout = true; + bool hasOverTimePay = false; + bool hasFamilyAllowance = false; - if (hasWorkshopOverTimeOrFamilyAllowance && (leftDate >= startDateGr || employeeData.LeftWorkDateGr == null)) - { - var checkout = _checkoutRepository.HasCheckout(workshopId, employeeData.EmployeeId, - searchModel.Year, searchModel.Month); - if (checkout.hasChekout) - { - if (checkout.OverTimePay > 0) - hasOverTimePay = true; - if (checkout.FamilyAlloance > 0) - hasFamilyAllowance = true; + if (hasWorkshopOverTimeOrFamilyAllowance && (leftDate >= startDateGr || employeeData.LeftWorkDateGr == null)) + { + var checkout = _checkoutRepository.HasCheckout(workshopId, employeeData.EmployeeId, + searchModel.Year, searchModel.Month); + if (checkout.hasChekout) + { + if (checkout.OverTimePay > 0) + hasOverTimePay = true; + if (checkout.FamilyAlloance > 0) + hasFamilyAllowance = true; - } - else - { - employeeHasCheckout = isManager == false ? false : true; - } - } + } + else + { + employeeHasCheckout = isManager == false ? false : true; + } + } - bool familyAllowanceIsSet = true; - bool overTimePayIsSet = true; - if (workshop.InsuranceCheckoutFamilyAllowance && employeeHasCheckout && employeeData.FamilyAllowance == 0 && hasFamilyAllowance && !isManager) - { + bool familyAllowanceIsSet = true; + bool overTimePayIsSet = true; + if (workshop.InsuranceCheckoutFamilyAllowance && employeeHasCheckout && employeeData.FamilyAllowance == 0 && hasFamilyAllowance && !isManager) + { - familyAllowanceIsSet = false; - } + familyAllowanceIsSet = false; + } - if (workshop.InsuranceCheckoutOvertime && employeeHasCheckout && employeeData.OverTimePay == 0 && hasOverTimePay && !isManager) - { + if (workshop.InsuranceCheckoutOvertime && employeeHasCheckout && employeeData.OverTimePay == 0 && hasOverTimePay && !isManager) + { overTimePayIsSet = false; } return new EmployeeDetailsForInsuranceListViewModel - { + { #region EmployeeInfo EmployeeHasCheckout = employeeHasCheckout, EmployeeInsurancListDataId = employeeData.EmployeeInsurancListDataId, - InsuranceEmployeeInformationId = employeeData.InsuranceEmployeeInformationId, + InsuranceEmployeeInformationId = employeeData.InsuranceEmployeeInformationId, EmployeeId = employeeData.EmployeeId, FName = employeeData.FName, LName = employeeData.LName, @@ -1574,111 +1585,111 @@ public class InsuranceListApplication: IInsuranceListApplication IsMaritalStatusSet = !string.IsNullOrWhiteSpace(employeeData.MaritalStatus), MaritalStatus = employeeData.MaritalStatus, - StartMonthCurrent = startMonthFa, - WorkingDays = workingDays.countWorkingDays, - StartWorkDate = startWorkFa, - StartWorkDateGr = employeeData.StartWorkDateGr, - LeftWorkDate = leftWorkFa, - LeftWorkDateGr = workingDays.hasLeftWorkInMonth ? employeeData.LeftWorkDateGr : null, - JobId = employeeData.JobId, - JobName = employeeData.JobName, - JobCode = employeeData.JobCode, + StartMonthCurrent = startMonthFa, + WorkingDays = workingDays.countWorkingDays, + StartWorkDate = startWorkFa, + StartWorkDateGr = employeeData.StartWorkDateGr, + LeftWorkDate = leftWorkFa, + LeftWorkDateGr = workingDays.hasLeftWorkInMonth ? employeeData.LeftWorkDateGr : null, + JobId = employeeData.JobId, + JobName = employeeData.JobName, + JobCode = employeeData.JobCode, - HasStartWorkInMonth = workingDays.hasStartWorkInMonth, - HasLeftWorkInMonth = workingDays.hasLeftWorkInMonth, - #endregion + HasStartWorkInMonth = workingDays.hasStartWorkInMonth, + HasLeftWorkInMonth = workingDays.hasLeftWorkInMonth, + #endregion - #region Compute - //مشمول مزایا بودن - IncludeStatus = employeeData.IncludeStatus, + #region Compute + //مشمول مزایا بودن + IncludeStatus = employeeData.IncludeStatus, - //دستمزد روزانه - DailyWage = GetRoundValue(employeeData.DailyWage), - DailyWageStr = employeeData.DailyWage.ToMoney(), + //دستمزد روزانه + DailyWage = GetRoundValue(employeeData.DailyWage), + DailyWageStr = employeeData.DailyWage.ToMoney(), - //HasConfilictJobs = dailyWage == 0, + //HasConfilictJobs = dailyWage == 0, - //پایه سنوات - BaseYears = employeeData.BaseYears, + //پایه سنوات + BaseYears = employeeData.BaseYears, - //مجموع مزد روزانه و پایه سنوات - DailyWagePlusBaseYears = employeeData.DailyWagePlusBaseYears, + //مجموع مزد روزانه و پایه سنوات + DailyWagePlusBaseYears = employeeData.DailyWagePlusBaseYears, - //حق تاهل - MarriedAllowance = employeeData.MarriedAllowance, + //حق تاهل + MarriedAllowance = employeeData.MarriedAllowance, - //دستمزد ماهانه - MonthlySalary = employeeData.MonthlySalary, + //دستمزد ماهانه + MonthlySalary = employeeData.MonthlySalary, - //مزایای ماهانه - MonthlyBenefits = employeeData.MonthlyBenefits, + //مزایای ماهانه + MonthlyBenefits = employeeData.MonthlyBenefits, - //مزایای مشمول - BenefitsIncludedContinuous = employeeData.BenefitsIncludedContinuous, + //مزایای مشمول + BenefitsIncludedContinuous = employeeData.BenefitsIncludedContinuous, - //مزایای غیر مشمول - BenefitsIncludedNonContinuous = employeeData.BenefitsIncludedNonContinuous, + //مزایای غیر مشمول + BenefitsIncludedNonContinuous = employeeData.BenefitsIncludedNonContinuous, - // جمع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول - IncludedAndNotIncluded = employeeData.IncludedAndNotIncluded, + // جمع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول + IncludedAndNotIncluded = employeeData.IncludedAndNotIncluded, - //حق بیمه سهم بیمه شده - InsuranceShare = GetRoundValue(employeeData.InsuranceShare), + //حق بیمه سهم بیمه شده + InsuranceShare = GetRoundValue(employeeData.InsuranceShare), - //حق بیمه سهم کارفرما - EmployerShare = GetRoundValue(employerShare), + //حق بیمه سهم کارفرما + EmployerShare = GetRoundValue(employerShare), - //بیمه بیکاری - UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance), + //بیمه بیکاری + UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance), - //کمک هزینه مسکن - HousingAllowance = yearlysaleries.HousingAllowance, - //کمک هزینه اقلام - ConsumableItems = yearlysaleries.ConsumableItems, + //کمک هزینه مسکن + HousingAllowance = yearlysaleries.HousingAllowance, + //کمک هزینه اقلام + ConsumableItems = yearlysaleries.ConsumableItems, - EndMonthCurrentDay = endOfMonth, - YearlySalaryItem = yearlysaleries.DayliWage, - MonthlyBaseYearsStr = "0", - MonthlyBaseYears = 0, + EndMonthCurrentDay = endOfMonth, + YearlySalaryItem = yearlysaleries.DayliWage, + MonthlyBaseYearsStr = "0", + MonthlyBaseYears = 0, - OverTimeIsSet = overTimePayIsSet, - FamilyAllowanceIsSet = familyAllowanceIsSet - #endregion + OverTimeIsSet = overTimePayIsSet, + FamilyAllowanceIsSet = familyAllowanceIsSet + #endregion - }; - }); + }; + }); - result.EmployeeDetailsForInsuranceList = computeResult.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) - .ThenBy(x => x.LName).ToList(); + result.EmployeeDetailsForInsuranceList = computeResult.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) + .ThenBy(x => x.LName).ToList(); - result.IsExist = false; - result.MaritalStatus = yearlysaleries.MarriedAllowance; + result.IsExist = false; + result.MaritalStatus = yearlysaleries.MarriedAllowance; - return result; - } + return result; + } - public OperationResult ConfirmInsuranceList(long id) + public OperationResult ConfirmInsuranceList(long id) + { + OperationResult result = new OperationResult(); + + try + { + result = _insuranceListRepositpry.ConfirmInsuranceList(id); + result.Message = "تایید ارسال لیست بیمه با موفقیت انجام شد"; + } + catch (Exception) + { + result.Message = "تایید ارسال لیست بیمه با خطا انجام شد"; + } + + return result; + } + + private double? GetDailyWageFixedSalary(string year, long workshopId, long employeeId, DateTime? startDateGr, DateTime? endDateGr, long jobId, string population, long? insuranceJobId) { - OperationResult result = new OperationResult(); - try - { - result = _insuranceListRepositpry.ConfirmInsuranceList(id); - result.Message = "تایید ارسال لیست بیمه با موفقیت انجام شد"; - } - catch (Exception) - { - result.Message = "تایید ارسال لیست بیمه با خطا انجام شد"; - } - - return result; - } - - private double? GetDailyWageFixedSalary(string year, long workshopId,long employeeId,DateTime? startDateGr, DateTime? endDateGr, long jobId, string population, long? insuranceJobId) - { - double? result = 0; string month = $"{startDateGr.ToFarsi()}".Substring(5, 2); //اگر مشاغل مقطوع بود و شغلش کارفرما بود @@ -1704,30 +1715,30 @@ public class InsuranceListApplication: IInsuranceListApplication break; } - //var dateSaleryviewModel = new DateSalarySearchModel(); - //dateSaleryviewModel.StartDateGr = startDateGr; - //dateSaleryviewModel.EndDateGr = endDateGr; - //var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); - //// && _dateSalary.Id >0 - //if (_dateSalary != null) - //{ - // var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); - // dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; - // dateSaleryItemviewModel.Percent = percent; - // var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); - // if (dateSalaryItem != null) - // result = dateSalaryItem[0].Salary; - //} - } - if (jobId == 10) //کارفرما - { - InsuranceListSearchModel searchModel = new InsuranceListSearchModel(); - var workshop = _workShopRepository.GetDetails(workshopId); - if (workshop.FixedSalary) + //var dateSaleryviewModel = new DateSalarySearchModel(); + //dateSaleryviewModel.StartDateGr = startDateGr; + //dateSaleryviewModel.EndDateGr = endDateGr; + //var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); + //// && _dateSalary.Id >0 + //if (_dateSalary != null) + //{ + // var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); + // dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; + // dateSaleryItemviewModel.Percent = percent; + // var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); + // if (dateSalaryItem != null) + // result = dateSalaryItem[0].Salary; + //} + } + if (jobId == 10) //کارفرما + { + InsuranceListSearchModel searchModel = new InsuranceListSearchModel(); + var workshop = _workShopRepository.GetDetails(workshopId); + if (workshop.FixedSalary) { var inJob = _insuranceJobItemRepository - .GetInsuranceJobItemByInsuranceJobId((long)workshop.InsuranceJobId,year, month); + .GetInsuranceJobItemByInsuranceJobId((long)workshop.InsuranceJobId, year, month); if (workshop.Population == "MoreThan500") { var max = inJob.MaxBy(x => x.PercentageMoreThan); @@ -1765,55 +1776,55 @@ public class InsuranceListApplication: IInsuranceListApplication - } - //var insuransList = _insuranceListRepositpry.GetInsuranceListByWorkshopIdAndYear(workshopId, year); - //var employeeInsurancListData = _employeeInsurancListDataRepository.GetEmployeeInsurancListDataByEmployeeIdAndInsuranceListId(employeeId, insuransList.Id); - //if (employeeInsurancListData != null ) - //{ - // result = employeeInsurancListData.DailyWage; - //} - } - else - { + } + //var insuransList = _insuranceListRepositpry.GetInsuranceListByWorkshopIdAndYear(workshopId, year); + //var employeeInsurancListData = _employeeInsurancListDataRepository.GetEmployeeInsurancListDataByEmployeeIdAndInsuranceListId(employeeId, insuransList.Id); + //if (employeeInsurancListData != null ) + //{ + // result = employeeInsurancListData.DailyWage; + //} + } + else + { - var searchModel = new InsuranceJobItemSearchModel(); - searchModel.InsuranceJobId = (long)insuranceJobId; - var JobItem = _insuranceJobItemRepository.GetInsuranceJobItemByInsuranceJobIdForFixedSalary((long)insuranceJobId, jobId, year, month); + var searchModel = new InsuranceJobItemSearchModel(); + searchModel.InsuranceJobId = (long)insuranceJobId; + var JobItem = _insuranceJobItemRepository.GetInsuranceJobItemByInsuranceJobIdForFixedSalary((long)insuranceJobId, jobId, year, month); - if (JobItem != null && JobItem.Id != 0) - { - double percent = 0; - if (population == "MoreThan500") - percent = JobItem.PercentageMoreThan; - else if (population == "LessThan500") - percent = JobItem.PercentageLessThan; + if (JobItem != null && JobItem.Id != 0) + { + double percent = 0; + if (population == "MoreThan500") + percent = JobItem.PercentageMoreThan; + else if (population == "LessThan500") + percent = JobItem.PercentageLessThan; + + var dateSaleryviewModel = new DateSalarySearchModel(); + dateSaleryviewModel.StartDateGr = startDateGr; + dateSaleryviewModel.EndDateGr = endDateGr; + var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); + // && _dateSalary.Id >0 + if (_dateSalary != null) + { + var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); + dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; + dateSaleryItemviewModel.Percent = percent; + var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); + if (dateSalaryItem != null) + result = dateSalaryItem[0].Salary; + } + } - var dateSaleryviewModel = new DateSalarySearchModel(); - dateSaleryviewModel.StartDateGr = startDateGr; - dateSaleryviewModel.EndDateGr = endDateGr; - var _dateSalary = _dateSalaryRepository.GetDateSalaryViewModel(dateSaleryviewModel); - // && _dateSalary.Id >0 - if (_dateSalary != null) - { - var dateSaleryItemviewModel = new DateSalaryItemSearchModel(); - dateSaleryItemviewModel.DateSalaryId = _dateSalary.Id; - dateSaleryItemviewModel.Percent = percent; - var dateSalaryItem = _dateSalaryItemRepository.Search(dateSaleryItemviewModel); - if (dateSalaryItem != null) - result = dateSalaryItem[0].Salary; - } - } - } } catch (Exception) { - result = 0; - } - return result; - } + result = 0; + } + return result; + } /// /// محاسبه مزایای ماهانه مشمول @@ -1827,28 +1838,28 @@ public class InsuranceListApplication: IInsuranceListApplication /// /// /// - private double GetMonthlyBenefits(int endMonthCurrentDay, double consumableItemsItemValue, double housingAllowanceItemValue,double maritalStatus, int countWorkingDays, string typeOfInsuranceSendWorkshop, long jobId,long employeeId,bool includeStatus) + private double GetMonthlyBenefits(int endMonthCurrentDay, double consumableItemsItemValue, double housingAllowanceItemValue, double maritalStatus, int countWorkingDays, string typeOfInsuranceSendWorkshop, long jobId, long employeeId, bool includeStatus) { - //ToDo - //افزودن شرط مشمول مزایای + //ToDo + //افزودن شرط مشمول مزایای - //اگر پرسنل کارفرما بود و نوع لیست کارگاه کمک دولت بود مزایا محاسبه نشود - //اگر تیک مشمول مزایا در ترک کار خاموش بود مزایا نگیرد + //اگر پرسنل کارفرما بود و نوع لیست کارگاه کمک دولت بود مزایا محاسبه نشود + //اگر تیک مشمول مزایا در ترک کار خاموش بود مزایا نگیرد - bool isManager = jobId is 10 or 16 or 17 or 18 or 3498; - if (isManager && !includeStatus) + bool isManager = jobId is 10 or 16 or 17 or 18 or 3498; + if (isManager && !includeStatus) return 0; //پرسنل استثناء if (employeeId == 42783) return 53082855; - - //if(employeeId == 8859) - // return GetRoundValue(((consumableItemsItemValue + housingAllowanceItemValue + maritalStatus) / 31) * countWorkingDays); - //مزایای ماهانه با توجه به پایان ماه که 30 یا 31 روزه است، متفاوت می باشد - //برای ماه 29 روزه هم تقسیم بر 30 می شود. - if (countWorkingDays == endMonthCurrentDay) + //if(employeeId == 8859) + // return GetRoundValue(((consumableItemsItemValue + housingAllowanceItemValue + maritalStatus) / 31) * countWorkingDays); + + //مزایای ماهانه با توجه به پایان ماه که 30 یا 31 روزه است، متفاوت می باشد + //برای ماه 29 روزه هم تقسیم بر 30 می شود. + if (countWorkingDays == endMonthCurrentDay) return (consumableItemsItemValue + housingAllowanceItemValue + maritalStatus); else if (endMonthCurrentDay == 29)//farokhiChanges در خط پایین عدد 30 رو به 29 تغییر دادم return GetRoundValue(((consumableItemsItemValue + housingAllowanceItemValue + maritalStatus) / 29) * countWorkingDays); @@ -1860,82 +1871,82 @@ public class InsuranceListApplication: IInsuranceListApplication return GetRoundValue(((consumableItemsItemValue + housingAllowanceItemValue + maritalStatus) / endMonthCurrentDay) * countWorkingDays); } - - private double ComputeDailyWage(double yearlysalaryItemValue, long employeeId, long workshopId, string year) + + private double ComputeDailyWage(double yearlysalaryItemValue, long employeeId, long workshopId, string year) { double dailyWage = yearlysalaryItemValue; - InsuranceListSearchModel searchModel = new InsuranceListSearchModel(); + InsuranceListSearchModel searchModel = new InsuranceListSearchModel(); var insuransList = _insuranceListRepositpry.GetInsuranceListByWorkshopIdAndYear(workshopId, year); if (insuransList != null) { - var employeeInsurancListData = _employeeInsurancListDataRepository.GetEmployeeInsurancListDataByEmployeeIdAndInsuranceListId( employeeId, insuransList.Id); - if (employeeInsurancListData != null && employeeInsurancListData.DailyWage> dailyWage) + var employeeInsurancListData = _employeeInsurancListDataRepository.GetEmployeeInsurancListDataByEmployeeIdAndInsuranceListId(employeeId, insuransList.Id); + if (employeeInsurancListData != null && employeeInsurancListData.DailyWage > dailyWage) { - dailyWage=employeeInsurancListData.DailyWage; + dailyWage = employeeInsurancListData.DailyWage; } } dailyWage = employeeId == 6536 ? 9399512 : dailyWage; return dailyWage; } - public MainEmployeeDetailsViewModel GetEmployeeForInsuranceList(List leftWorkInsuranceViewModelList, EmployeeForEditInsuranceListSearchModel searchModel) + public MainEmployeeDetailsViewModel GetEmployeeForInsuranceList(List leftWorkInsuranceViewModelList, EmployeeForEditInsuranceListSearchModel searchModel) { var result = new MainEmployeeDetailsViewModel(); List list = new List(); - int leftWorkInsuranceCount= leftWorkInsuranceViewModelList.Count(); + int leftWorkInsuranceCount = leftWorkInsuranceViewModelList.Count(); string startMonthCurrent = searchModel.Year + "/" + searchModel.Month + "/01"; string endMonthCurrent = startMonthCurrent.FindeEndOfMonth(); - var model = new YearlySalarySearchModel(); - model.StartDateGr = startMonthCurrent.ToGeorgianDateTime(); - model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); - model.year = searchModel.Year; + var model = new YearlySalarySearchModel(); + model.StartDateGr = startMonthCurrent.ToGeorgianDateTime(); + model.EndDateGr = endMonthCurrent.ToGeorgianDateTime(); + model.year = searchModel.Year; - - var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); - var yearlysalaryItem = new YearlysalaryItemViewModel(); - var housingAllowance = new YearlysalaryItemViewModel(); - var consumableItems = new YearlysalaryItemViewModel(); - var maritalStatus = new YearlysalaryItemViewModel(); - if (yearSalaryObj != null) - { - yearlysalaryItem = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "مزد روزانه").FirstOrDefault(); - housingAllowance = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "کمک هزینه مسکن").FirstOrDefault(); - consumableItems = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "کمک هزینه اقلام").FirstOrDefault(); - maritalStatus = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) - .Where(x => x.ItemName == "حق تاهل").FirstOrDefault(); - } + var yearSalaryObj = _yearlySalaryApplication.GetDetailsBySearchModel(model); - foreach (var item in leftWorkInsuranceViewModelList) - { - var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); + var yearlysalaryItem = new YearlysalaryItemViewModel(); + var housingAllowance = new YearlysalaryItemViewModel(); + var consumableItems = new YearlysalaryItemViewModel(); + var maritalStatus = new YearlysalaryItemViewModel(); + if (yearSalaryObj != null) + { + yearlysalaryItem = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "مزد روزانه").FirstOrDefault(); + housingAllowance = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "کمک هزینه مسکن").FirstOrDefault(); + consumableItems = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "کمک هزینه اقلام").FirstOrDefault(); + maritalStatus = _yearlySalaryItemApplication.GetItemsByYearlySalaryId(yearSalaryObj.Id) + .Where(x => x.ItemName == "حق تاهل").FirstOrDefault(); + } - var employeeDetailsForInsuranceObj = new EmployeeDetailsForInsuranceListViewModel(); - employeeDetailsForInsuranceObj.HasConfilictJobs = false; - employeeDetailsForInsuranceObj.IsMaritalStatusSet = // آیا وضعیت تاهل پرسنل ست شده است - !string.IsNullOrWhiteSpace(employeeObject.MaritalStatus); - if (_insuranceEmployeeInfoRepository.Exists(x => x.EmployeeId == item.EmployeeId)) - { - var employeeInfoObject = _insuranceEmployeeInfoApplication.GetDetailsByEmployeeId(item.EmployeeId); - employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = employeeInfoObject.Id; - employeeDetailsForInsuranceObj.EmployeeId = employeeInfoObject.EmployeeId; - employeeDetailsForInsuranceObj.FName = employeeInfoObject.FName; - employeeDetailsForInsuranceObj.LName = employeeInfoObject.LName; - employeeDetailsForInsuranceObj.FatherName = employeeInfoObject.FatherName; - employeeDetailsForInsuranceObj.DateOfBirth = employeeInfoObject.DateOfBirth; - employeeDetailsForInsuranceObj.DateOfIssue = employeeInfoObject.DateOfIssue; - employeeDetailsForInsuranceObj.DateOfBirthGr = employeeInfoObject.DateOfBirthGr; - employeeDetailsForInsuranceObj.DateOfIssueGr = employeeInfoObject.DateOfIssueGr; - employeeDetailsForInsuranceObj.PlaceOfIssue = employeeInfoObject.PlaceOfIssue; - employeeDetailsForInsuranceObj.IdNumber = employeeInfoObject.IdNumber; - employeeDetailsForInsuranceObj.Gender = employeeInfoObject.Gender; + foreach (var item in leftWorkInsuranceViewModelList) + { + var employeeObject = _employeeRepository.GetDetailsByADDate(item.EmployeeId); + + var employeeDetailsForInsuranceObj = new EmployeeDetailsForInsuranceListViewModel(); + employeeDetailsForInsuranceObj.HasConfilictJobs = false; + employeeDetailsForInsuranceObj.IsMaritalStatusSet = // آیا وضعیت تاهل پرسنل ست شده است + !string.IsNullOrWhiteSpace(employeeObject.MaritalStatus); + if (_insuranceEmployeeInfoRepository.Exists(x => x.EmployeeId == item.EmployeeId)) + { + var employeeInfoObject = _insuranceEmployeeInfoApplication.GetDetailsByEmployeeId(item.EmployeeId); + employeeDetailsForInsuranceObj.InsuranceEmployeeInformationId = employeeInfoObject.Id; + employeeDetailsForInsuranceObj.EmployeeId = employeeInfoObject.EmployeeId; + employeeDetailsForInsuranceObj.FName = employeeInfoObject.FName; + employeeDetailsForInsuranceObj.LName = employeeInfoObject.LName; + employeeDetailsForInsuranceObj.FatherName = employeeInfoObject.FatherName; + employeeDetailsForInsuranceObj.DateOfBirth = employeeInfoObject.DateOfBirth; + employeeDetailsForInsuranceObj.DateOfIssue = employeeInfoObject.DateOfIssue; + employeeDetailsForInsuranceObj.DateOfBirthGr = employeeInfoObject.DateOfBirthGr; + employeeDetailsForInsuranceObj.DateOfIssueGr = employeeInfoObject.DateOfIssueGr; + employeeDetailsForInsuranceObj.PlaceOfIssue = employeeInfoObject.PlaceOfIssue; + employeeDetailsForInsuranceObj.IdNumber = employeeInfoObject.IdNumber; + employeeDetailsForInsuranceObj.Gender = employeeInfoObject.Gender; //از جدول پرسنل پر می شود employeeDetailsForInsuranceObj.NationalCode = @@ -1953,7 +1964,7 @@ public class InsuranceListApplication: IInsuranceListApplication employeeDetailsForInsuranceObj.FName = employeeObject.FName; employeeDetailsForInsuranceObj.LName = employeeObject.LName; employeeDetailsForInsuranceObj.FatherName = employeeObject.FatherName; - employeeDetailsForInsuranceObj.DateOfBirth = employeeObject.DateOfBirth=="1300/10/11"?"": employeeObject.DateOfBirth; + employeeDetailsForInsuranceObj.DateOfBirth = employeeObject.DateOfBirth == "1300/10/11" ? "" : employeeObject.DateOfBirth; employeeDetailsForInsuranceObj.DateOfIssue = employeeObject.DateOfIssue; employeeDetailsForInsuranceObj.PlaceOfIssue = employeeObject.PlaceOfIssue; employeeDetailsForInsuranceObj.NationalCode = employeeObject.NationalCode; @@ -1963,92 +1974,92 @@ public class InsuranceListApplication: IInsuranceListApplication employeeDetailsForInsuranceObj.Nationality = employeeObject.Nationality; } - #region ComputingWorkingDays + #region ComputingWorkingDays - int startWork = 0; - int endWork = 0; + int startWork = 0; + int endWork = 0; - var year = Convert.ToInt32(searchModel.Year); - var month = Convert.ToInt32(searchModel.Month); - var day = 1; - var persianCurrentStartDate = new PersianDateTime(year, month, day); - var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); - var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); - //آخرین روز ماه جاری - var endMonthCurrentDay = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + var year = Convert.ToInt32(searchModel.Year); + var month = Convert.ToInt32(searchModel.Month); + var day = 1; + var persianCurrentStartDate = new PersianDateTime(year, month, day); + var dayMonthCurrent = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); + var persianCurrentEndDate = new PersianDateTime(year, month, dayMonthCurrent); + //آخرین روز ماه جاری + var endMonthCurrentDay = Convert.ToInt32(endMonthCurrent.Substring(8, 2)); - var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); - var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); - var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); - var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); + var yearStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(0, 4)); + var monthStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(5, 2)); + var dayStartDateUser = Convert.ToInt32(item.StartWorkDate.Substring(8, 2)); + var persianStartDateUser = new PersianDateTime(yearStartDateUser, monthStartDateUser, dayStartDateUser); - if (persianStartDateUser < persianCurrentStartDate) - employeeDetailsForInsuranceObj.HasStartWorkInMonth = false; - else - employeeDetailsForInsuranceObj.HasStartWorkInMonth = true; + if (persianStartDateUser < persianCurrentStartDate) + employeeDetailsForInsuranceObj.HasStartWorkInMonth = false; + else + employeeDetailsForInsuranceObj.HasStartWorkInMonth = true; - //اگر شروع به کار کاربر از ابتدای ماه جاری کمتر باشد - if (persianStartDateUser <= persianCurrentStartDate) - { - startWork = 1; - } - else - { - startWork = dayStartDateUser; - } + //اگر شروع به کار کاربر از ابتدای ماه جاری کمتر باشد + if (persianStartDateUser <= persianCurrentStartDate) + { + startWork = 1; + } + else + { + startWork = dayStartDateUser; + } - if (!string.IsNullOrEmpty(item.LeftWorkDate)) - { - var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); - var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); - var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); - var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); - var persianEndDateUser = persianLeftDateUser.AddDays(-1); - var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); + if (!string.IsNullOrEmpty(item.LeftWorkDate)) + { + var yearEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(0, 4)); + var monthEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(5, 2)); + var dayEndDateUser = Convert.ToInt32(item.LeftWorkDate.Substring(8, 2)); + var persianLeftDateUser = new PersianDateTime(yearEndDateUser, monthEndDateUser, dayEndDateUser); + var persianEndDateUser = persianLeftDateUser.AddDays(-1); + var persianEndDateUserStr = persianLeftDateUser.AddDays(-1).ToString("yyyy/MM/dd"); - //if (persianLeftDateUser <= persianCurrentEndDate) - // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; - //else - // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + //if (persianLeftDateUser <= persianCurrentEndDate) + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; + //else + // employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - //ترک کارش در ماه و سال جاری بود نمایش داده شود - if (!item.LeftWorkDate.Contains(searchModel.Year + "/" + searchModel.Month)) - { - employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - item.LeftWorkDate = string.Empty; - item.LeftWorkDateGr = null; - } - else - { - employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; - } + //ترک کارش در ماه و سال جاری بود نمایش داده شود + if (!item.LeftWorkDate.Contains(searchModel.Year + "/" + searchModel.Month)) + { + employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + item.LeftWorkDate = string.Empty; + item.LeftWorkDateGr = null; + } + else + { + employeeDetailsForInsuranceObj.HasLeftWorkInMonth = true; + } - //اگر پایان به کار کاربر از پایان ماه جاری بیشتر باشد - if (persianEndDateUser >= persianCurrentEndDate) - { - endWork = endMonthCurrentDay; - } - else - { - endWork = Convert.ToInt32(persianEndDateUserStr.Substring(8, 2)); - } - } - else - { - employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; - endWork = endMonthCurrentDay; - } + //اگر پایان به کار کاربر از پایان ماه جاری بیشتر باشد + if (persianEndDateUser >= persianCurrentEndDate) + { + endWork = endMonthCurrentDay; + } + else + { + endWork = Convert.ToInt32(persianEndDateUserStr.Substring(8, 2)); + } + } + else + { + employeeDetailsForInsuranceObj.HasLeftWorkInMonth = false; + endWork = endMonthCurrentDay; + } - int countWorkingDays = 0; - for (int i = startWork; i <= endWork; i++) - { - countWorkingDays = countWorkingDays + 1; - } + int countWorkingDays = 0; + for (int i = startWork; i <= endWork; i++) + { + countWorkingDays = countWorkingDays + 1; + } - //farokhiChanges - //روزهای کارکرد پرسنل با آی دی های زیر دستی تعریف شد - switch (item.EmployeeId) - { + //farokhiChanges + //روزهای کارکرد پرسنل با آی دی های زیر دستی تعریف شد + switch (item.EmployeeId) + { //case 3812://ثابت // countWorkingDays = 15; @@ -2059,8 +2070,8 @@ public class InsuranceListApplication: IInsuranceListApplication case 40469://ثابت countWorkingDays = 7; break; - //case 9950://ثابت - // countWorkingDays = 15; + //case 9950://ثابت + // countWorkingDays = 15; break; case 9640://ثابت countWorkingDays = 15; @@ -2071,31 +2082,31 @@ public class InsuranceListApplication: IInsuranceListApplication case 6219://ثابت countWorkingDays = 15; break; - //case 7897://ثابت - // countWorkingDays = 15; - // break; + //case 7897://ثابت + // countWorkingDays = 15; + // break; } ; - #endregion + #endregion - employeeDetailsForInsuranceObj.IncludeStatus = item.IncludeStatus; + employeeDetailsForInsuranceObj.IncludeStatus = item.IncludeStatus; #region InsuranceJob double dailyWage = employeeDetailsForInsuranceObj.DailyWage; if (searchModel.FixedSalary) { - dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, item.WorkshopId,item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); + dailyWage = Convert.ToDouble(GetDailyWageFixedSalary(searchModel.Year, item.WorkshopId, item.EmployeeId, model.StartDateGr, model.EndDateGr, item.JobId, searchModel.Population, searchModel.InsuranceJobId)); employeeDetailsForInsuranceObj.HasConfilictJobs = (dailyWage == 0 ? true : false); } #endregion if (yearlysalaryItem != null) { - if(!searchModel.FixedSalary ) + if (!searchModel.FixedSalary) { //dailyWage= yearlysalaryItem.ItemValue; - dailyWage = ComputeDailyWage(yearlysalaryItem.ItemValue, item.EmployeeId,item.WorkshopId, searchModel.Year) ; + dailyWage = ComputeDailyWage(yearlysalaryItem.ItemValue, item.EmployeeId, item.WorkshopId, searchModel.Year); } employeeDetailsForInsuranceObj.DailyWage = GetRoundValue(dailyWage); employeeDetailsForInsuranceObj.DailyWageStr = employeeDetailsForInsuranceObj.DailyWage.ToMoney(); @@ -2114,13 +2125,13 @@ public class InsuranceListApplication: IInsuranceListApplication employeeDetailsForInsuranceObj.MonthlyBenefits = 0; } - if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت - { - employeeDetailsForInsuranceObj.MonthlyBenefits = 0; - } + if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId == 10) //کمک دولت + { + employeeDetailsForInsuranceObj.MonthlyBenefits = 0; + } + + employeeDetailsForInsuranceObj.BenefitsIncludedContinuous = employeeDetailsForInsuranceObj.MonthlyBenefits + employeeDetailsForInsuranceObj.MonthlySalary; - employeeDetailsForInsuranceObj.BenefitsIncludedContinuous =employeeDetailsForInsuranceObj.MonthlyBenefits + employeeDetailsForInsuranceObj.MonthlySalary; - //if ((!item.IncludeStatus &&(item.JobId == 10 || item.JobId == 17 || item.JobId == 18 || item.JobId == 16)) ||(item.IncludeStatus && item.JobId == 10)) // 10 --> karfarma //{ // var insuranceShare2 =(employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 27) / 100; @@ -2133,69 +2144,207 @@ public class InsuranceListApplication: IInsuranceListApplication //} var employerShare = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 20) / 100; - employeeDetailsForInsuranceObj.EmployerShare = GetRoundValue(employerShare); //Math.Round(employerShare, MidpointRounding.ToPositiveInfinity); + employeeDetailsForInsuranceObj.EmployerShare = GetRoundValue(employerShare); //Math.Round(employerShare, MidpointRounding.ToPositiveInfinity); - //if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId==10)//کمک دولت - //{employeeDetailsForInsuranceObj.InsuranceShare = 0;} + //if (searchModel.TypeOfInsuranceSendWorkshop == "Govermentlist" && item.JobId==10)//کمک دولت + //{employeeDetailsForInsuranceObj.InsuranceShare = 0;} - var unEmploymentInsurance =(employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 3) / 100; + var unEmploymentInsurance = (employeeDetailsForInsuranceObj.BenefitsIncludedContinuous * 3) / 100; employeeDetailsForInsuranceObj.UnEmploymentInsurance = GetRoundValue(unEmploymentInsurance); - employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous; - employeeDetailsForInsuranceObj.IncludedAndNotIncluded = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous + employeeDetailsForInsuranceObj.BenefitsIncludedContinuous; + employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous; + employeeDetailsForInsuranceObj.IncludedAndNotIncluded = employeeDetailsForInsuranceObj.BenefitsIncludedNonContinuous + employeeDetailsForInsuranceObj.BenefitsIncludedContinuous; - } + } - employeeDetailsForInsuranceObj.StartMonthCurrent = startMonthCurrent; - employeeDetailsForInsuranceObj.WorkingDays = countWorkingDays; - employeeDetailsForInsuranceObj.StartWorkDate = item.StartWorkDate; - employeeDetailsForInsuranceObj.LeftWorkDate = item.LeftWorkDate; - employeeDetailsForInsuranceObj.JobId = item.JobId; - employeeDetailsForInsuranceObj.JobName = item.JobName; - employeeDetailsForInsuranceObj.JobCode = item.JobCode; - if (!string.IsNullOrWhiteSpace(item.LeftWorkDate)) - employeeDetailsForInsuranceObj.LeftWorkDateGr = item.LeftWorkDateGr; + employeeDetailsForInsuranceObj.StartMonthCurrent = startMonthCurrent; + employeeDetailsForInsuranceObj.WorkingDays = countWorkingDays; + employeeDetailsForInsuranceObj.StartWorkDate = item.StartWorkDate; + employeeDetailsForInsuranceObj.LeftWorkDate = item.LeftWorkDate; + employeeDetailsForInsuranceObj.JobId = item.JobId; + employeeDetailsForInsuranceObj.JobName = item.JobName; + employeeDetailsForInsuranceObj.JobCode = item.JobCode; + if (!string.IsNullOrWhiteSpace(item.LeftWorkDate)) + employeeDetailsForInsuranceObj.LeftWorkDateGr = item.LeftWorkDateGr; - employeeDetailsForInsuranceObj.StartWorkDateGr = item.StartWorkDateGr; + employeeDetailsForInsuranceObj.StartWorkDateGr = item.StartWorkDateGr; - list.Add(employeeDetailsForInsuranceObj); - } + list.Add(employeeDetailsForInsuranceObj); + } - list = list.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) - .ThenBy(x => x.LName).ToList(); - result.EmployeeDetailsForInsuranceList = list; - result.IsExist = false; - result.MaritalStatus = maritalStatus.ItemValue; - //} - //else - //{ - // result.IsExist = true; - //} - return result; - } + list = list.OrderByDescending(x => x.HasLeftWorkInMonth).ThenByDescending(x => x.HasStartWorkInMonth) + .ThenBy(x => x.LName).ToList(); + result.EmployeeDetailsForInsuranceList = list; + result.IsExist = false; + result.MaritalStatus = maritalStatus.ItemValue; + //} + //else + //{ + // result.IsExist = true; + //} + return result; + } - #region Client + #region Client - public List SearchForClient(InsuranceListSearchModel searchModel) - { - var result = _insuranceListRepositpry.SearchForClient(searchModel); - return result; - } + public List SearchForClient(InsuranceListSearchModel searchModel) + { + var result = _insuranceListRepositpry.SearchForClient(searchModel); + return result; + } - #endregion - //farokhiChanges - public (double basic, int totalYear) BasicYear(long employeeId, long worshopId, DateTime startDate) - { - var totalYears = _leftWorkInsuranceRepository.TotalWorkingYears(employeeId, worshopId, startDate); - var baseSalary = _insuranceYearlySalaryApplication.GetBaseYearByDate(startDate, totalYears); - return (baseSalary, totalYears); - } + #endregion + //farokhiChanges + public (double basic, int totalYear) BasicYear(long employeeId, long worshopId, DateTime startDate) + { + var totalYears = _leftWorkInsuranceRepository.TotalWorkingYears(employeeId, worshopId, startDate); + var baseSalary = _insuranceYearlySalaryApplication.GetBaseYearByDate(startDate, totalYears); + return (baseSalary, totalYears); + } - public double GetMonthlyBaseYear(double dayliBase, int countWorkingDays) - { - double res =GetRoundValue(dayliBase * countWorkingDays); - return res; - } + public double GetMonthlyBaseYear(double dayliBase, int countWorkingDays) + { + double res = GetRoundValue(dayliBase * countWorkingDays); + return res; + } + + #region Mahan + + public async Task ConfirmInsuranceOperation(InsuranceListConfirmOperation command) + { + // Improved version of the ConfirmInsuranceOperation method's main logic + async Task CreateMediaAsync(InsuranceList insuranceList, string insuranceType, IFormFile file) + { + var path = Path.Combine(_mediaRepository.BasePath, "InsuranceList", $"{insuranceList.Year}_{insuranceList.Month}", insuranceList.id.ToString()); + Directory.CreateDirectory(path); + + string uniqueFileName = $"{insuranceType}_{Path.GetFileNameWithoutExtension(file.FileName)}_{DateTime.Now.Ticks}{Path.GetExtension(file.FileName)}"; + string filePath = Path.Combine(path, uniqueFileName); + + await using (var stream = new FileStream(filePath, FileMode.Create)) + { + await file.CopyToAsync(stream); + } + var type = Path.GetExtension(filePath); + var media = new Media(filePath, type, "فایل", "InsuranceList"); + await _mediaRepository.CreateAsync(media); + await _mediaRepository.SaveChangesAsync(); + return media.id; + } + + var op = new OperationResult(); + var insuranceList = _insuranceListRepositpry.Get(command.InsuranceListId); + if (insuranceList == null) + return op.Failed("لیست بیمه پیدا نشد"); + + bool completeDebt = false, completeInspection = false, completeApproval = false; + + // Debt Section + if (command.Debt.Type != InsuranceListDebtType.None) + { + var debt = command.Debt; + if (string.IsNullOrWhiteSpace(debt.DebtDate)) + return op.Failed("لطفا تاریخ بدهی را وارد کنید"); + if (!debt.DebtDate.TryToGeorgianDateTime(out var debtDateGr)) + return op.Failed("تاریخ بدهی نامعتبر است"); + + if (debt.DebtFile is not { Length: > 0 } && debt.DebtFileMediaId <= 0) + return op.Failed("لطفا فایل بدهی را وارد کنید"); + + if (debt.DebtFile is { Length: > 20_000_000 }) + return op.Failed("حجم فایل نمیتواند از 20 مگابایت بیشتر باشد"); + + var debtAmount = debt.Amount.MoneyToDouble(); + if (debtAmount <= 0) + return op.Failed("مبلغ بدهی نامعتبر است"); + + + + var mediaId = command.Debt.DebtFileMediaId; + if (debt.DebtFile is { Length: > 0 }) + { + mediaId = await CreateMediaAsync(insuranceList, "debt", debt.DebtFile); + } + + var debtEntity = new InsuranceListDebt(debt.Type, debtDateGr, debtAmount, mediaId); + insuranceList.SetDebt(debtEntity); + completeDebt = true; + } + + // Inspection Section + if (command.Inspection.Type != InsuranceListInspectionType.None) + { + var inspection = command.Inspection; + if (string.IsNullOrWhiteSpace(inspection.LastInspectionDate)) + return op.Failed("لطفا تاریخ بازرسی را وارد کنید"); + + if (!inspection.LastInspectionDate.TryToGeorgianDateTime(out var inspectionDateGr)) + return op.Failed("تاریخ بازرسی نامعتبر است"); + + if (inspection.InspectionFile is not { Length: > 0 } && inspection.InspectionFileMediaId <= 0) + return op.Failed("لطفا فایل بازرسی را وارد کنید"); + + if (inspection.InspectionFile is { Length: > 20_000_000 }) + return op.Failed("حجم فایل نمیتواند از 20 مگابایت بیشتر باشد"); + + + var mediaId = inspection.InspectionFileMediaId; + if (inspection.InspectionFile is { Length: > 0 }) + { + mediaId = await CreateMediaAsync(insuranceList, "inspection", inspection.InspectionFile); + } + var inspectionEntity = new InsuranceListInspection(inspection.Type, inspectionDateGr, mediaId); + insuranceList.SetInspection(inspectionEntity); + completeInspection = true; + } + + // Approval Section + if (command.Approval.ApprovalStatus != InsuranceListEmployerApprovalStatus.None) + { + var approval = command.Approval; + if (approval.ApprovalStatus == InsuranceListEmployerApprovalStatus.VerbalApproval) + { + if (string.IsNullOrWhiteSpace(approval.Description)) + return op.Failed("لطفا توضیحات را وارد کنید"); + + if (approval.Description.Length < 15) + return op.Failed("توضیحات باید حداقل 15 کاراکتر باشد"); + } + var approvalEntity = new InsuranceListEmployerApproval(approval.ApprovalStatus, approval.Description); + insuranceList.SetEmployerApproval(approvalEntity); + completeApproval = true; + } + + // Final Confirmation + if (command.ConfirmSentList) + { + if (!(completeApproval && completeDebt && completeInspection)) + return op.Failed("تا زمانی که تمامی بخش ها پر نشده باشد نمیتوانید لیست را ارسال کنید"); + + insuranceList.SetConfirmSentlist(true); + } + else + { + insuranceList.SetConfirmSentlist(false); + } + + await _insuranceListRepositpry.SaveChangesAsync(); + return op.Succcedded(); + + } + + + public Task GetInsuranceOperationDetails(long id) + { + return _insuranceListRepositpry.GetInsuranceOperationDetails(id); + } + + public Task GetTabCounts(InsuranceListSearchModel searchModel) + { + return _insuranceListRepositpry.GetTabCounts(searchModel); + } + + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/LeftWorkApplication.cs b/CompanyManagment.Application/LeftWorkApplication.cs index 83cf6825..8f7a30ae 100644 --- a/CompanyManagment.Application/LeftWorkApplication.cs +++ b/CompanyManagment.Application/LeftWorkApplication.cs @@ -15,6 +15,7 @@ using CompanyManagment.App.Contracts.PersonnleCode; using CompanyManagment.App.Contracts.RollCallEmployee; using CompanyManagment.App.Contracts.WorkingHours; using CompanyManagment.App.Contracts.WorkingHoursItems; +using CompanyManagment.App.Contracts.Workshop.DTOs; using PersianTools.Core; namespace CompanyManagment.Application; @@ -600,6 +601,11 @@ public class LeftWorkApplication : ILeftWorkApplication return _leftWorkRepository.CheckEditLeftWork(workshopId, employeeId, date.ToGeorgianDateTime(), type); } + public AutoExtensionDto AutoExtentionEmployees(long workshopId) + { + return _leftWorkRepository.AutoExtentionEmployees(workshopId); + } + #region Pooya //این متد ترک کار های کارمند را با فعالیت حضور غیاب یکپارچه می کند private void IfEmployeeHasNewLeftWorkDateAddEndDateToRollCallStatus(long employeeId) diff --git a/CompanyManagment.Application/LeftWorkTempApplication.cs b/CompanyManagment.Application/LeftWorkTempApplication.cs index d351f619..fbb8daf4 100644 --- a/CompanyManagment.Application/LeftWorkTempApplication.cs +++ b/CompanyManagment.Application/LeftWorkTempApplication.cs @@ -19,6 +19,7 @@ using CompanyManagment.App.Contracts.LeftWork; using CompanyManagment.App.Contracts.LeftWorkTemp; using CompanyManagment.App.Contracts.ReportClient; using CompanyManagment.App.Contracts.RollCallEmployee; +using CompanyManagment.EFCore.Migrations; using OperationResult = _0_Framework.Application.OperationResult; using Tools = _0_Framework.Application.Tools; @@ -174,8 +175,19 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication await _leftWorkRepository.CreateAsync(newLeftWork); _leftWorkTempRepository.Remove(leftWorkTemp); + var rollCallEmployee = _rollCallEmployeeRepository.GetBy(leftWorkTemp.EmployeeId, leftWorkTemp.WorkshopId); + + var rollCallStatus = rollCallEmployee?.EmployeesStatus.MaxBy(x => x.StartDate); + + if (rollCallStatus != null) + { + var startWork = newLeftWork.StartWorkDate; + rollCallStatus.Edit(startWork, rollCallStatus.EndDate); + + } await _leftWorkRepository.SaveChangesAsync(); await _leftWorkTempRepository.SaveChangesAsync(); + return op.Succcedded(); } diff --git a/CompanyManagment.Application/WorkshopAppliction.cs b/CompanyManagment.Application/WorkshopAppliction.cs index c63e074d..ddf011fd 100644 --- a/CompanyManagment.Application/WorkshopAppliction.cs +++ b/CompanyManagment.Application/WorkshopAppliction.cs @@ -73,10 +73,28 @@ public class WorkshopAppliction : IWorkshopApplication if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode)) return operation.Failed("موارد اجباری را پر کنید"); - //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName)) - // return operation.Failed("نام کارگاه تکراری است"); + //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName)) + // return operation.Failed("نام کارگاه تکراری است"); - if (_workshopRepository.Exists(x => !string.IsNullOrEmpty(x.InsuranceCode) && x.InsuranceCode == command.InsuranceCode)) + if (command.ContractTerm != "1" && command.ContractTerm != "ForEver" && (command.CutContractEndOfYear != IsActive.False && command.CutContractEndOfYear != IsActive.True)) + return operation.Failed("لطفا تیک قرداداد منتهی به پایان سال را تعیین وضعیت کنید"); + + if (command.ContractTerm == "1" && command.ContractTerm == "ForEver") + command.CutContractEndOfYear = IsActive.None; + if (!command.CreateContract) + { + command.SignContract = false; + command.CreateCheckout = false; + command.SignCheckout = false; + } + + if (!command.CreateCheckout) + { + command.SignCheckout = false; + } + + + if (_workshopRepository.Exists(x => !string.IsNullOrEmpty(x.InsuranceCode) && x.InsuranceCode == command.InsuranceCode)) return operation.Failed("کد بیمه کارگاه تکراری است"); if (!string.IsNullOrEmpty(command.Address) && string.IsNullOrEmpty(command.State)) @@ -145,7 +163,11 @@ public class WorkshopAppliction : IWorkshopApplication command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City, command.Address, command.TypeOfInsuranceSend, command.TypeOfContract,command.ContractTerm,command.AgreementNumber - ,command.FixedSalary, command.Population,command.InsuranceJobId,command.ZoneName,command.AddBonusesPay,command.AddYearsPay,command.AddLeavePay,command.TotalPaymentHide,command.IsClassified,command.ComputeOptions,command.BonusesOptions,command.YearsOptions,command.HasRollCallFreeVip,command.WorkshopHolidayWorking, command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance); + ,command.FixedSalary, command.Population,command.InsuranceJobId,command.ZoneName,command.AddBonusesPay, + command.AddYearsPay,command.AddLeavePay,command.TotalPaymentHide,command.IsClassified,command.ComputeOptions, + command.BonusesOptions,command.YearsOptions,command.HasRollCallFreeVip,command.WorkshopHolidayWorking, + command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance, command.CreateContract, command.SignContract, + command.CreateCheckout, command.SignCheckout, command.CutContractEndOfYear); _workshopRepository.Create(workshop); _workshopRepository.SaveChanges(); @@ -211,10 +233,28 @@ public class WorkshopAppliction : IWorkshopApplication return operation.Failed("لطفا کارفرما را انتخاب نمایید"); var employer = command.EmployerIdList.ToList(); - //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id)) - // return operation.Failed(" نام کارگاه تکراری است "); + //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id)) + // return operation.Failed(" نام کارگاه تکراری است "); - if (command.TypeOfInsuranceSend != null && string.IsNullOrEmpty(command.InsuranceCode)) + if (command.ContractTerm != "1" && command.ContractTerm != "ForEver" && (command.CutContractEndOfYear != IsActive.False && command.CutContractEndOfYear != IsActive.True)) + return operation.Failed("لطفا تیک قرداداد منتهی به پایان سال را تعیین وضعیت کنید"); + + if (command.ContractTerm == "1" && command.ContractTerm == "ForEver") + command.CutContractEndOfYear = IsActive.None; + if (!command.CreateContract) + { + command.SignContract = false; + command.CreateCheckout = false; + command.SignCheckout = false; + } + + if (!command.CreateCheckout) + { + command.SignCheckout = false; + } + + + if (command.TypeOfInsuranceSend != null && string.IsNullOrEmpty(command.InsuranceCode)) return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید"); if (_workshopRepository.Exists(x => !string.IsNullOrEmpty(x.InsuranceCode) && x.InsuranceCode == command.InsuranceCode && x.id != command.Id)) return operation.Failed("کد بیمه کارگاه تکراری است"); @@ -315,7 +355,10 @@ public class WorkshopAppliction : IWorkshopApplication command.Address, command.TypeOfInsuranceSend, command.TypeOfContract,command.ContractTerm, command.AgreementNumber , command.FixedSalary, command.Population, command.InsuranceJobId, command.ZoneName, - command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay, command.TotalPaymentHide,command.IsClassified, command.ComputeOptions,command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking, command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance); + command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay, command.TotalPaymentHide,command.IsClassified, + command.ComputeOptions,command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, + command.WorkshopHolidayWorking, command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance, + command.CreateContract, command.SignContract, command.CreateCheckout, command.SignCheckout, command.CutContractEndOfYear); _workshopRepository.SaveChanges(); _workshopRepository.RemoveOldRelation(command.Id); @@ -535,159 +578,169 @@ public class WorkshopAppliction : IWorkshopApplication { return _workshopRepository.SearchForClient(searchModel); } + public OperationResult CreateForClient(CreateWorkshop command) { - - var accountIds = new List(); - var operation = new OperationResult(); - //if (command.EmployerIdList == null) - // return operation.Failed("لطفا کارفرما را انتخاب نمایید"); - var employer = command.EmployerIdList.ToList(); - if (command.AccountIdsList != null) - { - accountIds = command.AccountIdsList.ToList(); - } - - if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0") - return operation.Failed("موارد اجباری را پر کنید"); - //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName)) - // return operation.Failed("نام کارگاه تکراری است"); - if (_workshopRepository.Exists(x => x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode)) - { - if (_workshopRepository.ExistsWorkshopAccountInsuranceCode(command.InsuranceCode)) - return operation.Failed("کد بیمه کارگاه تکراری است"); - } - - if (_workshopRepository.ExistsWorkshopAccountArchiveCode(command.ArchiveCode)) - return operation.Failed("شماره بایگانی تکراری است"); - - if (string.IsNullOrEmpty(command.State)) //(!string.IsNullOrEmpty(command.Address) && string.IsNullOrEmpty(command.State)) - return operation.Failed("لطفا استان و شهر را انتخاب کنید"); - - if (command.City == "0" || command.City == "شهرستان") - return operation.Failed("لطفا شهر را انتخاب کنید"); - if (string.IsNullOrEmpty(command.Address)) - return operation.Failed("لطفا آدرس را وارد کنید"); - - if (!string.IsNullOrEmpty(command.TypeOfInsuranceSend) && command.TypeOfInsuranceSend != "false" && string.IsNullOrEmpty(command.InsuranceCode)) - return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید"); - - if (command.FixedSalary) - { - if (command.InsuranceJobId == 0 || command.InsuranceJobId == null) - return operation.Failed("لطفا صنف را انتخاب کنید"); - if (string.IsNullOrWhiteSpace(command.Population)) - return operation.Failed("لطفا جمعیت شهر را انتخاب کنید"); - } - - //if (string.IsNullOrWhiteSpace(command.TypeOfInsuranceSend)) - // return operation.Failed("لطفا نوع ارسال لیست بیمه را مشخص کنید"); - - var workshop = new Workshop(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode,command.TypeOfOwnership, - command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City, command.Address, - command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber, command.FixedSalary, - command.Population, command.InsuranceJobId, command.ZoneName, command.AddBonusesPay, - command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide, command.IsClassified, command.ComputeOptions, - command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking, - command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance); - _workshopRepository.Create(workshop); - _workshopRepository.SaveChanges(); - - - - foreach (var e in employer) - { - _workshopRepository.EmployerWorkshop(workshop.id, e); - } - - - _workshopRepository.CreateWorkshopAccounts(accountIds, workshop.id); - - - - return operation.Succcedded(); - - + throw new NotImplementedException(); } public OperationResult EditForClient(EditWorkshop command) { - var leftSearch = new LeftWorkSearchModel() - { - WorkshopId = command.Id - }; - var leftWork = _leftWorkRepository.search(leftSearch); - var accountIds = new List(); - var operation = new OperationResult(); - var workshop = _workshopRepository.Get(command.Id); - if (command.AccountIdsList != null) - { - accountIds = command.AccountIdsList.ToList(); - } - if (workshop == null) - operation.Failed("رکورد مورد نظر وجود ندارد"); - if (command.EmployerIdList == null) - return operation.Failed("لطفا کارفرما را انتخاب نمایید"); - var employer = command.EmployerIdList.ToList(); - - if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0") - return operation.Failed("موارد اجباری را پر کنید"); - - //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id)) - // return operation.Failed(" رکورد مورد نظر تکراری است "); - if (_workshopRepository.Exists(x => - x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode && x.id != command.Id)) - { - if (_workshopRepository.ExistsWorkshopAccountInsuranceCodeByworkshopId(command.Id, command.InsuranceCode)) - return operation.Failed("کد بیمه کارگاه تکراری است"); - } - - if (_workshopRepository.ExistsWorkshopAccountArchiveCodeByWorkshopId(command.Id, command.ArchiveCode)) - return operation.Failed("شماره بایگانی تکراری است"); - - if (command.State == null) - return operation.Failed("لطفا استان و شهر را انتخاب کنید"); - if ((command.City == "0" || command.City == "شهرستان")) - return operation.Failed("لطفا شهر را انتخاب کنید"); - if (command.TypeOfInsuranceSend != null && command.InsuranceCode == null) - return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید"); - if (command.Address == null) - return operation.Failed("لطفا آدرس را وارد کنید"); - if (command.FixedSalary) - { - if (command.InsuranceJobId == 0 || command.InsuranceJobId == null) - return operation.Failed("لطفا صنف را انتخاب کنید"); - if (string.IsNullOrWhiteSpace(command.Population)) - return operation.Failed("لطفا جمعیت شهر را انتخاب کنید"); - } - - workshop.Edit(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode, command.TypeOfOwnership, - command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City, - command.Address, - command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber - , command.FixedSalary, command.Population, command.InsuranceJobId, command.ZoneName, - command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide,command.IsClassified, - command.ComputeOptions, command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking, - command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance); - _workshopRepository.SaveChanges(); - - //_workshopRepository.RemoveOldRelation(command.Id); - _workshopRepository.RemoveEmployerWorkshop(command.Id); - foreach (var e in employer) - { - _workshopRepository.EmployerWorkshop(workshop.id, e); - } - // _workshopRepository.WorkshopAccounts(accountIds, workshop.id); - foreach (var item in leftWork) - { - var editLeft = _leftWorkRepository.Get(item.Id); - - editLeft.EditBonuses(command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay); - _leftWorkRepository.SaveChanges(); - } - return operation.Succcedded(); - + throw new NotImplementedException(); } + //public OperationResult CreateForClient(CreateWorkshop command) + //{ + + // var accountIds = new List(); + // var operation = new OperationResult(); + // //if (command.EmployerIdList == null) + // // return operation.Failed("لطفا کارفرما را انتخاب نمایید"); + // var employer = command.EmployerIdList.ToList(); + // if (command.AccountIdsList != null) + // { + // accountIds = command.AccountIdsList.ToList(); + // } + + // if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0") + // return operation.Failed("موارد اجباری را پر کنید"); + // //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName)) + // // return operation.Failed("نام کارگاه تکراری است"); + // if (_workshopRepository.Exists(x => x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode)) + // { + // if (_workshopRepository.ExistsWorkshopAccountInsuranceCode(command.InsuranceCode)) + // return operation.Failed("کد بیمه کارگاه تکراری است"); + // } + + // if (_workshopRepository.ExistsWorkshopAccountArchiveCode(command.ArchiveCode)) + // return operation.Failed("شماره بایگانی تکراری است"); + + // if (string.IsNullOrEmpty(command.State)) //(!string.IsNullOrEmpty(command.Address) && string.IsNullOrEmpty(command.State)) + // return operation.Failed("لطفا استان و شهر را انتخاب کنید"); + + // if (command.City == "0" || command.City == "شهرستان") + // return operation.Failed("لطفا شهر را انتخاب کنید"); + // if (string.IsNullOrEmpty(command.Address)) + // return operation.Failed("لطفا آدرس را وارد کنید"); + + // if (!string.IsNullOrEmpty(command.TypeOfInsuranceSend) && command.TypeOfInsuranceSend != "false" && string.IsNullOrEmpty(command.InsuranceCode)) + // return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید"); + + // if (command.FixedSalary) + // { + // if (command.InsuranceJobId == 0 || command.InsuranceJobId == null) + // return operation.Failed("لطفا صنف را انتخاب کنید"); + // if (string.IsNullOrWhiteSpace(command.Population)) + // return operation.Failed("لطفا جمعیت شهر را انتخاب کنید"); + // } + + // //if (string.IsNullOrWhiteSpace(command.TypeOfInsuranceSend)) + // // return operation.Failed("لطفا نوع ارسال لیست بیمه را مشخص کنید"); + + // var workshop = new Workshop(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode,command.TypeOfOwnership, + // command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City, command.Address, + // command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber, command.FixedSalary, + // command.Population, command.InsuranceJobId, command.ZoneName, command.AddBonusesPay, + // command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide, command.IsClassified, command.ComputeOptions, + // command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking, + // command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance); + // _workshopRepository.Create(workshop); + // _workshopRepository.SaveChanges(); + + + + // foreach (var e in employer) + // { + // _workshopRepository.EmployerWorkshop(workshop.id, e); + // } + + + // _workshopRepository.CreateWorkshopAccounts(accountIds, workshop.id); + + + + // return operation.Succcedded(); + + + //} + + //public OperationResult EditForClient(EditWorkshop command) + //{ + // var leftSearch = new LeftWorkSearchModel() + // { + // WorkshopId = command.Id + // }; + // var leftWork = _leftWorkRepository.search(leftSearch); + // var accountIds = new List(); + // var operation = new OperationResult(); + // var workshop = _workshopRepository.Get(command.Id); + // if (command.AccountIdsList != null) + // { + // accountIds = command.AccountIdsList.ToList(); + // } + // if (workshop == null) + // operation.Failed("رکورد مورد نظر وجود ندارد"); + // if (command.EmployerIdList == null) + // return operation.Failed("لطفا کارفرما را انتخاب نمایید"); + // var employer = command.EmployerIdList.ToList(); + + // if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0") + // return operation.Failed("موارد اجباری را پر کنید"); + + // //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id)) + // // return operation.Failed(" رکورد مورد نظر تکراری است "); + // if (_workshopRepository.Exists(x => + // x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode && x.id != command.Id)) + // { + // if (_workshopRepository.ExistsWorkshopAccountInsuranceCodeByworkshopId(command.Id, command.InsuranceCode)) + // return operation.Failed("کد بیمه کارگاه تکراری است"); + // } + + // if (_workshopRepository.ExistsWorkshopAccountArchiveCodeByWorkshopId(command.Id, command.ArchiveCode)) + // return operation.Failed("شماره بایگانی تکراری است"); + + // if (command.State == null) + // return operation.Failed("لطفا استان و شهر را انتخاب کنید"); + // if ((command.City == "0" || command.City == "شهرستان")) + // return operation.Failed("لطفا شهر را انتخاب کنید"); + // if (command.TypeOfInsuranceSend != null && command.InsuranceCode == null) + // return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید"); + // if (command.Address == null) + // return operation.Failed("لطفا آدرس را وارد کنید"); + // if (command.FixedSalary) + // { + // if (command.InsuranceJobId == 0 || command.InsuranceJobId == null) + // return operation.Failed("لطفا صنف را انتخاب کنید"); + // if (string.IsNullOrWhiteSpace(command.Population)) + // return operation.Failed("لطفا جمعیت شهر را انتخاب کنید"); + // } + + // workshop.Edit(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode, command.TypeOfOwnership, + // command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City, + // command.Address, + // command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber + // , command.FixedSalary, command.Population, command.InsuranceJobId, command.ZoneName, + // command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide,command.IsClassified, + // command.ComputeOptions, command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking, + // command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance); + // _workshopRepository.SaveChanges(); + + // //_workshopRepository.RemoveOldRelation(command.Id); + // _workshopRepository.RemoveEmployerWorkshop(command.Id); + // foreach (var e in employer) + // { + // _workshopRepository.EmployerWorkshop(workshop.id, e); + // } + // // _workshopRepository.WorkshopAccounts(accountIds, workshop.id); + // foreach (var item in leftWork) + // { + // var editLeft = _leftWorkRepository.Get(item.Id); + + // editLeft.EditBonuses(command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay); + // _leftWorkRepository.SaveChanges(); + // } + // return operation.Succcedded(); + + //} public bool GetWorkshopAccountByAcountID(long acountID) { diff --git a/CompanyManagment.Application/YearlySalaryApplication.cs b/CompanyManagment.Application/YearlySalaryApplication.cs index 82afe137..f5535933 100644 --- a/CompanyManagment.Application/YearlySalaryApplication.cs +++ b/CompanyManagment.Application/YearlySalaryApplication.cs @@ -160,7 +160,7 @@ public class YearlySalaryApplication : IYearlySalaryApplication public InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year) { return _yearlySalaryRepository.GetInsuranceItems(startDate, endDate, year); - } + } #endregion } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/CheckoutMapping.cs b/CompanyManagment.EFCore/Mapping/CheckoutMapping.cs index 5eb88650..d88259e1 100644 --- a/CompanyManagment.EFCore/Mapping/CheckoutMapping.cs +++ b/CompanyManagment.EFCore/Mapping/CheckoutMapping.cs @@ -1,5 +1,6 @@ using System; using _0_Framework.Application; +using _0_Framework.InfraStructure; using Company.Domain.CheckoutAgg; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -73,5 +74,28 @@ class CheckoutMapping : IEntityTypeConfiguration salaryAid.Property(x => x.Amount).HasMaxLength(25); salaryAid.Property(x => x.CalculationDateTimeFa).HasMaxLength(15); }); + + builder.OwnsOne(x => x.CheckoutRollCall, rollCall => + { + rollCall.Property(x => x.TotalPresentTimeSpan).HasTimeSpanConversion(); + rollCall.Property(x => x.TotalBreakTimeSpan).HasTimeSpanConversion(); + rollCall.Property(x => x.TotalWorkingTimeSpan).HasTimeSpanConversion(); + rollCall.Property(x => x.TotalPaidLeaveTmeSpan).HasTimeSpanConversion(); + rollCall.Property(x => x.TotalSickLeaveTimeSpan).HasTimeSpanConversion(); + rollCall.Property(x => x.TotalMandatoryTimeSpan).HasTimeSpanConversion(); + rollCall.OwnsMany(x => x.RollCallDaysCollection, rollCallDay => + { + rollCallDay.HasKey(x => x.Id); + rollCallDay.WithOwner().HasForeignKey(x => x.CheckoutId); + + rollCallDay.Property(x => x.WorkingTimeSpan).HasTimeSpanConversion(); + rollCallDay.Property(x => x.BreakTimeSpan).HasTimeSpanConversion(); + rollCallDay.Property(x => x.FirstStartDate).HasMaxLength(18); + rollCallDay.Property(x => x.FirstEndDate).HasMaxLength(18); + rollCallDay.Property(x => x.SecondStartDate).HasMaxLength(18); + rollCallDay.Property(x => x.SecondEndDate).HasMaxLength(18); + rollCallDay.Property(x => x.LeaveType).HasMaxLength(18); + }); + }); } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/EmployeeComputeOptionsMapping.cs b/CompanyManagment.EFCore/Mapping/EmployeeComputeOptionsMapping.cs index 1bfa8b6c..19cffcd5 100644 --- a/CompanyManagment.EFCore/Mapping/EmployeeComputeOptionsMapping.cs +++ b/CompanyManagment.EFCore/Mapping/EmployeeComputeOptionsMapping.cs @@ -1,4 +1,6 @@ -using Company.Domain.EmployeeComputeOptionsAgg; +using System; +using _0_Framework.Application; +using Company.Domain.EmployeeComputeOptionsAgg; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -16,6 +18,9 @@ public class EmployeeComputeOptionsMapping : IEntityTypeConfiguration x.ComputeOptions).HasMaxLength(50); builder.Property(x => x.YearsOptions).HasMaxLength(50); builder.Property(x => x.BonusesOptions).HasMaxLength(50); + builder.Property(x => x.ContractTerm).HasMaxLength(10); + builder.Property(x => x.CutContractEndOfYear).HasConversion(x => x.ToString() + , x => ((IsActive)Enum.Parse(typeof(IsActive), x))).HasMaxLength(5); } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/InsuranceListMapping.cs b/CompanyManagment.EFCore/Mapping/InsuranceListMapping.cs index 5a781b31..b89965e2 100644 --- a/CompanyManagment.EFCore/Mapping/InsuranceListMapping.cs +++ b/CompanyManagment.EFCore/Mapping/InsuranceListMapping.cs @@ -13,5 +13,32 @@ public class InsuranceListMapping : IEntityTypeConfiguration builder.Property(x => x.Year).HasMaxLength(4); builder.Property(x => x.Month).HasMaxLength(2); + + builder.ComplexProperty(x => x.Inspection, inspection => + { + inspection.IsRequired(); + inspection.Property(x => x.Type).HasConversion().HasMaxLength(50); + inspection.Property(x => x.LastInspectionDateTime); + inspection.Property(x => x.MediaId); + }); + + builder.ComplexProperty(x => x.Debt, debt => + { + debt.IsRequired(); + debt.Property(x => x.Type).HasConversion().HasMaxLength(50); + debt.Property(x => x.DebtDate); + debt.Property(x => x.Amount); + debt.Property(x => x.MediaId); + }); + + builder.ComplexProperty(x => x.EmployerApproval, approval => + { + approval.IsRequired(); + approval.Property(x => x.Status).HasConversion().HasMaxLength(50); + approval.Property(x => x.Description).HasMaxLength(500); + }); + + //builder.HasMany(x => x.EmployerSignatures) + // .WithOne(x => x.InsuranceList).HasForeignKey(x => x.InsuranceListId); } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Mapping/WorkshopMapping.cs b/CompanyManagment.EFCore/Mapping/WorkshopMapping.cs index f99f7f73..22e569ef 100644 --- a/CompanyManagment.EFCore/Mapping/WorkshopMapping.cs +++ b/CompanyManagment.EFCore/Mapping/WorkshopMapping.cs @@ -1,4 +1,6 @@ -using Company.Domain.InsurancWorkshopInfoAgg; +using System; +using _0_Framework.Application; +using Company.Domain.InsurancWorkshopInfoAgg; using Company.Domain.WorkshopAgg; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; @@ -38,10 +40,13 @@ partial class WorkshopMapping : IEntityTypeConfiguration builder.Property(x => x.IsOldContract); builder.Property(x => x.HasRollCallFreeVip).HasMaxLength(5); builder.Property(x => x.WorkshopHolidayWorking); - //builder.HasOne(x => x.Employer) - // .WithMany(x => x.Workshops) - // .HasForeignKey(x => x.EmployerId); - builder.HasMany(x => x.LeftWorks) + + builder.Property(x => x.CutContractEndOfYear).HasConversion(x => x.ToString() + , x => ((IsActive)Enum.Parse(typeof(IsActive), x))).HasMaxLength(5); + //builder.HasOne(x => x.Employer) + // .WithMany(x => x.Workshops) + // .HasForeignKey(x => x.EmployerId); + builder.HasMany(x => x.LeftWorks) .WithOne(x => x.Workshop) .HasForeignKey(x => x.WorkshopId); diff --git a/CompanyManagment.EFCore/Migrations/20250521125646_add inspection-debt-approval to insurance list.Designer.cs b/CompanyManagment.EFCore/Migrations/20250521125646_add inspection-debt-approval to insurance list.Designer.cs new file mode 100644 index 00000000..d587468b --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250521125646_add inspection-debt-approval to insurance list.Designer.cs @@ -0,0 +1,9589 @@ +// +using System; +using System.Collections.Generic; +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("20250521125646_add inspection-debt-approval to insurance list")] + partial class addinspectiondebtapprovaltoinsurancelist + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.10") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("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("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + 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.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (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("UploaderRoleId") + .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("FamilyAllowance") + .HasColumnType("float"); + + 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("OverTimePay") + .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") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("EndDate") + .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.Property("StartDate") + .HasColumnType("datetime2"); + + 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.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + 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("WorkshopId"); + + 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("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + 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("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("WorkshopId") + .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/20250521125646_add inspection-debt-approval to insurance list.cs b/CompanyManagment.EFCore/Migrations/20250521125646_add inspection-debt-approval to insurance list.cs new file mode 100644 index 00000000..3c3e0dce --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250521125646_add inspection-debt-approval to insurance list.cs @@ -0,0 +1,121 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addinspectiondebtapprovaltoinsurancelist : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Debt_Amount", + table: "InsuranceLists", + type: "float", + nullable: false, + defaultValue: 0.0); + + migrationBuilder.AddColumn( + name: "Debt_DebtDate", + table: "InsuranceLists", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "Debt_MediaId", + table: "InsuranceLists", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "Debt_Type", + table: "InsuranceLists", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: "None"); + + migrationBuilder.AddColumn( + name: "EmployerApproval_Description", + table: "InsuranceLists", + type: "nvarchar(500)", + maxLength: 500, + nullable: true); + + migrationBuilder.AddColumn( + name: "EmployerApproval_Status", + table: "InsuranceLists", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: "None"); + + migrationBuilder.AddColumn( + name: "Inspection_LastInspectionDateTime", + table: "InsuranceLists", + type: "datetime2", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + + migrationBuilder.AddColumn( + name: "Inspection_MediaId", + table: "InsuranceLists", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.AddColumn( + name: "Inspection_Type", + table: "InsuranceLists", + type: "nvarchar(50)", + maxLength: 50, + nullable: false, + defaultValue: "None"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Debt_Amount", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "Debt_DebtDate", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "Debt_MediaId", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "Debt_Type", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "EmployerApproval_Description", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "EmployerApproval_Status", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "Inspection_LastInspectionDateTime", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "Inspection_MediaId", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "Inspection_Type", + table: "InsuranceLists"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250602185437_insurance operation list.Designer.cs b/CompanyManagment.EFCore/Migrations/20250602185437_insurance operation list.Designer.cs new file mode 100644 index 00000000..27c5841d --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250602185437_insurance operation list.Designer.cs @@ -0,0 +1,9719 @@ +// +using System; +using System.Collections.Generic; +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("20250602185437_insurance operation list")] + partial class insuranceoperationlist + { + /// + 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.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("AdminMonthlyOverviews"); + }); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("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("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + 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.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (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("UploaderRoleId") + .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("FamilyAllowance") + .HasColumnType("float"); + + 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("OverTimePay") + .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") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("EndDate") + .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.Property("StartDate") + .HasColumnType("datetime2"); + + 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.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + 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("WorkshopId"); + + 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("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + 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("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + 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.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("Checkoutid", "Id"); + + b1.ToTable("CheckoutLoanInstallment"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.Navigation("LoanInstallments"); + + b.Navigation("SalaryAids"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("WorkshopId") + .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/20250602185437_insurance operation list.cs b/CompanyManagment.EFCore/Migrations/20250602185437_insurance operation list.cs new file mode 100644 index 00000000..8f2f36a7 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250602185437_insurance operation list.cs @@ -0,0 +1,51 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class insuranceoperationlist : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Debt_IsDone", + table: "InsuranceLists", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "EmployerApproval_IsDone", + table: "InsuranceLists", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "Inspection_IsDone", + table: "InsuranceLists", + type: "bit", + nullable: false, + defaultValue: false); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Debt_IsDone", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "EmployerApproval_IsDone", + table: "InsuranceLists"); + + migrationBuilder.DropColumn( + name: "Inspection_IsDone", + table: "InsuranceLists"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250611105314_add rollcall in checkout.Designer.cs b/CompanyManagment.EFCore/Migrations/20250611105314_add rollcall in checkout.Designer.cs new file mode 100644 index 00000000..7a8800a1 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250611105314_add rollcall in checkout.Designer.cs @@ -0,0 +1,9832 @@ +// +using System; +using System.Collections.Generic; +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("20250611105314_add rollcall in checkout")] + partial class addrollcallincheckout + { + /// + 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.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("AdminMonthlyOverviews"); + }); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("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("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + 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.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (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("UploaderRoleId") + .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("FamilyAllowance") + .HasColumnType("float"); + + 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("OverTimePay") + .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") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("EndDate") + .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.Property("StartDate") + .HasColumnType("datetime2"); + + 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.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + 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("WorkshopId"); + + 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("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + 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("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + 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.OwnsOne("Company.Domain.CheckoutAgg.CheckoutRollCall", "CheckoutRollCall", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("TotalBreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalMandatoryTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPaidLeaveTmeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPresentTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalSickLeaveTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalWorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("Checkoutid"); + + b1.ToTable("Checkouts"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + + b1.OwnsMany("Company.Domain.CheckoutAgg.CheckoutRollCallDay", "RollCallDaysCollection", b2 => + { + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.Property("CheckoutId") + .HasColumnType("bigint"); + + b2.Property("Date") + .HasColumnType("datetime2"); + + b2.Property("FirstEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("FirstStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("IsAbsent") + .HasColumnType("bit"); + + b2.Property("IsFriday") + .HasColumnType("bit"); + + b2.Property("IsHoliday") + .HasColumnType("bit"); + + b2.Property("IsSliced") + .HasColumnType("bit"); + + b2.Property("LeaveType") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("WorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.HasKey("Id"); + + b2.HasIndex("CheckoutId"); + + b2.ToTable("CheckoutRollCallDay"); + + b2.WithOwner() + .HasForeignKey("CheckoutId"); + }); + + b1.Navigation("RollCallDaysCollection"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("Checkoutid", "Id"); + + b1.ToTable("CheckoutLoanInstallment"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.Navigation("CheckoutRollCall"); + + b.Navigation("LoanInstallments"); + + b.Navigation("SalaryAids"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("WorkshopId") + .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/20250611105314_add rollcall in checkout.cs b/CompanyManagment.EFCore/Migrations/20250611105314_add rollcall in checkout.cs new file mode 100644 index 00000000..74509af8 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250611105314_add rollcall in checkout.cs @@ -0,0 +1,124 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addrollcallincheckout : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CheckoutRollCall_TotalBreakTimeSpan", + table: "Checkouts", + type: "nvarchar(30)", + maxLength: 30, + nullable: true); + + migrationBuilder.AddColumn( + name: "CheckoutRollCall_TotalMandatoryTimeSpan", + table: "Checkouts", + type: "nvarchar(30)", + maxLength: 30, + nullable: true); + + migrationBuilder.AddColumn( + name: "CheckoutRollCall_TotalPaidLeaveTmeSpan", + table: "Checkouts", + type: "nvarchar(30)", + maxLength: 30, + nullable: true); + + migrationBuilder.AddColumn( + name: "CheckoutRollCall_TotalPresentTimeSpan", + table: "Checkouts", + type: "nvarchar(30)", + maxLength: 30, + nullable: true); + + migrationBuilder.AddColumn( + name: "CheckoutRollCall_TotalSickLeaveTimeSpan", + table: "Checkouts", + type: "nvarchar(30)", + maxLength: 30, + nullable: true); + + migrationBuilder.AddColumn( + name: "CheckoutRollCall_TotalWorkingTimeSpan", + table: "Checkouts", + type: "nvarchar(30)", + maxLength: 30, + nullable: true); + + migrationBuilder.CreateTable( + name: "CheckoutRollCallDay", + columns: table => new + { + Id = table.Column(type: "bigint", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Date = table.Column(type: "datetime2", nullable: false), + FirstStartDate = table.Column(type: "nvarchar(18)", maxLength: 18, nullable: true), + FirstEndDate = table.Column(type: "nvarchar(18)", maxLength: 18, nullable: true), + SecondStartDate = table.Column(type: "nvarchar(18)", maxLength: 18, nullable: true), + SecondEndDate = table.Column(type: "nvarchar(18)", maxLength: 18, nullable: true), + BreakTimeSpan = table.Column(type: "nvarchar(30)", maxLength: 30, nullable: false), + WorkingTimeSpan = table.Column(type: "nvarchar(30)", maxLength: 30, nullable: false), + IsSliced = table.Column(type: "bit", nullable: false), + IsAbsent = table.Column(type: "bit", nullable: false), + IsFriday = table.Column(type: "bit", nullable: false), + IsHoliday = table.Column(type: "bit", nullable: false), + LeaveType = table.Column(type: "nvarchar(18)", maxLength: 18, nullable: true), + CheckoutId = table.Column(type: "bigint", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_CheckoutRollCallDay", x => x.Id); + table.ForeignKey( + name: "FK_CheckoutRollCallDay_Checkouts_CheckoutId", + column: x => x.CheckoutId, + principalTable: "Checkouts", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_CheckoutRollCallDay_CheckoutId", + table: "CheckoutRollCallDay", + column: "CheckoutId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "CheckoutRollCallDay"); + + migrationBuilder.DropColumn( + name: "CheckoutRollCall_TotalBreakTimeSpan", + table: "Checkouts"); + + migrationBuilder.DropColumn( + name: "CheckoutRollCall_TotalMandatoryTimeSpan", + table: "Checkouts"); + + migrationBuilder.DropColumn( + name: "CheckoutRollCall_TotalPaidLeaveTmeSpan", + table: "Checkouts"); + + migrationBuilder.DropColumn( + name: "CheckoutRollCall_TotalPresentTimeSpan", + table: "Checkouts"); + + migrationBuilder.DropColumn( + name: "CheckoutRollCall_TotalSickLeaveTimeSpan", + table: "Checkouts"); + + migrationBuilder.DropColumn( + name: "CheckoutRollCall_TotalWorkingTimeSpan", + table: "Checkouts"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250611160351_add workshop create contract settings.Designer.cs b/CompanyManagment.EFCore/Migrations/20250611160351_add workshop create contract settings.Designer.cs new file mode 100644 index 00000000..0da9c097 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250611160351_add workshop create contract settings.Designer.cs @@ -0,0 +1,9736 @@ +// +using System; +using System.Collections.Generic; +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("20250611160351_add workshop create contract settings")] + partial class addworkshopcreatecontractsettings + { + /// + 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.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("AdminMonthlyOverviews"); + }); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("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("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + 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.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (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("UploaderRoleId") + .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("FamilyAllowance") + .HasColumnType("float"); + + 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("OverTimePay") + .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") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("EndDate") + .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.Property("StartDate") + .HasColumnType("datetime2"); + + 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.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + 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("WorkshopId"); + + 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("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + 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("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + 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("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + 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.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("Checkoutid", "Id"); + + b1.ToTable("CheckoutLoanInstallment"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.Navigation("LoanInstallments"); + + b.Navigation("SalaryAids"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("WorkshopId") + .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/20250611160351_add workshop create contract settings.cs b/CompanyManagment.EFCore/Migrations/20250611160351_add workshop create contract settings.cs new file mode 100644 index 00000000..550abb31 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250611160351_add workshop create contract settings.cs @@ -0,0 +1,74 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addworkshopcreatecontractsettings : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CreateCheckout", + table: "Workshops", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "CreateContract", + table: "Workshops", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "CutContractEndOfYear", + table: "Workshops", + type: "nvarchar(5)", + maxLength: 5, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "SignCheckout", + table: "Workshops", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "SignContract", + table: "Workshops", + type: "bit", + nullable: false, + defaultValue: false); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CreateCheckout", + table: "Workshops"); + + migrationBuilder.DropColumn( + name: "CreateContract", + table: "Workshops"); + + migrationBuilder.DropColumn( + name: "CutContractEndOfYear", + table: "Workshops"); + + migrationBuilder.DropColumn( + name: "SignCheckout", + table: "Workshops"); + + migrationBuilder.DropColumn( + name: "SignContract", + table: "Workshops"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250611172746_add settings for employee compute options.Designer.cs b/CompanyManagment.EFCore/Migrations/20250611172746_add settings for employee compute options.Designer.cs new file mode 100644 index 00000000..c2949b47 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250611172746_add settings for employee compute options.Designer.cs @@ -0,0 +1,9748 @@ +// +using System; +using System.Collections.Generic; +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("20250611172746_add settings for employee compute options")] + partial class addsettingsforemployeecomputeoptions + { + /// + 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.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("AdminMonthlyOverviews"); + }); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("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("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + 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.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (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("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + 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("UploaderRoleId") + .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("FamilyAllowance") + .HasColumnType("float"); + + 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("OverTimePay") + .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") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("EndDate") + .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.Property("StartDate") + .HasColumnType("datetime2"); + + 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.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + 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("WorkshopId"); + + 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("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + 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("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + 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("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + 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.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("Checkoutid", "Id"); + + b1.ToTable("CheckoutLoanInstallment"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.Navigation("LoanInstallments"); + + b.Navigation("SalaryAids"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("WorkshopId") + .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/20250611172746_add settings for employee compute options.cs b/CompanyManagment.EFCore/Migrations/20250611172746_add settings for employee compute options.cs new file mode 100644 index 00000000..3ba4f449 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250611172746_add settings for employee compute options.cs @@ -0,0 +1,62 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class addsettingsforemployeecomputeoptions : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CreateCheckout", + table: "EmployeeComputeOptions", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "CreateContract", + table: "EmployeeComputeOptions", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "SignCheckout", + table: "EmployeeComputeOptions", + type: "bit", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "SignContract", + table: "EmployeeComputeOptions", + type: "bit", + nullable: false, + defaultValue: false); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CreateCheckout", + table: "EmployeeComputeOptions"); + + migrationBuilder.DropColumn( + name: "CreateContract", + table: "EmployeeComputeOptions"); + + migrationBuilder.DropColumn( + name: "SignCheckout", + table: "EmployeeComputeOptions"); + + migrationBuilder.DropColumn( + name: "SignContract", + table: "EmployeeComputeOptions"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/20250622193551_ContractTermAndCutOptionToEmployeeOptions.Designer.cs b/CompanyManagment.EFCore/Migrations/20250622193551_ContractTermAndCutOptionToEmployeeOptions.Designer.cs new file mode 100644 index 00000000..1d697c5e --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250622193551_ContractTermAndCutOptionToEmployeeOptions.Designer.cs @@ -0,0 +1,9870 @@ +// +using System; +using System.Collections.Generic; +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("20250622193551_ContractTermAndCutOptionToEmployeeOptions")] + partial class ContractTermAndCutOptionToEmployeeOptions + { + /// + 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.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Month") + .HasColumnType("int"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(155) + .HasColumnType("nvarchar(155)"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("AdminMonthlyOverviews"); + }); + + modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActive") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("Path") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("VersionCode") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("VersionName") + .HasMaxLength(35) + .HasColumnType("nvarchar(35)"); + + b.HasKey("id"); + + b.ToTable("AndroidApkVersions", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BankAgg.Bank", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BankLogoMediaId") + .HasColumnType("bigint"); + + b.Property("BankName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.ToTable("Banks", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Appointed") + .HasColumnType("nvarchar(max)"); + + b.Property("Contact") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("ProcessingStage") + .HasColumnType("nvarchar(max)"); + + b.Property("SubjectBill") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Bill", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Board.Board", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BoardChairman") + .HasColumnType("nvarchar(max)"); + + b.Property("BoardType_Id") + .HasColumnType("int"); + + b.Property("Branch") + .HasColumnType("nvarchar(max)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DisputeResolutionPetitionDate") + .HasColumnType("datetime2"); + + b.Property("ExpertReport") + .HasColumnType("nvarchar(max)"); + + b.Property("File_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("BoardType_Id"); + + b.HasIndex("File_Id"); + + b.ToTable("Boards", (string)null); + }); + + modelBuilder.Entity("Company.Domain.BoardType.BoardType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Title") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("BoardTypes", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Chapter") + .IsRequired() + .HasMaxLength(60) + .HasColumnType("nvarchar(60)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("Subtitle_Id") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("Subtitle_Id"); + + b.ToTable("TextManager_Chapter", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AbsenceDeduction") + .HasColumnType("float"); + + b.Property("AbsencePeriod") + .HasColumnType("float"); + + b.Property("AbsenceValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("ArchiveCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("AverageHoursPerDay") + .HasColumnType("float"); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ConsumableItems") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreditLeaves") + .HasColumnType("float"); + + b.Property("DateOfBirth") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("EmployeeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .HasColumnType("float"); + + b.Property("FathersName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("FridayPay") + .HasColumnType("float"); + + b.Property("FridayWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("HasRollCall") + .HasColumnType("bit"); + + b.Property("HousingAllowance") + .HasColumnType("float"); + + b.Property("InstallmentDeduction") + .HasColumnType("float"); + + b.Property("InsuranceDeduction") + .HasColumnType("float"); + + b.Property("IsActiveString") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LeaveCheckout") + .HasColumnType("bit"); + + b.Property("LeavePay") + .HasColumnType("float"); + + b.Property("MarriedAllowance") + .HasColumnType("float"); + + b.Property("MissionPay") + .HasColumnType("float"); + + b.Property("Month") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("MonthlySalary") + .HasColumnType("float"); + + b.Property("NationalCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("NightworkPay") + .HasColumnType("float"); + + b.Property("OverNightWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OverTimeWorkValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("OvertimePay") + .HasColumnType("float"); + + b.Property("PersonnelCode") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("RewardPay") + .HasColumnType("float"); + + b.Property("RotatingShiftValue") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("SalaryAidDeduction") + .HasColumnType("float"); + + b.Property("ShiftPay") + .HasColumnType("float"); + + b.Property("Signature") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("SumOfWorkingDays") + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("TaxDeducation") + .HasColumnType("float"); + + b.Property("TotalClaims") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalDayOfBunosesCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfLeaveCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDayOfYearsCompute") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("TotalDeductions") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("TotalPayment") + .HasColumnType("float"); + + b.Property("WorkingHoursId") + .HasColumnType("bigint"); + + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("WorkshopName") + .HasMaxLength(70) + .HasColumnType("nvarchar(70)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("nvarchar(4)"); + + b.Property("YearsPay") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("WorkshopId"); + + b.ToTable("Checkouts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("Group1") + .HasColumnType("float"); + + b.Property("Group10") + .HasColumnType("float"); + + b.Property("Group11") + .HasColumnType("float"); + + b.Property("Group12") + .HasColumnType("float"); + + b.Property("Group13") + .HasColumnType("float"); + + b.Property("Group14") + .HasColumnType("float"); + + b.Property("Group15") + .HasColumnType("float"); + + b.Property("Group16") + .HasColumnType("float"); + + b.Property("Group17") + .HasColumnType("float"); + + b.Property("Group18") + .HasColumnType("float"); + + b.Property("Group19") + .HasColumnType("float"); + + b.Property("Group2") + .HasColumnType("float"); + + b.Property("Group20") + .HasColumnType("float"); + + b.Property("Group3") + .HasColumnType("float"); + + b.Property("Group4") + .HasColumnType("float"); + + b.Property("Group5") + .HasColumnType("float"); + + b.Property("Group6") + .HasColumnType("float"); + + b.Property("Group7") + .HasColumnType("float"); + + b.Property("Group8") + .HasColumnType("float"); + + b.Property("Group9") + .HasColumnType("float"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("ClassifiedSalaries", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b => + { + b.Property("WorkshopId") + .HasColumnType("bigint"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.HasKey("WorkshopId", "EmployeeId"); + + b.HasIndex("EmployeeId"); + + b.ToTable("ClientWorkshopEmployee", (string)null); + }); + + modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("IsActiveString") + .HasColumnType("nvarchar(max)"); + + b.Property("NameContact") + .HasColumnType("nvarchar(max)"); + + b.Property("Signature") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("TextManager_Contact", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Address") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("AgentPhone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .HasColumnType("int"); + + b.Property("BlockTimes") + .HasColumnType("int"); + + b.Property("City") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DateOfBirth") + .HasColumnType("datetime2"); + + b.Property("FName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("FatherName") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(6) + .HasColumnType("nvarchar(6)"); + + b.Property("IdNumber") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("IdNumberSeri") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IdNumberSerial") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IsActiveString") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsAuthenticated") + .HasColumnType("bit"); + + b.Property("IsBlock") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("IsLegal") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("LName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("NationalId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("Nationalcode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("Phone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RegisterId") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("RepresentativeFullName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("RepresentativeId") + .HasColumnType("bigint"); + + b.Property("State") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("SureName") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Zone") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("id"); + + b.HasIndex("RepresentativeId"); + + b.ToTable("PersonalContractingParties", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("AgreementSalary") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ArchiveCode") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ConsumableItems") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("ContarctStart") + .HasColumnType("datetime2"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractNo") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("ContractPeriod") + .HasMaxLength(2) + .HasColumnType("nvarchar(2)"); + + b.Property("ContractType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("DayliWage") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("EmployerId") + .HasColumnType("bigint"); + + b.Property("FamilyAllowance") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("GetWorkDate") + .HasColumnType("datetime2"); + + b.Property("HousingAllowance") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("IsActiveString") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("JobType") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("JobTypeId") + .HasColumnType("bigint"); + + b.Property("MandatoryHoursid") + .HasColumnType("bigint"); + + b.Property("PersonnelCode") + .HasColumnType("bigint"); + + b.Property("SetContractDate") + .HasColumnType("datetime2"); + + b.Property("Signature") + .HasMaxLength(1) + .HasColumnType("nvarchar(1)"); + + b.Property("WorkingHoursWeekly") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("WorkshopAddress1") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopAddress2") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("WorkshopIds") + .HasColumnType("bigint"); + + b.Property("YearlySalaryId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("EmployeeId"); + + b.HasIndex("EmployerId"); + + b.HasIndex("JobTypeId"); + + b.HasIndex("MandatoryHoursid"); + + b.HasIndex("WorkshopIds"); + + b.HasIndex("YearlySalaryId"); + + b.ToTable("Contracts", (string)null); + }); + + modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b => + { + b.Property("PersonalContractingPartyId") + .HasColumnType("bigint"); + + b.Property("AccountId") + .HasColumnType("bigint"); + + b.HasKey("PersonalContractingPartyId", "AccountId"); + + b.ToTable("ContractingPartyAccount", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobGuildId") + .HasColumnType("bigint"); + + b.Property("EquivalentRialOver") + .HasColumnType("bigint"); + + b.Property("EquivalentRialUnder") + .HasColumnType("bigint"); + + b.Property("SalaryRatioOver") + .HasColumnType("float"); + + b.Property("SalaryRatioUnder") + .HasColumnType("float"); + + b.HasKey("id"); + + b.HasIndex("CrossJobGuildId"); + + b.ToTable("CrossJobs", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("EconomicCode") + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("nvarchar(255)"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("int"); + + b.HasKey("id"); + + b.ToTable("CrossJobGuilds", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CrossJobItemsAgg.CrossJobItems", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CrossJobId") + .HasColumnType("bigint"); + + b.Property("JobId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.HasIndex("CrossJobId"); + + b.HasIndex("JobId"); + + b.ToTable("CrossJobItems", (string)null); + }); + + modelBuilder.Entity("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BaseYearsPay") + .HasColumnType("float"); + + b.Property("BonusesPay") + .HasColumnType("float"); + + b.Property("ContractEnd") + .HasColumnType("datetime2"); + + b.Property("ContractId") + .HasColumnType("bigint"); + + b.Property("ContractNo") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("ContractStart") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("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("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + 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.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("FName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("FatherName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Gender") + .IsRequired() + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumber") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.Property("IdNumberSeri") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("IdNumberSerial") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b.Property("LName") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("NationalCode") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b.HasKey("id"); + + b.HasIndex("NationalCode") + .IsUnique() + .HasFilter("[NationalCode] IS NOT NULL"); + + b.ToTable("EmployeeAuthorizeTemps", (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("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("EmployeeId") + .HasColumnType("bigint"); + + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + 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("UploaderRoleId") + .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("FamilyAllowance") + .HasColumnType("float"); + + 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("OverTimePay") + .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") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + 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("EndDate") + .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.Property("StartDate") + .HasColumnType("datetime2"); + + 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.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + 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("WorkshopId"); + + 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("CalculationDate") + .HasColumnType("datetime2"); + + b.Property("CalculationMonth") + .HasColumnType("int"); + + b.Property("CalculationYear") + .HasColumnType("int"); + + 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("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("FixedSalary") + .HasColumnType("bit"); + + b.Property("HasRollCallFreeVip") + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + + b.Property("InsuranceCheckoutFamilyAllowance") + .HasColumnType("bit"); + + b.Property("InsuranceCheckoutOvertime") + .HasColumnType("bit"); + + 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("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + + 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.OwnsOne("Company.Domain.CheckoutAgg.CheckoutRollCall", "CheckoutRollCall", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("TotalBreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalMandatoryTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPaidLeaveTmeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPresentTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalSickLeaveTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalWorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("Checkoutid"); + + b1.ToTable("Checkouts"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + + b1.OwnsMany("Company.Domain.CheckoutAgg.CheckoutRollCallDay", "RollCallDaysCollection", b2 => + { + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.Property("CheckoutId") + .HasColumnType("bigint"); + + b2.Property("Date") + .HasColumnType("datetime2"); + + b2.Property("FirstEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("FirstStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("IsAbsent") + .HasColumnType("bit"); + + b2.Property("IsFriday") + .HasColumnType("bit"); + + b2.Property("IsHoliday") + .HasColumnType("bit"); + + b2.Property("IsSliced") + .HasColumnType("bit"); + + b2.Property("LeaveType") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("WorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.HasKey("Id"); + + b2.HasIndex("CheckoutId"); + + b2.ToTable("CheckoutRollCallDay"); + + b2.WithOwner() + .HasForeignKey("CheckoutId"); + }); + + b1.Navigation("RollCallDaysCollection"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("AmountForMonth") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("Checkoutid", "Id"); + + b1.ToTable("CheckoutLoanInstallment"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property("Id")); + + b1.Property("Amount") + .HasMaxLength(25) + .HasColumnType("nvarchar(25)"); + + b1.Property("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + b1.Property("SalaryAidDateTime") + .HasColumnType("datetime2"); + + b1.Property("SalaryAidDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.HasKey("Checkoutid", "Id"); + + b1.ToTable("CheckoutSalaryAid"); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + }); + + b.Navigation("CheckoutRollCall"); + + b.Navigation("LoanInstallments"); + + b.Navigation("SalaryAids"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("EntityId") + .HasColumnType("bigint"); + + 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("CalculationDateTime") + .HasColumnType("datetime2"); + + b1.Property("CalculationDateTimeFa") + .HasMaxLength(15) + .HasColumnType("nvarchar(15)"); + + b1.Property("EntityId") + .HasColumnType("bigint"); + + 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("WorkshopId") + .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/20250622193551_ContractTermAndCutOptionToEmployeeOptions.cs b/CompanyManagment.EFCore/Migrations/20250622193551_ContractTermAndCutOptionToEmployeeOptions.cs new file mode 100644 index 00000000..825862f0 --- /dev/null +++ b/CompanyManagment.EFCore/Migrations/20250622193551_ContractTermAndCutOptionToEmployeeOptions.cs @@ -0,0 +1,41 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CompanyManagment.EFCore.Migrations +{ + /// + public partial class ContractTermAndCutOptionToEmployeeOptions : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "ContractTerm", + table: "EmployeeComputeOptions", + type: "nvarchar(10)", + maxLength: 10, + nullable: true); + + migrationBuilder.AddColumn( + name: "CutContractEndOfYear", + table: "EmployeeComputeOptions", + type: "nvarchar(5)", + maxLength: 5, + nullable: false, + defaultValue: ""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ContractTerm", + table: "EmployeeComputeOptions"); + + migrationBuilder.DropColumn( + name: "CutContractEndOfYear", + table: "EmployeeComputeOptions"); + } + } +} diff --git a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs index a8956127..b6f5a12c 100644 --- a/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs +++ b/CompanyManagment.EFCore/Migrations/CompanyContextModelSnapshot.cs @@ -1,5 +1,6 @@ // using System; +using System.Collections.Generic; using CompanyManagment.EFCore; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -49,7 +50,7 @@ namespace CompanyManagment.EFCore.Migrations b.HasKey("id"); - b.ToTable("AdminMonthlyOverviews"); + b.ToTable("AdminMonthlyOverviews", (string)null); }); modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b => @@ -1789,7 +1790,7 @@ namespace CompanyManagment.EFCore.Migrations b.HasKey("id"); - b.ToTable("EmployeeClientTemps"); + b.ToTable("EmployeeClientTemps", (string)null); }); modelBuilder.Entity("Company.Domain.EmployeeComputeOptionsAgg.EmployeeComputeOptions", b => @@ -1808,12 +1809,33 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(50) .HasColumnType("nvarchar(50)"); + b.Property("ContractTerm") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + b.Property("CreationDate") .HasColumnType("datetime2"); + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + b.Property("EmployeeId") .HasColumnType("bigint"); + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + b.Property("WorkshopId") .HasColumnType("bigint"); @@ -3350,6 +3372,64 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(4) .HasColumnType("nvarchar(4)"); + b.ComplexProperty>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 => + { + b1.IsRequired(); + + b1.Property("Amount") + .HasColumnType("float"); + + b1.Property("DebtDate") + .HasColumnType("datetime2"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 => + { + b1.IsRequired(); + + b1.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("Status") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + + b.ComplexProperty>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 => + { + b1.IsRequired(); + + b1.Property("IsDone") + .HasColumnType("bit"); + + b1.Property("LastInspectionDateTime") + .HasColumnType("datetime2"); + + b1.Property("MediaId") + .HasColumnType("bigint"); + + b1.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + }); + b.HasKey("id"); b.ToTable("InsuranceLists", (string)null); @@ -3724,7 +3804,7 @@ namespace CompanyManagment.EFCore.Migrations b.HasKey("id"); - b.ToTable("LeftWorkTemps"); + b.ToTable("LeftWorkTemps", (string)null); }); modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => @@ -4662,7 +4742,7 @@ namespace CompanyManagment.EFCore.Migrations b.HasIndex("RollCallEmployeeId"); - b.ToTable("RollCallEmployeesStatus"); + b.ToTable("RollCallEmployeesStatus", (string)null); }); modelBuilder.Entity("Company.Domain.RollCallPlanAgg.RollCallPlan", b => @@ -5587,9 +5667,20 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(10) .HasColumnType("nvarchar(10)"); + b.Property("CreateCheckout") + .HasColumnType("bit"); + + b.Property("CreateContract") + .HasColumnType("bit"); + b.Property("CreationDate") .HasColumnType("datetime2"); + b.Property("CutContractEndOfYear") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("nvarchar(5)"); + b.Property("FixedSalary") .HasColumnType("bit"); @@ -5627,6 +5718,12 @@ namespace CompanyManagment.EFCore.Migrations .HasMaxLength(25) .HasColumnType("nvarchar(25)"); + b.Property("SignCheckout") + .HasColumnType("bit"); + + b.Property("SignContract") + .HasColumnType("bit"); + b.Property("State") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); @@ -6068,7 +6165,7 @@ namespace CompanyManagment.EFCore.Migrations b.HasIndex("WorkshopsListid"); - b.ToTable("EmployerWorkshop"); + b.ToTable("EmployerWorkshop", (string)null); }); modelBuilder.Entity("Company.Domain.Board.Board", b => @@ -6109,7 +6206,118 @@ namespace CompanyManagment.EFCore.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => + b.OwnsOne("Company.Domain.CheckoutAgg.Checkout.CheckoutRollCall#Company.Domain.CheckoutAgg.CheckoutRollCall", "CheckoutRollCall", b1 => + { + b1.Property("Checkoutid") + .HasColumnType("bigint"); + + b1.Property("TotalBreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalMandatoryTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPaidLeaveTmeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalPresentTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalSickLeaveTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.Property("TotalWorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b1.HasKey("Checkoutid"); + + b1.ToTable("Checkouts", (string)null); + + b1.WithOwner() + .HasForeignKey("Checkoutid"); + + b1.OwnsMany("Company.Domain.CheckoutAgg.Checkout.CheckoutRollCall#Company.Domain.CheckoutAgg.CheckoutRollCall.RollCallDaysCollection#Company.Domain.CheckoutAgg.CheckoutRollCallDay", "RollCallDaysCollection", b2 => + { + b2.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property("Id")); + + b2.Property("BreakTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.Property("CheckoutId") + .HasColumnType("bigint"); + + b2.Property("Date") + .HasColumnType("datetime2"); + + b2.Property("FirstEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("FirstStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("IsAbsent") + .HasColumnType("bit"); + + b2.Property("IsFriday") + .HasColumnType("bit"); + + b2.Property("IsHoliday") + .HasColumnType("bit"); + + b2.Property("IsSliced") + .HasColumnType("bit"); + + b2.Property("LeaveType") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondEndDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("SecondStartDate") + .HasMaxLength(18) + .HasColumnType("nvarchar(18)"); + + b2.Property("WorkingTimeSpan") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("nvarchar(30)"); + + b2.HasKey("Id"); + + b2.HasIndex("CheckoutId"); + + b2.ToTable("CheckoutRollCallDay", (string)null); + + b2.WithOwner() + .HasForeignKey("CheckoutId"); + }); + + b1.Navigation("RollCallDaysCollection"); + }); + + b.OwnsMany("Company.Domain.CheckoutAgg.Checkout.LoanInstallments#Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 => { b1.Property("Checkoutid") .HasColumnType("bigint"); @@ -6150,13 +6358,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("Checkoutid", "Id"); - b1.ToTable("CheckoutLoanInstallment"); + b1.ToTable("CheckoutLoanInstallment", (string)null); b1.WithOwner() .HasForeignKey("Checkoutid"); }); - b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => + b.OwnsMany("Company.Domain.CheckoutAgg.Checkout.SalaryAids#Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 => { b1.Property("Checkoutid") .HasColumnType("bigint"); @@ -6190,12 +6398,14 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("Checkoutid", "Id"); - b1.ToTable("CheckoutSalaryAid"); + b1.ToTable("CheckoutSalaryAid", (string)null); b1.WithOwner() .HasForeignKey("Checkoutid"); }); + b.Navigation("CheckoutRollCall"); + b.Navigation("LoanInstallments"); b.Navigation("SalaryAids"); @@ -6335,91 +6545,7 @@ namespace CompanyManagment.EFCore.Migrations .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 => + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout.CheckoutFines#Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutFine", "CheckoutFines", b1 => { b1.Property("CustomizeCheckoutid") .HasColumnType("bigint"); @@ -6458,13 +6584,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutid", "Id"); - b1.ToTable("CustomizeCheckoutFine"); + b1.ToTable("CustomizeCheckoutFine", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutid"); }); - b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout.CustomizeCheckoutLoanInstallments#Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => { b1.Property("CustomizeCheckoutid") .HasColumnType("bigint"); @@ -6505,13 +6631,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutid", "Id"); - b1.ToTable("CustomizeCheckoutLoanInstallments"); + b1.ToTable("CustomizeCheckoutLoanInstallments", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutid"); }); - b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout.CustomizeCheckoutRewards#Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutReward", "CustomizeCheckoutRewards", b1 => { b1.Property("CustomizeCheckoutid") .HasColumnType("bigint"); @@ -6550,13 +6676,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutid", "Id"); - b1.ToTable("CustomizeCheckoutReward"); + b1.ToTable("CustomizeCheckoutReward", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutid"); }); - b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout.CustomizeCheckoutSalaryAids#Company.Domain.CustomizeCheckoutAgg.ValueObjects.CustomizeCheckoutSalaryAid", "CustomizeCheckoutSalaryAids", b1 => { b1.Property("CustomizeCheckoutid") .HasColumnType("bigint"); @@ -6590,7 +6716,91 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutid", "Id"); - b1.ToTable("CustomizeCheckoutSalaryAid"); + b1.ToTable("CustomizeCheckoutSalaryAid", (string)null); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout.CustomizeRotatingShifts#_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", (string)null); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsOne("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout.IrregularShift#_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", (string)null); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutAgg.CustomizeCheckout.RegularShifts#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", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutid"); @@ -6629,91 +6839,7 @@ namespace CompanyManagment.EFCore.Migrations .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 => + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp.CheckoutFines#Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempFine", "CheckoutFines", b1 => { b1.Property("CustomizeCheckoutTempid") .HasColumnType("bigint"); @@ -6752,13 +6878,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutTempid", "Id"); - b1.ToTable("CustomizeCheckoutTempFine"); + b1.ToTable("CustomizeCheckoutTempFine", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutTempid"); }); - b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp.CustomizeCheckoutLoanInstallments#Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempLoanInstallments", "CustomizeCheckoutLoanInstallments", b1 => { b1.Property("CustomizeCheckoutTempid") .HasColumnType("bigint"); @@ -6799,13 +6925,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutTempid", "Id"); - b1.ToTable("CustomizeCheckoutTempLoanInstallments"); + b1.ToTable("CustomizeCheckoutTempLoanInstallments", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutTempid"); }); - b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp.CustomizeCheckoutRewards#Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempReward", "CustomizeCheckoutRewards", b1 => { b1.Property("CustomizeCheckoutTempid") .HasColumnType("bigint"); @@ -6844,13 +6970,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutTempid", "Id"); - b1.ToTable("CustomizeCheckoutTempReward"); + b1.ToTable("CustomizeCheckoutTempReward", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutTempid"); }); - b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp.CustomizeCheckoutSalaryAids#Company.Domain.CustomizeCheckoutTempAgg.ValueObjects.CustomizeCheckoutTempSalaryAid", "CustomizeCheckoutSalaryAids", b1 => { b1.Property("CustomizeCheckoutTempid") .HasColumnType("bigint"); @@ -6884,7 +7010,91 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeCheckoutTempid", "Id"); - b1.ToTable("CustomizeCheckoutTempSalaryAid"); + b1.ToTable("CustomizeCheckoutTempSalaryAid", (string)null); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp.CustomizeRotatingShifts#_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", (string)null); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsOne("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp.IrregularShift#_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", (string)null); + + b1.WithOwner() + .HasForeignKey("CustomizeCheckoutTempid"); + }); + + b.OwnsMany("Company.Domain.CustomizeCheckoutTempAgg.CustomizeCheckoutTemp.RegularShifts#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", (string)null); b1.WithOwner() .HasForeignKey("CustomizeCheckoutTempid"); @@ -6917,7 +7127,7 @@ namespace CompanyManagment.EFCore.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.CustomizeWorkshopEmployeeSettingsShifts#Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettingsShift", "CustomizeWorkshopEmployeeSettingsShifts", b1 => { b1.Property("id") .ValueGeneratedOnAdd() @@ -6957,7 +7167,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("CustomizeWorkshopEmployeeSettings"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.BaseYearsPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -6980,13 +7190,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.BonusesPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7009,13 +7219,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.BreakTime#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7033,13 +7243,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + b.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.CustomizeRotatingShifts#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7058,13 +7268,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid", "Id"); - b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts"); + b1.ToTable("CustomizeWorkshopEmployeeSettings_CustomizeRotatingShifts", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.EarlyExit#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7081,12 +7291,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.EarlyExit#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit.EarlyExitTimeFines#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => { b2.Property("CustomizeWorkshopEmployeeSettingsId") .HasColumnType("bigint"); @@ -7108,7 +7318,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines"); + b2.ToTable("CustomizeWorkshopEmployeeSettings_EarlyExitTimeFines", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); @@ -7117,7 +7327,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("EarlyExitTimeFines"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.FamilyAllowance#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7134,13 +7344,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.FineAbsenceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7157,12 +7367,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.FineAbsenceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction.FineAbsenceDayOfWeekCollection#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => { b2.Property("CustomizeWorkshopEmployeeSettingsId") .HasColumnType("bigint"); @@ -7181,7 +7391,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection"); + b2.ToTable("CustomizeWorkshopEmployeeSettings_FineAbsenceDayOfWeekCollection", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); @@ -7190,7 +7400,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("FineAbsenceDayOfWeekCollection"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.FridayPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7206,13 +7416,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.InsuranceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7229,13 +7439,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.IrregularShift#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7253,13 +7463,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.LateToWork#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7276,12 +7486,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.LateToWork#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork.LateToWorkTimeFines#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => { b2.Property("CustomizeWorkshopEmployeeSettingsId") .HasColumnType("bigint"); @@ -7303,7 +7513,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopEmployeeSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines"); + b2.ToTable("CustomizeWorkshopEmployeeSettings_LateToWorkTimeFines", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsId"); @@ -7312,7 +7522,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("LateToWorkTimeFines"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.LeavePay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7329,13 +7539,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.MarriedAllowance#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7352,13 +7562,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.NightWorkPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7375,13 +7585,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.OverTimePay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7398,13 +7608,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities.CustomizeWorkshopEmployeeSettings.ShiftPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => { b1.Property("CustomizeWorkshopEmployeeSettingsid") .HasColumnType("bigint"); @@ -7427,7 +7637,7 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopEmployeeSettingsid"); - b1.ToTable("CustomizeWorkshopEmployeeSettings"); + b1.ToTable("CustomizeWorkshopEmployeeSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopEmployeeSettingsid"); @@ -7506,7 +7716,7 @@ namespace CompanyManagment.EFCore.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.CustomizeWorkshopGroupSettingsShifts#Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettingsShift", "CustomizeWorkshopGroupSettingsShifts", b1 => { b1.Property("id") .ValueGeneratedOnAdd() @@ -7543,7 +7753,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("CustomizeWorkshopGroupSettings"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.BaseYearsPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7566,13 +7776,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.BonusesPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7595,13 +7805,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.BreakTime#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BreakTime", "BreakTime", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7619,13 +7829,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => + b.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.CustomizeRotatingShifts#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.CustomizeRotatingShift", "CustomizeRotatingShifts", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7644,13 +7854,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid", "Id"); - b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts"); + b1.ToTable("CustomizeWorkshopGroupSettings_CustomizeRotatingShifts", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.EarlyExit#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7667,12 +7877,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.EarlyExit#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit.EarlyExitTimeFines#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => { b2.Property("CustomizeWorkshopGroupSettingsId") .HasColumnType("bigint"); @@ -7694,7 +7904,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines"); + b2.ToTable("CustomizeWorkshopGroupSettings_EarlyExitTimeFines", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsId"); @@ -7703,7 +7913,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("EarlyExitTimeFines"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.FamilyAllowance#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7720,13 +7930,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.FineAbsenceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7743,12 +7953,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.FineAbsenceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction.FineAbsenceDayOfWeekCollection#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => { b2.Property("CustomizeWorkshopGroupSettingsId") .HasColumnType("bigint"); @@ -7767,7 +7977,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection"); + b2.ToTable("CustomizeWorkshopGroupSettings_FineAbsenceDayOfWeekCollection", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsId"); @@ -7776,7 +7986,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("FineAbsenceDayOfWeekCollection"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.FridayPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7792,13 +8002,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.InsuranceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7815,13 +8025,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.IrregularShift#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.IrregularShift", "IrregularShift", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7839,13 +8049,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.LateToWork#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7862,12 +8072,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.LateToWork#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork.LateToWorkTimeFines#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => { b2.Property("CustomizeWorkshopGroupSettingsId") .HasColumnType("bigint"); @@ -7889,7 +8099,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopGroupSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines"); + b2.ToTable("CustomizeWorkshopGroupSettings_LateToWorkTimeFines", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsId"); @@ -7898,7 +8108,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("LateToWorkTimeFines"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.LeavePay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7915,13 +8125,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.MarriedAllowance#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7938,13 +8148,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.NightWorkPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7961,13 +8171,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.OverTimePay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -7984,13 +8194,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopGroupSettingsAgg.Entities.CustomizeWorkshopGroupSettings.ShiftPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => { b1.Property("CustomizeWorkshopGroupSettingsid") .HasColumnType("bigint"); @@ -8013,7 +8223,7 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopGroupSettingsid"); - b1.ToTable("CustomizeWorkshopGroupSettings"); + b1.ToTable("CustomizeWorkshopGroupSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopGroupSettingsid"); @@ -8092,7 +8302,7 @@ namespace CompanyManagment.EFCore.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => + b.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.CustomizeWorkshopSettingsShifts#Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettingsShift", "CustomizeWorkshopSettingsShifts", b1 => { b1.Property("id") .ValueGeneratedOnAdd() @@ -8129,7 +8339,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("CustomizeWorkshopSettings"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.BaseYearsPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BaseYearsPay", "BaseYearsPay", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8152,13 +8362,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.BonusesPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.BonusesPay", "BonusesPay", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8181,13 +8391,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.EarlyExit#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit", "EarlyExit", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8204,12 +8414,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.EarlyExit#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExit.EarlyExitTimeFines#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.EarlyExitTimeFine", "EarlyExitTimeFines", b2 => { b2.Property("CustomizeWorkshopSettingsId") .HasColumnType("bigint"); @@ -8231,7 +8441,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines"); + b2.ToTable("CustomizeWorkshopSettings_EarlyExitTimeFines", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsId"); @@ -8240,7 +8450,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("EarlyExitTimeFines"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.FamilyAllowance#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FamilyAllowance", "FamilyAllowance", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8257,13 +8467,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.FineAbsenceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction", "FineAbsenceDeduction", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8280,12 +8490,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.FineAbsenceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDeduction.FineAbsenceDayOfWeekCollection#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FineAbsenceDayOfWeek", "FineAbsenceDayOfWeekCollection", b2 => { b2.Property("CustomizeWorkshopSettingsId") .HasColumnType("bigint"); @@ -8304,7 +8514,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection"); + b2.ToTable("CustomizeWorkshopSettings_FineAbsenceDayOfWeekCollection", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsId"); @@ -8313,7 +8523,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("FineAbsenceDayOfWeekCollection"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.FridayPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.FridayPay", "FridayPay", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8329,13 +8539,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.InsuranceDeduction#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.InsuranceDeduction", "InsuranceDeduction", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8352,13 +8562,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.LateToWork#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork", "LateToWork", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8375,12 +8585,12 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); - b1.OwnsMany("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => + b1.OwnsMany("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.LateToWork#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWork.LateToWorkTimeFines#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LateToWorkTimeFine", "LateToWorkTimeFines", b2 => { b2.Property("CustomizeWorkshopSettingsId") .HasColumnType("bigint"); @@ -8402,7 +8612,7 @@ namespace CompanyManagment.EFCore.Migrations b2.HasKey("CustomizeWorkshopSettingsId", "Id"); - b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines"); + b2.ToTable("CustomizeWorkshopSettings_LateToWorkTimeFines", (string)null); b2.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsId"); @@ -8411,7 +8621,7 @@ namespace CompanyManagment.EFCore.Migrations b1.Navigation("LateToWorkTimeFines"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.LeavePay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.LeavePay", "LeavePay", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8428,13 +8638,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.MarriedAllowance#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.MarriedAllowance", "MarriedAllowance", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8451,13 +8661,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.NightWorkPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.NightWorkPay", "NightWorkPay", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8474,13 +8684,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.OverTimePay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.OverTimePay", "OverTimePay", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8497,13 +8707,13 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); }); - b.OwnsOne("_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => + b.OwnsOne("Company.Domain.CustomizeWorkshopSettingsAgg.Entities.CustomizeWorkshopSettings.ShiftPay#_0_Framework.Domain.CustomizeCheckoutShared.ValueObjects.ShiftPay", "ShiftPay", b1 => { b1.Property("CustomizeWorkshopSettingsid") .HasColumnType("bigint"); @@ -8526,7 +8736,7 @@ namespace CompanyManagment.EFCore.Migrations b1.HasKey("CustomizeWorkshopSettingsid"); - b1.ToTable("CustomizeWorkshopSettings"); + b1.ToTable("CustomizeWorkshopSettings", (string)null); b1.WithOwner() .HasForeignKey("CustomizeWorkshopSettingsid"); @@ -8663,7 +8873,7 @@ namespace CompanyManagment.EFCore.Migrations .WithMany("SelectedEmployeeDocumentItems") .HasForeignKey("EmployeeDocumentsAdminViewId"); - b.OwnsMany("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItemLog", "ItemLogs", b1 => + b.OwnsMany("Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItem.ItemLogs#Company.Domain.EmployeeDocumentItemAgg.EmployeeDocumentItemLog", "ItemLogs", b1 => { b1.Property("id") .ValueGeneratedOnAdd() @@ -9051,7 +9261,7 @@ namespace CompanyManagment.EFCore.Migrations modelBuilder.Entity("Company.Domain.LoanAgg.Entities.Loan", b => { - b.OwnsMany("Company.Domain.LoanAgg.Entities.LoanInstallment", "LoanInstallments", b1 => + b.OwnsMany("Company.Domain.LoanAgg.Entities.Loan.LoanInstallments#Company.Domain.LoanAgg.Entities.LoanInstallment", "LoanInstallments", b1 => { b1.Property("Id") .ValueGeneratedOnAdd() @@ -9085,7 +9295,7 @@ namespace CompanyManagment.EFCore.Migrations b1.HasIndex("LoanId"); - b1.ToTable("LoanInstallment"); + b1.ToTable("LoanInstallment", (string)null); b1.WithOwner() .HasForeignKey("LoanId"); diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index 07e18aeb..f74bdb41 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -12,6 +12,7 @@ using Company.Domain.CheckoutAgg; using Company.Domain.LeftWorkAgg; using Company.Domain.RollCallAgg; using Company.Domain.RollCallEmployeeAgg; +using Company.Domain.WorkshopEmployerAgg; using CompanyManagment.App.Contracts.Checkout; using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.Employee; @@ -30,6 +31,7 @@ using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using PersianTools.Core; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace CompanyManagment.EFCore.Repository; @@ -217,6 +219,14 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos checkout => checkout.ContractId, (contractWorkshopEmployeeleftWorkPersonnelCode, checkout) => new { contractWorkshopEmployeeleftWorkPersonnelCode, checkout }) + + .GroupJoin(_context.EmployeeComputeOptionsSet.Where(o => o.WorkshopId == workshopId), + x => x.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork.leftwork.EmployeeId, + option => option.EmployeeId, + (x, options) => new { x.checkout, x.contractWorkshopEmployeeleftWorkPersonnelCode, options }) + .SelectMany( + x => x.options.DefaultIfEmpty(), + (x, option) => new { x.checkout, x.contractWorkshopEmployeeleftWorkPersonnelCode, option }) .ToList(); Console.WriteLine("query : " + timer.Elapsed); timer.Reset(); @@ -234,7 +244,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos if (chekoutCreated != null) { - + return new CreateCheckoutListViewModel { Id = chekoutCreated.ContractId, @@ -249,7 +259,8 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos LaterThanEnd = false, Extension = false, Description = "دارای فیش حقوقی", - HasCheckout = true + HasCheckout = true, + EmployeeHasCreateCheckout = true }; } var employeeJoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork @@ -264,7 +275,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos bool extension = true; bool laterThanEnd = false; string description = ""; - string leftWorkDate=""; + string leftWorkDate = ""; string contractStart = ""; string contractEnd = ""; @@ -276,7 +287,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos if (hasRollCall) { - + // اگر ترک کار کرده بود // اگر ترک کارش در بازه انتخاب شده بود if (leftWork.HasLeft && leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) @@ -353,7 +364,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos else if (!leftWork.HasLeft && startSreach < currentStart) { - + if (contractStartGr <= startSreach && contractStartGr > endSearch) { @@ -401,7 +412,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos description = "به دلیل ترک کار پیش از تاریخ انتخاب شده مجاز به ایجاد فیش نمی باشید"; leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); } - else if(leftWork.LeftWorkDate > endSearch) + else if (leftWork.LeftWorkDate > endSearch) { extension = true; @@ -424,7 +435,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos else { extension = true; - + if (contractStartGr <= startSreach && contractStartGr > endSearch) { laterThanEnd = true; @@ -440,7 +451,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos contractEnd = endSearch.ToFarsi(); } } - + } #endregion @@ -469,10 +480,12 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos Description = description, ContractStart = contractStart, ContractEnd = contractEnd, - LeftWorkDate = leftWorkDate + LeftWorkDate = leftWorkDate, + EmployeeHasCreateCheckout = result.option != null ? result.option.CreateCheckout : result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork.contractWorkshopEmployee.contractWorkshop.workshop.CreateCheckout + }; - }).OrderByDescending(x=>x.Extension).ToList(); + }).Where(x => x.EmployeeHasCreateCheckout).OrderByDescending(x => x.Extension).ToList(); @@ -501,6 +514,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos entity.SetSalaryAid(command.SalaryAids, command.SalaryAidDeduction); entity.SetLoanInstallment(command.LoanInstallments, command.InstallmentDeduction); + entity.SetCheckoutRollCall(command.CheckoutRollCall); await _context.SaveChangesAsync(); } @@ -935,7 +949,33 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos SalaryAidDateTimeFa = s.SalaryAidDateTimeFa, SalaryAidDateTimeGe = s.SalaryAidDateTime }).ToList(), + CheckoutRollCall = x.CheckoutRollCall != null ? new CheckoutRollCallViewModel() + { + TotalPresentTimeSpan = x.CheckoutRollCall.TotalPresentTimeSpan, + TotalBreakTimeSpan = x.CheckoutRollCall.TotalBreakTimeSpan, + TotalWorkingTimeSpan = x.CheckoutRollCall.TotalWorkingTimeSpan, + TotalPaidLeaveTmeSpan = x.CheckoutRollCall.TotalPaidLeaveTmeSpan, + TotalMandatoryTimeSpan = x.CheckoutRollCall.TotalMandatoryTimeSpan, + TotalSickLeaveTimeSpan = x.CheckoutRollCall.TotalSickLeaveTimeSpan, + RollCallDaysCollection = x.CheckoutRollCall.RollCallDaysCollection.Select(d => new CheckoutRollCallDayViewModel() + { + WorkingTimeSpan = d.WorkingTimeSpan, + BreakTimeSpan = d.BreakTimeSpan, + IsSliced = d.IsSliced, + IsAbsent = d.IsAbsent, + IsFriday = d.IsFriday, + IsHoliday = d.IsHoliday, + LeaveType = d.LeaveType, + CheckoutId = d.CheckoutId, + Date = d.Date, + FirstEndDate = d.FirstEndDate, + FirstStartDate = d.FirstStartDate, + Id = d.Id, + SecondEndDate = d.SecondEndDate, + SecondStartDate = d.SecondStartDate + }).ToList() + } : null, }).SingleOrDefault(x => x.Id == item); var workshopName = _context.Workshops.FirstOrDefault(x => x.id == ch.WorkshopId); ch.WorkshopName = workshopName.WorkshopName; @@ -1058,7 +1098,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos }); var totalPaidLeaveTimeSpans = hourlyPaidLeaveTimeSpans.Concat(dailyPaidLeaveTimeSpans); - + ch.TotalHourlyLeave = new TimeSpan(hourlyPaidLeaveTimeSpans.Sum(x => x.Ticks)); ch.TotalPaidLeave = new TimeSpan(totalPaidLeaveTimeSpans.Sum(x => x.Ticks)).ToFarsiDaysAndHoursAndMinutes("-"); @@ -1072,17 +1112,51 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos ch.TotalDeductions = ""; ch.TotalPayment = ""; } - if (ch.HasRollCall) - ch.MonthlyRollCall = _rollCallRepository.GetEmployeeRollCallsForMonth(ch.EmployeeId, ch.WorkshopId, ch.ContractStartGr, ch.ContractEndGr); + + if (ch.CheckoutRollCall != null) + { + ch.TotalWorkingTimeStr = ch.CheckoutRollCall.TotalWorkingTimeSpan.ToFarsiHoursAndMinutes("-"); + ch.TotalBreakTimeStr = ch.CheckoutRollCall.TotalBreakTimeSpan.ToFarsiHoursAndMinutes("-"); + ch.TotalPresentTimeStr = ch.CheckoutRollCall.TotalPresentTimeSpan.ToFarsiHoursAndMinutes("-"); + ch.TotalMandatoryTimeStr = ch.CheckoutRollCall.TotalMandatoryTimeSpan.ToFarsiHoursAndMinutes("-"); + + ch.MonthlyRollCall = ch.CheckoutRollCall.RollCallDaysCollection + .Select(x => new CheckoutDailyRollCallViewModel + { + DayOfWeek = x.Date.DayOfWeek.DayOfWeeKToPersian(), + StartDate1 = x.FirstStartDate, + EndDate1 = x.FirstEndDate, + StartDate2 = x.SecondStartDate, + EndDate2 = x.SecondEndDate, + TotalhourseSpan = x.WorkingTimeSpan, + IsSliced = x.IsSliced, + BreakTimeTimeSpan = x.BreakTimeSpan, + LeaveType = x.LeaveType, + IsAbsent = x.IsAbsent, + IsFriday = x.IsFriday, + IsHoliday = x.IsHoliday, + DateTimeGr = x.Date, + TotalWorkingHours = $"{(int)(x.WorkingTimeSpan.TotalHours)}:{x.WorkingTimeSpan.Minutes:00}", + BreakTimeString = $"{(int)(x.BreakTimeSpan.TotalHours)}:{x.BreakTimeSpan.Minutes:00}", + RollCallDateFa = x.Date.ToFarsi() + }).ToList(); + + } else { - ch.CreateWorkingHoursTemp.ContractStartGr = ch.ContractStartGr; - ch.CreateWorkingHoursTemp.ContractEndGr = ch.ContractEndGr; - ch.CreateWorkingHoursTemp.ContarctStart = ch.ContractStartGr.ToFarsi(); - ch.CreateWorkingHoursTemp.ContractEnd = ch.ContractEndGr.ToFarsi(); - ch.CreateWorkingHoursTemp.EmployeeId = ch.EmployeeId; - ch.CreateWorkingHoursTemp.WorkshopId = ch.WorkshopId; - ch.MonthlyRollCall = ConvertStaticToRollCall(ch.CreateWorkingHoursTemp, workshopName.WorkshopHolidayWorking); + + if (ch.HasRollCall) + ch.MonthlyRollCall = _rollCallRepository.GetEmployeeRollCallsForMonth(ch.EmployeeId, ch.WorkshopId, ch.ContractStartGr, ch.ContractEndGr); + else + { + ch.CreateWorkingHoursTemp.ContractStartGr = ch.ContractStartGr; + ch.CreateWorkingHoursTemp.ContractEndGr = ch.ContractEndGr; + ch.CreateWorkingHoursTemp.ContarctStart = ch.ContractStartGr.ToFarsi(); + ch.CreateWorkingHoursTemp.ContractEnd = ch.ContractEndGr.ToFarsi(); + ch.CreateWorkingHoursTemp.EmployeeId = ch.EmployeeId; + ch.CreateWorkingHoursTemp.WorkshopId = ch.WorkshopId; + ch.MonthlyRollCall = ConvertStaticToRollCall(ch.CreateWorkingHoursTemp, workshopName.WorkshopHolidayWorking); + } } query.Add(ch); } @@ -1387,7 +1461,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos ch.TotalSickLeave = new TimeSpan(sickLeaveTimeSpans.Sum(x => x.Ticks)).ToFarsiDaysAndHoursAndMinutes("-"); - var hourlyPaidLeaveTimeSpans = hourlyPaidLeave.Select(x => TimeOnly.Parse(x.LeaveHourses).ToTimeSpan()); + var hourlyPaidLeaveTimeSpans = hourlyPaidLeave.Select(x => TimeOnly.Parse(x.LeaveHourses).ToTimeSpan()).ToList(); var dailyPaidLeaveTimeSpans = dailyPaidLeave.Select(x => { @@ -1397,7 +1471,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos }); var totalPaidLeaveTimeSpans = hourlyPaidLeaveTimeSpans.Concat(dailyPaidLeaveTimeSpans); - + ch.TotalHourlyLeave = new TimeSpan(hourlyPaidLeaveTimeSpans.Sum(x => x.Ticks)); ch.TotalPaidLeave = new TimeSpan(totalPaidLeaveTimeSpans.Sum(x => x.Ticks)).ToFarsiDaysAndHoursAndMinutes("-"); @@ -1526,7 +1600,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos StartDate2 = secondRollCall?.StartDate?.ToString("HH:mm") ?? "", EndDate2 = secondRCEndDate?.ToString("HH:mm") ?? "", - TotalhourseSpan = rollCallTimeSpanPerDay, + TotalhourseSpan = rollCallTimeSpanPerDay - breakTimePerDay, BreakTimeTimeSpan = breakTimePerDay, @@ -1849,9 +1923,478 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos return notRemoveList; } + public async Task> SearchCheckoutOptimized(CheckoutSearchModel searchModel) + { + bool hasSearch = false; + bool hasEmployeeOrWorkshpSearch = false; + + //bool noHasSearch = searchModel.WorkshopId == 0 && searchModel.EmployerId == 0 + // && searchModel.EmployeeId == 0 + // && string.IsNullOrWhiteSpace(searchModel.EmployeeName) + // && string.IsNullOrWhiteSpace(searchModel.Year) + // && string.IsNullOrWhiteSpace(searchModel.Month) + // && string.IsNullOrWhiteSpace(searchModel.ContractStart) + // && string.IsNullOrWhiteSpace(searchModel.ContractEnd) + // && string.IsNullOrWhiteSpace(searchModel.ContractNo); + var acountID = _authHelper.CurrentAccountId(); + var workshopAcounts = _context.WorkshopAccounts.Where(x => x.AccountId == acountID) + .Select(x => x.WorkshopId); + + //var checkouts = + // _context.CheckoutSet.Where(x => workshopAcounts.Contains(x.WorkshopId)) + // .Join(_context.Workshops.AsSplitQuery(), + // ch => ch.WorkshopId, + // workshop => workshop.id, + // (ch, workshop) => new { ch, workshop }) + // .GroupJoin(_context.EmployeeComputeOptionsSet.AsSplitQuery(), + // x => x.workshop.id, + // option => option.WorkshopId, + // (x, options) => new { x.ch, x.workshop, options }) + // .SelectMany( + // x => x.options.DefaultIfEmpty(), + // (x, option) => new { x.ch, x.workshop, option }) + // .GroupJoin(_context.WorkshopEmployers.AsSplitQuery().Include(we => we.Employer), + // result => result.workshop.id, + // workshopEmployer => workshopEmployer.WorkshopId, + // (result, workshopEmployer) => new { result.ch, result.workshop, result.option, workshopEmployer }) + // .SelectMany( + // y => y.workshopEmployer.DefaultIfEmpty(), + // (y, workshopEmployer) => new { y.option, y.ch, y.workshop, workshopEmployer }) + // .GroupJoin( + // _context.PersonalContractingParties.Include(p => p.Employers), + // secondResult => secondResult.workshopEmployer.Employer.id, + // contractingParty => contractingParty.Employers.FirstOrDefault().id, // یا راه بهتر پایین + // (secondResult, contractingParties) => new { secondResult, contractingParties } + // ) + // .SelectMany( + // x => x.contractingParties.DefaultIfEmpty(), + // (x, contractingParty) => new + // { + // x.secondResult.workshopEmployer, + // x.secondResult.workshop, + // x.secondResult.option, + // x.secondResult.ch, + // contractingParty + // } + // ); + + var checkouts = + _context.CheckoutSet.Where(x => workshopAcounts.Contains(x.WorkshopId)) + .Join(_context.Workshops.AsSplitQuery(), + ch => ch.WorkshopId, + workshop => workshop.id, + (ch, workshop) => new { ch, workshop }) + .GroupJoin(_context.EmployeeComputeOptionsSet.AsSplitQuery(), + x => x.workshop.id, + option => option.WorkshopId, + (x, options) => new { x.ch, x.workshop, options }) + .SelectMany( + x => x.options.DefaultIfEmpty(), + (x, option) => new { x.ch, x.workshop, option }) + .GroupJoin(_context.WorkshopEmployers.AsSplitQuery().Include(we => we.Employer), + result => result.workshop.id, + workshopEmployer => workshopEmployer.WorkshopId, + (result, workshopEmployer) => new { result.ch, result.workshop, result.option, workshopEmployer }) + .SelectMany( + y => y.workshopEmployer.DefaultIfEmpty(), + (y, workshopEmployer) => new { y.option, y.ch, y.workshop, workshopEmployer }) + .Select(x => new + { + x.ch, + x.workshop, + x.option, + x.workshopEmployer, + contractingParty = _context.PersonalContractingParties + .Include(p => p.Employers) + .FirstOrDefault(p => p.Employers.Any(e => e.id == x.workshopEmployer.Employer.id)) + }); + + #region SercheModel + + if (!string.IsNullOrWhiteSpace(searchModel.ContractNo) && searchModel.ContractId != 0) + checkouts = checkouts.Where(x => + x.ch.ContractNo == searchModel.ContractNo && x.ch.ContractId == searchModel.ContractId); + if (searchModel.WorkshopId != 0) + { + hasEmployeeOrWorkshpSearch = true; + checkouts = checkouts.Where(x => x.ch.WorkshopId == searchModel.WorkshopId); + } + if (searchModel.EmployeeId != 0) + { + hasEmployeeOrWorkshpSearch = true; + checkouts = checkouts.Where(x => x.ch.EmployeeId == searchModel.EmployeeId); + } + if (searchModel.EmployerId != 0) + { + hasEmployeeOrWorkshpSearch = true; + checkouts = checkouts.Where(x => x.contractingParty.Employers.Select(c => c.id).Contains(searchModel.EmployerId)); + } + + if (!string.IsNullOrWhiteSpace(searchModel.ContractNo)) + { + hasEmployeeOrWorkshpSearch = true; + checkouts = checkouts.Where(x => x.ch.ContractNo == searchModel.ContractNo); + } + + + + //if (searchModel.IsActiveString == null) + //{ + // checkouts = checkouts.Where(x => x.ch.IsActiveString == "true"); + //} + + //if (searchModel.IsActiveString == "false") + //{ + // checkouts = checkouts.Where(x => x.ch.IsActiveString == "false"); + //} + //else if (searchModel.IsActiveString == "both") + //{ + // checkouts = checkouts.Where(x => x.ch.IsActiveString == "false" || x.ch.IsActiveString == "true"); + //} + + + //سرچ سال + + if (!string.IsNullOrWhiteSpace(searchModel.Year) && string.IsNullOrWhiteSpace(searchModel.Month) && + (string.IsNullOrWhiteSpace(searchModel.ContractStart) || + string.IsNullOrWhiteSpace(searchModel.ContractEnd))) + { + hasSearch = true; + var startYear = searchModel.Year + "/01/01"; + var startyearGr = startYear.ToGeorgianDateTime(); + var endYear = $"{searchModel.Year}/12/01".FindeEndOfMonth(); + var endYearGr = endYear.ToGeorgianDateTime(); + + + checkouts = checkouts.Where(x => x.ch.ContractStart >= startyearGr && x.ch.ContractEnd <= endYearGr); + if (searchModel.WorkshopId > 0 || searchModel.EmployeeId > 0 || searchModel.EmployerId > 0) + checkouts = checkouts.OrderByDescending(x => x.ch.ContractEnd); + + } + else if (!string.IsNullOrWhiteSpace(searchModel.Year) && !string.IsNullOrWhiteSpace(searchModel.Month) && + string.IsNullOrWhiteSpace(searchModel.ContractStart) && + string.IsNullOrWhiteSpace(searchModel.ContractEnd)) + { + hasSearch = true; + //سرچ سال و ماه + string y1 = $"{searchModel.Year}/{searchModel.Month}/01"; + var startDate = y1.ToGeorgianDateTime(); + string y2 = string.Empty; + int month = Convert.ToInt32(searchModel.Month); + int year = Convert.ToInt32(searchModel.Year); + + if (month <= 6) + { + y2 = $"{searchModel.Year}/{searchModel.Month}/31"; + } + else if (month > 6 && month < 12) + { + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + } + else if (month == 12) + { + switch (year) + { + case 1346: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1350: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1354: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1358: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1362: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1366: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1370: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1375: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1379: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1383: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1387: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1391: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1395: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1399: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1403: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1408: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1412: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1416: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1420: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1424: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1428: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1432: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1436: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1441: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + case 1445: + y2 = $"{searchModel.Year}/{searchModel.Month}/30"; + break; + + default: + y2 = $"{searchModel.Year}/{searchModel.Month}/29"; + break; + } + } + + + var endDate = y2.ToGeorgianDateTime(); + + //checkouts = checkouts.Where(x => x.ContractEndGr >= start && x.ContractEndGr <= end).ToList(); + checkouts = checkouts.Where(x => + x.ch.ContractStart >= startDate && x.ch.ContractStart < endDate && x.ch.ContractEnd > startDate && + x.ch.ContractEnd <= endDate || + x.ch.ContractStart <= startDate && x.ch.ContractEnd >= endDate || + startDate <= x.ch.ContractStart && endDate > x.ch.ContractStart || + endDate >= x.ch.ContractEnd && startDate < x.ch.ContractEnd); + //if (searchModel.WorkshopId > 0 || searchModel.EmployeeId > 0 || searchModel.EmployerId > 0) + // checkouts = checkouts.OrderBy(x => x.ch.PersonnelCodeInt); + + } + else if (!string.IsNullOrWhiteSpace(searchModel.ContractStart) && + !string.IsNullOrWhiteSpace(searchModel.ContractEnd) && + string.IsNullOrWhiteSpace(searchModel.Year) && string.IsNullOrWhiteSpace(searchModel.Month)) + { + hasSearch = true; + //سرچ تاریخ + var start = searchModel.ContractStart.ToGeorgianDateTime(); + var endd = searchModel.ContractEnd.ToGeorgianDateTime(); + checkouts = checkouts.Where(x => + x.ch.ContractStart >= start && x.ch.ContractStart <= endd); + + //if (searchModel.WorkshopId > 0 || searchModel.EmployeeId > 0 || searchModel.EmployerId > 0) + // checkouts = checkouts.OrderByDescending(x => x.ch.ContractEnd).ThenBy(x => x.ch.PersonnelCodeInt); + } + + if (!string.IsNullOrEmpty(searchModel.EmployeeName)) + { + hasSearch = true; + var employeeList = _context.Employees.Where(x => (!string.IsNullOrEmpty(x.FName) && x.FName.StartsWith(searchModel.EmployeeName)) || + (!string.IsNullOrEmpty(x.LName) && x.LName.StartsWith(searchModel.EmployeeName))).Select(x => x.id).ToList(); + checkouts = checkouts.Where(x => employeeList.Contains(x.ch.EmployeeId)); + } + + + + #endregion + + + if (!hasSearch && !hasEmployeeOrWorkshpSearch) + { + + return checkouts.Select(x => new CheckoutViewModel() + { + + Id = x.ch.id, + EmployeeFullName = x.ch.EmployeeFullName, + ContractStart = x.ch.ContractStart.ToFarsi(), + ContractEnd = x.ch.ContractEnd.ToFarsi(), + ContractStartGr = x.ch.ContractStart, + ContractEndGr = x.ch.ContractEnd, + PersonnelCode = x.ch.PersonnelCode, + PersonnelCodeInt = Convert.ToInt32(x.ch.PersonnelCode), + ArchiveCode = x.workshop.ArchiveCode, + SumOfWorkingDays = x.ch.SumOfWorkingDays, + WorkshopName = x.workshop.WorkshopName, + Month = x.ch.Month, + Year = x.ch.Year, + ContractNo = x.ch.ContractNo, + ContractId = x.ch.ContractId, + WorkshopId = x.ch.WorkshopId, + EmployeeId = x.ch.EmployeeId, + EmployerId = x.workshopEmployer.EmployerId, + IsActiveString = x.ch.IsActiveString, + Signature = x.ch.Signature, + CreationDate = x.ch.CreationDate, + EmployerName = $"{x.workshopEmployer.Employer.FName} {x.workshopEmployer.Employer.LName}", + IsBlockCantracingParty = x.contractingParty.IsBlock, + HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout + + + }).OrderByDescending(x => x.Id) + .ThenByDescending(x => x.Year).ThenBy(x => x.PersonnelCodeInt).Take(50).ToList(); + } + else if (hasSearch && !hasEmployeeOrWorkshpSearch) + { + + var result = checkouts.Select(x => new CheckoutViewModel() + { + + Id = x.ch.id, + EmployeeFullName = x.ch.EmployeeFullName, + ContractStart = x.ch.ContractStart.ToFarsi(), + ContractEnd = x.ch.ContractEnd.ToFarsi(), + ContractStartGr = x.ch.ContractStart, + ContractEndGr = x.ch.ContractEnd, + PersonnelCode = x.ch.PersonnelCode, + PersonnelCodeInt = Convert.ToInt32(x.ch.PersonnelCode), + ArchiveCode = x.workshop.ArchiveCode, + SumOfWorkingDays = x.ch.SumOfWorkingDays, + WorkshopName = x.workshop.WorkshopName, + Month = x.ch.Month, + Year = x.ch.Year, + ContractNo = x.ch.ContractNo, + ContractId = x.ch.ContractId, + WorkshopId = x.ch.WorkshopId, + EmployeeId = x.ch.EmployeeId, + EmployerId = x.workshopEmployer.EmployerId, + IsActiveString = x.ch.IsActiveString, + Signature = x.ch.Signature, + CreationDate = x.ch.CreationDate, + EmployerName = $"{x.workshopEmployer.Employer.FName} {x.workshopEmployer.Employer.LName}", + IsBlockCantracingParty = x.contractingParty.IsBlock, + HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout + + }).OrderByDescending(x => x.Id) + .GroupBy(x => x.Id) + .Select(x => x.First()); + + + + if ((string.IsNullOrWhiteSpace(searchModel.ContractStart) || + string.IsNullOrWhiteSpace(searchModel.ContractEnd)) && string.IsNullOrWhiteSpace(searchModel.Month)) + { + //اگر فقط سال رو سرچ کرد + return result.Take(300) + .ToList() + .OrderByDescending(x => x.ContractStartGr).ToList(); + } + else if ((string.IsNullOrWhiteSpace(searchModel.ContractStart) || + string.IsNullOrWhiteSpace(searchModel.ContractEnd)) && !string.IsNullOrWhiteSpace(searchModel.Month) && !string.IsNullOrWhiteSpace(searchModel.Year)) + { + //اگر فقط سال و ماه رو سرچ کرد + return result.Take(300) + .ToList() + .OrderByDescending(x => x.ContractStartGr).ToList(); + } + else if (!string.IsNullOrWhiteSpace(searchModel.ContractStart) && + !string.IsNullOrWhiteSpace(searchModel.ContractEnd)) + { + //اگر فقط سال و ماه رو سرچ کرد + return result.Take(300) + .ToList() + .OrderByDescending(x => x.ContractStartGr).ToList(); + } + + return result.ToList().OrderByDescending(x => x.Id) + .ThenByDescending(x => x.Year).ThenBy(x => x.PersonnelCodeInt).ToList(); + + } + else if (hasEmployeeOrWorkshpSearch && !hasSearch) + { + + return checkouts.Select(x => new CheckoutViewModel() + { + + Id = x.ch.id, + EmployeeFullName = x.ch.EmployeeFullName, + ContractStart = x.ch.ContractStart.ToFarsi(), + ContractEnd = x.ch.ContractEnd.ToFarsi(), + ContractStartGr = x.ch.ContractStart, + ContractEndGr = x.ch.ContractEnd, + PersonnelCode = x.ch.PersonnelCode, + PersonnelCodeInt = Convert.ToInt32(x.ch.PersonnelCode), + ArchiveCode = x.workshop.ArchiveCode, + SumOfWorkingDays = x.ch.SumOfWorkingDays, + WorkshopName = x.workshop.WorkshopName, + Month = x.ch.Month, + Year = x.ch.Year, + ContractNo = x.ch.ContractNo, + ContractId = x.ch.ContractId, + WorkshopId = x.ch.WorkshopId, + EmployeeId = x.ch.EmployeeId, + EmployerId = x.workshopEmployer.EmployerId, + IsActiveString = x.ch.IsActiveString, + Signature = x.ch.Signature, + CreationDate = x.ch.CreationDate, + EmployerName = $"{x.workshopEmployer.Employer.FName} {x.workshopEmployer.Employer.LName}", + IsBlockCantracingParty = x.contractingParty.IsBlock, + HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout + + }).GroupBy(x => x.Id).Select(x => x.First()).ToList() + .OrderByDescending(x => x.ContractStartGr).ToList(); + } + else + { + return checkouts.Select(x => new CheckoutViewModel() + { + + Id = x.ch.id, + EmployeeFullName = x.ch.EmployeeFullName, + ContractStart = x.ch.ContractStart.ToFarsi(), + ContractEnd = x.ch.ContractEnd.ToFarsi(), + ContractStartGr = x.ch.ContractStart, + ContractEndGr = x.ch.ContractEnd, + PersonnelCode = x.ch.PersonnelCode, + PersonnelCodeInt = Convert.ToInt32(x.ch.PersonnelCode), + ArchiveCode = x.workshop.ArchiveCode, + SumOfWorkingDays = x.ch.SumOfWorkingDays, + WorkshopName = x.workshop.WorkshopName, + Month = x.ch.Month, + Year = x.ch.Year, + ContractNo = x.ch.ContractNo, + ContractId = x.ch.ContractId, + WorkshopId = x.ch.WorkshopId, + EmployeeId = x.ch.EmployeeId, + EmployerId = x.workshopEmployer.EmployerId, + IsActiveString = x.ch.IsActiveString, + Signature = x.ch.Signature, + CreationDate = x.ch.CreationDate, + EmployerName = $"{x.workshopEmployer.Employer.FName} {x.workshopEmployer.Employer.LName}", + IsBlockCantracingParty = x.contractingParty.IsBlock, + HasSignCheckout = x.option != null ? x.option.SignCheckout : x.workshop.SignCheckout + + }).GroupBy(x => x.Id) + .Select(x => x.First()).ToList() + .OrderByDescending(x => x.Id) + .ThenByDescending(x => x.Year).ThenBy(x => x.PersonnelCodeInt).ToList(); + } + + } public async Task> SearchForMainCheckout(CheckoutSearchModel searchModel) { + bool hasSearch = false; bool hasEmployeeOrWorkshpSearch = false; //List query = null; @@ -1868,11 +2411,12 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos var emp2 = _context.WorkshopEmployers.Where(x => x.EmployerId == searchModel.EmployerId) .Select(x => x.WorkshopId).ToList(); - var watch = System.Diagnostics.Stopwatch.StartNew(); + var query = _context.CheckoutSet.Select(x => new CheckoutViewModel() { + Id = x.id, EmployeeFullName = x.EmployeeFullName, //var start = ; @@ -1900,7 +2444,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos }); - Console.WriteLine("storedProc" + watch.Elapsed); + if (!string.IsNullOrWhiteSpace(searchModel.ContractNo) && searchModel.ContractId != 0) query = query.Where(x => diff --git a/CompanyManagment.EFCore/Repository/EmployeeComputeOptionsRepository.cs b/CompanyManagment.EFCore/Repository/EmployeeComputeOptionsRepository.cs index 759b4dc7..5a6e2234 100644 --- a/CompanyManagment.EFCore/Repository/EmployeeComputeOptionsRepository.cs +++ b/CompanyManagment.EFCore/Repository/EmployeeComputeOptionsRepository.cs @@ -30,8 +30,14 @@ public class EmployeeComputeOptionsRepository : RepositoryBase x.WorkshopId == workshopId && x.EmployeeId == employeeId); + }).FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId); if (result == null) { @@ -45,7 +51,13 @@ public class EmployeeComputeOptionsRepository : RepositoryBase, IIns private readonly IAuthHelper _authHelper; private readonly IPersonalContractingPartyApp _contractingPartyApp; private readonly IInsuranceYearlySalaryRepository _insuranceYearlySalaryRepository; - public InsuranceListRepository(CompanyContext context, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceListWorkshopRepository insuranceListWorkshopRepository , IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository, IAuthHelper authHelper, IPersonalContractingPartyApp contractingPartyApp, IInsuranceYearlySalaryRepository insuranceYearlySalaryRepository) : base(context) + private readonly IWebHostEnvironment _webHostEnvironment; + private readonly AccountContext _accountContext; + + public InsuranceListRepository(CompanyContext context, IEmployeeInsurancListDataRepository employeeInsurancListDataRepository, IInsuranceListWorkshopRepository insuranceListWorkshopRepository, IInsuranceWorkshopInfoRepository insuranceWorkshopInfoRepository, IAuthHelper authHelper, IPersonalContractingPartyApp contractingPartyApp, IInsuranceYearlySalaryRepository insuranceYearlySalaryRepository, IWebHostEnvironment webHostEnvironment, AccountContext accountContext) : base(context) { _context = context; _employeeInsurancListDataRepository = employeeInsurancListDataRepository; @@ -41,20 +49,22 @@ public class InsuranceListRepository : RepositoryBase, IIns _authHelper = authHelper; _contractingPartyApp = contractingPartyApp; _insuranceYearlySalaryRepository = insuranceYearlySalaryRepository; + _webHostEnvironment = webHostEnvironment; + _accountContext = accountContext; } public OperationResult CreateInsuranceListworkshop(long id, List workshopIds) { var operation = new OperationResult(); //try //{ - var list= new List(); + var list = new List(); foreach (var item in workshopIds) { list.Add(new InsuranceListWorkshop() { - WorkshopId =item, - InsurancListId= id + WorkshopId = item, + InsurancListId = id }); } @@ -76,11 +86,11 @@ public class InsuranceListRepository : RepositoryBase, IIns public OperationResult CreateInsuranceListworkshopInfo(CreateInsuranceWorkshopInfo command) { var operation = new OperationResult(); - - var obj = _context.InsuranceWorkshopInformationSet.Where(x=>x.WorkshopId== command.WorkshopId).FirstOrDefault(); + + var obj = _context.InsuranceWorkshopInformationSet.Where(x => x.WorkshopId == command.WorkshopId).FirstOrDefault(); if (obj != null) { - obj.Edit(command.WorkshopName, command.InsuranceCode, command.AgreementNumber, command.EmployerName, command.Address,command.ListNumber); + obj.Edit(command.WorkshopName, command.InsuranceCode, command.AgreementNumber, command.EmployerName, command.Address, command.ListNumber); _context.SaveChanges(); } else @@ -91,7 +101,7 @@ public class InsuranceListRepository : RepositoryBase, IIns _context.SaveChanges(); } - + return operation; } @@ -103,9 +113,9 @@ public class InsuranceListRepository : RepositoryBase, IIns try { var insuranceListObj = Get(command.Id); - insuranceListObj.Edit(command.SumOfEmployees,command.SumOfWorkingDays,command.SumOfSalaries,command.SumOfBenefitsIncluded,command.Included,command.IncludedAndNotIncluded,command.InsuredShare, - command.EmployerShare,command.UnEmploymentInsurance,command.DifficultJobsInsuranc,command.StartDate,command.SumOfDailyWage,command.SumOfBaseYears,command.SumOfMarriedAllowance, command.ConfirmSentlist); - + insuranceListObj.Edit(command.SumOfEmployees, command.SumOfWorkingDays, command.SumOfSalaries, command.SumOfBenefitsIncluded, command.Included, command.IncludedAndNotIncluded, command.InsuredShare, + command.EmployerShare, command.UnEmploymentInsurance, command.DifficultJobsInsuranc, command.StartDate, command.SumOfDailyWage, command.SumOfBaseYears, command.SumOfMarriedAllowance, command.ConfirmSentlist); + var id = insuranceListObj.id; if (command.EmployeeInsurancListDataList != null && command.EmployeeInsurancListDataList.Count > 0) { @@ -121,14 +131,14 @@ public class InsuranceListRepository : RepositoryBase, IIns item.BenefitsIncludedContinuous, item.BenefitsIncludedNonContinuous, item.InsuranceShare, item.StartWorkDate, - item.LeftWorkDate, item.JobId,item.IncludeStatus,item.BaseYears,item.MarriedAllowance,item.OverTimePay,item.FamilyAllowance); + item.LeftWorkDate, item.JobId, item.IncludeStatus, item.BaseYears, item.MarriedAllowance, item.OverTimePay, item.FamilyAllowance); _employeeInsurancListDataRepository.Create(employeeInsurancListData); } else { var employeeInsurancListDataObj = _employeeInsurancListDataRepository.Get(item.EmployeeInsurancListDataId); - employeeInsurancListDataObj.Edit(item.WorkingDays,item.DailyWage,item.MonthlySalary,item.MonthlyBenefits,item .MonthlyBenefitsIncluded,item.BenefitsIncludedContinuous, - item.BenefitsIncludedNonContinuous,item.InsuranceShare,item.StartWorkDate,item.LeftWorkDate,item.JobId,item.IncludeStatus,item.BaseYears,item.MarriedAllowance,item.OverTimePay,item.FamilyAllowance); + employeeInsurancListDataObj.Edit(item.WorkingDays, item.DailyWage, item.MonthlySalary, item.MonthlyBenefits, item.MonthlyBenefitsIncluded, item.BenefitsIncludedContinuous, + item.BenefitsIncludedNonContinuous, item.InsuranceShare, item.StartWorkDate, item.LeftWorkDate, item.JobId, item.IncludeStatus, item.BaseYears, item.MarriedAllowance, item.OverTimePay, item.FamilyAllowance); } } _employeeInsurancListDataRepository.SaveChanges(); @@ -210,7 +220,7 @@ public class InsuranceListRepository : RepositoryBase, IIns // نام کارفرما EmployerName = x.EmployerName, //آدرس کارگاه - Address = x.Address, + Address = x.Address, ListNumber = x.ListNumber, }).FirstOrDefault(); #endregion @@ -234,7 +244,7 @@ public class InsuranceListRepository : RepositoryBase, IIns //مزایای ماهانه employeeInsurancListData.MonthlyBenefits = item.MonthlyBenefits; //دستمزد و مزایای ماهانه مشمول - employeeInsurancListData.MonthlyBenefitsIncluded =item.MonthlyBenefitsIncluded; + employeeInsurancListData.MonthlyBenefitsIncluded = item.MonthlyBenefitsIncluded; // مزایای مشمول و غیر مشمول employeeInsurancListData.BenefitsIncludedContinuous = item.BenefitsIncludedContinuous; //مزایای مشمول غیر مستمر @@ -252,8 +262,8 @@ public class InsuranceListRepository : RepositoryBase, IIns employeeInsurancListData.JobName = job != null ? job.JobName : string.Empty; ; employeeInsurancListData.JobCode = job != null ? job.JobCode : string.Empty; ; employeeInsurancListData.StrStartWorkDate = item.StartWorkDate.ToFarsi(); - - if(item.LeftWorkDate!=null) + + if (item.LeftWorkDate != null) employeeInsurancListData.StrLeftWorkDate = item.LeftWorkDate.ToFarsi(); @@ -266,7 +276,7 @@ public class InsuranceListRepository : RepositoryBase, IIns #endregion #region WorkshopIds - var workshopIds = _context.InsuranceListWorkshopSet.Where(x=>x.InsurancListId==id).Select(x => x.WorkshopId).ToList(); + var workshopIds = _context.InsuranceListWorkshopSet.Where(x => x.InsurancListId == id).Select(x => x.WorkshopId).ToList(); #endregion #region InsuranceEmployeeInformation @@ -286,7 +296,7 @@ public class InsuranceListRepository : RepositoryBase, IIns employeeDetails.DateOfBirthGr = item.DateOfBirth; employeeDetails.DateOfIssueGr = item.DateOfIssue; employeeDetails.DateOfBirth = item.DateOfBirth.ToFarsi(); - employeeDetails.DateOfIssue = ((item.DateOfIssue.ToFarsi())=="1300/10/11")?"": item.DateOfIssue.ToFarsi(); + employeeDetails.DateOfIssue = ((item.DateOfIssue.ToFarsi()) == "1300/10/11") ? "" : item.DateOfIssue.ToFarsi(); employeeDetails.PlaceOfIssue = item.PlaceOfIssue; employeeDetails.NationalCode = item.NationalCode; //employeeDetails.Nationality = item.Nationality; @@ -329,7 +339,7 @@ public class InsuranceListRepository : RepositoryBase, IIns public List OptimizedSearch(InsuranceListSearchModel searchModel) { - + var acountId = _authHelper.CurrentAccountId(); var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountId).Select(x => x.WorkshopId); @@ -380,7 +390,7 @@ public class InsuranceListRepository : RepositoryBase, IIns result => result.workshop.id, employer => employer.WorkshopId, (result, employer) => new { result.insurance, result.workshop, employer }) - .Select(result => new InsuranceListViewModel + .Select(result => new InsuranceListViewModel { Id = result.insurance.id, Year = result.insurance.Year, @@ -402,9 +412,28 @@ public class InsuranceListRepository : RepositoryBase, IIns .Where(p => p.Employers.Any(e => e.id == result.employer.First().EmployerId)) .Select(p => p.IsBlock) .FirstOrDefault(), - EmployerId = result.employer.First().EmployerId - }); + EmployerId = result.employer.First().EmployerId, + DebtDone = result.insurance.Debt.IsDone, + EmployerApproved = result.insurance.EmployerApproval.IsDone, + InspectionDone = result.insurance.Inspection.IsDone, + EmployerApprovalStatus = result.insurance.EmployerApproval.Status + }); + query = searchModel.Status switch + { + InsuranceListSearchStatus.NotStarted => query.Where(x => + !x.DebtDone && !x.EmployerApproved && !x.InspectionDone && !x.ConfirmSentlist), + + InsuranceListSearchStatus.InProgress => query.Where(x => + (x.DebtDone || x.EmployerApproved || x.InspectionDone)&& !(x.DebtDone && x.EmployerApproved && x.InspectionDone) && !x.ConfirmSentlist), + + InsuranceListSearchStatus.ReadyToSendList => query.Where(x => + x.DebtDone && x.EmployerApproved && x.InspectionDone && !x.ConfirmSentlist), + + InsuranceListSearchStatus.Done => query.Where(x => x.ConfirmSentlist), + + _ => query + }; if (!string.IsNullOrEmpty(searchModel.Year) && searchModel.Year != "0" && !string.IsNullOrEmpty(searchModel.Month) && searchModel.Month != "0") query = query.Where(x => x.Year == searchModel.Year && x.Month == searchModel.Month).OrderByDescending(x => x.Id); @@ -456,7 +485,7 @@ public class InsuranceListRepository : RepositoryBase, IIns //var testquery = query.Where(x => x.Year == searchModel.Year).AsEnumerable(); - return query.ToList(); + return query.Skip(searchModel.PageIndex).Take(30).ToList(); } public List Search(InsuranceListSearchModel searchModel) { @@ -465,9 +494,9 @@ public class InsuranceListRepository : RepositoryBase, IIns var acountID = _authHelper.CurrentAccountId(); var workshopIds = _context.WorkshopAccounts.Where(x => x.AccountId == acountID).Select(x => x.WorkshopId).ToList(); List list = new List(); - var query = _context.InsuranceListSet.Where(x=> workshopIds.Contains(x.WorkshopId)).ToList(); + var query = _context.InsuranceListSet.Where(x => workshopIds.Contains(x.WorkshopId)).ToList(); var insuranceWorkshopInformationList = _context.InsuranceWorkshopInformationSet.Where(u => workshopIds.Contains(u.WorkshopId)); - var workshopList = _context.Workshops.Where(u => workshopIds.Contains(u.id)); + var workshopList = _context.Workshops.Where(u => workshopIds.Contains(u.id)); foreach (var item in query) { @@ -475,7 +504,7 @@ public class InsuranceListRepository : RepositoryBase, IIns var workshop = workshopList.FirstOrDefault(u => u.id == item.WorkshopId); var employerId = _context.WorkshopEmployers.Where(x => x.WorkshopId == item.WorkshopId) .Select(x => x.EmployerId).FirstOrDefault(); - + string typeOfInsuranceSend = ""; if (workshop.TypeOfInsuranceSend == "NormalList") { @@ -489,20 +518,20 @@ public class InsuranceListRepository : RepositoryBase, IIns { typeOfInsuranceSend = "خانوادگی"; } - - var insuranceListViewModel =new InsuranceListViewModel() + + var insuranceListViewModel = new InsuranceListViewModel() { Id = item.id, Year = item.Year, Month = item.Month, MonthNumber = item.Month, - WorkShopCode = insuranceWorkshopInformation==null? workshop.InsuranceCode: insuranceWorkshopInformation.InsuranceCode, + WorkShopCode = insuranceWorkshopInformation == null ? workshop.InsuranceCode : insuranceWorkshopInformation.InsuranceCode, WorkShopName = insuranceWorkshopInformation == null ? workshop.WorkshopName : insuranceWorkshopInformation.WorkshopName, - WorkShopId = workshop.id , + WorkShopId = workshop.id, TypeOfInsuranceSend = typeOfInsuranceSend, FixedSalary = workshop.FixedSalary, - StrFixedSalary = workshop.FixedSalary?"دارد":"ندارد", - EmployerName = insuranceWorkshopInformation == null? workshop.WorkshopFullName: insuranceWorkshopInformation.EmployerName, + StrFixedSalary = workshop.FixedSalary ? "دارد" : "ندارد", + EmployerName = insuranceWorkshopInformation == null ? workshop.WorkshopFullName : insuranceWorkshopInformation.EmployerName, Branch = "", City = "", ConfirmSentlist = item.ConfirmSentlist, @@ -530,7 +559,7 @@ public class InsuranceListRepository : RepositoryBase, IIns list = list.Where(x => x.WorkShopCode == searchModel.WorkShopCode).OrderByDescending(x => x.Year).OrderByDescending(x => x.Month).ThenByDescending(x => x.EmployerName).ToList(); if (!string.IsNullOrEmpty(searchModel.WorkShopName)) - list = list.Where(x => x.WorkShopName.Contains(searchModel.WorkShopName) ).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.Year).OrderByDescending(x => x.Month).ToList(); + list = list.Where(x => x.WorkShopName.Contains(searchModel.WorkShopName)).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.Year).OrderByDescending(x => x.Month).ToList(); if (searchModel.WorkshopId > 0) @@ -553,7 +582,7 @@ public class InsuranceListRepository : RepositoryBase, IIns list = list.Where(x => x.EmployerName.Contains(searchModel.EmployerName)).OrderByDescending(x => x.EmployerName).ThenByDescending(x => x.Year).OrderByDescending(x => x.Month).ToList(); - if (searchModel.FixedSalary!=null) + if (searchModel.FixedSalary != null) list = list.Where(x => x.FixedSalary == searchModel.FixedSalary).ToList(); if (!string.IsNullOrEmpty(searchModel.TypeOfInsuranceSend) && searchModel.TypeOfInsuranceSend != "0") @@ -574,7 +603,7 @@ public class InsuranceListRepository : RepositoryBase, IIns OperationResult result = new OperationResult(); using (var transaction = _context.Database.BeginTransaction()) { - + try { //var employeeInsurancList= _context.EmployeeInsurancListDataSet.Where(x => x.InsuranceListId == id).ToList(); @@ -584,10 +613,10 @@ public class InsuranceListRepository : RepositoryBase, IIns //var insuranceListWorkshopList = _context.InsuranceListWorkshopSet.Where(x => x.InsurancListId == id).ToList(); //if (insuranceListWorkshopList != null && insuranceListWorkshopList.Count > 0) _insuranceListWorkshopRepository.RemoveRange(id); - + var insuranceListObj = _context.InsuranceListSet.Where(x => x.id == id).FirstOrDefault(); - if(insuranceListObj!=null) + if (insuranceListObj != null) Remove(insuranceListObj); SaveChanges(); @@ -606,11 +635,11 @@ public class InsuranceListRepository : RepositoryBase, IIns return result; } - /// - /// ایجاد لیست بیمه - /// - /// - /// + /// + /// ایجاد لیست بیمه + /// + /// + /// public OperationResult CreateInsuranceList(CreateInsuranceList command) { OperationResult result = new OperationResult(); @@ -625,7 +654,7 @@ public class InsuranceListRepository : RepositoryBase, IIns command.InsuredShare, command.EmployerShare, command.UnEmploymentInsurance, command.DifficultJobsInsuranc, command.StartDate, - command.EndDate, command.SumOfDailyWage,command.SumOfBaseYears,command.SumOfMarriedAllowance); + command.EndDate, command.SumOfDailyWage, command.SumOfBaseYears, command.SumOfMarriedAllowance); Create(insuranceListObj); SaveChanges(); var id = insuranceListObj.id; @@ -641,10 +670,11 @@ public class InsuranceListRepository : RepositoryBase, IIns item.BenefitsIncludedContinuous, item.BenefitsIncludedNonContinuous, item.InsuranceShare, item.StartWorkDate, - item.LeftWorkDate, item.JobId,item.IncludeStatus,item.BaseYears,item.MarriedAllowance,item.OverTimePay,item.FamilyAllowance); + item.LeftWorkDate, item.JobId, item.IncludeStatus, item.BaseYears, item.MarriedAllowance, item.OverTimePay, item.FamilyAllowance); _employeeInsurancListDataRepository.Create(employeeInsurancListData); - - }_employeeInsurancListDataRepository.SaveChanges(); + + } + _employeeInsurancListDataRepository.SaveChanges(); } if (command.WorkshopIds != null && command.WorkshopIds.Count > 0) @@ -831,10 +861,10 @@ public class InsuranceListRepository : RepositoryBase, IIns editInsuranceList.WorkshopIds = workshopIds; return editInsuranceList; - + } - public MainEmployeeDetailsViewModel SearchEmployeeListForEditByInsuranceListId(EmployeeForEditInsuranceListSearchModel searchModel ) + public MainEmployeeDetailsViewModel SearchEmployeeListForEditByInsuranceListId(EmployeeForEditInsuranceListSearchModel searchModel) { var employeeDetailsViewModel = new MainEmployeeDetailsViewModel(); @@ -845,7 +875,7 @@ public class InsuranceListRepository : RepositoryBase, IIns { var leftWorkInsurance = _context.LeftWorkInsuranceList .Where(i => i.EmployeeId == item.EmployeeId && i.WorkshopId == searchModel.WorkshopId) - .AsNoTracking().OrderByDescending(x=>x.id).FirstOrDefault(); + .AsNoTracking().OrderByDescending(x => x.id).FirstOrDefault(); var job = _context.Jobs.Where(i => i.id == item.JobId).AsNoTracking().FirstOrDefault(); var employeeInsurancListData = new EmployeeInsurancListDataViewModel(); employeeInsurancListData.EmployeeInsurancListDataId = item.id; @@ -866,7 +896,7 @@ public class InsuranceListRepository : RepositoryBase, IIns //// مزایای ماهیانه مشمول employeeInsurancListData.BenefitsIncludedNonContinuous = item.BenefitsIncludedNonContinuous; //// حقوق و مزایای ماهیانه مشمول و غیر مشمول ** - employeeInsurancListData.IncludedAndNotIncluded = item.BenefitsIncludedContinuous; + employeeInsurancListData.IncludedAndNotIncluded = item.BenefitsIncludedContinuous; employeeInsurancListData.BaseYears = item.BaseYears; employeeInsurancListData.MarriedAllowance = item.MarriedAllowance; @@ -875,7 +905,7 @@ public class InsuranceListRepository : RepositoryBase, IIns //سهم بیمه حق کارگر employeeInsurancListData.InsuranceShare = item.InsuranceShare; // تاریخ شروع به کار - employeeInsurancListData.StartWorkDate =item.StartWorkDate; + employeeInsurancListData.StartWorkDate = item.StartWorkDate; //تاریخ ترک کار employeeInsurancListData.LeftWorkDate = item.LeftWorkDate; // آی دی شغل @@ -883,7 +913,7 @@ public class InsuranceListRepository : RepositoryBase, IIns employeeInsurancListData.JobName = job != null ? job.JobName : string.Empty; employeeInsurancListData.JobCode = job != null ? job.JobCode : string.Empty; employeeInsurancListData.StrStartWorkDate = item.StartWorkDate.ToFarsi(); - + if (item.LeftWorkDate != null) employeeInsurancListData.StrLeftWorkDate = item.LeftWorkDate.ToFarsi(); @@ -893,7 +923,7 @@ public class InsuranceListRepository : RepositoryBase, IIns //ممکن است کسی شامل مزایا باشد و در آن ماه برایش یا مزد روزانه رد نشده باشد // باید با یک فیلد چک شود // - if (leftWorkInsurance != null && ((leftWorkInsurance.IncludeStatus!=leftWorkInsurance.IncludeStatus ) || ((leftWorkInsurance.LeftWorkDate!=item.LeftWorkDate)||(leftWorkInsurance.StartWorkDate != item.StartWorkDate ) ||(leftWorkInsurance.JobId != item.JobId)))) + if (leftWorkInsurance != null && ((leftWorkInsurance.IncludeStatus != leftWorkInsurance.IncludeStatus) || ((leftWorkInsurance.LeftWorkDate != item.LeftWorkDate) || (leftWorkInsurance.StartWorkDate != item.StartWorkDate) || (leftWorkInsurance.JobId != item.JobId)))) { employeeInsurancListData.HasConfilictLeftWork = true; if (leftWorkInsurance.LeftWorkDate != null) @@ -924,7 +954,7 @@ public class InsuranceListRepository : RepositoryBase, IIns var employeeDetailsForInsuranceList = new List(); foreach (var item in insuranceEmployeeInformationList) { - var employeeObject = _context.Employees.Where(x=>x.id==item.EmployeeId)?.FirstOrDefault(); + var employeeObject = _context.Employees.Where(x => x.id == item.EmployeeId)?.FirstOrDefault(); var employeeInsurancListData = employeeInsurancListDataViewModelList.Where(x => x.EmployeeId == item.EmployeeId)?.FirstOrDefault(); var employeeDetails = new EmployeeDetailsForInsuranceListViewModel(); employeeDetails.EmployeeId = item.EmployeeId; @@ -993,13 +1023,13 @@ public class InsuranceListRepository : RepositoryBase, IIns public OperationResult ConfirmInsuranceList(long id) { OperationResult result = new OperationResult(); - + try { var insuranceListObj = Get(id); insuranceListObj.Edit(insuranceListObj.SumOfEmployees, insuranceListObj.SumOfWorkingDays, insuranceListObj.SumOfSalaries, insuranceListObj.SumOfBenefitsIncluded, insuranceListObj.Included, insuranceListObj.IncludedAndNotIncluded, insuranceListObj.InsuredShare, - insuranceListObj.EmployerShare, insuranceListObj.UnEmploymentInsurance, insuranceListObj.DifficultJobsInsuranc, insuranceListObj.StartDate, insuranceListObj.SumOfDailyWage,insuranceListObj.SumOfBaseYears,insuranceListObj.SumOfMarriedAllowance,true); + insuranceListObj.EmployerShare, insuranceListObj.UnEmploymentInsurance, insuranceListObj.DifficultJobsInsuranc, insuranceListObj.StartDate, insuranceListObj.SumOfDailyWage, insuranceListObj.SumOfBaseYears, insuranceListObj.SumOfMarriedAllowance, true); SaveChanges(); @@ -1009,9 +1039,9 @@ public class InsuranceListRepository : RepositoryBase, IIns { result.Message = "تایید ارسال لیست بیمه با موفقیت انجام شد"; - + } - + return result; } @@ -1020,7 +1050,7 @@ public class InsuranceListRepository : RepositoryBase, IIns { var insuranceListViewModel = new InsuranceListViewModel(); - var insuranceList = _context.InsuranceListSet.Where(x => x.WorkshopId == workshopId && x.Year == year).OrderByDescending(x=>x.id)?.FirstOrDefault(); + var insuranceList = _context.InsuranceListSet.Where(x => x.WorkshopId == workshopId && x.Year == year).OrderByDescending(x => x.id)?.FirstOrDefault(); if (insuranceList != null) { @@ -1031,7 +1061,7 @@ public class InsuranceListRepository : RepositoryBase, IIns insuranceListViewModel.WorkShopId = insuranceList.WorkshopId; insuranceListViewModel.ConfirmSentlist = insuranceList.ConfirmSentlist; } - return insuranceListViewModel; + return insuranceListViewModel; } #region client @@ -1113,11 +1143,46 @@ public class InsuranceListRepository : RepositoryBase, IIns default: return query.OrderByDescending(x => x.Id).Skip(searchModel.PageIndex).ToList(); } } + + public async Task GetInsuranceOperationDetails(long id) + { + var res = await _context.InsuranceListSet.Select(x => new InsuranceListConfirmOperation() + { + InsuranceListId = x.id, + Approval = new CreateInsuranceListApproval() + { + ApprovalStatus = x.EmployerApproval.Status, + Description = x.EmployerApproval.Description, + }, + Debt = new CreateInsuranceListDebt() + { + Amount = x.Debt.Amount.ToMoney(), + DebtDate = x.Debt.DebtDate.ToFarsi(), + DebtFileMediaId = x.Debt.MediaId, + Type = x.Debt.Type + }, + Inspection = new CreateInsuranceListInspection() + { + Type = x.Inspection.Type, + InspectionFileMediaId = x.Inspection.MediaId, + LastInspectionDate = x.Inspection.LastInspectionDateTime.ToFarsi() + }, + ConfirmSentList = x.ConfirmSentlist, + }).FirstOrDefaultAsync(x => x.InsuranceListId == id); + + res.Inspection.FilePath = GetInsuranceListFilePath(res.Inspection.InspectionFileMediaId); + res.Debt.FilePath = GetInsuranceListFilePath(res.Debt.DebtFileMediaId); + return res; + } + + + + public List SearchForClientOld(InsuranceListSearchModel searchModel) { List list = new List(); - var query = _context.InsuranceListSet.Where(x=>x.WorkshopId== searchModel.WorkshopId).ToList(); + var query = _context.InsuranceListSet.Where(x => x.WorkshopId == searchModel.WorkshopId).ToList(); foreach (var item in query) { var insuranceWorkshopInformation = _context.InsuranceWorkshopInformationSet.FirstOrDefault(u => u.WorkshopId == item.WorkshopId); @@ -1194,16 +1259,16 @@ public class InsuranceListRepository : RepositoryBase, IIns #endregion - public (int insuranceHistoryYearsCount, double baseYear) GetEmployeeInsuranceBaseYear(long employeeId, long workshopId, int countWorkingDay,DateTime listStartDate, DateTime listEndDate, DateTime startWorkDate, DateTime leftDate, bool hasLeft) + public (int insuranceHistoryYearsCount, double baseYear) GetEmployeeInsuranceBaseYear(long employeeId, long workshopId, int countWorkingDay, DateTime listStartDate, DateTime listEndDate, DateTime startWorkDate, DateTime leftDate, bool hasLeft) { - - + + var lefts = _context.LeftWorkInsuranceList - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x=> new + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x => new { - startWork = x.StartWorkDate, - leftWork = x.LeftWorkDate == null ? listStartDate : x.LeftWorkDate.Value, - }).OrderBy(x=>x.startWork).ToList(); + startWork = x.StartWorkDate, + leftWork = x.LeftWorkDate == null ? listStartDate : x.LeftWorkDate.Value, + }).OrderBy(x => x.startWork).ToList(); int countDay = 0; foreach (var left in lefts) { @@ -1212,12 +1277,12 @@ public class InsuranceListRepository : RepositoryBase, IIns //شمارش فقط تا روز قبل از شروع لیست انجام شود if (left.leftWork >= listStartDate) { - var endBeforStartList = new DateTime(listStartDate.Year, listStartDate.Month, listStartDate.Day); - end = endBeforStartList.AddDays(-1).ToPersianDateTime(); - } - - - var count = (int)(end - start).TotalDays +1; + var endBeforStartList = new DateTime(listStartDate.Year, listStartDate.Month, listStartDate.Day); + end = endBeforStartList.AddDays(-1).ToPersianDateTime(); + } + + + var count = (int)(end - start).TotalDays + 1; countDay += count; } @@ -1226,12 +1291,12 @@ public class InsuranceListRepository : RepositoryBase, IIns //تعداد سال های سابقه بیمه int yearsCount = countDay / 365; - + //بدست آوردن مزد سنوات بر اساس سابقه به سال var baseYear = _insuranceYearlySalaryRepository.GetBaseYearByDate(listStartDate, yearsCount); - if(baseYear == 0) + if (baseYear == 0) return (0, 0); - + //اگر ترک کار کرده بود //یا @@ -1250,7 +1315,7 @@ public class InsuranceListRepository : RepositoryBase, IIns //} - + return (yearsCount, baseYear); } @@ -1278,109 +1343,109 @@ public class InsuranceListRepository : RepositoryBase, IIns public List GetEmployeeInsuranceDataForEdit(long insuranceListId, DateTime startDate, DateTime endDate) { - - var res = _context.EmployeeInsurancListDataSet - .Where(x => x.InsuranceListId == insuranceListId) - .Join(_context.LeftWorkInsuranceList - .Where(x => - ((x.LeftWorkDate != null && x.LeftWorkDate != DateTime.MinValue) && - ((DateTime)x.LeftWorkDate >= startDate && - (DateTime)x.LeftWorkDate <= endDate)) || - ((x.LeftWorkDate != null && x.LeftWorkDate != DateTime.MinValue) && - (DateTime)x.LeftWorkDate >= endDate) || - (x.LeftWorkDate == null || x.LeftWorkDate == DateTime.MinValue)) - .Where(x => x.StartWorkDate <= endDate) - .Include(x => x.Employee), - employeeData => employeeData.EmployeeId, - leftwork => leftwork.EmployeeId, - (employeeData, leftwork) => new { employeeData, leftwork }) - .Join(_context.Jobs, - result => result.leftwork.JobId, - job => job.id, - (result, job) => new { result, job }) - .GroupJoin(_context.InsuranceEmployeeInformationSet.AsSplitQuery(), - allResult => allResult.result.employeeData.EmployeeId, - employeeInfo => employeeInfo.EmployeeId, - (allResult, employeeInfo) => new - { - allResult.result, - allResult.job, - employeeInfo - }) - .SelectMany(x => x.employeeInfo.DefaultIfEmpty(), (x, employeeInfo) => new { x, employeeInfo }) - .Select(result => new EmployeeDetailsForInsuranceListViewModel - { - StartWorkDateNew = result.x.result.leftwork.StartWorkDate, - LeftWorkDateNew = result.x.result.leftwork.LeftWorkDate, - JobIdNew = result.x.result.leftwork.JobId, - - StartWorkDateGr = result.x.result.leftwork.StartWorkDate, - LeftWorkDateGr = result.x.result.leftwork.LeftWorkDate, - IncludeStatus = result.x.result.employeeData.IncludeStatus, - JobId = result.x.result.employeeData.JobId, - JobName = result.x.job != null ? result.x.job.JobName : string.Empty, - JobCode = result.x.job != null ? result.x.job.JobCode : string.Empty, - InsuranceEmployeeInformationId = result.employeeInfo != null ? result.employeeInfo.id : 0, - EmployeeId = result.x.result.employeeData.EmployeeId, - - //اطلاعات هویتی - FName = result.employeeInfo != null ? result.employeeInfo.FName : result.x.result.leftwork.Employee.FName, - LName = result.employeeInfo != null ? result.employeeInfo.LName : result.x.result.leftwork.Employee.LName, - FatherName = result.employeeInfo != null ? result.employeeInfo.FatherName : result.x.result.leftwork.Employee.FatherName, - DateOfBirthGr = result.employeeInfo != null ? result.employeeInfo.DateOfBirth : result.x.result.leftwork.Employee.DateOfBirth, - DateOfIssueGr = result.employeeInfo != null ? result.employeeInfo.DateOfIssue : result.x.result.leftwork.Employee.DateOfIssue, - PlaceOfIssue = result.employeeInfo != null ? result.employeeInfo.PlaceOfIssue : result.x.result.leftwork.Employee.PlaceOfIssue, - IdNumber = result.employeeInfo != null ? result.employeeInfo.IdNumber : result.x.result.leftwork.Employee.IdNumber, - Gender = result.employeeInfo != null ? result.employeeInfo.Gender : result.x.result.leftwork.Employee.Gender, - NationalCode = result.x.result.leftwork.Employee.NationalCode, - Nationality = result.x.result.leftwork.Employee.Nationality, - InsuranceCode = result.x.result.leftwork.Employee.InsuranceCode, - MaritalStatus = result.x.result.leftwork.Employee.MaritalStatus, - IsMaritalStatusSet = !string.IsNullOrWhiteSpace(result.x.result.leftwork.Employee.MaritalStatus), - - //اطاعات محاسباتی - EmployeeInsurancListDataId = result.x.result.employeeData.id, - DailyWage = result.x.result.employeeData.DailyWage, - // LeftWorkDateGr = x.LeftWorkDate, - // StartWorkDateGr = x.StartWorkDate, - MonthlyBenefitsIncluded = result.x.result.employeeData.MonthlyBenefitsIncluded, - // JobId = x.JobId, - WorkingDays = result.x.result.employeeData.WorkingDays, - //پایه سنوات - BaseYears = result.x.result.employeeData.BaseYears, - - //مجموع مزد روزانه و پایه سنوات - DailyWagePlusBaseYears = result.x.result.employeeData.DailyWagePlusBaseYears, - - //حق تاهل - MarriedAllowance = result.x.result.employeeData.MarriedAllowance, - - //دستمزد ماهانه - MonthlySalary = result.x.result.employeeData.MonthlySalary, + var res = _context.EmployeeInsurancListDataSet + .Where(x => x.InsuranceListId == insuranceListId) + .Join(_context.LeftWorkInsuranceList + .Where(x => + ((x.LeftWorkDate != null && x.LeftWorkDate != DateTime.MinValue) && + ((DateTime)x.LeftWorkDate >= startDate && + (DateTime)x.LeftWorkDate <= endDate)) || + ((x.LeftWorkDate != null && x.LeftWorkDate != DateTime.MinValue) && + (DateTime)x.LeftWorkDate >= endDate) || + (x.LeftWorkDate == null || x.LeftWorkDate == DateTime.MinValue)) + .Where(x => x.StartWorkDate <= endDate) + .Include(x => x.Employee), + employeeData => employeeData.EmployeeId, + leftwork => leftwork.EmployeeId, + (employeeData, leftwork) => new { employeeData, leftwork }) + .Join(_context.Jobs, + result => result.leftwork.JobId, + job => job.id, + (result, job) => new { result, job }) + .GroupJoin(_context.InsuranceEmployeeInformationSet.AsSplitQuery(), + allResult => allResult.result.employeeData.EmployeeId, + employeeInfo => employeeInfo.EmployeeId, + (allResult, employeeInfo) => new + { + allResult.result, + allResult.job, + employeeInfo + }) + .SelectMany(x => x.employeeInfo.DefaultIfEmpty(), (x, employeeInfo) => new { x, employeeInfo }) + .Select(result => new EmployeeDetailsForInsuranceListViewModel + { + StartWorkDateNew = result.x.result.leftwork.StartWorkDate, + LeftWorkDateNew = result.x.result.leftwork.LeftWorkDate, + JobIdNew = result.x.result.leftwork.JobId, - //مزایای ماهانه - MonthlyBenefits = result.x.result.employeeData.MonthlyBenefits, + StartWorkDateGr = result.x.result.leftwork.StartWorkDate, + LeftWorkDateGr = result.x.result.leftwork.LeftWorkDate, + IncludeStatus = result.x.result.employeeData.IncludeStatus, + JobId = result.x.result.employeeData.JobId, + JobName = result.x.job != null ? result.x.job.JobName : string.Empty, + JobCode = result.x.job != null ? result.x.job.JobCode : string.Empty, + InsuranceEmployeeInformationId = result.employeeInfo != null ? result.employeeInfo.id : 0, + EmployeeId = result.x.result.employeeData.EmployeeId, - //مزایای مشمول - BenefitsIncludedContinuous = result.x.result.employeeData.MonthlyBenefitsIncluded, + //اطلاعات هویتی + FName = result.employeeInfo != null ? result.employeeInfo.FName : result.x.result.leftwork.Employee.FName, + LName = result.employeeInfo != null ? result.employeeInfo.LName : result.x.result.leftwork.Employee.LName, + FatherName = result.employeeInfo != null ? result.employeeInfo.FatherName : result.x.result.leftwork.Employee.FatherName, + DateOfBirthGr = result.employeeInfo != null ? result.employeeInfo.DateOfBirth : result.x.result.leftwork.Employee.DateOfBirth, + DateOfIssueGr = result.employeeInfo != null ? result.employeeInfo.DateOfIssue : result.x.result.leftwork.Employee.DateOfIssue, + PlaceOfIssue = result.employeeInfo != null ? result.employeeInfo.PlaceOfIssue : result.x.result.leftwork.Employee.PlaceOfIssue, + IdNumber = result.employeeInfo != null ? result.employeeInfo.IdNumber : result.x.result.leftwork.Employee.IdNumber, + Gender = result.employeeInfo != null ? result.employeeInfo.Gender : result.x.result.leftwork.Employee.Gender, + NationalCode = result.x.result.leftwork.Employee.NationalCode, + Nationality = result.x.result.leftwork.Employee.Nationality, + InsuranceCode = result.x.result.leftwork.Employee.InsuranceCode, + MaritalStatus = result.x.result.leftwork.Employee.MaritalStatus, + IsMaritalStatusSet = !string.IsNullOrWhiteSpace(result.x.result.leftwork.Employee.MaritalStatus), - //مزایای غیر مشمول - BenefitsIncludedNonContinuous = result.x.result.employeeData.BenefitsIncludedNonContinuous, + //اطاعات محاسباتی + EmployeeInsurancListDataId = result.x.result.employeeData.id, + DailyWage = result.x.result.employeeData.DailyWage, + // LeftWorkDateGr = x.LeftWorkDate, + // StartWorkDateGr = x.StartWorkDate, + MonthlyBenefitsIncluded = result.x.result.employeeData.MonthlyBenefitsIncluded, + // JobId = x.JobId, + WorkingDays = result.x.result.employeeData.WorkingDays, + //پایه سنوات + BaseYears = result.x.result.employeeData.BaseYears, - // جمع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول - IncludedAndNotIncluded = result.x.result.employeeData.BenefitsIncludedContinuous, + //مجموع مزد روزانه و پایه سنوات + DailyWagePlusBaseYears = result.x.result.employeeData.DailyWagePlusBaseYears, - //حق بیمه سهم بیمه شده - InsuranceShare = result.x.result.employeeData.InsuranceShare, + //حق تاهل + MarriedAllowance = result.x.result.employeeData.MarriedAllowance, - //اضافه کار فیش حقوقی - OverTimePay = result.x.result.employeeData.OverTimePay, + //دستمزد ماهانه + MonthlySalary = result.x.result.employeeData.MonthlySalary, - //حق اولا فیش حقوقی - FamilyAllowance = result.x.result.employeeData.FamilyAllowance, - }); + + //مزایای ماهانه + MonthlyBenefits = result.x.result.employeeData.MonthlyBenefits, + + //مزایای مشمول + BenefitsIncludedContinuous = result.x.result.employeeData.MonthlyBenefitsIncluded, + + //مزایای غیر مشمول + BenefitsIncludedNonContinuous = result.x.result.employeeData.BenefitsIncludedNonContinuous, + + // جمع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول + IncludedAndNotIncluded = result.x.result.employeeData.BenefitsIncludedContinuous, + + //حق بیمه سهم بیمه شده + InsuranceShare = result.x.result.employeeData.InsuranceShare, + + //اضافه کار فیش حقوقی + OverTimePay = result.x.result.employeeData.OverTimePay, + + //حق اولا فیش حقوقی + FamilyAllowance = result.x.result.employeeData.FamilyAllowance, + }); //.Select(x => new EmployeeDetailsForInsuranceListViewModel @@ -1427,4 +1492,120 @@ public class InsuranceListRepository : RepositoryBase, IIns return res.ToList(); } + + public async Task GetTabCounts(InsuranceListSearchModel searchModel) + { + var acountId = _authHelper.CurrentAccountId(); + + var workshopIds = _context.WorkshopAccounts + .Where(a => a.AccountId == acountId) + .Select(a => a.WorkshopId); + var query = _context.InsuranceListSet + .Where(x => workshopIds.Contains(x.WorkshopId)) + .Join(_context.Workshops.Include(x => x.InsuranceWorkshopInfo), + insurance => insurance.WorkshopId, + workshop => workshop.id, + (insurance, workshop) => new { insurance, workshop }) + .GroupJoin(_context.WorkshopEmployers, + result => result.workshop.id, + employer => employer.WorkshopId, + (result, employer) => new { result.insurance, result.workshop, employer }) + .Select(result => new InsuranceListViewModel + { + Id = result.insurance.id, + Year = result.insurance.Year, + Month = result.insurance.Month, + WorkShopId = result.insurance.WorkshopId, + WorkShopCode = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.InsuranceCode : result.workshop.InsuranceCode, + WorkShopName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.WorkshopName : result.workshop.WorkshopFullName, + TypeOfInsuranceSend = result.workshop.TypeOfInsuranceSend == "NormalList" ? "عادی" : + result.workshop.TypeOfInsuranceSend == "Govermentlist" ? "کمک دولت" : + result.workshop.TypeOfInsuranceSend == "Familylist" ? "خانوادگی" : "", + FixedSalary = result.workshop.FixedSalary, + EmployerName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.EmployerName : result.workshop.WorkshopFullName, + ConfirmSentlist = result.insurance.ConfirmSentlist, + EmployerId = result.employer.First().EmployerId, + DebtDone = result.insurance.Debt.IsDone, + EmployerApproved = result.insurance.EmployerApproval.IsDone, + InspectionDone = result.insurance.Inspection.IsDone + }); + + if (!string.IsNullOrEmpty(searchModel.Year) && searchModel.Year != "0" && !string.IsNullOrEmpty(searchModel.Month) && searchModel.Month != "0") + query = query.Where(x => x.Year == searchModel.Year && x.Month == searchModel.Month); + else + { + if (!string.IsNullOrEmpty(searchModel.Month) && searchModel.Month != "0") + query = query.Where(x => x.Month == searchModel.Month); + + if (!string.IsNullOrEmpty(searchModel.Year) && searchModel.Year != "0") + query = query.Where(x => x.Year == searchModel.Year); + + } + if (!string.IsNullOrEmpty(searchModel.WorkShopCode)) + query = query.Where(x => x.WorkShopCode == searchModel.WorkShopCode); + + if (!string.IsNullOrEmpty(searchModel.WorkShopName)) + query = query.Where(x => x.WorkShopName.Contains(searchModel.WorkShopName)); + + + if (searchModel.WorkshopId > 0) + { + var workshopName = query.FirstOrDefault(u => u.WorkShopId == searchModel.WorkshopId)?.WorkShopName; + + query = query.Where(x => x.WorkShopName.Contains(workshopName)); + } + + if (searchModel.EmployerId > 0) + { + var employerName = query.FirstOrDefault(u => u.EmployerId == searchModel.EmployerId)?.EmployerName; + query = query.Where(x => x.EmployerName.Contains(employerName)); + } + + if (!string.IsNullOrEmpty(searchModel.EmployerName)) + query = query.Where(x => x.EmployerName.Contains(searchModel.EmployerName)); + + + if (searchModel.FixedSalary != null) + query = query.Where(x => x.FixedSalary == searchModel.FixedSalary); + + if (!string.IsNullOrEmpty(searchModel.TypeOfInsuranceSend) && searchModel.TypeOfInsuranceSend != "0") + query = query.Where(x => x.TypeOfInsuranceSend == searchModel.TypeOfInsuranceSend); + + if (!string.IsNullOrEmpty(searchModel.City) && searchModel.City != "0") + query = query.Where(x => x.City == searchModel.City); + + if (!string.IsNullOrEmpty(searchModel.Branch)) + query = query.Where(x => x.Branch.Contains(searchModel.Branch)); + + + + var res = await query.GroupBy(x => 1) + .Select(g => new InsuranceListTabsCountViewModel + { + NotStarted = g.Count(x => + !x.DebtDone && !x.EmployerApproved && !x.InspectionDone && !x.ConfirmSentlist), + InProgress = g.Count(x => + (x.DebtDone || x.EmployerApproved || x.InspectionDone) && !(x.DebtDone && x.EmployerApproved && x.InspectionDone) && !x.ConfirmSentlist), + ReadyToSendList = g.Count(x => + x.DebtDone && x.EmployerApproved && x.InspectionDone && !x.ConfirmSentlist), + Done = g.Count(x => x.ConfirmSentlist) + }) + .FirstOrDefaultAsync() ?? new InsuranceListTabsCountViewModel(); + + return res; + + } + + /// + /// + /// + /// + /// + /// + /// debt / inspection + /// + private string GetInsuranceListFilePath(long mediaId) + { + return _accountContext.Medias.FirstOrDefault(x => x.id == mediaId)?.Path ?? ""; + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs b/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs index bd43b4b4..4ae7dc87 100644 --- a/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs +++ b/CompanyManagment.EFCore/Repository/LeftWorkRepository.cs @@ -6,8 +6,11 @@ using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.LeftWorkAgg; using Company.Domain.PersonnelCodeAgg; +using CompanyManagment.App.Contracts.InsuranceList; using CompanyManagment.App.Contracts.LeftWork; using CompanyManagment.App.Contracts.PersonnleCode; +using CompanyManagment.App.Contracts.Workshop.DTOs; +using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; namespace CompanyManagment.EFCore.Repository; @@ -23,18 +26,18 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos public EditLeftWork GetDetails(long id) { return _context.LeftWorkList.Select(x => new EditLeftWork() - { - Id = x.id, - LeftWorkDate = x.LeftWorkDate.ToFarsi(), - StartWorkDate = x.StartWorkDate.ToFarsi(), - EmployeeFullName = x.EmployeeFullName, - WorkshopName = x.WorkshopName, - WorkshopId = x.WorkshopId, - EmployeeId = x.EmployeeId + { + Id = x.id, + LeftWorkDate = x.LeftWorkDate.ToFarsi(), + StartWorkDate = x.StartWorkDate.ToFarsi(), + EmployeeFullName = x.EmployeeFullName, + WorkshopName = x.WorkshopName, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId - }) + }) .FirstOrDefault(x => x.Id == id); } @@ -92,10 +95,10 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos AddYearsPay = x.AddYearsPay, AddLeavePay = x.AddLeavePay, JobId = x.JobId, - - }).Where(x=>x.WorkshopId == workshopId); + + }).Where(x => x.WorkshopId == workshopId); return query.ToList(); } @@ -103,7 +106,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos public List search(LeftWorkSearchModel searchModel) { - + var query = _context.LeftWorkList.Select(x => new LeftWorkViewModel() { Id = x.id, @@ -135,24 +138,24 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos public LeftWorkViewModel CheckoutleftWorkCheck(DateTime contractStart, long workshopId, long employeeId) { return _context.LeftWorkList.Select(x => new LeftWorkViewModel() - { - Id = x.id, - LeftWorkDate = x.LeftWorkDate.ToFarsi(), - StartWorkDate = x.StartWorkDate.ToFarsi(), - StartWorkDateGr = x.StartWorkDate, - LeftWorkDateGr = x.LeftWorkDate, - EmployeeFullName = x.EmployeeFullName, - WorkshopName = x.WorkshopName, - WorkshopId = x.WorkshopId, - EmployeeId = x.EmployeeId, - AddLeavePay = x.AddLeavePay, - AddBonusesPay = x.AddBonusesPay, - AddYearsPay = x.AddYearsPay, - + { + Id = x.id, + LeftWorkDate = x.LeftWorkDate.ToFarsi(), + StartWorkDate = x.StartWorkDate.ToFarsi(), + StartWorkDateGr = x.StartWorkDate, + LeftWorkDateGr = x.LeftWorkDate, + EmployeeFullName = x.EmployeeFullName, + WorkshopName = x.WorkshopName, + WorkshopId = x.WorkshopId, + EmployeeId = x.EmployeeId, + AddLeavePay = x.AddLeavePay, + AddBonusesPay = x.AddBonusesPay, + AddYearsPay = x.AddYearsPay, - }) - .FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId + + }) + .FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId && contractStart >= x.StartWorkDateGr && contractStart <= x.LeftWorkDateGr); } @@ -163,7 +166,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos if (item != null) { - + _context.LeftWorkList.Remove(item); _context.SaveChanges(); if (!_context.LeftWorkList.Any(x => x.WorkshopId == item.WorkshopId && x.EmployeeId == item.EmployeeId && item.id != x.id) && HasActiveRollCallStatus(item.WorkshopId, item.EmployeeId)) @@ -179,31 +182,31 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos public LeftWorkViewModel GetByDateAndWorkshopIdAndEmployeeId(long workshopId, long employeeId, DateTime dateTime) { - var entity = _context.LeftWorkList.FirstOrDefault(x => - x.WorkshopId == workshopId && x.EmployeeId == employeeId && - (x.StartWorkDate <= dateTime && x.LeftWorkDate >= dateTime)); - if (entity == null) - { - return null; - } - return new() - { - EmployeeId = entity.EmployeeId, - WorkshopId = entity.WorkshopId, - LeftWorkDate = entity.LeftWorkDate.ToFarsi(), - HasLeft = entity.HasLeft, - LeftWorkDateGr = entity.LeftWorkDate, - StartWorkDateGr = entity.StartWorkDate, - Id = entity.id + var entity = _context.LeftWorkList.FirstOrDefault(x => + x.WorkshopId == workshopId && x.EmployeeId == employeeId && + (x.StartWorkDate <= dateTime && x.LeftWorkDate >= dateTime)); + if (entity == null) + { + return null; + } + return new() + { + EmployeeId = entity.EmployeeId, + WorkshopId = entity.WorkshopId, + LeftWorkDate = entity.LeftWorkDate.ToFarsi(), + HasLeft = entity.HasLeft, + LeftWorkDateGr = entity.LeftWorkDate, + StartWorkDateGr = entity.StartWorkDate, + Id = entity.id - }; + }; } public List GetAllEmployeeIdsInWorkshop(long workshopId) { - var leftWorks = _context.LeftWorkList - .Where(x => x.WorkshopId == workshopId) - .GroupBy(x => x.EmployeeId).Select(x => x.Key).ToList(); + var leftWorks = _context.LeftWorkList + .Where(x => x.WorkshopId == workshopId) + .GroupBy(x => x.EmployeeId).Select(x => x.Key).ToList(); var insuranceLeftWork = _context.LeftWorkInsuranceList .Where(x => x.WorkshopId == workshopId) .GroupBy(x => x.EmployeeId).Select(x => x.Key).ToList(); @@ -267,7 +270,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos RemoveEmployeeRollCallStatus(workshopId, employeeId); if (hasLeftWorkInsurance) return - op.Succcedded(1, "حذف با موفقیت انجام شد."); //+ "
" + "" + "کد پرسنلی این شخص به دلیل استفاده در ترک کار بیمه قابل حذف نمی باشد. " + ""); + op.Succcedded(1, "حذف با موفقیت انجام شد."); //+ "
" + "" + "کد پرسنلی این شخص به دلیل استفاده در ترک کار بیمه قابل حذف نمی باشد. " + ""); else return op.Succcedded(); } @@ -369,7 +372,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos _context.LeftWorkList.RemoveRange(LeftWork); DateTime left = item2.LeftWorkDate.ToGeorgianDateTime(); var start = item2.StartWorkDate.ToGeorgianDateTime(); - var leftwork = new LeftWork(left, start, item2.WorkshopId, item2.EmployeeId, command.EmployeeFullName, item2.WorkshopName, item2.JobId, item2.IncludeStatus,item2.AddBonusesPay,item2.AddYearsPay,item2.AddLeavePay, workshopComputeOptions, workshopBonusesOptions); + var leftwork = new LeftWork(left, start, item2.WorkshopId, item2.EmployeeId, command.EmployeeFullName, item2.WorkshopName, item2.JobId, item2.IncludeStatus, item2.AddBonusesPay, item2.AddYearsPay, item2.AddLeavePay, workshopComputeOptions, workshopBonusesOptions); Create(leftwork); } } @@ -393,7 +396,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos { try { - + foreach (var item in leftWorkGroups) { #region PersonelCode @@ -401,7 +404,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos if (commandPersonnelCode != null && commandPersonnelCode.Count > 0) { var personelcode = commandPersonnelCode.Where(x => x.EmployeeId == commandEmployeeId && x.WorkshopId == item.WorkshopId).FirstOrDefault(); - if (personelcode != null && personelcode.HasPersonelCode==false) + if (personelcode != null && personelcode.HasPersonelCode == false) { if (_context.PersonnelCodeSet.Any(x => x.WorkshopId == item.WorkshopId && x.PersonnelCode == personelcode.PersonnelCode)) { @@ -416,18 +419,18 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos _context.PersonnelCodeSet.Add(new PersonnelCodeDomain(item.WorkshopId, commandEmployeeId, personelcode.PersonnelCode)); } } - + #endregion if (item.LeftWorkViewModels != null && item.LeftWorkViewModels.Count > 0) { bool checkRegister = false; - + var LeftWorkList = _context.LeftWorkList.Where(x => x.EmployeeId == commandEmployeeId && x.WorkshopId == item.WorkshopId).ToList(); var removeList = new List(); - + foreach (var removeItem in LeftWorkList) { if (!item.LeftWorkViewModels.Any(x => x.Id == removeItem.id)) @@ -463,7 +466,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos { _context.LeftWorkList.RemoveRange(removeList); } - + //foreach (var item2 in item.LeftWorkViewModels) //{ // var LeftWork = _context.LeftWorkList.Where(x => x.EmployeeId == commandEmployeeId && x.WorkshopId == item.WorkshopId).ToList(); @@ -480,7 +483,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos _context.SaveChanges(); transaction.Commit(); - op.Succcedded(-1, " ثبت با موفقیت انجام شد. "); + op.Succcedded(-1, " ثبت با موفقیت انجام شد. "); } catch (Exception ex) { @@ -497,8 +500,8 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos var op = new OperationResult(); bool hasContracts = false; var endDateSend = date.Date.AddDays(-1); - if (type==1) - hasContracts= _context.CheckoutSet.Any(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && (x.ContractStart.Date >= endDateSend) && x.IsActiveString == "true"); + if (type == 1) + hasContracts = _context.CheckoutSet.Any(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && (x.ContractStart.Date >= endDateSend) && x.IsActiveString == "true"); else { endDateSend = date.Date; @@ -514,23 +517,23 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos return op.Failed("در این تاریخ تصفیه حساب ثبت شده است.برای حذف تاریخ ترک کار، ابتدا تصفیه حساب های مربوطه را حذف کنید"); } - - + + return op.Succcedded(); - } - public OperationResult CheckEditLeftWork(long workshopId, long employeeId, DateTime date, int type) + } + public OperationResult CheckEditLeftWork(long workshopId, long employeeId, DateTime date, int type) { var op = new OperationResult(); bool hasContracts = false; - + if (type == 1) { - hasContracts= _context.CheckoutSet.Any(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && (x.ContractStart.Date>= date) && x.IsActiveString == "true"); - if(hasContracts) + hasContracts = _context.CheckoutSet.Any(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && (x.ContractStart.Date >= date) && x.IsActiveString == "true"); + if (hasContracts) return op.Failed("لطفا ابتدا تصفیه حساب های آتی را حذف نمایید"); - } + } else { var LeftDay = date.Date; @@ -553,16 +556,16 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos var LastDayContract = _context.CheckoutSet.Any(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.IsActiveString == "true" && x.ContractEnd.Date > lastDay.Date); - if(LastDayContract) + if (LastDayContract) return op.Failed("AfterContracts"); - // var contract = _context.Contracts.Where(x => x.EmployeeId == employeeId && x.WorkshopIds == workshopId && x.IsActiveString == "true").OrderByDescending(x=>x.ContarctStart).FirstOrDefault(); + // var contract = _context.Contracts.Where(x => x.EmployeeId == employeeId && x.WorkshopIds == workshopId && x.IsActiveString == "true").OrderByDescending(x=>x.ContarctStart).FirstOrDefault(); //if (contract != null) //{ - + // if ((contract.ContarctStart.Date <= endDateSend.Date && contract.ContractEnd.Date >= endDateSend.Date)) // { - + // var checkout = _context.CheckoutSet.Where(x => // x.EmployeeId == employeeId && x.WorkshopId == workshopId && // (x.ContractStart.Date <= date.Date && x.ContractEnd.Date >= date.Date)).FirstOrDefault(); @@ -591,7 +594,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos // //} //} return op.Succcedded(); - + } return op.Succcedded(); @@ -644,7 +647,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos public async Task GetLastLeftWork(long employeeId, long workshopId) { - var leftWork =await _context.LeftWorkList.Where(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId) + var leftWork = await _context.LeftWorkList.Where(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId) .OrderByDescending(x => x.StartWorkDate).FirstOrDefaultAsync(); return leftWork; } @@ -655,9 +658,9 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos .Select(x => x.EmployeeId) .Except([5976]).ToList(); var clientTemps = _context.EmployeeClientTemps.Where(x => x.WorkshopId == searchModel.WorkshopId) - .Select(x => x.EmployeeId); + .Select(x => x.EmployeeId); - var query = _context.LeftWorkList.Select(x => new LeftWorkViewModel() + var query = _context.LeftWorkList.Select(x => new LeftWorkViewModel() { Id = x.id, LeftWorkDate = x.LeftWorkDate.ToFarsi(), @@ -675,7 +678,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos JobName = _context.Jobs.FirstOrDefault(j => j.id == x.JobId).JobName - }).Where(x=> !vipGroup.Contains(x.EmployeeId) && !clientTemps.Contains(x.EmployeeId)); + }).Where(x => !vipGroup.Contains(x.EmployeeId) && !clientTemps.Contains(x.EmployeeId)); if (searchModel.WorkshopId != 0 && searchModel.EmployeeId != 0) query = query.Where(x => x.WorkshopId == searchModel.WorkshopId && x.EmployeeId == searchModel.EmployeeId); if (searchModel.EmployeeId != 0 && searchModel.WorkshopId == 0) @@ -695,7 +698,7 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos } private void RemoveEmployeeRollCallStatus(long workshopId, long employeeId) { - var entity = _context.RollCallEmployees.Include(x=>x.EmployeesStatus).FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId); + var entity = _context.RollCallEmployees.Include(x => x.EmployeesStatus).FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId); if (entity == null) return; @@ -724,8 +727,167 @@ public class LeftWorkRepository : RepositoryBase, ILeftWorkRepos } //_context.RollCallEmployees.Remove(entity); - + } #endregion + + #region AutoExtentionEmployees + + public AutoExtensionDto AutoExtentionEmployees(long workshopId) + { + if (workshopId == 0) + return new AutoExtensionDto(); + var query = _context.LeftWorkList + .Include(x => x.Employee) + .Include(x => x.Workshop) + .Where(x => x.WorkshopId == workshopId) + + // Left Join با PersonnelCodeSet + .GroupJoin(_context.PersonnelCodeSet.Where(p => p.WorkshopId == workshopId), + leftList => leftList.EmployeeId, + personnelCode => personnelCode.EmployeeId, + (leftList, personnelCodes) => new { leftList, personnelCodes }) + .SelectMany( + x => x.personnelCodes.DefaultIfEmpty(), + (x, personnelCode) => new { x.leftList, personnelCode }) + + // Left Join با Jobs + .GroupJoin(_context.Jobs, + x => x.leftList.JobId, + job => job.id, + (x, jobs) => new { x.leftList, x.personnelCode, jobs }) + .SelectMany( + x => x.jobs.DefaultIfEmpty(), + (x, job) => new { x.leftList, x.personnelCode, job }) + + // Left Join با EmployeeComputeOptionsSet + .GroupJoin(_context.EmployeeComputeOptionsSet.Where(o => o.WorkshopId == workshopId), + x => x.leftList.EmployeeId, + option => option.EmployeeId, + (x, options) => new { x.leftList, x.personnelCode, x.job, options }) + .SelectMany( + x => x.options.DefaultIfEmpty(), + (x, option) => new { x.leftList, x.personnelCode, x.job, option }) + + .Select(result => new AutoExtensionEmployeeListDto + { + EmployeeId = result.leftList.EmployeeId, + EmployeeName = result.leftList.EmployeeFullName, + PersonnelCode = result.personnelCode != null ? result.personnelCode.PersonnelCode : 0, + JobType = result.job != null ? result.job.JobName : "نامشخص", + JobTypeId = result.job != null ? result.job.id : 0, + EmployeeHasCreateContract = result.option != null + ? result.option.CreateContract + : result.leftList.Workshop.CreateContract + }).GroupBy(x => x.EmployeeId) + .Select(g => g.First()) + .ToList(); + + + + //var query = _context.LeftWorkList.Include(x => x.Employee).Include(w => w.Workshop) + // .Where(x => x.WorkshopId == workshopId) + // .Join(_context.PersonnelCodeSet.AsSplitQuery().Where(p => p.WorkshopId == workshopId), + // leftList => leftList.EmployeeId, + // personnelCode => personnelCode.EmployeeId, + // (leftList, personnelCode) => + // new { leftList, personnelCode }) + // .Join(_context.Jobs, + // left => left.leftList.JobId, + // job => job.id, + // (left, job) => new { left, job }) + // .Join(_context.EmployeeComputeOptionsSet.Where(o => o.WorkshopId == workshopId), + // leftResult => leftResult.left.leftList.EmployeeId, + // options => options.EmployeeId, + // (leftResult, options) => new { leftResult, options }) + // .Select(result => new AutoExtensionEmployeeListDto() + // { + + + // EmployeeId = result.leftResult.left.leftList.EmployeeId, + // EmployeeName = result.leftResult.left.leftList.EmployeeFullName, + // PersonnelCode = result.leftResult.left.personnelCode == null ? 0 : result.leftResult.left.personnelCode.PersonnelCode, + + // JobType = result.leftResult.job.JobName, + // JobTypeId = result.leftResult.job.id, + // EmployeeHasCreateContract = result.options == null ? result.leftResult.left.leftList.Workshop.CreateContract : result.options.CreateContract + + + // }).ToList(); + var result = new AutoExtensionDto(); + var workshop = _context.Workshops.FirstOrDefault(x => x.id == workshopId); + var employerId = _context.WorkshopEmployers.FirstOrDefault(x => x.WorkshopId == workshopId)!.EmployerId; + + var employer = _context.Employers.FirstOrDefault(x => x.id == employerId); + var employerWarning = false; + var employerWarningMessage = ""; + + + if (employer != null && employer.IsLegal == "حقوقی") + { + if (string.IsNullOrWhiteSpace(employer.NationalId) || string.IsNullOrWhiteSpace(employer.RegisterId)) + { + employerWarning = true; + employerWarningMessage = "شناسه ملی ، شماره ثبت کارفرمای این کارگاه را بررسی کنید"; + } + } + else + { + if (string.IsNullOrWhiteSpace(employer.Nationalcode) || string.IsNullOrWhiteSpace(employer.Gender)) + { + employerWarning = true; + employerWarningMessage = "کد ملی ، جنسیت کارفرمای این کارگاه را بررسی گنید"; + } + } + if (query.Any() && workshop != null) + { + + result = new AutoExtensionDto() + { + WorkshopId = workshopId, + HavingPersonel = true, + WorkshopName = workshop.WorkshopFullName, + ArchiveCode = workshop.ArchiveCode, + WAddress1 = workshop.Address, + CreateContract = workshop.CreateContract, + EmployerId = employerId, + EmployerWarning = employerWarning, + EmployerWarningMessage = employerWarningMessage, + EmployeeList = query.Select(x => new AutoExtensionEmployeeListDto() + { + EmployeeId = x.EmployeeId, + EmployeeName = x.EmployeeName, + PersonnelCode = x.PersonnelCode, + JobType = x.JobType, + JobTypeId = x.JobTypeId, + EmployeeHasCreateContract = x.EmployeeHasCreateContract + + }).ToList(), + EmployeeSelectList = new SelectList(query.Where(x => x.EmployeeHasCreateContract), "EmployeeId", "EmployeeName ") + + + }; + } + else + { + result = new AutoExtensionDto() + { + WorkshopId = workshopId, + HavingPersonel = false, + WorkshopName = workshop.WorkshopFullName, + ArchiveCode = workshop.ArchiveCode, + WAddress1 = workshop.Address, + CreateContract = workshop.CreateContract + + + }; + } + + + return result; + } + + #endregion + } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ReportRepository.cs b/CompanyManagment.EFCore/Repository/ReportRepository.cs index 85b5924e..83e41372 100644 --- a/CompanyManagment.EFCore/Repository/ReportRepository.cs +++ b/CompanyManagment.EFCore/Repository/ReportRepository.cs @@ -2089,6 +2089,7 @@ public class ReportRepository : IReportRepository var notCompletedWorkshops = accountWorkshopList.Select(workshop => { + var contractSigned = workshop.Contracts2.Count(x => x.Signature == "1"); var contractCreated = workshop.Contracts2.Count(); int contractSignedPercent = 0; @@ -2103,9 +2104,12 @@ public class ReportRepository : IReportRepository if (contractSignedPercent < 100 && contractCreated > 0) { - + var contractEmployeeIds = workshop.Contracts2.Where(x => x.Signature == "0") + .Select(x => x.EmployeeId).ToList(); + var lefts = workshop.LeftWorks.Select(x => x.EmployeeId).Distinct().ToList(); + var contractNotNullEmployeeId = lefts.Where(x => contractEmployeeIds.Contains(x)).ToList(); var employeeNotDone = - workshop.Contracts2.Where(x => x.Signature == "0").Select(l => new EmployeeNotDone() + workshop.Contracts2.Where(x => x.Signature == "0" && contractNotNullEmployeeId.Contains(x.EmployeeId)).Select(l => new EmployeeNotDone() { Id = l.EmployeeId, EmployeeFullName = workshop.LeftWorks.FirstOrDefault(x => x.EmployeeId == l.EmployeeId)!.EmployeeFullName, diff --git a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs index 864f3c96..2ebe14a3 100644 --- a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs @@ -58,7 +58,7 @@ public class RollCallEmployeeRepository : RepositoryBase } else { - skipRollCallByWorkshopId = workshopId is 368 or 367 or 585 or 610; + skipRollCallByWorkshopId = workshopId is 368 or 367 or 610; } @@ -476,7 +476,7 @@ public class RollCallEmployeeRepository : RepositoryBase public RollCallEmployee GetBy(long employeeId, long workshopId) { - return _context.RollCallEmployees.FirstOrDefault(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId); + return _context.RollCallEmployees.Include(x=>x.EmployeesStatus).FirstOrDefault(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId); } #endregion diff --git a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs index 3fd4fac8..c84c71b4 100644 --- a/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallMandatoryRepository.cs @@ -60,8 +60,8 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll _leaveRepository = leaveRepository; _holidayItemRepository = holidayItemRepository; _testDbContext = testDbContext; - - } + + } #region OfficialChckout public ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, @@ -108,8 +108,8 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll .Include(x => x.CustomizeWorkshopGroupSettings).FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId); //اگر ساعت استراحت پرسنل وجود نداشت صفر است - var breakTime = settings == null ? new BreakTime(false, new TimeOnly()) : settings.BreakTime; - + var breakTimeEntity = settings == null ? new BreakTime(false, new TimeOnly()) : settings.BreakTime; + var endOfFarvardin = "1404/01/31".ToGeorgianDateTime(); #endregion @@ -125,10 +125,11 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll groupedRollCall = rollCallResult.GroupBy(x => x.ShiftDate.Date).Select(x => new GroupedRollCalls() { CreationDate = x.Key, - ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(), + ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value,EndWithOutResTime = s.ShiftEndWithoutRest.Value != null ? s.ShiftEndWithoutRest.Value : new DateTime()}).ToList(), HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), - SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) + SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)), + BreakTime = x.First().BreakTimeSpan }).OrderBy(x => x.CreationDate).ToList(); } @@ -145,16 +146,31 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll BreakTimeSpan = x.BreakTimeSpan }).ToList(); - groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => new GroupedRollCalls() + groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => { - CreationDate = x.Key, - ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(), - HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), - SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - CalculateBreakTime(x.First().BreakTimeSpan, - new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))), - - BreakTime = CalculateBreakTime(x.First().BreakTimeSpan, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))), + TimeSpan breakTime; + if (contractStart > endOfFarvardin) + { + breakTime = CalculateBreakTime( + x.First().BreakTimeSpan, + new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))); + } + else + { + breakTime = CalculateBreakTime(breakTimeEntity, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))); + } + return new GroupedRollCalls() + { + CreationDate = x.Key, + ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value, EndWithOutResTime = s.EndDate!.Value }) + .ToList(), + HasFriday = x.Any(s => + s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || + s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), + SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - breakTime, + BreakTime = breakTime, + }; }).OrderBy(x => x.CreationDate).ToList(); } @@ -228,9 +244,9 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll double minutesDecimal = (starndardHoursesPerTotalDays - hours) * 60; int minutes = (int)minutesDecimal; - + TimeSpan totalLeaveSpan = TimeSpan.Zero; TimeSpan starndardHoursesPerTotalDaysSapn = new TimeSpan(hours, minutes, 0); - if (leaveSearchResult.Count > 0) + if (leaveSearchResult.Count > 0 || hoursesleave.Count > 0) { if (leaveSearchResult.Any(x => x.HasShiftDuration)) { @@ -254,15 +270,17 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll { sumSpans = sumSpans.Add(starndardHoursesPerTotalDaysSapn); - } + totalLeaveSpan = starndardHoursesPerTotalDaysSapn; + } else { sumSpans = sumSpans.Add(totalLeave); - } + totalLeaveSpan = totalLeave; + } - - } + + } else { int leavingDayCout = 0; @@ -299,8 +317,12 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll } else { - sumLeave = leavingDayCout * new TimeSpan(7, 20, 0); - } + var dayLeave = leavingDayCout * new TimeSpan(7, 20, 0); + + sumLeave = dayLeave.Add(hoursesleaveTimeSpans); + + + } if (sumLeave > starndardHoursesPerTotalDaysSapn) @@ -311,22 +333,24 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll { sumSpans = sumSpans.Add(sumLeave); } - } + + totalLeaveSpan = sumLeave; + } } //اگر مرخصی روزانه نداشت و فقط مرخصی ساعتی داشت - if (leaveSearchResult.Count == 0 && hoursesleave.Count > 0) - { - if (hoursesleaveTimeSpans > starndardHoursesPerTotalDaysSapn) - { - sumSpans = sumSpans.Add(starndardHoursesPerTotalDaysSapn); - } - else - { - sumSpans = sumSpans.Add(hoursesleaveTimeSpans); - } - } + //if (leaveSearchResult.Count == 0 && hoursesleave.Count > 0) + //{ + // if (hoursesleaveTimeSpans > starndardHoursesPerTotalDaysSapn) + // { + // sumSpans = sumSpans.Add(starndardHoursesPerTotalDaysSapn); + // } + // else + // { + // sumSpans = sumSpans.Add(hoursesleaveTimeSpans); + // } + //} Console.WriteLine(sumSpans); #endregion //***********************************// @@ -343,11 +367,11 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll //***********************************// - var dailyFix = TimeSpan.Parse("07:20"); - TimeSpan mandatoryHoursTimeSpan = new TimeSpan(7, 20, 0).Multiply(mandatorDays); - TimeSpan Mandatory = sumSpansWhitOutleaves.Subtract(mandatoryHoursTimeSpan); + //var dailyFix = TimeSpan.Parse("07:20"); + //TimeSpan mandatoryHoursTimeSpan = new TimeSpan(7, 20, 0).Multiply(mandatorDays); + //TimeSpan Mandatory = sumSpansWhitOutleaves.Subtract(mandatoryHoursTimeSpan); - double mandatoryWorkWithOutleaves = (sumSpansWhitOutleaves.TotalMinutes) / 60; + double mandatoryWorkWithOutleaves = (sumSpans.TotalMinutes) / 60; double overTimeWork = 0; if (mandatoryWorkWithOutleaves > mandatoryHours) { @@ -621,45 +645,75 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll } else if (totalDays >= 28) // بالای 28 روز حد اقل 8 تغییر شیفت { - validCount = 8; + validCount = 6; } else { // تناسب گیری - اگر برای 28 روز 8 تغییر پس برای ایکس روز چند تغییر لازم است - validCount = (int)((totalDays * 8) / 28); + validCount = (int)((totalDays * 6) / 28); } + string maxName; + int maxValue = moriningCount; - if (moriningCount >= validCount) - RotatingfaName.Add("صبح"); - if (eveningCount >= validCount) - RotatingfaName.Add("عصر"); - if (nightCount >= validCount) - RotatingfaName.Add("شب"); - var rotatingFaResult = ""; - if (RotatingfaName.Count > 1)// اگر تعداد شیفت های محاسبه شده بیش از یک بود - { - shiftOver22Hours = "0"; - shiftOver22Minuts = "0"; - for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++) - { - if (rotateNumber == 0) - rotatingFaResult = $"{RotatingfaName[rotateNumber]}"; - if (rotateNumber == 1) - rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; - if (rotateNumber == 2) - rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; - } - } - else if (RotatingfaName.Count <= 1) - { - rotatingFaResult = "نوبت کاری ندارد"; + maxName = "moriningCount"; + if (eveningCount > maxValue) + { + maxValue = eveningCount; + maxName = "eveningCount"; + } + if (nightCount > maxValue) + { + maxValue = nightCount; + maxName = "nightCount"; + } - var over22Hours = (int)over22.TotalHours; - var over22Minuts = (int)(over22.TotalMinutes % 60); - shiftOver22Hours = over22Hours.ToString(); - shiftOver22Minuts = over22Minuts.ToString(); + int countOutOfRange = 0; - } + switch (maxName) + { + case "moriningCount": + countOutOfRange = eveningCount + nightCount; + break; + case "eveningCount": + countOutOfRange = moriningCount + nightCount; + break; + case "nightCount": + countOutOfRange = moriningCount + eveningCount; + break; + } + var rotatingFaResult = ""; + if (countOutOfRange >= validCount && workshopId != 344) + { + shiftOver22Hours = "0"; + shiftOver22Minuts = "0"; + if (moriningCount >= 1) + RotatingfaName.Add("صبح"); + if (eveningCount >= 1) + RotatingfaName.Add("عصر"); + if (nightCount >= 1) + RotatingfaName.Add("شب"); + for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++) + { + if (rotateNumber == 0) + rotatingFaResult = $"{RotatingfaName[rotateNumber]}"; + if (rotateNumber == 1) + rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; + if (rotateNumber == 2) + rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; + } + + } + else + { + rotatingFaResult = "نوبت کاری ندارد"; + + var over22Hours = (int)over22.TotalHours; + var over22Minuts = (int)(over22.TotalMinutes % 60); + shiftOver22Hours = over22Hours.ToString(); + shiftOver22Minuts = over22Minuts.ToString(); + + } + #endregion //******* محاسبه مبلغ نوبت کاری ************* #region ShiftPayPercent @@ -688,11 +742,30 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll } } - #endregion + #endregion - #region Result + #region Result + LeaveSearchModel sickLeaveSearch = new LeaveSearchModel() + { + EmployeeId = employeeId, + WorkshopId = workshopId, + LeaveType = "استعلاجی", + PaidLeaveType = "روزانه", + StartLeaveGr = contractStart, + EndLeaveGr = contractEnd, + IsAccepted = true, + }; + var sickLeaveSearchResult = _leaveRepository.search(sickLeaveSearch); - var res = new ComputingViewModel() + var sickLeaveTimeSpans = sickLeaveSearchResult.Select(x => + { + var startLeave = contractStart > x.StartLeaveGr ? contractStart : x.StartLeaveGr; + var endLeave = contractEnd < x.EndLeaveGr ? contractEnd : x.EndLeaveGr; + + return (endLeave - startLeave).Add(TimeSpan.FromDays(1)); + }); + var totalBreakTime = new TimeSpan(groupedRollCall.Sum(x => x.BreakTime.Ticks)); + var res = new ComputingViewModel() { NumberOfWorkingDays = $"{groupedRollCall.Count}", @@ -720,60 +793,70 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll TotalHolidayAndNotM = totalHolidaysAndNotM.ToString(), DayliFeeComplete = dayliFeeComplete, MarriedAllowance = MarriedAllowanceStr, - RotatingShiftValue = shiftPayValue - }; + RotatingShiftValue = shiftPayValue, + + #region SaveRollCall + + GroupedRollCalls = groupedRollCall, + TotalWorkingTimeSpan = sumSpansWhitOutleaves, + TotalBreakTimeSpan = totalBreakTime, + TotalPresentTimeSpan = sumSpansWhitOutleaves + totalBreakTime, + TotalPaidLeave = totalLeaveSpan, + TotalSickLeave = new TimeSpan(sickLeaveTimeSpans.Sum(x=>x.Ticks)), + #endregion + }; #endregion return res; } - /// - /// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب - /// - /// - /// - /// - /// - /// - public (bool hasRollCall, TimeSpan sumOfSpan) GetRollCallWorkingSpan(long employeeId, long workshopId, - DateTime contractStart, DateTime contractEnd) - { - //bool hasRollcall = - // _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd); - //if (!hasRollcall) - // return (false, new TimeSpan()); - List rollCallResult; - List groupedRollCall; - - - rollCallResult = _context.RollCalls.Where(x => - x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart.Date && - x.StartDate.Value.Date <= contractEnd.Date && x.EndDate != null).Select(x => new RollCallViewModel() - { - StartDate = x.StartDate, - EndDate = x.EndDate, - ShiftSpan = (x.EndDate.Value - x.StartDate.Value), - CreationDate = x.ShiftDate, - BreakTimeSpan = x.BreakTimeSpan - }).ToList(); - - groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => new GroupedRollCalls() - { - CreationDate = x.Key, - ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(), - HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), - SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - CalculateBreakTime(x.First().BreakTimeSpan, - new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))), - - BreakTime = CalculateBreakTime(x.First().BreakTimeSpan, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))), - - }).OrderBy(x => x.CreationDate).ToList(); + /// + /// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب + /// + /// + /// + /// + /// + /// + public (bool hasRollCall, TimeSpan sumOfSpan) GetRollCallWorkingSpan(long employeeId, long workshopId, + DateTime contractStart, DateTime contractEnd) + { + //bool hasRollcall = + // _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd); + //if (!hasRollcall) + // return (false, new TimeSpan()); + List rollCallResult; + List groupedRollCall; - TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks)); - return (true, sumSpans); - } + rollCallResult = _context.RollCalls.Where(x => + x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart.Date && + x.StartDate.Value.Date <= contractEnd.Date && x.EndDate != null).Select(x => new RollCallViewModel() + { + StartDate = x.StartDate, + EndDate = x.EndDate, + ShiftSpan = (x.EndDate.Value - x.StartDate.Value), + CreationDate = x.ShiftDate, + BreakTimeSpan = x.BreakTimeSpan + }).ToList(); + + groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => new GroupedRollCalls() + { + CreationDate = x.Key, + ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(), + HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), + SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - CalculateBreakTime(x.First().BreakTimeSpan, + new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))), + + BreakTime = CalculateBreakTime(x.First().BreakTimeSpan, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))), + + }).OrderBy(x => x.CreationDate).ToList(); + + + TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks)); + return (true, sumSpans); + } public async Task RotatingShiftReport(long workshopId, long employeeId, DateTime contractStart, DateTime contractEnd, string shiftwork, bool hasRollCall, CreateWorkingHoursTemp command, bool holidayWorking) @@ -864,20 +947,7 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll // شبکاری TimeSpan over22 = new TimeSpan(rotatingResultList.Sum(x => x.NightWorkSpan.Ticks)); var RotatingfaName = new List(); - //if (shiftwork != "1" && shiftwork != "2" && shiftwork != "4")//اگر چرخشی بود و منظم نبود - //{ - // if (moriningCount > 0) - // RotatingfaName.Add("صبح"); - // if (eveningCount > 0) - // RotatingfaName.Add("عصر"); - // if (nightCount > 0) - // RotatingfaName.Add("شب"); - //} - //else// اگر منظم و شیفتی بود - //{ - - //} var totalDays = (int)(contractEnd - contractStart).TotalDays + 1; int validCount = 0; if (totalDays <= 7) // زیر 7 روز باید حد اقل 2 تغییر شیفت داشته باشد @@ -894,37 +964,66 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll validCount = (int)((totalDays * 6) / 28); } - Console.WriteLine(validCount); - if (moriningCount >= validCount) - RotatingfaName.Add("صبح"); - if (eveningCount >= validCount) - RotatingfaName.Add("عصر"); - if (nightCount >= validCount) - RotatingfaName.Add("شب"); - var rotatingFaResult = ""; - if (RotatingfaName.Count > 1)// اگر تعداد شیفت های محاسبه شده بیش از یک بود - { + string maxName; + int maxValue = moriningCount; - for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++) - { - if (rotateNumber == 0) - rotatingFaResult = $"{RotatingfaName[rotateNumber]}"; - if (rotateNumber == 1) - rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; - if (rotateNumber == 2) - rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; - } - } - else if (RotatingfaName.Count <= 1) - { - rotatingFaResult = "نوبت کاری ندارد"; + maxName = "moriningCount"; + if (eveningCount > maxValue) + { + maxValue = eveningCount; + maxName = "eveningCount"; + } + if (nightCount > maxValue) + { + maxValue = nightCount; + maxName = "nightCount"; + } + + int countOutOfRange = 0; + + switch (maxName) + { + case "moriningCount": + countOutOfRange = eveningCount + nightCount; + break; + case "eveningCount": + countOutOfRange = moriningCount + nightCount; + break; + case "nightCount": + countOutOfRange = moriningCount + eveningCount; + break; + } + var rotatingFaResult = ""; + if (countOutOfRange >= validCount) + { + + if (moriningCount >= 1) + RotatingfaName.Add("صبح"); + if (eveningCount >= 1) + RotatingfaName.Add("عصر"); + if (nightCount >= 1) + RotatingfaName.Add("شب"); + for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++) + { + if (rotateNumber == 0) + rotatingFaResult = $"{RotatingfaName[rotateNumber]}"; + if (rotateNumber == 1) + rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; + if (rotateNumber == 2) + rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; + } + + } + else + { + rotatingFaResult = "نوبت کاری ندارد"; + } - } return new ComputingViewModel { @@ -939,19 +1038,19 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll - //public static TimeSpan CalculateBreakTime(BreakTime breakTime, TimeSpan sumOneDaySpan) - //{ - // if (breakTime.BreakTimeType != BreakTimeType.WithTime) - // return new TimeSpan(); + public static TimeSpan CalculateBreakTime(BreakTime breakTime, TimeSpan sumOneDaySpan) + { + if (breakTime.BreakTimeType != BreakTimeType.WithTime) + return new TimeSpan(); - // var breakTimeSpan = breakTime.BreakTimeValue.ToTimeSpan(); + var breakTimeSpan = breakTime.BreakTimeValue.ToTimeSpan(); - // if (breakTimeSpan * 2 >= sumOneDaySpan) - // return new TimeSpan(); + if (breakTimeSpan * 2 >= sumOneDaySpan) + return new TimeSpan(); - // return breakTimeSpan; ; + return breakTimeSpan; ; - //} + } public static TimeSpan CalculateBreakTime(TimeSpan breakTimeSpan, TimeSpan sumOneDaySpan) { if (breakTimeSpan * 2 >= sumOneDaySpan) @@ -1629,7 +1728,8 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll EndDate = endComplex, ShiftSpan = (endComplex - startComplex), ShiftDate = currentDateGr, - }); + ShiftEndWithoutRest = endComplex + }); var endCal = end - start; @@ -2090,7 +2190,7 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll var starTimeSingel1 = Convert.ToDateTime(shift1Start); var endTimeSingel2 = Convert.ToDateTime(shift1End); - bool hasRestTime = false; + bool hasRestTime = false; shift1StartGr = new DateTime(cuurentDate.Year, cuurentDate.Month, cuurentDate.Day, starTimeSingel1.Hour, starTimeSingel1.Minute, 0); @@ -2099,92 +2199,92 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll if (shift1EndGr.TimeOfDay < shift1StartGr.TimeOfDay) shift1EndGr = shift1EndGr.AddDays(1); - var shiftEndWithoutRest = shift1EndGr; + var shiftEndWithoutRest = shift1EndGr; - var shiftSpan = (shift1EndGr - shift1StartGr); - if (restTime > TimeSpan.Zero && shiftSpan >= restTime) - { - hasRestTime = true; - shift1EndGr = shift1EndGr.Subtract(restTime); - shiftSpan = (shift1EndGr - shift1StartGr); - - } + var shiftSpan = (shift1EndGr - shift1StartGr); + if (restTime > TimeSpan.Zero && shiftSpan >= restTime) + { + hasRestTime = true; + shift1EndGr = shift1EndGr.Subtract(restTime); + shiftSpan = (shift1EndGr - shift1StartGr); - if (!leaveSearchResult.Any(x => x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType =="روزانه")) - { - var hourseLeaveTypeResult = leaveSearchResult.FirstOrDefault(x => - x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType == "ساعتی"); - if (hourseLeaveTypeResult == null) - { - result.Add(new RollCallViewModel() - { - BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, - StartDate = shift1StartGr, - EndDate = shift1EndGr, - ShiftSpan = shiftSpan, - ShiftDate = shift1StartGr, + } + + if (!leaveSearchResult.Any(x => x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType == "روزانه")) + { + var hourseLeaveTypeResult = leaveSearchResult.FirstOrDefault(x => + x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType == "ساعتی"); + if (hourseLeaveTypeResult == null) + { + result.Add(new RollCallViewModel() + { + BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, + StartDate = shift1StartGr, + EndDate = shift1EndGr, + ShiftSpan = shiftSpan, + ShiftDate = shift1StartGr, ShiftEndWithoutRest = shiftEndWithoutRest - }); - } - else - { + }); + } + else + { - if (hourseLeaveTypeResult.StartLeaveGr <= shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr) - { - //leave <--------------------> - //shift <----------------------------------> - result.Add(new RollCallViewModel() - { - BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, - StartDate = hourseLeaveTypeResult.EndLeaveGr, - EndDate = shift1EndGr, - ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr), - ShiftDate = shift1StartGr, - ShiftEndWithoutRest = shiftEndWithoutRest + if (hourseLeaveTypeResult.StartLeaveGr <= shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr) + { + //leave <--------------------> + //shift <----------------------------------> + result.Add(new RollCallViewModel() + { + BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, + StartDate = hourseLeaveTypeResult.EndLeaveGr, + EndDate = shift1EndGr, + ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr), + ShiftDate = shift1StartGr, + ShiftEndWithoutRest = shiftEndWithoutRest - }); - } - else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr) - { - //leave <--------------------> - //shift <----------------------------------> - result.Add(new RollCallViewModel() - { - BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, - StartDate = shift1StartGr, - EndDate = hourseLeaveTypeResult.StartLeaveGr, - ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr), - ShiftDate = shift1StartGr, - ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr + }); + } + else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr) + { + //leave <--------------------> + //shift <----------------------------------> + result.Add(new RollCallViewModel() + { + BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, + StartDate = shift1StartGr, + EndDate = hourseLeaveTypeResult.StartLeaveGr, + ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr), + ShiftDate = shift1StartGr, + ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr - }); + }); - result.Add(new RollCallViewModel() - { - BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, - StartDate = hourseLeaveTypeResult.EndLeaveGr, - EndDate = shift1EndGr, - ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr), - ShiftDate = shift1StartGr, - ShiftEndWithoutRest = shiftEndWithoutRest + result.Add(new RollCallViewModel() + { + BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, + StartDate = hourseLeaveTypeResult.EndLeaveGr, + EndDate = shift1EndGr, + ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr), + ShiftDate = shift1StartGr, + ShiftEndWithoutRest = shiftEndWithoutRest - }); - } - else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr >= shift1EndGr) - { - //leave <--------------------> - //shift <----------------------------------> + }); + } + else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr >= shift1EndGr) + { + //leave <--------------------> + //shift <----------------------------------> - result.Add(new RollCallViewModel() - { - BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, - StartDate = shift1StartGr, - EndDate = hourseLeaveTypeResult.StartLeaveGr, - ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr), - ShiftDate = shift1StartGr, - ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr + result.Add(new RollCallViewModel() + { + BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero, + StartDate = shift1StartGr, + EndDate = hourseLeaveTypeResult.StartLeaveGr, + ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr), + ShiftDate = shift1StartGr, + ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr - }); + }); } @@ -2241,6 +2341,7 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll EndDate = shift2EndGr, ShiftSpan = (shift2EndGr - shift2StartGr), ShiftDate = shift1?.ShiftDate ?? shift2EndGr, + ShiftEndWithoutRest = shift2EndGr, }); } else @@ -2256,7 +2357,8 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll EndDate = shift2EndGr, ShiftSpan = (shift2EndGr - hourseLeaveTypeResult.EndLeaveGr), ShiftDate = shift1?.EndDate ?? shift2EndGr, - }); + ShiftEndWithoutRest = shift2EndGr, + }); } else if (hourseLeaveTypeResult.StartLeaveGr > shift2StartGr && hourseLeaveTypeResult.EndLeaveGr < shift2EndGr) { @@ -2268,7 +2370,8 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll EndDate = hourseLeaveTypeResult.StartLeaveGr, ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift2StartGr), ShiftDate = shift1?.EndDate ?? shift2EndGr, - }); + ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr, + }); result.Add(new RollCallViewModel() { @@ -2276,7 +2379,8 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll EndDate = shift2EndGr, ShiftSpan = (shift2EndGr - hourseLeaveTypeResult.EndLeaveGr), ShiftDate = shift1?.EndDate ?? shift2EndGr, - }); + ShiftEndWithoutRest = shift2EndGr, + }); } else if (hourseLeaveTypeResult.StartLeaveGr > shift2StartGr && hourseLeaveTypeResult.EndLeaveGr >= shift2EndGr) { @@ -2289,7 +2393,8 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll EndDate = hourseLeaveTypeResult.StartLeaveGr, ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift2StartGr), ShiftDate = shift1?.EndDate ?? shift2EndGr, - }); + ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr, + }); } @@ -3021,13 +3126,13 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll var endFarvarding = new DateTime(2025, 4, 20); - if (contractStart>endFarvarding) + if (contractStart > endFarvarding) { - customizeWorkshopEmployeeSettings=_context.CustomizeWorkshopEmployeeSettings + customizeWorkshopEmployeeSettings = _context.CustomizeWorkshopEmployeeSettings .AsSplitQuery().AsNoTracking().FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId); - customizeWorkshopSettings =_context.CustomizeWorkshopSettings.AsNoTracking().FirstOrDefault(x => x.WorkshopId == workshopId); + customizeWorkshopSettings = _context.CustomizeWorkshopSettings.AsNoTracking().FirstOrDefault(x => x.WorkshopId == workshopId); } else @@ -3982,40 +4087,40 @@ public class RollCallMandatoryRepository : RepositoryBase, IRoll }).ToList(); } - public List LoanInstallmentForCheckout(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd) - { - return _context.Loans - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .SelectMany(x => x.LoanInstallments) - .Where(i => i.InstallmentDate >= contractStart && i.InstallmentDate <= contractEnd && i.IsActive == IsActive.True) - .Select(x => new LoanInstallmentViewModel() - { - Id = x.Id, - Month = x.Month, - IsActive = x.IsActive, - Amount = x.AmountForMonth.ToMoney(), - Year = x.Year, - AmountDouble = x.AmountForMonth, - RemainingAmount = _context.Loans.SelectMany(l => l.LoanInstallments).Where(i => i.LoanId == x.LoanId && i.IsActive == IsActive.True && i.InstallmentDate > x.InstallmentDate) - .Sum(i => i.AmountForMonth).ToMoney(), - LoanAmount = _context.Loans.FirstOrDefault(l => l.id == x.LoanId).Amount.ToMoney() - }).ToList(); - } + public List LoanInstallmentForCheckout(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd) + { + return _context.Loans + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .SelectMany(x => x.LoanInstallments) + .Where(i => i.InstallmentDate >= contractStart && i.InstallmentDate <= contractEnd && i.IsActive == IsActive.True) + .Select(x => new LoanInstallmentViewModel() + { + Id = x.Id, + Month = x.Month, + IsActive = x.IsActive, + Amount = x.AmountForMonth.ToMoney(), + Year = x.Year, + AmountDouble = x.AmountForMonth, + RemainingAmount = _context.Loans.SelectMany(l => l.LoanInstallments).Where(i => i.LoanId == x.LoanId && i.IsActive == IsActive.True && i.InstallmentDate > x.InstallmentDate) + .Sum(i => i.AmountForMonth).ToMoney(), + LoanAmount = _context.Loans.FirstOrDefault(l => l.id == x.LoanId).Amount.ToMoney() + }).ToList(); + } - public List SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart, DateTime checkoutEnd) - { - return _context.SalaryAids - .Where(x => x.CalculationDate >= checkoutStart && x.CalculationDate <= checkoutEnd && x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x => new SalaryAidViewModel() - { - Amount = x.Amount.ToMoney(), - AmountDouble = x.Amount, - SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), - SalaryAidDateTimeGe = x.SalaryAidDateTime, - CalculationDateTimeGe = x.CalculationDate, - CalculationDateTimeFa = x.CalculationDate.ToFarsi(), - Id = x.id - }).ToList(); - } + public List SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart, DateTime checkoutEnd) + { + return _context.SalaryAids + .Where(x => x.CalculationDate >= checkoutStart && x.CalculationDate <= checkoutEnd && x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x => new SalaryAidViewModel() + { + Amount = x.Amount.ToMoney(), + AmountDouble = x.Amount, + SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(), + SalaryAidDateTimeGe = x.SalaryAidDateTime, + CalculationDateTimeGe = x.CalculationDate, + CalculationDateTimeFa = x.CalculationDate.ToFarsi(), + Id = x.id + }).ToList(); + } private void CreateRewardForBirthDay(long employeeId, long workshopId, double amount, int month, int year, DateTime contractStart) diff --git a/CompanyManagment.EFCore/Repository/RollCallRepository.cs b/CompanyManagment.EFCore/Repository/RollCallRepository.cs index a54f063c..0e07d3bb 100644 --- a/CompanyManagment.EFCore/Repository/RollCallRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallRepository.cs @@ -152,16 +152,16 @@ public class RollCallRepository : RepositoryBase, IRollCallRepos public List GetEmployeeRollCallsForMonth(long employeeId, long workshopId, DateTime startMonthDay, DateTime endMonthDay) { var firstDayOfMonth = $"{startMonthDay.ToFarsi().Substring(0,8)}01".ToGeorgianDateTime(); - + var endFarvardin = "1404/01/31".ToGeorgianDateTime(); //گرفتن ساعت استراحت پرسنل از تنظیمات #region breakTime - //BaseCustomizeEntity settings = _context.CustomizeWorkshopEmployeeSettings.AsSplitQuery().FirstOrDefault(x => - // x.WorkshopId == workshopId && x.EmployeeId == employeeId); - ////اگر ساعت استراحت پرسنل وجود نداشت صفر است - //var breakTime = settings == null ? new BreakTime(false, new TimeOnly()) : settings.BreakTime; + BaseCustomizeEntity settings = _context.CustomizeWorkshopEmployeeSettings.AsSplitQuery().FirstOrDefault(x => + x.WorkshopId == workshopId && x.EmployeeId == employeeId); + //اگر ساعت استراحت پرسنل وجود نداشت صفر است + var breakTime = settings == null ? new BreakTime(false, new TimeOnly()) : settings.BreakTime; #endregion - var rollCalls = _context.RollCalls.Where(x => + var rollCalls = _context.RollCalls.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate != null && x.EndDate != null && x.RollCallModifyType != RollCallModifyType.Undefined && x.ShiftDate.Date >= startMonthDay && x.ShiftDate.Date <= endMonthDay).ToList(); @@ -224,26 +224,30 @@ public class RollCallRepository : RepositoryBase, IRollCallRepos var rollCallTimeSpanPerDay = new TimeSpan(x.Where(y => y.EndDate != null).Sum(y => (y.EndDate - y.StartDate)!.Value.Ticks)); - var breakTimePerDay = RollCallMandatoryRepository.CalculateBreakTime(x.First().BreakTimeSpan, rollCallTimeSpanPerDay); + TimeSpan breakTimePerDay ; + if(startMonthDay>endFarvardin) + breakTimePerDay= RollCallMandatoryRepository.CalculateBreakTime(x.First().BreakTimeSpan, rollCallTimeSpanPerDay); + else + breakTimePerDay = RollCallMandatoryRepository.CalculateBreakTime(breakTime, rollCallTimeSpanPerDay); return new CheckoutDailyRollCallViewModel() - { - StartDate1 = orderedRollcalls.FirstOrDefault().StartDate.Value.ToString("HH:mm"), - EndDate1 = orderedRollcalls.FirstOrDefault().EndDate.Value.ToString("HH:mm"), + { + StartDate1 = orderedRollcalls.FirstOrDefault().StartDate.Value.ToString("HH:mm"), + EndDate1 = orderedRollcalls.FirstOrDefault().EndDate.Value.ToString("HH:mm"), - StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.StartDate?.ToString("HH:mm") ?? "", - EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndDate?.ToString("HH:mm") ?? "", + StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.StartDate?.ToString("HH:mm") ?? "", + EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndDate?.ToString("HH:mm") ?? "", - TotalhourseSpan = rollCallTimeSpanPerDay - breakTimePerDay, + TotalhourseSpan = rollCallTimeSpanPerDay - breakTimePerDay, - BreakTimeTimeSpan = breakTimePerDay, + BreakTimeTimeSpan = breakTimePerDay, - DayOfWeek = x.Key.DayOfWeek.DayOfWeeKToPersian(), - RollCallDateFa = x.Key.Date.ToFarsi(), - DateTimeGr = x.Key.Date, - IsSliced = x.Count() > 2, - IsAbsent = false - }; + DayOfWeek = x.Key.DayOfWeek.DayOfWeeKToPersian(), + RollCallDateFa = x.Key.Date.ToFarsi(), + DateTimeGr = x.Key.Date, + IsSliced = x.Count() > 2, + IsAbsent = false + }; }); diff --git a/CompanyManagment.EFCore/Repository/WorkshopRepository.cs b/CompanyManagment.EFCore/Repository/WorkshopRepository.cs index 253007c4..4a028c68 100644 --- a/CompanyManagment.EFCore/Repository/WorkshopRepository.cs +++ b/CompanyManagment.EFCore/Repository/WorkshopRepository.cs @@ -197,9 +197,14 @@ public class WorkshopRepository : RepositoryBase x.Id == id); + }).FirstOrDefault(x => x.Id == id); } public List GetRelation(long workshopid) diff --git a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs index 6187a5ec..5d90620f 100644 --- a/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs +++ b/CompanyManagment.EFCore/Repository/YearlySalaryRepository.cs @@ -5,6 +5,9 @@ using System.Linq; using System.Net.Http; using System.Threading.Tasks; using _0_Framework.Application; +using _0_Framework.Domain.CustomizeCheckoutShared.Base; +using _0_Framework.Domain.CustomizeCheckoutShared.Enums; +using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; using _0_Framework.InfraStructure; using Company.Domain.LeftWorkAgg; using Company.Domain.MandatoryHoursAgg; @@ -27,255 +30,255 @@ namespace CompanyManagment.EFCore.Repository; public class YearlySalaryRepository : RepositoryBase, IYearlySalaryRepository { - private readonly CompanyContext _context; - private readonly ILeftWorkRepository _leftWorkRepository; - private readonly IMandatoryHoursRepository _mandatoryHoursRepository; - private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository; - - - - public YearlySalaryRepository(CompanyContext context, ILeftWorkRepository leftWorkRepository, IMandatoryHoursRepository mandatoryHoursRepository, IRollCallEmployeeRepository rollCallEmployeeRepository) : base(context) - { - _context = context; - _leftWorkRepository = leftWorkRepository; - _mandatoryHoursRepository = mandatoryHoursRepository; - _rollCallEmployeeRepository = rollCallEmployeeRepository; - } - // لیست سال های برای دراپ دان - #region GetYearsToDropDown - public List GetYears() - { - List yearlist = new List(); - PersianDateTime startDate = new PersianDateTime(1370, 1, 1); - DateTime endDateNow = DateTime.Now; - - var endDateNowFa = endDateNow.ToFarsi(); - var y = Convert.ToInt32(endDateNowFa.Substring(0, 4)); - var m = Convert.ToInt32(endDateNowFa.Substring(5, 2)); - var d = Convert.ToInt32(endDateNowFa.Substring(8, 2)); - - PersianDateTime endDate = new PersianDateTime(y, m, d); - - if (m == 12) - endDate.AddYears(1); - for (PersianDateTime date = endDate; date >= startDate; date = date.AddYears(-1)) - { - yearlist.Add(date.ToString("yyyy")); - } - - return yearlist; - } - - #endregion - - //دریافت مقادیر یک سال بر اساس سال انتخاب شده - #region YearlySalaryByYear - - public List GetYearlySalary() - { - return _context.YearlySalaries.Select(x => new YearlySalaryViewModel - { - Id = x.id, - StartDate = x.StartDate.ToFarsi(), - Year = x.Year - - - }) - .OrderByDescending(x => x.Year).ToList(); - } - - #endregion - - - //محاسبه حقوق ماهیانه عیدی و پاداش ، سنوات - #region GetMontlyBunosYears - public MontlywageBunosYearsViewModel GetMontlyBunosYears(TimeSpan weeklyTime, DateTime contractStart, DateTime contractEnd, double daylyWage, - string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking, string shiftWork) - { - double basicDouble = basic.MoneyToDouble(); - double sub = 0; - double bacicMontlyResult = 0; - double montlyResult = 0; - - double montlySalaryResult = 0; - double basicYearResult = 0; - var salary = _context.YearlySalaries.OrderByDescending(x => x.EndDate).Include(x => x.YearlySalaryItemsList).ToList(); - - var SalaryItems = - salary.FirstOrDefault(x => x.StartDate <= contractStart && x.EndDate >= contractStart); - var BasicDayliFee = SalaryItems - .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); - var contractEndFa = contractEnd.ToFarsi(); - var TotalDays = (contractEnd - contractStart).TotalDays + 1; - //var DayCounter = Convert.ToInt32(TotalDays); - //var EndOfM = Convert.ToInt32(contractEndFa.Substring(8, 2)); - //if (EndOfM == 31) - //{ - // TotalDays = 30; - //} - - // یدست آوردن کل ساعت کار پرسنل در ماه - var totalHoursHDouble = Convert.ToDouble(totalHoursH); - var totalHoursMDouble = Convert.ToDouble(totalHorsM); - if (totalHoursMDouble > 0) - { - //تبیدل دقیه به اعشار - totalHoursMDouble = totalHoursMDouble / 60; - } - //کل ساعت کار پرسنل در این ماه - var totalHours = totalHoursHDouble + totalHoursMDouble;// ساعت کارکرد پرسنل در این ماه - - //var MandatoryDays = TotalDays - friday - officialholiday; - //var MandatoryDays = TotalDays - fridayStartToEnd; - ////اگر حضورغیاب داشت - //if (hasRollCall) - var MandatoryDays = TotalDays - fridayStartToEnd - officialholiday; - - if (!hasRollCall && shiftWork != "4") - MandatoryDays = TotalDays - fridayStartToEnd; - //بدست آوردن ساعت موظفی این ماه - var TotalMandatoryHours = MandatoryDays * 7.33;//ساعت موظفی این ماه - - - //محاسبه سنوات - var yearsResult = (daylyWage * 30) / 365 * TotalDays; - - //محاسبه عیدی و پاداش - var bunosResult = (daylyWage * 60) / 365 * TotalDays; - - - if (weeklyWorkingTime == "24 - 12" || weeklyWorkingTime == "24 - 24" - || weeklyWorkingTime == "36 - 12" || - weeklyWorkingTime == "48 - 24") - { - - if (totalHours < TotalMandatoryHours)//weeklyTimeDouble < 44.00اگر کمتر از 44 ساعت کار کرد - { - - var b = (BasicDayliFee * totalHours) / TotalMandatoryHours; - var dayli = (dayliFeeComplete * totalHours) / TotalMandatoryHours; - - if (basicDouble > 0)//اگر پایه سنوات داشت - { - //حقوق ماهیانه - montlySalaryResult = b * TotalDays; - //پایه سنوات - basicYearResult = (dayli - b) * TotalDays; - } - else// اگر پایه سنوات نداشت - { - //حقوق ماهانه - montlySalaryResult = daylyWage * TotalDays; - //پایه سنوات - basicYearResult = 0; - - } - - } - else - { - - - daylyWage = basicDouble > 0 ? (daylyWage + basicDouble) : daylyWage; - montlyResult = daylyWage * TotalDays;// مزد ماهانه با پایه سنوات - bacicMontlyResult = BasicDayliFee * TotalDays;// مزد ماهانه بدون پایه سنوات - - if (montlyResult > bacicMontlyResult) - { - - montlySalaryResult = bacicMontlyResult; - basicYearResult = montlyResult - bacicMontlyResult; - } - else - { - montlySalaryResult = montlyResult; - } - } - - - } - else - { - //double weeklyTimeDouble = 0; - //try - //{ - // weeklyTimeDouble = double.Parse(weeklyWorkingTime, CultureInfo.InvariantCulture); - //} - //catch (Exception e) - //{ - // weeklyTimeDouble = double.Parse(weeklyWorkingTime); - //} - - - if (totalHours < TotalMandatoryHours)//weeklyTimeDouble < 44.00اگر کمتر از 44 ساعت کار کرد - { - //var divideNum = TimeSpan.Parse("06:00"); - //// مجموع ساعت کار هفته تقسیم بر 6 ساعت - //var dividTo6Days = 34.57 / 6; + private readonly CompanyContext _context; + private readonly ILeftWorkRepository _leftWorkRepository; + private readonly IMandatoryHoursRepository _mandatoryHoursRepository; + private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository; + + + + public YearlySalaryRepository(CompanyContext context, ILeftWorkRepository leftWorkRepository, IMandatoryHoursRepository mandatoryHoursRepository, IRollCallEmployeeRepository rollCallEmployeeRepository) : base(context) + { + _context = context; + _leftWorkRepository = leftWorkRepository; + _mandatoryHoursRepository = mandatoryHoursRepository; + _rollCallEmployeeRepository = rollCallEmployeeRepository; + } + // لیست سال های برای دراپ دان + #region GetYearsToDropDown + public List GetYears() + { + List yearlist = new List(); + PersianDateTime startDate = new PersianDateTime(1370, 1, 1); + DateTime endDateNow = DateTime.Now; + + var endDateNowFa = endDateNow.ToFarsi(); + var y = Convert.ToInt32(endDateNowFa.Substring(0, 4)); + var m = Convert.ToInt32(endDateNowFa.Substring(5, 2)); + var d = Convert.ToInt32(endDateNowFa.Substring(8, 2)); + + PersianDateTime endDate = new PersianDateTime(y, m, d); + + if (m == 12) + endDate.AddYears(1); + for (PersianDateTime date = endDate; date >= startDate; date = date.AddYears(-1)) + { + yearlist.Add(date.ToString("yyyy")); + } + + return yearlist; + } + + #endregion + + //دریافت مقادیر یک سال بر اساس سال انتخاب شده + #region YearlySalaryByYear + + public List GetYearlySalary() + { + return _context.YearlySalaries.Select(x => new YearlySalaryViewModel + { + Id = x.id, + StartDate = x.StartDate.ToFarsi(), + Year = x.Year + + + }) + .OrderByDescending(x => x.Year).ToList(); + } + + #endregion + + + //محاسبه حقوق ماهیانه عیدی و پاداش ، سنوات + #region GetMontlyBunosYears + public MontlywageBunosYearsViewModel GetMontlyBunosYears(TimeSpan weeklyTime, DateTime contractStart, DateTime contractEnd, double daylyWage, + string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking, string shiftWork) + { + double basicDouble = basic.MoneyToDouble(); + double sub = 0; + double bacicMontlyResult = 0; + double montlyResult = 0; + + double montlySalaryResult = 0; + double basicYearResult = 0; + var salary = _context.YearlySalaries.OrderByDescending(x => x.EndDate).Include(x => x.YearlySalaryItemsList).ToList(); + + var SalaryItems = + salary.FirstOrDefault(x => x.StartDate <= contractStart && x.EndDate >= contractStart); + var BasicDayliFee = SalaryItems + .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); + var contractEndFa = contractEnd.ToFarsi(); + var TotalDays = (contractEnd - contractStart).TotalDays + 1; + //var DayCounter = Convert.ToInt32(TotalDays); + //var EndOfM = Convert.ToInt32(contractEndFa.Substring(8, 2)); + //if (EndOfM == 31) + //{ + // TotalDays = 30; + //} + + // یدست آوردن کل ساعت کار پرسنل در ماه + var totalHoursHDouble = Convert.ToDouble(totalHoursH); + var totalHoursMDouble = Convert.ToDouble(totalHorsM); + if (totalHoursMDouble > 0) + { + //تبیدل دقیه به اعشار + totalHoursMDouble = totalHoursMDouble / 60; + } + //کل ساعت کار پرسنل در این ماه + var totalHours = totalHoursHDouble + totalHoursMDouble;// ساعت کارکرد پرسنل در این ماه + + //var MandatoryDays = TotalDays - friday - officialholiday; + //var MandatoryDays = TotalDays - fridayStartToEnd; + ////اگر حضورغیاب داشت + //if (hasRollCall) + var MandatoryDays = TotalDays - fridayStartToEnd - officialholiday; + + if (!hasRollCall && shiftWork != "4") + MandatoryDays = TotalDays - fridayStartToEnd; + //بدست آوردن ساعت موظفی این ماه + var TotalMandatoryHours = MandatoryDays * 7.33;//ساعت موظفی این ماه + + + //محاسبه سنوات + var yearsResult = (daylyWage * 30) / 365 * TotalDays; + + //محاسبه عیدی و پاداش + var bunosResult = (daylyWage * 60) / 365 * TotalDays; + + + if (weeklyWorkingTime == "24 - 12" || weeklyWorkingTime == "24 - 24" + || weeklyWorkingTime == "36 - 12" || + weeklyWorkingTime == "48 - 24") + { + + if (totalHours < TotalMandatoryHours)//weeklyTimeDouble < 44.00اگر کمتر از 44 ساعت کار کرد + { + + var b = (BasicDayliFee * totalHours) / TotalMandatoryHours; + var dayli = (dayliFeeComplete * totalHours) / TotalMandatoryHours; + + if (basicDouble > 0)//اگر پایه سنوات داشت + { + //حقوق ماهیانه + montlySalaryResult = b * TotalDays; + //پایه سنوات + basicYearResult = (dayli - b) * TotalDays; + } + else// اگر پایه سنوات نداشت + { + //حقوق ماهانه + montlySalaryResult = daylyWage * TotalDays; + //پایه سنوات + basicYearResult = 0; + + } + + } + else + { + + + daylyWage = basicDouble > 0 ? (daylyWage + basicDouble) : daylyWage; + montlyResult = daylyWage * TotalDays;// مزد ماهانه با پایه سنوات + bacicMontlyResult = BasicDayliFee * TotalDays;// مزد ماهانه بدون پایه سنوات + + if (montlyResult > bacicMontlyResult) + { + + montlySalaryResult = bacicMontlyResult; + basicYearResult = montlyResult - bacicMontlyResult; + } + else + { + montlySalaryResult = montlyResult; + } + } + + + } + else + { + //double weeklyTimeDouble = 0; + //try + //{ + // weeklyTimeDouble = double.Parse(weeklyWorkingTime, CultureInfo.InvariantCulture); + //} + //catch (Exception e) + //{ + // weeklyTimeDouble = double.Parse(weeklyWorkingTime); + //} + + + if (totalHours < TotalMandatoryHours)//weeklyTimeDouble < 44.00اگر کمتر از 44 ساعت کار کرد + { + //var divideNum = TimeSpan.Parse("06:00"); + //// مجموع ساعت کار هفته تقسیم بر 6 ساعت + //var dividTo6Days = 34.57 / 6; - //// مزد روزانه تقسیم بر 7.33 - //var dailyStep1 = BasicDayliFee / 7.33; - ////نتیجه ضربدر جواب مجموع ساعت تقسیم بر 6 روز هفته - //var dailyStep2 = dailyStep1 * dividTo6Days; - //var dailyFeeString = dailyStep2.ToMoney(); - //var dayilyFee = dailyFeeString.MoneyToDouble(); + //// مزد روزانه تقسیم بر 7.33 + //var dailyStep1 = BasicDayliFee / 7.33; + ////نتیجه ضربدر جواب مجموع ساعت تقسیم بر 6 روز هفته + //var dailyStep2 = dailyStep1 * dividTo6Days; + //var dailyFeeString = dailyStep2.ToMoney(); + //var dayilyFee = dailyFeeString.MoneyToDouble(); - //var a = (daylyWage * totalHours) / TotalMandatoryHours; - var b = (BasicDayliFee * totalHours) / TotalMandatoryHours; - var dayli = (dayliFeeComplete * totalHours) / TotalMandatoryHours; - if (basicDouble > 0)//اگر پایه سنوات داشت - { - //حقوق ماهیانه - montlySalaryResult = b * TotalDays; - //پایه سنوات - basicYearResult = (dayli - b) * TotalDays; - } - else// اگر پایه سنوات نداشت - { - //حقوق ماهانه - montlySalaryResult = daylyWage * TotalDays; - //پایه سنوات - basicYearResult = 0; - - } - - //if (sub >= 0) - //{ - // basicYearResult = sub * TotalDays; - // montlySalaryResult = dayilyFee * TotalDays; - //} - //else - //{ - // basicYearResult = 0; - // montlySalaryResult = daylyWage * TotalDays; - - //} + //var a = (daylyWage * totalHours) / TotalMandatoryHours; + var b = (BasicDayliFee * totalHours) / TotalMandatoryHours; + var dayli = (dayliFeeComplete * totalHours) / TotalMandatoryHours; + if (basicDouble > 0)//اگر پایه سنوات داشت + { + //حقوق ماهیانه + montlySalaryResult = b * TotalDays; + //پایه سنوات + basicYearResult = (dayli - b) * TotalDays; + } + else// اگر پایه سنوات نداشت + { + //حقوق ماهانه + montlySalaryResult = daylyWage * TotalDays; + //پایه سنوات + basicYearResult = 0; + + } + + //if (sub >= 0) + //{ + // basicYearResult = sub * TotalDays; + // montlySalaryResult = dayilyFee * TotalDays; + //} + //else + //{ + // basicYearResult = 0; + // montlySalaryResult = daylyWage * TotalDays; + + //} - } - else//اگر بیشتر از 44 ساعت کار کرد - { - //محاسبه حقوق ماهانه - - montlyResult = daylyWage * TotalDays;// مزد ماهانه با پایه سنوات - bacicMontlyResult = BasicDayliFee * TotalDays;// مزد ماهانه بدون پایه سنوات - if (montlyResult > bacicMontlyResult) - { - - montlySalaryResult = bacicMontlyResult; - basicYearResult = montlyResult - bacicMontlyResult; - } - else - { - montlySalaryResult = montlyResult; - } - } - } - + } + else//اگر بیشتر از 44 ساعت کار کرد + { + //محاسبه حقوق ماهانه + + montlyResult = daylyWage * TotalDays;// مزد ماهانه با پایه سنوات + bacicMontlyResult = BasicDayliFee * TotalDays;// مزد ماهانه بدون پایه سنوات + if (montlyResult > bacicMontlyResult) + { + + montlySalaryResult = bacicMontlyResult; + basicYearResult = montlyResult - bacicMontlyResult; + } + else + { + montlySalaryResult = montlyResult; + } + } + } + @@ -286,3577 +289,3619 @@ public class YearlySalaryRepository : RepositoryBase, IYearl - var result = new MontlywageBunosYearsViewModel() - { - MontlyWage = montlySalaryResult,// حقوق ماهانه بدون پایه سنوات - Years = yearsResult,// سنوات - Bunos = bunosResult,//عیدی پاداش - - BasicYears = basicYearResult,//پایه سنوات - SumOfWorkingDay = $"{TotalDays}", - }; - return result; - } - - #endregion - - //مزد مرخصی - #region GetLeavePay - - public double GetLeavePay(DateTime contractStart, DateTime contractEnd, double daylyWage, double consumableItem, - double housingAllowance, double familyAllowance, string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM) - { - double result = 0; - var TotalDays = (contractEnd - contractStart).TotalDays + 1; - - - // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل - var leaveHoursesPerDay = 190.58 / 365; - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل - var leaveHoursesPerContractDays = leaveHoursesPerDay * TotalDays; + var result = new MontlywageBunosYearsViewModel() + { + MontlyWage = montlySalaryResult,// حقوق ماهانه بدون پایه سنوات + Years = yearsResult,// سنوات + Bunos = bunosResult,//عیدی پاداش + + BasicYears = basicYearResult,//پایه سنوات + SumOfWorkingDay = $"{TotalDays}", + }; + return result; + } + + #endregion + + //مزد مرخصی + #region GetLeavePay + + public double GetLeavePay(DateTime contractStart, DateTime contractEnd, double daylyWage, double consumableItem, + double housingAllowance, double familyAllowance, string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM) + { + double result = 0; + var TotalDays = (contractEnd - contractStart).TotalDays + 1; + + + // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل + var leaveHoursesPerDay = 190.58 / 365; + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل + var leaveHoursesPerContractDays = leaveHoursesPerDay * TotalDays; - if (weeklyWorkingTime == "24 - 12" || weeklyWorkingTime == "24 - 24" - || weeklyWorkingTime == "36 - 12" || - weeklyWorkingTime == "48 - 24") - { - var MandatoryDays = TotalDays - friday - officialholiday; - //بدست آوردن ساعت موظفی این ماه - var TotalMandatoryHours = MandatoryDays * 7.33; - //تبدیل ساعت به عدد - var totalHoursHDouble = Convert.ToDouble(totalHoursH); - var totalHoursMDouble = Convert.ToDouble(totalHorsM); - if (totalHoursMDouble > 0) - { - //تبیدل دقیه به اعشار - totalHoursMDouble = totalHoursMDouble / 60; - } - //کل ساعت کار پرسنل در این ماه - var totalHours = totalHoursHDouble + totalHoursMDouble; + if (weeklyWorkingTime == "24 - 12" || weeklyWorkingTime == "24 - 24" + || weeklyWorkingTime == "36 - 12" || + weeklyWorkingTime == "48 - 24") + { + var MandatoryDays = TotalDays - friday - officialholiday; + //بدست آوردن ساعت موظفی این ماه + var TotalMandatoryHours = MandatoryDays * 7.33; + //تبدیل ساعت به عدد + var totalHoursHDouble = Convert.ToDouble(totalHoursH); + var totalHoursMDouble = Convert.ToDouble(totalHorsM); + if (totalHoursMDouble > 0) + { + //تبیدل دقیه به اعشار + totalHoursMDouble = totalHoursMDouble / 60; + } + //کل ساعت کار پرسنل در این ماه + var totalHours = totalHoursHDouble + totalHoursMDouble; - var employeeWorkingDay = TotalDays - friday; + var employeeWorkingDay = TotalDays - friday; - if (totalHours < TotalMandatoryHours)// اگر کمتر از 44 ساعت کار کرد - { - var dayliHours = totalHours / employeeWorkingDay; + if (totalHours < TotalMandatoryHours)// اگر کمتر از 44 ساعت کار کرد + { + var dayliHours = totalHours / employeeWorkingDay; - //مقدار مزد روزانه برای یک ساعت - var dayliFee = daylyWage / dayliHours; + //مقدار مزد روزانه برای یک ساعت + var dayliFee = daylyWage / dayliHours; - //اقلام مصرفی برای یک ساعت - var ConoumableItemsStep1 = consumableItem / 30; - var ConsumableItems = ConoumableItemsStep1 / dayliHours; + //اقلام مصرفی برای یک ساعت + var ConoumableItemsStep1 = consumableItem / 30; + var ConsumableItems = ConoumableItemsStep1 / dayliHours; - //کمک هزینه مسکن برای یک ساعت - var housingAllowanceStep1 = housingAllowance / 30; - var HousingAllowance = housingAllowanceStep1 / dayliHours; + //کمک هزینه مسکن برای یک ساعت + var housingAllowanceStep1 = housingAllowance / 30; + var HousingAllowance = housingAllowanceStep1 / dayliHours; - //حق عائله مندی برای یک ساعت - var familyAllowanceStep1 = familyAllowance / 30; - var FamilyAllowance = familyAllowanceStep1 / dayliHours; + //حق عائله مندی برای یک ساعت + var familyAllowanceStep1 = familyAllowance / 30; + var FamilyAllowance = familyAllowanceStep1 / dayliHours; - var Step1Result1 = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; + var Step1Result1 = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; - // تناسب مجدد به نسبت ساعات کمتر از 7/33 - var res = (leaveHoursesPerContractDays * dayliHours) / 7.33; - result = Step1Result1 * res; - } - else - { - //مقدار مزد روزانه برای یک ساعت - var dayliFee = daylyWage / 7.33; + // تناسب مجدد به نسبت ساعات کمتر از 7/33 + var res = (leaveHoursesPerContractDays * dayliHours) / 7.33; + result = Step1Result1 * res; + } + else + { + //مقدار مزد روزانه برای یک ساعت + var dayliFee = daylyWage / 7.33; - //اقلام مصرفی برای یک ساعت - var ConoumableItemsStep1 = consumableItem / 30; - var ConsumableItems = ConoumableItemsStep1 / 7.33; + //اقلام مصرفی برای یک ساعت + var ConoumableItemsStep1 = consumableItem / 30; + var ConsumableItems = ConoumableItemsStep1 / 7.33; - //کمک هزینه مسکن برای یک ساعت - var housingAllowanceStep1 = housingAllowance / 30; - var HousingAllowance = housingAllowanceStep1 / 7.33; + //کمک هزینه مسکن برای یک ساعت + var housingAllowanceStep1 = housingAllowance / 30; + var HousingAllowance = housingAllowanceStep1 / 7.33; - //حق عائله مندی برای یک ساعت - var familyAllowanceStep1 = familyAllowance / 30; - var FamilyAllowance = familyAllowanceStep1 / 7.33; + //حق عائله مندی برای یک ساعت + var familyAllowanceStep1 = familyAllowance / 30; + var FamilyAllowance = familyAllowanceStep1 / 7.33; - var Step1Result2 = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; - result = Step1Result2 * leaveHoursesPerContractDays; - } + var Step1Result2 = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; + result = Step1Result2 * leaveHoursesPerContractDays; + } - } - else - { - double weeklyTime = 0; - try - { - weeklyTime = double.Parse(weeklyWorkingTime, CultureInfo.InvariantCulture); - } - catch (Exception e) - { - weeklyTime = double.Parse(weeklyWorkingTime); - } + } + else + { + double weeklyTime = 0; + try + { + weeklyTime = double.Parse(weeklyWorkingTime, CultureInfo.InvariantCulture); + } + catch (Exception e) + { + weeklyTime = double.Parse(weeklyWorkingTime); + } - if (weeklyTime < 44.00) - { - //بدست آوردن میانگین ساعت کار پرسنل در روز - var personelDayliHours = weeklyTime / 6; - - - //مقدار مزد روزانه برای یک ساعت - var dayliFee = daylyWage / personelDayliHours; - - //اقلام مصرفی برای یک ساعت - var ConoumableItemsStep1 = consumableItem / 30; - var ConsumableItems = ConoumableItemsStep1 / personelDayliHours; - - //کمک هزینه مسکن برای یک ساعت - var housingAllowanceStep1 = housingAllowance / 30; - var HousingAllowance = housingAllowanceStep1 / personelDayliHours; - - //حق عائله مندی برای یک ساعت - var familyAllowanceStep1 = familyAllowance / 30; - var FamilyAllowance = familyAllowanceStep1 / personelDayliHours; - - //مزد مرخصی این پرسنل به ازای یک ساعت - var leavPayPerHours = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; - - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - var res = (leaveHoursesPerContractDays * personelDayliHours) / 7.33; - result = leavPayPerHours * res; - - } - else - { - //مقدار مزد روزانه برای یک ساعت - var dayliFee = daylyWage / 7.33; - - //اقلام مصرفی برای یک ساعت - var ConoumableItemsStep1 = consumableItem / 30; - var ConsumableItems = ConoumableItemsStep1 / 7.33; + if (weeklyTime < 44.00) + { + //بدست آوردن میانگین ساعت کار پرسنل در روز + var personelDayliHours = weeklyTime / 6; + + + //مقدار مزد روزانه برای یک ساعت + var dayliFee = daylyWage / personelDayliHours; + + //اقلام مصرفی برای یک ساعت + var ConoumableItemsStep1 = consumableItem / 30; + var ConsumableItems = ConoumableItemsStep1 / personelDayliHours; + + //کمک هزینه مسکن برای یک ساعت + var housingAllowanceStep1 = housingAllowance / 30; + var HousingAllowance = housingAllowanceStep1 / personelDayliHours; + + //حق عائله مندی برای یک ساعت + var familyAllowanceStep1 = familyAllowance / 30; + var FamilyAllowance = familyAllowanceStep1 / personelDayliHours; + + //مزد مرخصی این پرسنل به ازای یک ساعت + var leavPayPerHours = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; + + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + var res = (leaveHoursesPerContractDays * personelDayliHours) / 7.33; + result = leavPayPerHours * res; + + } + else + { + //مقدار مزد روزانه برای یک ساعت + var dayliFee = daylyWage / 7.33; + + //اقلام مصرفی برای یک ساعت + var ConoumableItemsStep1 = consumableItem / 30; + var ConsumableItems = ConoumableItemsStep1 / 7.33; - //کمک هزینه مسکن برای یک ساعت - var housingAllowanceStep1 = housingAllowance / 30; - var HousingAllowance = housingAllowanceStep1 / 7.33; - - //حق عائله مندی برای یک ساعت - var familyAllowanceStep1 = familyAllowance / 30; - var FamilyAllowance = familyAllowanceStep1 / 7.33; - - var leavPayPerHours = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; - result = leavPayPerHours * leaveHoursesPerContractDays; - } - - } - - - return result; - } - - #endregion - - //اضافه کاری - #region OverTimeWorking - public double GetOverTimeWorking(double dayliWage, string overTimeWorkH, string overTimeWorkM) - { - double result = 0; - - - // اگر اضافه کاری داشت - if (overTimeWorkH != "0" || overTimeWorkM != "0") - { - var overtimeH = Convert.ToDouble(overTimeWorkH); - var overtimeM = Convert.ToDouble(overTimeWorkM); - if (overtimeM > 0) - { - //تبیدل دقیه به اعشار - overtimeM = overtimeM / 60; - } - - var overTime = overtimeH + overtimeM; - - // محاسبه اضافه کاری برای یک ساعت - var oneHouerOverTime = dayliWage / 7.33 * 1.4; - result = oneHouerOverTime * overTime; - - } - - return result; - - - } - #endregion - - //شب کاری - #region OverNightWorking - - public double GetOverNightWorking(double dayliWage, string overNightWorkH, string overNightWorkM, string weeklyWorkingTime, int officialholiday, int friday, DateTime contractStart, DateTime contractEnd, string totalHoursH, string totalHorsM) - { - double result = 0; - double computeResult = 0; - //تعداد روزهای قرارداد + //کمک هزینه مسکن برای یک ساعت + var housingAllowanceStep1 = housingAllowance / 30; + var HousingAllowance = housingAllowanceStep1 / 7.33; + + //حق عائله مندی برای یک ساعت + var familyAllowanceStep1 = familyAllowance / 30; + var FamilyAllowance = familyAllowanceStep1 / 7.33; + + var leavPayPerHours = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance; + result = leavPayPerHours * leaveHoursesPerContractDays; + } + + } + + + return result; + } + + #endregion + + //اضافه کاری + #region OverTimeWorking + public double GetOverTimeWorking(double dayliWage, string overTimeWorkH, string overTimeWorkM) + { + double result = 0; + + + // اگر اضافه کاری داشت + if (overTimeWorkH != "0" || overTimeWorkM != "0") + { + var overtimeH = Convert.ToDouble(overTimeWorkH); + var overtimeM = Convert.ToDouble(overTimeWorkM); + if (overtimeM > 0) + { + //تبیدل دقیه به اعشار + overtimeM = overtimeM / 60; + } + + var overTime = overtimeH + overtimeM; + + // محاسبه اضافه کاری برای یک ساعت + var oneHouerOverTime = dayliWage / 7.33 * 1.4; + result = oneHouerOverTime * overTime; + + } + + return result; + + + } + #endregion + + //شب کاری + #region OverNightWorking + + public double GetOverNightWorking(double dayliWage, string overNightWorkH, string overNightWorkM, string weeklyWorkingTime, int officialholiday, int friday, DateTime contractStart, DateTime contractEnd, string totalHoursH, string totalHorsM) + { + double result = 0; + double computeResult = 0; + //تعداد روزهای قرارداد - if (weeklyWorkingTime == "24 - 12" || weeklyWorkingTime == "24 - 24" - || weeklyWorkingTime == "36 - 12" || - weeklyWorkingTime == "48 - 24") - { - var TotalDays = (contractEnd - contractStart).TotalDays + 1; - //روزهای قرارداد منهای جمعه ها و تعطیلات رسمی - var MandatoryDays = TotalDays - friday - officialholiday; - //بدست آوردن ساعت موظفی این ماه - var TotalMandatoryHours = MandatoryDays * 7.33; - //تبدیل ساعت به عدد - var totalHoursHDouble = Convert.ToDouble(totalHoursH); - var totalHoursMDouble = Convert.ToDouble(totalHorsM); - if (totalHoursMDouble > 0) - { - //تبیدل دقیه به اعشار - totalHoursMDouble = totalHoursMDouble / 60; - } - //کل ساعت کار پرسنل در این ماه - var totalHours = totalHoursHDouble + totalHoursMDouble; - - var employeeWorkingDay = TotalDays - friday; - - - if (overNightWorkH != "0" || overNightWorkM != "0") - { - var overtimeNightH = Convert.ToDouble(overNightWorkH); - var overtimeNightM = Convert.ToDouble(overNightWorkM); - if (overtimeNightM > 0) - { - //تبیدل دقیه به اعشار - overtimeNightM = overtimeNightM / 60; - } - - var overNightTime = overtimeNightH + overtimeNightM; - - //به دست آوردن ساعات کارکرد - - - // محاسبه اضافه کاری برای یک ساعت - if (totalHours < TotalMandatoryHours)// اگر کمتر از 44 ساعت کار کرد - { - //بدست آوردن میانگین ساعت کار کارگر در یک روز - var employeeMonadtory = totalHours / employeeWorkingDay; - computeResult = (dayliWage / employeeMonadtory * 35) / 100; - } - else - { - computeResult = (dayliWage / 7.33 * 35) / 100; - } - - - result = computeResult * overNightTime; - - } - } - else - { - if (overNightWorkH != "0" || overNightWorkM != "0") - { - var overtimeNightH = Convert.ToDouble(overNightWorkH); - var overtimeNightM = Convert.ToDouble(overNightWorkM); - if (overtimeNightM > 0) - { - //تبیدل دقیه به اعشار - overtimeNightM = overtimeNightM / 60; - } - - var overNightTime = overtimeNightH + overtimeNightM; - - //به دست آوردن ساعات کارکرد - double weeklyTime = 0; - try - { - - weeklyTime = double.Parse(weeklyWorkingTime, CultureInfo.InvariantCulture); - } - catch (Exception e) - { - weeklyTime = double.Parse(weeklyWorkingTime); - } - - // محاسبه اضافه کاری برای یک ساعت - if (weeklyTime < 44.00)// اگر کمتر از 44 ساعت کار کرد - { - var dayliHours = weeklyTime / 6; - computeResult = (dayliWage / dayliHours * 35) / 100; - } - else - { - computeResult = (dayliWage / 7.33 * 35) / 100; - } - - - result = computeResult * overNightTime; - - } - - - // اگر شیکاری کاری داشت - - } - - return result; - } - - #endregion - - public void TestDayliFeeCompute() - { - //مقادیر سالانه - var salary = _context.YearlySalaries.Include(i => i.YearlySalaryItemsList).OrderBy(x => x.StartDate).ToList(); - - // یافتن مزد روزانه سال قبل از اولین شروع بکار - var DayliSalaryStep1 = salary.FirstOrDefault(x => x.Year == "1370")! - .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); - var DayliSalaryStep1Fa = DayliSalaryStep1.ToMoney(); - double firstDayliSalary = DayliSalaryStep1Fa.MoneyToDouble(); - - string firstYear = "1370"; - int counter = 0; - foreach (var item in salary) - { - Console.WriteLine($"{item.Year} - {item.ConnectionId}"); - var currentDayliFee = item! - .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); - var fixFeePercentage = item! - .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - // مبلغ مزد ثابت سال جاری - var fixFeePrice = item!.YearlySalaryItemsList - .Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - - if (counter > 0) - { - if (firstYear == item.Year) - { - int currentYear = Convert.ToInt32(item.Year); - string lastYear = $"{currentYear - 1}"; - firstDayliSalary = salary.Where(x => x.Year == lastYear).MaxBy(x=>x.StartDate)! - .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); - - } - // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد - var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; - // نتیجه عملیات بالا بعلاوه مزد سال قبل - var Sum = firstDayliSalary + percntSumDaylifee; - - //مزد پایه - var BaseResult = Sum + fixFeePrice; - var baseResultFa = BaseResult.ToMoney(); - var res = GetCurrectFirstDailyFee(BaseResult,item.Year); - - if (currentDayliFee != res) - { - Console.BackgroundColor = ConsoleColor.DarkRed; - Console.WriteLine($" lastYear : {firstDayliSalary} thisYearOriginal : {currentDayliFee} GetCurrect : {res} falseResut : {BaseResult} "); - Console.ResetColor(); - } - else - { - Console.WriteLine($" lastYear : {firstDayliSalary} thisYearOriginal : {currentDayliFee} GetCurrect : {res} falseResut : {BaseResult} "); - } - - //Console.WriteLine($"{item.Year} defualtFa : {currentDayliFee.ToMoney()} dailFeeFa : {BaseResult.ToMoney()} "); - firstDayliSalary = res; - firstYear = item.Year; - - - } - - counter++; - } - - //مقدار اولیه مزد روزانه - - } - - private double GetCurrectFirstDailyFee(double value,string year) - { - double currected = 0; - switch (year) - { - case "1370": currected = value; - break; - case "1371": currected = value; - break; - case "1372": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1373": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1374": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1375": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1376": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1377": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1378": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1379": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1380": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1381": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1382": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1383": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1384": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1385": - currected = value == 49950.4 ? 50000 : value; - break; - case "1386": - currected = value < 61000 ? 61000 : value; - break; - case "1387": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1388": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1389": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1390": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1391": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1392": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1393": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1394": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1395": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1396": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1397": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1398": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1399": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1400": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1401": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - case "1402": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1403": - currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); - break; - case "1404": - currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); - break; - default: currected = value; - break; - - - } - - return currected; - - } - //محاسبه حقوق روزانه - #region DayliSalary - public DayliFeeViewModel DayliFeeComputing(DateTime startDateW, DateTime contractStart, DateTime endDateW, long employeeId, long workshopId, List leftWorkList) - { - int oldYear = 0; - string oldYearTemp = string.Empty; - var startPeriod = new DateTime(); - var endtPeriod = new DateTime(); - string finalResultMoney = string.Empty; - double FinalResult = 0; - int DayCounter = 0; - int Max365 = 366; - double Basic = 0; - double BaseResult = 0; - DateTime periodStarter = new DateTime(); - int loopdateYear = 0; - long stDateId = 0;//ای دی ماه های دوگانه - double basicResultSum = 0; - //مقادیر سالانه - var salary = _context.YearlySalaries.OrderByDescending(x => x.EndDate).Include(x => x.YearlySalaryItemsList).ToList(); - - - - // تاریخ اولین شروع بکار - var startDateB = leftWorkList.OrderBy(x => x.StartWorkDateGr).Select(x => x.StartWorkDate).FirstOrDefault(); - - //نگهدارنده آی دی سال در مقادیر سالانه - long loopDateId = 0; - - - var syear = Convert.ToInt32(startDateB.Substring(0, 4)); - var smonth = Convert.ToInt32(startDateB.Substring(5, 2)); - var sday = Convert.ToInt32(startDateB.Substring(8, 2)); - - var endDateConvert = endDateW.ToFarsi(); - var eyear = Convert.ToInt32(endDateConvert.Substring(0, 4)); - var emonth = Convert.ToInt32(endDateConvert.Substring(5, 2)); - var eday = Convert.ToInt32(endDateConvert.Substring(8, 2)); - - //تبدیل تاریخ اولین شروع بکار به شمسی تقویمی - var d1 = new PersianDateTime(syear, smonth, sday); - //تبدیل تاریخ پایان قرارداد به شمسی تقویمی - var d2 = new PersianDateTime(eyear, emonth, eday); - - var getWork = startDateB.ToGeorgianDateTime(); - //یافتن سال گزشته - var getWorkYear = syear - 1; - oldYear = syear - 1; - var getWorkYearString = getWorkYear.ToString(); - //var getWorkSalary = salary.FirstOrDefault(x=>x.Year == getWorkYearString); - var dayliSalaryStep1Check = salary.Any(x => x.Year == getWorkYearString); - // یافتن مزد روزانه سال قبل از اولین شروع بکار - var DayliSalaryStep1 = salary.FirstOrDefault(x => x.Year == getWorkYearString) - .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); - - //مقدار اولیه مزد روزانه - var DayliSalaryStep1Fa = DayliSalaryStep1.ToMoney(); - double firstDayliSalary = DayliSalaryStep1Fa.MoneyToDouble(); - - DateTime baseYearDate = new DateTime(); - - for (DateTime LoopDate = getWork; LoopDate <= endDateW; LoopDate = LoopDate.AddDays(1)) - { - var loopdateFa = LoopDate.ToFarsi(); - loopdateYear = Convert.ToInt32(loopdateFa.Substring(0, 4)); - - var LoopDateGr = LoopDate; - //یافتن ترک کار - var check = leftWorkList.Any(x => x.StartWorkDateGr == LoopDateGr); - if (check) - { - var period = leftWorkList.FirstOrDefault(x => x.StartWorkDateGr == LoopDateGr); - //ذخیره تاریخ شروع بکار - startPeriod = period.StartWorkDateGr; - if (period.LeftWorkDate == "1500/01/01") - { - endtPeriod = endDateW; - } - else - { - - endtPeriod = period.LeftWorkDateGr.AddDays(-1); - // ذخیره تاریخ ترک کار - - } - - - } - - - - //اگر تاریخ جاری بزرگتر یت مساوی تاریخ شروع ترک کار و کوچکتر یا مساوی تاریخ پایان ترک کار بود - if (LoopDateGr >= startPeriod && LoopDateGr <= endtPeriod) - { - //اگر شمارنده روزها صفر بود - if (DayCounter == 0) - { - - //var date = LoopDate.ToString(); - // ذهیر تعداد روز های سال جاری بر اساس کبیسه یودن یا نبودن - Max365 = loopdateFa.YearTotalDays(); - } - // یک روز به شمارنده روزها اضافه کن - DayCounter += 1; - - //periodStarter = startPeriod.ContractStartGr; - } - - - //آیا در مقادیر سالانه رکوردی وجود دارد که شروعش از تاریخ جاری کوچکتر و پایانش از تاریخ جاری بزرگتر باشد - var checkExist = salary.Any(x => - x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId); - if (checkExist) - { - var test = loopdateYear.ToString();//سال جاری رو بدست بیار - var step2 = salary.Where(x => x.Year == test).OrderByDescending(x => x.StartDate).ToList();// اونایی رو بیار که سال جاری هستن - if (step2.Count > 1)// اگر تعدادشون بیش از 1 بود - { - - var stDate = step2.FirstOrDefault(); // آخری - - if (DayCounter < Max365) - { - - if (LoopDateGr >= stDate.StartDate && LoopDateGr <= stDate.EndDate && oldYear != loopdateYear && stDate.id != stDateId) - { - - var fixFeePercentage = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) - .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - // مبلغ مزد ثابت سال جاری - var fixFeePrice = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) - .YearlySalaryItemsList.Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - - // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد - var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; - // نتیجه عملیات بالا بعلاوه مزد سال قبل - var Sum = firstDayliSalary + percntSumDaylifee; - - //مزد پایه - BaseResult = Sum + fixFeePrice; - BaseResult = GetCurrectFirstDailyFee(BaseResult, test); - //var rondUp = Convert.ToInt32(BaseResult); - - Console.WriteLine($"{test} - mozdeSaleGhabl[{firstDayliSalary}] - mozdeSaleJari[{BaseResult}] - fixFeePercentage[{fixFeePercentage}] - fixFeePrice[{fixFeePrice}]"); - //آی دی سال جاری - loopDateId = salary.Where(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId).Select(x => x.id).FirstOrDefault(); - // ذخیره سال جاری بعنوان سال گذشته برای عملیات بعدی - oldYear = loopdateYear; - stDateId = stDate.id; - } - else - { - if (BaseResult == 0) - { - var oldYearString = oldYear.ToString(); - var resDouble = salary.FirstOrDefault(x => x.Year == oldYearString) - .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); - var resFa = resDouble.ToMoney(); - BaseResult = resFa.MoneyToDouble(); - - } - - } - - - } - else if (DayCounter == Max365 && oldYear != loopdateYear) - { - - var fixFeePercentage = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) - .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - // مبلغ مزد ثابت سال جاری - var fixFeePrice = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) - .YearlySalaryItemsList.Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - - // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد - var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; - // نتیجه عملیات بالا بعلاوه مزد سال قبل - var Sum = firstDayliSalary + percntSumDaylifee; - //مزد پایه - BaseResult = Sum + fixFeePrice; - //var rondUp = Convert.ToInt32(BaseResult); - BaseResult = GetCurrectFirstDailyFee(BaseResult, test); - Console.WriteLine($"{test} - mozdeSaleGhabl[{firstDayliSalary}] - mozdeSaleJari[{BaseResult}] - fixFeePercentage[{fixFeePercentage}] - fixFeePrice[{fixFeePrice}]"); - - //آی دی سال جاری - loopDateId = salary.Where(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId).Select(x => x.id).FirstOrDefault(); - // ذخیره سال جاری بعنوان سال گذشته برای عملیات بعدی - oldYear = loopdateYear; - } - - } - else if (step2.Count == 1 && oldYear != loopdateYear) - { - //درصد مزد ثابت تاریخ جاری - var fixFeePercentage = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) - .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - // مبلغ مزد ثابت سال جاری - var fixFeePrice = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) - .YearlySalaryItemsList.Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); - - // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد - var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; - // نتیجه عملیات بالا بعلاوه مزد سال قبل - var Sum = firstDayliSalary + percntSumDaylifee; - - - //مزد پایه - BaseResult = Sum + fixFeePrice; - BaseResult = GetCurrectFirstDailyFee(BaseResult, test); - //var rondUp = Convert.ToInt32(BaseResult); - - Console.WriteLine($"{test} - mozdeSaleGhabl[{firstDayliSalary}] - mozdeSaleJari[{BaseResult}] - fixFeePercentage[{fixFeePercentage}] - fixFeePrice[{fixFeePrice}]"); - - //آی دی سال جاری - loopDateId = salary.Where(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId).Select(x => x.id).FirstOrDefault(); - // ذخیره سال جاری بعنوان سال گذشته برای عملیات بعدی - oldYear = loopdateYear; - } - } - //اگر شرط بالا صحیح بود و سال جاری از سال گذشته بزرگتر بود اعملیات را انجام بده - //if (checkExist && loopdateYear > oldYear) - //{ - - - //} - - - - - //اگر شمارنده روزها مساوی شد یا 365 - if (DayCounter == Max365) - { - var test = LoopDateGr.ToFarsi(); - var basicSalari = - salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr); - //پایه سنوات سال جاری - Basic = basicSalari - .YearlySalaryItemsList.Where(x => x.ItemName == "پایه سنوات").Select(x => x.ItemValue).FirstOrDefault(); - //پایه سنوات سال جاری بعلاوه مزد پایه - BaseResult += Basic; - basicResultSum += Basic; - Console.BackgroundColor = ConsoleColor.DarkYellow; - Console.WriteLine($"{test} - mozd[{BaseResult}] - Basic[{Basic}]"); - Console.ResetColor(); - //صفر نمودن شمارنده روزها - DayCounter = 0; - } - - //if (loopdateFa == "1398/12/29") - //{ - // Console.WriteLine(BaseResult); - //} - //else if (loopdateFa == "1399/12/30") - //{ - // Console.WriteLine(BaseResult); - //} - //else if (loopdateFa == "1400/12/29") - //{ - // Console.WriteLine(BaseResult); - //} - //else if (loopdateFa == "1401/12/29") - //{ - // Console.WriteLine(BaseResult); - //} - //else if (loopdateFa == "1402/01/29") - //{ - // Console.WriteLine(BaseResult); - //} - - - FinalResult = BaseResult; - //ذخیره نتیجه نهایی مزد پایه - firstDayliSalary = FinalResult; - - } - - //ارسال مزد نهایی بعد از پایان حقه - #region round - - int FinalResultInt = (int)FinalResult; - var FinalResultDouble = (double)FinalResultInt; - #endregion - finalResultMoney = FinalResultDouble.ToMoney(); - - var res = new DayliFeeViewModel() - { - DayliFeeDouble = FinalResultDouble, - DayliFee = finalResultMoney, - Basic = basicResultSum.ToMoney() - }; - return res; - - - - - } - - public async Task DayliFeeComputingAsync(DateTime startDateW, DateTime contractStart, DateTime endDateW, long employeeId, - long workshopId, List leftWorkList) - { - var res = DayliFeeComputing(startDateW, contractStart, endDateW, employeeId, - workshopId, leftWorkList); - return res; - } - - #endregion - - //کمک هزینه اقلام از جدول مقادیر بر اساس سال انتخاب شده - #region ConsumableItems - - public string ConsumableItems(DateTime endDateW) - { - var endDateInput = _context.YearlySalaries - .SingleOrDefault(x => x.StartDate <= endDateW && x.EndDate >= endDateW); - var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "کمک هزینه اقلام"); - var res = FirstItems.ItemValue; - var result = res.ToMoney(); - return result; - } - - #endregion - - //یافتن حق مسکن از جدول مقادیر بر اساس سال انتخاب شده - #region HousingAllowance - - public string HousingAllowance(DateTime endDateW) - { - var endDateInput = _context.YearlySalaries - .SingleOrDefault(x => x.StartDate <= endDateW && x.EndDate >= endDateW); - var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "کمک هزینه مسکن"); - var res = FirstItems.ItemValue; - var result = res.ToMoney(); - return result; - } - - #endregion - - // محاسبه حق عائله مندی پرسنل بر اساس تاریخ ورودی و آی دی پرسنل - #region FamilyAllowance - - public string FamilyAllowance(long personelID, DateTime startContract, DateTime endContract) - { - //DateTime zeroTime = new DateTime(1, 1, 1); - //TimeSpan Age = new TimeSpan(); - - - var endDateInput = _context.YearlySalaries - .SingleOrDefault(x => x.StartDate <= endContract && x.EndDate >= endContract); - var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "مزد روزانه"); - var dayliSalary = FirstItems.ItemValue; - var familyAllowance = dayliSalary * 3; - double sumOfFamilyAllowance = 0; - DateTime firstDayOFContract = endContract.FindFirstDayOfMonthGr(); - if (startContract < firstDayOFContract) - startContract = firstDayOFContract; - var totalContractDays = Convert.ToInt32((endContract - startContract).TotalDays + 1); - try - { - var children = _context.EmployeeChildrenSet.Where(x => x.EmployeeId == personelID).ToList(); - var insuranceYearAndMonth = _context.Employees.SingleOrDefault(x => x.id == personelID); - var yearI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByYear); - var monthI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByMonth); - yearI *= 365; - monthI *= 30; - var insurancHistoey = yearI + monthI; - - foreach (var item in children) - { - if (item.DateOfBirth < endContract) - { - //Age = (endContract - item.DateOfBirth); - //var ageUp18 = (zeroTime + Age).Year - 1; - - var childAge = Tools.GetAge(item.DateOfBirth, endContract); - - if (childAge.yearCount < 18 && insurancHistoey >= 720) - { - sumOfFamilyAllowance += familyAllowance; - - } - else if (childAge.yearCount == 18 && childAge.monthCount == 0 && insurancHistoey >= 720) - { - - if (childAge.dayCount > 0) - { - //به دست آوردن روزهای مجاز قبل از 18 سال - var daysToPay = totalContractDays - childAge.dayCount; - - if (daysToPay > 0) - { - //محاسبه مبلغ بر اساس تعداد روزهای مجاز - var payPerDay = (familyAllowance / 30) * daysToPay; - sumOfFamilyAllowance += payPerDay; - } - - } - else - { - sumOfFamilyAllowance += familyAllowance; - } - } - } - - } - } - catch (Exception e) - { - sumOfFamilyAllowance = 0; - } - - //var ress = dayliSalar3 * childeNumber; - - var result = sumOfFamilyAllowance.ToMoney(); - - - return result; - } - - public string FamilyAllowanceAutoExtention(long personelID, DateTime startContract) - { - var endDateInput = _context.YearlySalaries - .SingleOrDefault(x => x.StartDate <= startContract && x.EndDate >= startContract); - var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "مزد روزانه"); - var dayliSalary = FirstItems.ItemValue; - var familyAllowance = dayliSalary * 3; - double sumOfFamilyAllowance = 0; - try - { - var children = _context.EmployeeChildrenSet.Where(x => x.EmployeeId == personelID).ToList(); - var insuranceYearAndMonth = _context.Employees.SingleOrDefault(x => x.id == personelID); - var yearI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByYear); - var monthI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByMonth); - yearI *= 365; - monthI *= 30; - var insurancHistoey = yearI + monthI; - - foreach (var item in children) - { - if (item.DateOfBirth < startContract) - { - - - var childAge = Tools.GetAge(item.DateOfBirth, startContract); - - if (childAge.yearCount < 18 && insurancHistoey >= 720) - { - sumOfFamilyAllowance += familyAllowance; - - } - - } - - } - } - catch (Exception e) - { - sumOfFamilyAllowance = 0; - } - - - - var result = sumOfFamilyAllowance.ToMoney(); - - return result; - } - - #endregion - - - #region AsyncMetods - public async Task ConsumableItemsAsync(DateTime endDateW) - { - var res = ConsumableItems(endDateW); - return res; - } - - public async Task HousingAllowanceAsync(DateTime endDateW) - { - var res = HousingAllowance(endDateW); - return res; - } - - public async Task FamilyAllowanceAsync(long personelID, DateTime EndCantract) - { - var res = "FamilyAllowance(personelID, EndCantract);"; - return res; - } - #endregion - - - //جستجوی مقادیر یک سال یا آی دی - #region SerachYearlySalaryById - - public EditYearlySalary GetDetails(long id) - { - return _context.YearlySalaries.Select(x => new EditYearlySalary - { - Id = x.id, - StartDate = x.StartDate.ToFarsi(), - EndDate = x.EndDate.ToFarsi(), - ConnectionId = x.ConnectionId, - - }).FirstOrDefault(x => x.Id == id); - } - - #endregion - - - // سرچ مدل صفحه مقادیر سالانه - #region YearlySalaryMainSerach - - public List Search(YearlySalarySearchModel searchModel) - { - var query = _context.YearlySalaries.Select(x => new YearlySalaryViewModel - { - Id = x.id, - - StartDate = x.StartDate.ToFarsi(), - StartDateGr = x.StartDate, - Year = x.Year, - EndDate = x.EndDate.ToFarsi(), - - - }); - - if (!string.IsNullOrWhiteSpace(searchModel.year)) - { - - - query = query.Where(x => x.Year == searchModel.year); - } - - - return query.OrderByDescending(x => x.StartDateGr).ToList(); - } - #endregion - - - public int FindConnection() - { - int connectionid = 0; - var exist = _context.YearlySalaries.Any(x => x.ConnectionId > 0); - if (exist) - { - connectionid = _context.YearlySalaries.Max(x => x.ConnectionId); - } - else - { - connectionid = 0; - } - return connectionid += 1; - } - - // heydari جستجوی مقادیر با سرچ مدل - #region yearlySalarySearchBySearchModel - - public EditYearlySalary GetDetailsBySearchModel(YearlySalarySearchModel searchModel) - { - var query = _context.YearlySalaries.FirstOrDefault(x => x.StartDate <= searchModel.StartDateGr && x.EndDate >= searchModel.EndDateGr && x.Year == searchModel.year); - if (query != null) - { - var yearlySalariesObj = new EditYearlySalary() - { - Id = query.id, - StartDate = query.StartDate.ToFarsi(), - EndDate = query.EndDate.ToFarsi(), - ConnectionId = query.ConnectionId, - }; - return yearlySalariesObj; - } - else - return null; - } - - #endregion - - // محاسبه حق تاهل - #region MarriedAlloance - public double MarriedAllowance(DateTime endDateW, long employeeId) - { - var getEmployee = _context.Employees.FirstOrDefault(x => x.id == employeeId); - if (getEmployee == null) - { - return 0; - } - - if (getEmployee.MaritalStatus == "متاهل") - { - var endDateInput = _context.YearlySalaries - .SingleOrDefault(x => x.StartDate <= endDateW && x.EndDate >= endDateW); - var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "حق تاهل"); - if (FirstItems == null) - { - return 0; - } - return FirstItems.ItemValue; - } - else - { - return 0; - } - - - } - - - #endregion - - //سنوات - #region yeaers - - public BunosesAndYearsPayStatus Years(DateTime separationStartDate, DateTime leftWorkDate, DateTime separationEndDate, double daylyWage, string yearsOptions, - bool hasleft, DateTime startWorkDate, DateTime contractStart, DateTime contractEnd, long workshopId, long employeeId, bool isOldContract) - { - BunosesAndYearsPayStatus finalResult = new BunosesAndYearsPayStatus(); - var startDateFa = separationEndDate.ToFarsi(); - var checkoutMonth = startDateFa.Substring(5, 2); - double result = 0; - var start1403 = new DateTime(2024, 3, 20); - switch (yearsOptions) - { - case "OnCheckoutOfMonth": - var totalCheckoutDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalCheckoutDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalCheckoutDays); - break; - //محاسبه در پایان سال به شرطی که قرارداد منتهی به پایان سال باشد - case "OnEndOfYear"://درپایان سال - - if (isOldContract && contractEnd < start1403) - { - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - else if (isOldContract && contractEnd > start1403) - { - if ((hasleft && leftWorkDate <= separationEndDate) || (checkoutMonth == "12" && separationEndDate == contractEnd)) - { - - //بدست آوردن اولین روز سال - var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - - // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود - var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; - - - - #region NewCompute - - //شروع دوره - string st = startComputeDay.ToFarsi(); - int syear = Convert.ToInt32(st.Substring(0, 4)); - int smonth = Convert.ToInt32(st.Substring(5, 2)); - PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); - PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); - //پایان فیش حقوقی آخر - PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); - if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) - { - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - else - { - var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && - x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); - //پایان دوره - PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); - List nullDateList = new List(); - double sumOfOldYearsPay = 0; - var oldTotaldays = 0; - for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) - { - var searchStart = ($"{startDate}").ToGeorgianDateTime(); - var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); - var foundCheckout = checkoutList.FirstOrDefault(x => - x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); - if (foundCheckout == null) - { - nullDateList.Add(new BunosesAndYearsPayStatus() - { - ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, - ContractEnd = searchEnd - }); - finalResult.NotCompleted = true; - } - else - { - double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; - int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); - double foundDayliWage = foundMonthlySalary / foundTotaldays; - double foundYearsPay = ((foundDayliWage * 30) / 365) * foundTotaldays; - oldTotaldays += foundTotaldays; - sumOfOldYearsPay += foundYearsPay; - } - - } - - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - double lastMonthYearsPay = ((daylyWage * 30) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotaldays); - finalResult.YearsPay = lastMonthYearsPay + sumOfOldYearsPay; - finalResult.BunosesStatusList = nullDateList; - - } - - #endregion - } - } - else if (!isOldContract) - - { - if ((hasleft && leftWorkDate <= separationEndDate) || (checkoutMonth == "12" && separationEndDate == contractEnd)) - { - //بدست آوردن اولین روز سال - var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; - #region NewCompute - - //شروع دوره - string st = startComputeDay.ToFarsi(); - int syear = Convert.ToInt32(st.Substring(0, 4)); - int smonth = Convert.ToInt32(st.Substring(5, 2)); - PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); - PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); - //پایان فیش حقوقی آخر - PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); - if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) - { - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - else - { - var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && - x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); - //پایان دوره - PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); - List nullDateList = new List(); - double sumOfOldYearsPay = 0; - var oldTotaldays = 0; - for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) - { - var searchStart = ($"{startDate}").ToGeorgianDateTime(); - var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); - var foundCheckout = checkoutList.FirstOrDefault(x => - x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); - if (foundCheckout == null) - { - nullDateList.Add(new BunosesAndYearsPayStatus() - { - ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, - ContractEnd = searchEnd - }); - finalResult.NotCompleted = true; - } - else - { - double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; - int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); - double foundDayliWage = foundMonthlySalary / foundTotaldays; - double foundYearsPay = ((foundDayliWage * 30) / 365) * foundTotaldays; - oldTotaldays += foundTotaldays; - sumOfOldYearsPay += foundYearsPay; - } - - } - - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - double lastMonthYearsPay = ((daylyWage * 30) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotaldays); - finalResult.YearsPay = lastMonthYearsPay + sumOfOldYearsPay; - finalResult.BunosesStatusList = nullDateList; - - } - - #endregion - //var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - //result = (daylyWage * 30) / 365 * totalDays; - } - } - - break; - //از شروع بکار تا ترک کار - case "OnLeftWork"://درپایان همکاری - - if (isOldContract && contractEnd < start1403) - { - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - else if (isOldContract && contractEnd > start1403) - { - - if ((hasleft && leftWorkDate <= separationEndDate)) - { - //بدست آوردن اولین روز سال - var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - - // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود - var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - } - else if (!isOldContract) - { - if ((hasleft && leftWorkDate <= separationEndDate)) - { - - var totalDays = (separationEndDate - startWorkDate).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - } - - break; - // از شروع قراداد تا پایان قراداد یا ترک کار - case "OnEndOfContract"://در پایان قرارداد - var start1403EndOfContract = new DateTime(2024, 3, 20); - if (isOldContract && contractEnd < start1403EndOfContract) - { - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - else if (isOldContract && contractEnd > start1403) - { - if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) - { - var totalDays = (separationEndDate - contractStart).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - - } - else if (!isOldContract) - { - if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) - { - var totalDays = (separationEndDate - contractStart).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - } - - break; - case "EndOfContract1402LeftWork1403": //پایان قرارداد قبل 403 پایان همکاری بعد 403 - - if (contractStart >= start1403 && contractEnd > start1403)// بعد از 1403 - { - if (hasleft && leftWorkDate <= separationEndDate)//اگر ترک کار کرده بود - { - //اگر شروع بکار بعد از 1403 بود تاریخ شرو بکار را در نظر میگیرد در غیر اینصورت اولین روز 1403 را در نظر میگیرد - var startComputeDay = startWorkDate >= start1403 ? startWorkDate : start1403; - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - } - else if (contractStart < start1403 && contractEnd < start1403)// قبل از 1403 - { - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - //if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd)// اگر ترک کار کرده بود یا فیش آخر قراداد بود - //{ - // var totalDays = (separationEndDate - contractStart).TotalDays + 1; - // result = (daylyWage * 30) / 365 * totalDays; - //} - } - break; - default: - finalResult.YearsPay = 0; - finalResult.TotalDayCompute = 0; - break; - } - - return finalResult; - } - - - - #endregion - //مزد مرخصی - #region LeavePay - - public LeaveAndAbsenceViewModel LeavePay(string startDateFa, DateTime leftWorkDate, DateTime separationStartDate, DateTime separationEndDate, - double daylyWage, string computeOptions, bool hasleft, DateTime startWorkDate, DateTime contractStart, - DateTime contractEnd, long workshopId, long employeeId, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, double consumableItem, - double housingAllowance, double familyAllowance, double marriedAllowance, bool isOldContract) - { - - - var result = new LeaveAndAbsenceViewModel(); - // ماه فیش آخر - var checkoutMonth = startDateFa.Substring(5, 2); - // بدست آوردن مقدار مجاژ مرخصی پرسنل در این فیش - #region HoursPerDay - // روز های کارکرد فیش - var totalChekoutDays = (separationEndDate - separationStartDate).TotalDays + 1; - - //تعداد روزهای موظفی این فیش حقوقی - //var mandatoryWorkingDay = totalChekoutDays - (fridayStartToEnd + officialHoliday); - //تبدیل ساعت به عدد - var totalHoursHDouble = Convert.ToDouble(totalHoursH); - var totalHoursMDouble = Convert.ToDouble(totalHorsM); - if (totalHoursMDouble > 0) - { - //تبیدل دقیه به اعشار - totalHoursMDouble = totalHoursMDouble / 60; - } - //کل ساعت کار پرسنل در این ماه - var totalHours = totalHoursHDouble + totalHoursMDouble; - var checkoutMandatoryDays = _mandatoryHoursRepository.GetMondatoryDays(separationStartDate, separationEndDate); - // میانگین ساعت کارکرد پرسنل در روز - var hoursePerDay = totalHours / checkoutMandatoryDays.MoandatoryDays; - - - // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل - var leaveHoursesPerDay = 190.58 / 365; - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل - - double canToLeave = 0; - - - //مزد مرخصی برای یک ساعت - #region MyRegion - - //مقدار مزد روزانه برای یک ساعت - var LeaveDayliFee = daylyWage / 7.33;// مورد سوم - به این روش برای بک ساعت مرد مرخصی درست است - - //اقلام مصرفی برای یک ساعت - var LeaveConoumableItemsStep1 = consumableItem / totalChekoutDays; - var LeaveConsumableItems = LeaveConoumableItemsStep1 / 7.33; - - //کمک هزینه مسکن برای یک ساعت - var LeavehousingAllowanceStep1 = housingAllowance / totalChekoutDays; - var LeaveHousingAllowance = LeavehousingAllowanceStep1 / 7.33; - - //حق عائله مندی برای یک ساعت - var LeavefamilyAllowanceStep1 = familyAllowance / totalChekoutDays; - var LeaveFamilyAllowance = LeavefamilyAllowanceStep1 / 7.33; - - //حق تاهل برای یک ساعت - var LeavemarriedAllowanceStep1 = marriedAllowance / totalChekoutDays; - var LeaveMarriedAllowance = LeavemarriedAllowanceStep1 / 7.33; - - var leavePayPerHours = LeaveDayliFee + LeaveConsumableItems + LeaveHousingAllowance + LeaveFamilyAllowance + LeaveMarriedAllowance; - - #endregion - - - //غیبت برای یک ساعت - double absenceDeductionPerHourses = leavePayPerHours; - //if (hoursePerDay < 7.33) - //{ - // //مقدار مزد روزانه برای یک ساعت - // var dayliFee = daylyWage / hoursePerDay; - - // //اقلام مصرفی برای یک ساعت - // var ConoumableItemsStep1 = consumableItem / 30; - // var ConsumableItems = ConoumableItemsStep1 / hoursePerDay; - - // //کمک هزینه مسکن برای یک ساعت - // var housingAllowanceStep1 = housingAllowance / 30; - // var HousingAllowance = housingAllowanceStep1 / hoursePerDay; - - // //حق عائله مندی برای یک ساعت - // var familyAllowanceStep1 = familyAllowance / 30; - // var FamilyAllowance = familyAllowanceStep1 / hoursePerDay; - - // //حق تاهل برای یک ساعت - // var marriedAllowanceStep1 = marriedAllowance / 30; - // var MarriedAllowance = marriedAllowanceStep1 / hoursePerDay; - // //مزد مرخصی این پرسنل به ازای یک ساعت - // absenceDeductionPerHourses = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance + MarriedAllowance; - //} - //else - //{ - // //مزد مرخصی این پرسنل به ازای یک ساعت - // absenceDeductionPerHourses = LeaveDayliFee + LeaveConsumableItems + LeaveHousingAllowance + LeaveFamilyAllowance + LeaveMarriedAllowance; - - //} - - #endregion - - //بدست آوردن اولین روز سال - var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - var start1403 = new DateTime(2024, 3, 20); - switch (computeOptions) - { - case "OnCheckoutOfMonth": - var resCanToLeave = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, - leaveHoursesPerDay, totalChekoutDays, hoursePerDay); - - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = resCanToLeave.CanToLeave; - //مزد مرخصی - result.LeavPay = resCanToLeave.CanToLeave * leavePayPerHours; - //مدت غیبت - result.AbsencePeriod = resCanToLeave.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = resCanToLeave.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = hoursePerDay; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{(separationEndDate - separationStartDate).TotalDays + 1}"; - - break; - //محاسبه در پایان سال به شرطی که قرارداد منتهی به پایان سال باشد - case "OnEndOfYear": - if (isOldContract && contractEnd < start1403) - { - var resEndOfYear = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, - leaveHoursesPerDay, totalChekoutDays, hoursePerDay); - - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = resEndOfYear.CanToLeave; - //مزد مرخصی - result.LeavPay = resEndOfYear.CanToLeave * leavePayPerHours; - //مدت غیبت - result.AbsencePeriod = resEndOfYear.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = resEndOfYear.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = hoursePerDay; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{resEndOfYear.CountChekoutDays}"; - - } - else if (isOldContract && contractEnd > start1403) - { - var startDate = startWorkDate >= start1403 ? startWorkDate : start1403; - - var endOfYearRes = EndOfYearCantoleaveList(startDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) - .FirstOrDefault(x => x.ContractStart == separationStartDate); - if ((hasleft && leftWorkDate <= separationEndDate) || (separationEndDate == contractEnd && checkoutMonth == "12")) - { - var end = EndOfYearCantoleaveList(startDate, separationEndDate, workshopId, employeeId, - hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, - separationStartDate); - - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - - var canTolv = endOfYearRes.CanToLeave; - var absence = end.Sum(x => x.PeriodOfAbsence); - - if (canTolv >= absence) - { - canTolv -= absence; - absence = 0; - - } - else - { - absence -= canTolv; - canTolv = 0; - - } - - //مزد مرخصی - //result.LeavPay = endOfYearRes.CanToLeave * leavePayPerHours; - result.LeavPay = canTolv * leavePayPerHours; - //مدت غیبت - result.AbsencePeriod = absence; - ////مدت طلب مرخصی - result.CreditLeaves = canTolv; - //کسری غیبت - result.AbsenceDeduction = absence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = end.FirstOrDefault()!.WorkingPerDayHourses; - - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{endOfYearRes.CountChekoutDays}"; - - } - else - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = false; - //مدت طلب مرخصی - result.CreditLeaves = endOfYearRes.CanToLeave; - //مزد مرخصی - result.LeavPay = 0; - //مدت غیبت - result.AbsencePeriod = endOfYearRes.PeriodOfAbsence; - //کسری غیبت - //result.AbsenceDeduction = endOfYearRes.PeriodOfAbsence * absenceDeductionPerHourses; - result.AbsenceDeduction = 0; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = endOfYearRes.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = "0"; - - } - } - else if (!isOldContract) - { - var endOfYearRes = EndOfYearCantoleaveList(startWorkDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) - .FirstOrDefault(x => x.ContractStart == separationStartDate); - if ((hasleft && leftWorkDate <= separationEndDate) || (separationEndDate == contractEnd && checkoutMonth == "12")) - { - var end = EndOfYearCantoleaveList(startWorkDate, separationEndDate, workshopId, employeeId, - hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, - separationStartDate); - - var canTolv = endOfYearRes.CanToLeave; - var absence = end.Sum(x => x.PeriodOfAbsence); - if (canTolv >= absence) - { - canTolv -= absence; - absence = 0; - - } - else - { - absence -= canTolv; - canTolv = 0; - - } - - result.LeavPay = canTolv * leavePayPerHours; - //مدت غیبت - result.AbsencePeriod = absence; - ////مدت طلب مرخصی - result.CreditLeaves = canTolv; - //کسری غیبت - result.AbsenceDeduction = absence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = end.FirstOrDefault()!.WorkingPerDayHourses; - - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{endOfYearRes.CountChekoutDays}"; - - //مزد مرخصی - //result.LeavPay = endOfYearRes.CanToLeave * leavePayPerHours; - - //مدت غیبت - //result.AbsencePeriod = endOfYearRes.PeriodOfAbsence; - //کسری غیبت - //result.AbsenceDeduction = endOfYearRes.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - //result.AverageHoursPerDay = endOfYearRes.WorkingPerDayHourses; - - } - else - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = false; - //مدت طلب مرخصی - result.CreditLeaves = endOfYearRes.CanToLeave; - //مزد مرخصی - result.LeavPay = 0; - //مدت غیبت - result.AbsencePeriod = endOfYearRes.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = endOfYearRes.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = endOfYearRes.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = "0"; - - } - } - - break; - case "OnLeftWork"://درپایان همکاری - if (isOldContract && contractEnd < start1403) - { - - var resLeftWork = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, - leaveHoursesPerDay, totalChekoutDays, hoursePerDay); - - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = resLeftWork.CanToLeave; - //مزد مرخصی - result.LeavPay = resLeftWork.CanToLeave * leavePayPerHours; - //مدت غیبت - result.AbsencePeriod = resLeftWork.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = resLeftWork.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = hoursePerDay; - } - else if (isOldContract && contractEnd > start1403) - { - var startDate = startWorkDate >= start1403 ? startWorkDate : start1403; - var res = LeftWorkCantoleaveList(startDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) - .FirstOrDefault(x => x.ContractStart == separationStartDate); - - if (hasleft && leftWorkDate <= separationEndDate) - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = 0; - - //مزد مرخصی - result.LeavPay = res.CanToLeave * leavePayPerHours; - - //مدت غیبت - result.AbsencePeriod = res.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = res.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{res.CountChekoutDays}"; - } - else - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = false; - //مدت طلب مرخصی - result.CreditLeaves = res.CanToLeave; - //مزد مرخصی - result.LeavPay = 0; - //مدت غیبت - result.AbsencePeriod = res.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = res.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"0"; - - } - - } - else if (!isOldContract) - { - - var res = LeftWorkCantoleaveList(startWorkDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) - .FirstOrDefault(x => x.ContractStart == separationStartDate); - - if (hasleft && leftWorkDate <= separationEndDate) - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = 0; - - //مزد مرخصی - result.LeavPay = res.CanToLeave * leavePayPerHours; - - //مدت غیبت - result.AbsencePeriod = res.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = res.WorkingPerDayHourses; - - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{res.CountChekoutDays}"; - } - else - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = false; - //مدت طلب مرخصی - result.CreditLeaves = res.CanToLeave; - //مزد مرخصی - result.LeavPay = 0; - //مدت غیبت - result.AbsencePeriod = res.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = res.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"0"; - - } - } - - break; - case "OnEndOfContract"://در پایان قرارداد - if (isOldContract && contractEnd < start1403) - { - var resEndOfContract = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, - leaveHoursesPerDay, totalChekoutDays, hoursePerDay); - - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = resEndOfContract.CanToLeave; - //مزد مرخصی - result.LeavPay = resEndOfContract.CanToLeave * leavePayPerHours; - //مدت غیبت - result.AbsencePeriod = resEndOfContract.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = resEndOfContract.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = hoursePerDay; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{(separationEndDate - separationEndDate).TotalDays + 1}"; - - } - else if ((isOldContract && contractEnd > start1403) || (!isOldContract)) - { - var resEndOfContract = LeftWorkCantoleaveList(contractStart, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) - .FirstOrDefault(x => x.ContractStart == separationStartDate); - if (resEndOfContract != null) - { - if ((hasleft && leftWorkDate <= separationEndDate) || resEndOfContract.LastChekoutOfContract) - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = 0; - - //مزد مرخصی - result.LeavPay = resEndOfContract.CanToLeave * leavePayPerHours; - - //مدت غیبت - result.AbsencePeriod = resEndOfContract.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = resEndOfContract.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = resEndOfContract.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{resEndOfContract.CountChekoutDays}"; - } - else - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = false; - //مدت طلب مرخصی - result.CreditLeaves = resEndOfContract.CanToLeave; - //مزد مرخصی - result.LeavPay = 0; - //مدت غیبت - result.AbsencePeriod = resEndOfContract.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = resEndOfContract.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = resEndOfContract.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"0"; - - } - } - } - break; - case "EndOfContract1402LeftWork1403": //پایان قرارداد قبل 403 پایان همکاری بعد 403 - - if (contractStart >= start1403 && contractEnd > start1403)// بعد از 1403 - { - //تاریخ شروع یافتن قرادادها - var startSearchContracts = startWorkDate >= start1403 ? startWorkDate : start1403; - //تمام قراداد ها از تاریخ شروع تا پایان این فیش - - - - var ress = LeftWorkCantoleaveList(startSearchContracts, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) - .FirstOrDefault(x => x.ContractStart == separationStartDate); - - if (hasleft && leftWorkDate <= separationEndDate) - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = 0; - - //مزد مرخصی - result.LeavPay = ress.CanToLeave * leavePayPerHours; - - //مدت غیبت - result.AbsencePeriod = ress.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = ress.PeriodOfAbsence * absenceDeductionPerHourses; ; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = ress.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{ress.CountChekoutDays}"; - - } - else - { - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = false; - //مدت طلب مرخصی - result.CreditLeaves = ress.CanToLeave; - //مزد مرخصی - result.LeavPay = 0; - //مدت غیبت - result.AbsencePeriod = ress.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = ress.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = ress.WorkingPerDayHourses; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"0"; - - } - } - else if (contractEnd < start1403)// قبل از 1403 - { - var resCanTo1402 = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, - leaveHoursesPerDay, totalChekoutDays, hoursePerDay); - - //وضعیت تصفیه مزد مرخصی - result.LeaveCheckout = true; - ////مدت طلب مرخصی - result.CreditLeaves = resCanTo1402.CanToLeave; - //مزد مرخصی - result.LeavPay = resCanTo1402.CanToLeave * leavePayPerHours; - //مدت غیبت - result.AbsencePeriod = resCanTo1402.PeriodOfAbsence; - //کسری غیبت - result.AbsenceDeduction = resCanTo1402.PeriodOfAbsence * absenceDeductionPerHourses; - //میانگین ساعت کار در یک روز - result.AverageHoursPerDay = hoursePerDay; - // تعداد روزهایی که برای پرسنل مرخصی حساب شده - result.TotalDayOfLeaveCompute = $"{totalChekoutDays}"; - - } - break; - default: - result = new LeaveAndAbsenceViewModel(); - break; - } - - return result; - } - private static TimeSpan CalculateBreakTime(TimeSpan breakTimeSpan, TimeSpan sumOneDaySpan) - { - if (breakTimeSpan * 2 >= sumOneDaySpan) - return new TimeSpan(); - return breakTimeSpan; ; - } - - private (bool hasRollCall, double WorkingTotalHours) GetTotalWorkingHoursIfHasRollCall(long employeeId,long workshopId, DateTime contractStart, DateTime contractEnd) - { - bool hasRollCall = _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, - contractStart, contractEnd); - double totalWorkingHours = 0; - if (!hasRollCall) - return (false, 0); - - List rollCallResult; - List groupedRollCall; - - - rollCallResult = _context.RollCalls.Where(x => - x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart && - x.StartDate.Value.Date <= contractEnd && x.EndDate != null).Select(x => new RollCallViewModel() - { - StartDate = x.StartDate, - EndDate = x.EndDate, - ShiftSpan = (x.EndDate.Value - x.StartDate.Value), - CreationDate = x.ShiftDate, - BreakTimeSpan = x.BreakTimeSpan - }).ToList(); - - groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => new GroupedRollCalls() - { - CreationDate = x.Key, - ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(), - HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), - SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - CalculateBreakTime(x.First().BreakTimeSpan, - new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))), - - - - }).OrderBy(x => x.CreationDate).ToList(); - - - TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks)); - totalWorkingHours = sumSpans.TotalMinutes / 60; - - return (true, totalWorkingHours); - - - } - public List LeftWorkCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId, bool hasleft, DateTime leftWorkDate, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, DateTime separationStartDate) - { - // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل - var leaveHoursesPerDay = 190.58 / 365; - var contactCanToleaveList = new List(); - var allContractsBetween = _context.Contracts.AsSplitQuery().Include(x => x.WorkingHoursList) - .Where(x => x.WorkshopIds == workshopId && x.EmployeeId == employeeId && - x.ContractEnd >= startDate && x.ContarctStart <= endDate).ToList(); - - int mandatoryDays = 0; - double allCanToLeave = 0; - double canToLeave = 0; - int contractCounter = 0; - foreach (var contract in allContractsBetween) - { - contractCounter += 1; - var m = _mandatoryHoursRepository.GetMondatoryDays(contract.ContarctStart, - contract.ContractEnd); - - var workinghoursH = contract.WorkingHoursList.Select(x => x.TotalHoursesH).FirstOrDefault(); - var workinghoursM = contract.WorkingHoursList.Select(x => x.TotalHoursesM).FirstOrDefault(); - workinghoursM = string.IsNullOrWhiteSpace(workinghoursM) ? "0" : workinghoursM; - var workingHoursHDouble = Convert.ToDouble(workinghoursH); - var workingHoursMDouble = Convert.ToDouble(workinghoursM); - - - if (workingHoursMDouble > 0) - { - //تبیدل دقیه به اعشار - workingHoursMDouble = workingHoursMDouble / 60; - } - //کل ساعت کار پرسنل در این ماه - var totalWorkingHours = workingHoursHDouble + workingHoursMDouble; - - #region RollCallSpan - - var contractTotallDays = Convert.ToInt32((contract.ContractEnd - contract.ContarctStart).TotalDays + 1); - if (contractTotallDays <= 31) - { - - var rollCallTotalHoures = GetTotalWorkingHoursIfHasRollCall(employeeId, workshopId, - contract.ContarctStart.Date, contract.ContractEnd.Date); - if (rollCallTotalHoures.hasRollCall) - { - totalWorkingHours = rollCallTotalHoures.WorkingTotalHours; - } - } - - #endregion - // میانگین ساعت کارکرد پرسنل در روز - var workingHoursePerDay = totalWorkingHours / m.MoandatoryDays; - - // از شروع قرارداد تا پایان قرارداد - var totalDays = (contract.ContractEnd - contract.ContarctStart).TotalDays + 1; - double leftChekoutCanToleave = 0; - double leftleaveHoursesPerTotalDays = 0; - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل - var leaveHoursesPerTotalDays = leaveHoursesPerDay * totalDays; - - - double thisContractCanToLeavPerDay = 0; - double leftThisContractCanToLeavePerDay = 0; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - thisContractCanToLeavPerDay = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - //if (hasleft && leftWorkDate <= endDate) - //{ - // leftThisContractCanToLeavePerDay = (leftleaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - //} - - } - else - { - workingHoursePerDay = 7.33; - thisContractCanToLeavPerDay = leaveHoursesPerTotalDays; - //if (hasleft && leftWorkDate <= endDate) - //{ - // leftThisContractCanToLeavePerDay = leftleaveHoursesPerTotalDays; - //} - - } - //canToLeave = allCanToLeave + thisContractCanToLeavPerDay; - //leftChekoutCanToleave = allCanToLeave + leftThisContractCanToLeavePerDay; - - var sdate = contract.ContarctStart.ToFarsi(); - var edate = contract.ContractEnd.ToFarsi(); - // اگر فیش در قرارداد جاری حلقه بود تا تاریخ پایان فیش برو - if (separationStartDate >= contract.ContarctStart && separationStartDate < contract.ContractEnd) - edate = endDate.ToFarsi(); - var syear = Convert.ToInt32(sdate.Substring(0, 4)); - var smonth = Convert.ToInt32(sdate.Substring(5, 2)); - var sday = Convert.ToInt32(sdate.Substring(8, 2)); - - var eyear = Convert.ToInt32(edate.Substring(0, 4)); - var emonth = Convert.ToInt32(edate.Substring(5, 2)); - var eday = Convert.ToInt32(edate.Substring(8, 2)); - - var d1 = new PersianDateTime(syear, smonth, sday); - var d2 = new PersianDateTime(eyear, emonth, eday); - for (var currntMonth = d1; currntMonth <= d2; currntMonth = currntMonth.AddMonths(1)) - { - var startMonthFa = $"{currntMonth}"; - var startMonthGr = new DateTime(); - if (currntMonth == d1) - { - var d1Fa = $"{d1}"; - startMonthGr = d1Fa.ToGeorgianDateTime(); - } - else - { - var a = $"{startMonthFa.Substring(0, 8)}01"; - startMonthGr = a.ToGeorgianDateTime(); - } - - - var endMonthFa = startMonthFa.FindeEndOfMonth(); - var endMonthGr = endMonthFa.ToGeorgianDateTime(); - bool left = false; - if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) - { - left = true; - - if (endMonthGr > leftWorkDate) - endMonthGr = endDate; - } - #region 365 - - double canToLeavAfter365 = 0; - bool is365 = false; - var countChekoutDays = (int)((endMonthGr - startMonthGr).TotalDays + 1); - var beforeCountDays = contactCanToleaveList.MaxBy(x => x.ContractStart); - if (beforeCountDays != null) - { - if (!beforeCountDays.EndOfYear) - { - var sumCounDays = countChekoutDays + beforeCountDays.CountChekoutDays; - if (sumCounDays > 365) - { - is365 = true; - countChekoutDays = sumCounDays - 365; - - // مقدار ساعت مجاز مرخصی باقی مانده بعد از 365 روز - leaveHoursesPerTotalDays = 7.33 * 9; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - canToLeavAfter365 = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - } - else - { - - canToLeavAfter365 = leaveHoursesPerTotalDays; - } - } - else - { - countChekoutDays = sumCounDays; - } - } - - } - - - - #endregion - - - var leaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= startMonthGr && x.EndLeave >= startMonthGr) || - (x.StartLeave <= endMonthGr && x.EndLeave >= endMonthGr) || - (x.StartLeave >= startMonthGr && x.StartLeave <= endMonthGr) || - (x.EndLeave >= startMonthGr && x.EndLeave <= endMonthGr)).ToList(); - //مرخصی استفاده شده در این ماه - double usedLeaves = 0; - if (leaveList.Count > 0) - { - foreach (var item in leaveList) - { - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < startDate ? startDate : item.StartLeave; - end = item.EndLeave > endDate ? endDate : item.EndLeave; - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * workingHoursePerDay; - usedLeaves += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - else - { - - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - - } - } - - - - //طلب مرخصی این ماه - double creditLeaves = 0; - // مزد مرخصی - double leavePay = 0; - //مدت غیبت - double periodOfAbsence = 0; - double absenceDeduction = 0; - var beforContactCanToleave = new ContractsCanToLeave(); - var beforContractCount = contractCounter - 1; - if (contactCanToleaveList.Count > 0) - { - //آخری قبل از این - beforContactCanToleave = contactCanToleaveList.MaxBy(x => x.ContractStart); - canToLeave = beforContactCanToleave.CanToLeave; - if (beforContactCanToleave.LastChekoutOfContract) - canToLeave = thisContractCanToLeavPerDay + beforContactCanToleave.CanToLeave; - if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) - { - if (canToLeave > 0) - { - #region LeftChekoutCanToLeave - - var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{ترک کار شده - leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - thisContractCanToLeavPerDay = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - } - else - { - workingHoursePerDay = 7.33; - thisContractCanToLeavPerDay = leaveHoursesPerTotalDays; - } - - - if (contactCanToleaveList.Any(x => x.LastChekoutOfContract && x.ContractCounter == beforContractCount)) - { - - var b = contactCanToleaveList.FirstOrDefault(x => - x.LastChekoutOfContract && x.ContractCounter == beforContractCount); - canToLeave = thisContractCanToLeavPerDay + b.CanToLeave; - } - else - { - canToLeave = thisContractCanToLeavPerDay; - } - leaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= contract.ContarctStart && x.EndLeave >= contract.ContarctStart) || - (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || - (x.StartLeave >= contract.ContarctStart && x.StartLeave <= leftWorkDate) || - (x.EndLeave >= contract.ContarctStart && x.EndLeave <= leftWorkDate)).ToList(); - usedLeaves = 0; - if (leaveList.Count > 0) - { - foreach (var item in leaveList) - { - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < startDate ? startDate : item.StartLeave; - end = item.EndLeave > endDate ? endDate : item.EndLeave; - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * workingHoursePerDay; - usedLeaves += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - else - { - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - - } - } - - - - #endregion - - } - else - { - var checkAbsenceDeduction = contactCanToleaveList - .Where(x => x.CanToLeave == 0 && x.ContractStart >= contract.ContarctStart).MaxBy(x => x.ContractStart); - if (checkAbsenceDeduction != null) - { - - var startSerach = checkAbsenceDeduction.ContractEnd.AddDays(1); - leaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= startSerach && x.EndLeave >= startSerach) || - (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || - (x.StartLeave >= startSerach && x.StartLeave <= leftWorkDate) || - (x.EndLeave >= startSerach && x.EndLeave <= leftWorkDate)).ToList(); - usedLeaves = 0; - if (leaveList.Count > 0) - { - foreach (var item in leaveList) - { - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < startSerach ? startSerach : item.StartLeave; - end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * workingHoursePerDay; - usedLeaves += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - else - { - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - - } - } - } - } - - - - } - - } - else - { - canToLeave = thisContractCanToLeavPerDay; - if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) - { - var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل - leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - canToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - } - else - { - workingHoursePerDay = 7.33; - canToLeave = leaveHoursesPerTotalDays; - } - } - - - - } + if (weeklyWorkingTime == "24 - 12" || weeklyWorkingTime == "24 - 24" + || weeklyWorkingTime == "36 - 12" || + weeklyWorkingTime == "48 - 24") + { + var TotalDays = (contractEnd - contractStart).TotalDays + 1; + //روزهای قرارداد منهای جمعه ها و تعطیلات رسمی + var MandatoryDays = TotalDays - friday - officialholiday; + //بدست آوردن ساعت موظفی این ماه + var TotalMandatoryHours = MandatoryDays * 7.33; + //تبدیل ساعت به عدد + var totalHoursHDouble = Convert.ToDouble(totalHoursH); + var totalHoursMDouble = Convert.ToDouble(totalHorsM); + if (totalHoursMDouble > 0) + { + //تبیدل دقیه به اعشار + totalHoursMDouble = totalHoursMDouble / 60; + } + //کل ساعت کار پرسنل در این ماه + var totalHours = totalHoursHDouble + totalHoursMDouble; + + var employeeWorkingDay = TotalDays - friday; + + + if (overNightWorkH != "0" || overNightWorkM != "0") + { + var overtimeNightH = Convert.ToDouble(overNightWorkH); + var overtimeNightM = Convert.ToDouble(overNightWorkM); + if (overtimeNightM > 0) + { + //تبیدل دقیه به اعشار + overtimeNightM = overtimeNightM / 60; + } + + var overNightTime = overtimeNightH + overtimeNightM; + + //به دست آوردن ساعات کارکرد + + + // محاسبه اضافه کاری برای یک ساعت + if (totalHours < TotalMandatoryHours)// اگر کمتر از 44 ساعت کار کرد + { + //بدست آوردن میانگین ساعت کار کارگر در یک روز + var employeeMonadtory = totalHours / employeeWorkingDay; + computeResult = (dayliWage / employeeMonadtory * 35) / 100; + } + else + { + computeResult = (dayliWage / 7.33 * 35) / 100; + } + + + result = computeResult * overNightTime; + + } + } + else + { + if (overNightWorkH != "0" || overNightWorkM != "0") + { + var overtimeNightH = Convert.ToDouble(overNightWorkH); + var overtimeNightM = Convert.ToDouble(overNightWorkM); + if (overtimeNightM > 0) + { + //تبیدل دقیه به اعشار + overtimeNightM = overtimeNightM / 60; + } + + var overNightTime = overtimeNightH + overtimeNightM; + + //به دست آوردن ساعات کارکرد + double weeklyTime = 0; + try + { + + weeklyTime = double.Parse(weeklyWorkingTime, CultureInfo.InvariantCulture); + } + catch (Exception e) + { + weeklyTime = double.Parse(weeklyWorkingTime); + } + + // محاسبه اضافه کاری برای یک ساعت + if (weeklyTime < 44.00)// اگر کمتر از 44 ساعت کار کرد + { + var dayliHours = weeklyTime / 6; + computeResult = (dayliWage / dayliHours * 35) / 100; + } + else + { + computeResult = (dayliWage / 7.33 * 35) / 100; + } + + + result = computeResult * overNightTime; + + } + + + // اگر شیکاری کاری داشت + + } + + return result; + } + + #endregion + + public void TestDayliFeeCompute() + { + //مقادیر سالانه + var salary = _context.YearlySalaries.Include(i => i.YearlySalaryItemsList).OrderBy(x => x.StartDate).ToList(); + + // یافتن مزد روزانه سال قبل از اولین شروع بکار + var DayliSalaryStep1 = salary.FirstOrDefault(x => x.Year == "1370")! + .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); + var DayliSalaryStep1Fa = DayliSalaryStep1.ToMoney(); + double firstDayliSalary = DayliSalaryStep1Fa.MoneyToDouble(); + + string firstYear = "1370"; + int counter = 0; + foreach (var item in salary) + { + Console.WriteLine($"{item.Year} - {item.ConnectionId}"); + var currentDayliFee = item! + .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); + var fixFeePercentage = item! + .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + // مبلغ مزد ثابت سال جاری + var fixFeePrice = item!.YearlySalaryItemsList + .Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + + if (counter > 0) + { + if (firstYear == item.Year) + { + int currentYear = Convert.ToInt32(item.Year); + string lastYear = $"{currentYear - 1}"; + firstDayliSalary = salary.Where(x => x.Year == lastYear).MaxBy(x => x.StartDate)! + .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); + + } + // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد + var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; + // نتیجه عملیات بالا بعلاوه مزد سال قبل + var Sum = firstDayliSalary + percntSumDaylifee; + + //مزد پایه + var BaseResult = Sum + fixFeePrice; + var baseResultFa = BaseResult.ToMoney(); + var res = GetCurrectFirstDailyFee(BaseResult, item.Year); + + if (currentDayliFee != res) + { + Console.BackgroundColor = ConsoleColor.DarkRed; + Console.WriteLine($" lastYear : {firstDayliSalary} thisYearOriginal : {currentDayliFee} GetCurrect : {res} falseResut : {BaseResult} "); + Console.ResetColor(); + } + else + { + Console.WriteLine($" lastYear : {firstDayliSalary} thisYearOriginal : {currentDayliFee} GetCurrect : {res} falseResut : {BaseResult} "); + } + + //Console.WriteLine($"{item.Year} defualtFa : {currentDayliFee.ToMoney()} dailFeeFa : {BaseResult.ToMoney()} "); + firstDayliSalary = res; + firstYear = item.Year; + + + } + + counter++; + } + + //مقدار اولیه مزد روزانه + + } + + private double GetCurrectFirstDailyFee(double value, string year) + { + double currected = 0; + switch (year) + { + case "1370": + currected = value; + break; + case "1371": + currected = value; + break; + case "1372": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1373": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1374": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1375": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1376": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1377": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1378": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1379": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1380": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1381": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1382": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1383": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1384": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1385": + currected = value == 49950.4 ? 50000 : value; + break; + case "1386": + currected = value < 61000 ? 61000 : value; + break; + case "1387": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1388": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1389": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1390": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1391": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1392": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1393": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1394": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1395": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1396": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1397": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1398": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1399": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1400": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1401": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + case "1402": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1403": + currected = Math.Round(value, MidpointRounding.ToNegativeInfinity); + break; + case "1404": + currected = Math.Round(value, MidpointRounding.ToPositiveInfinity); + break; + default: + currected = value; + break; + + + } + + return currected; + + } + //محاسبه حقوق روزانه + #region DayliSalary + public DayliFeeViewModel DayliFeeComputing(DateTime startDateW, DateTime contractStart, DateTime endDateW, long employeeId, long workshopId, List leftWorkList) + { + int oldYear = 0; + string oldYearTemp = string.Empty; + var startPeriod = new DateTime(); + var endtPeriod = new DateTime(); + string finalResultMoney = string.Empty; + double FinalResult = 0; + int DayCounter = 0; + int Max365 = 366; + double Basic = 0; + double BaseResult = 0; + DateTime periodStarter = new DateTime(); + int loopdateYear = 0; + long stDateId = 0;//ای دی ماه های دوگانه + double basicResultSum = 0; + //مقادیر سالانه + var salary = _context.YearlySalaries.OrderByDescending(x => x.EndDate).Include(x => x.YearlySalaryItemsList).ToList(); + + + + // تاریخ اولین شروع بکار + var startDateB = leftWorkList.OrderBy(x => x.StartWorkDateGr).Select(x => x.StartWorkDate).FirstOrDefault(); + + //نگهدارنده آی دی سال در مقادیر سالانه + long loopDateId = 0; + + + var syear = Convert.ToInt32(startDateB.Substring(0, 4)); + var smonth = Convert.ToInt32(startDateB.Substring(5, 2)); + var sday = Convert.ToInt32(startDateB.Substring(8, 2)); + + var endDateConvert = endDateW.ToFarsi(); + var eyear = Convert.ToInt32(endDateConvert.Substring(0, 4)); + var emonth = Convert.ToInt32(endDateConvert.Substring(5, 2)); + var eday = Convert.ToInt32(endDateConvert.Substring(8, 2)); + + //تبدیل تاریخ اولین شروع بکار به شمسی تقویمی + var d1 = new PersianDateTime(syear, smonth, sday); + //تبدیل تاریخ پایان قرارداد به شمسی تقویمی + var d2 = new PersianDateTime(eyear, emonth, eday); + + var getWork = startDateB.ToGeorgianDateTime(); + //یافتن سال گزشته + var getWorkYear = syear - 1; + oldYear = syear - 1; + var getWorkYearString = getWorkYear.ToString(); + //var getWorkSalary = salary.FirstOrDefault(x=>x.Year == getWorkYearString); + var dayliSalaryStep1Check = salary.Any(x => x.Year == getWorkYearString); + // یافتن مزد روزانه سال قبل از اولین شروع بکار + var DayliSalaryStep1 = salary.FirstOrDefault(x => x.Year == getWorkYearString) + .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); + + //مقدار اولیه مزد روزانه + var DayliSalaryStep1Fa = DayliSalaryStep1.ToMoney(); + double firstDayliSalary = DayliSalaryStep1Fa.MoneyToDouble(); + + DateTime baseYearDate = new DateTime(); + + for (DateTime LoopDate = getWork; LoopDate <= endDateW; LoopDate = LoopDate.AddDays(1)) + { + var loopdateFa = LoopDate.ToFarsi(); + loopdateYear = Convert.ToInt32(loopdateFa.Substring(0, 4)); + + var LoopDateGr = LoopDate; + //یافتن ترک کار + var check = leftWorkList.Any(x => x.StartWorkDateGr == LoopDateGr); + if (check) + { + var period = leftWorkList.FirstOrDefault(x => x.StartWorkDateGr == LoopDateGr); + //ذخیره تاریخ شروع بکار + startPeriod = period.StartWorkDateGr; + if (period.LeftWorkDate == "1500/01/01") + { + endtPeriod = endDateW; + } + else + { + + endtPeriod = period.LeftWorkDateGr.AddDays(-1); + // ذخیره تاریخ ترک کار + + } + + + } + + + + //اگر تاریخ جاری بزرگتر یت مساوی تاریخ شروع ترک کار و کوچکتر یا مساوی تاریخ پایان ترک کار بود + if (LoopDateGr >= startPeriod && LoopDateGr <= endtPeriod) + { + //اگر شمارنده روزها صفر بود + if (DayCounter == 0) + { + + //var date = LoopDate.ToString(); + // ذهیر تعداد روز های سال جاری بر اساس کبیسه یودن یا نبودن + Max365 = loopdateFa.YearTotalDays(); + } + // یک روز به شمارنده روزها اضافه کن + DayCounter += 1; + + //periodStarter = startPeriod.ContractStartGr; + } + + + //آیا در مقادیر سالانه رکوردی وجود دارد که شروعش از تاریخ جاری کوچکتر و پایانش از تاریخ جاری بزرگتر باشد + var checkExist = salary.Any(x => + x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId); + if (checkExist) + { + var test = loopdateYear.ToString();//سال جاری رو بدست بیار + var step2 = salary.Where(x => x.Year == test).OrderByDescending(x => x.StartDate).ToList();// اونایی رو بیار که سال جاری هستن + if (step2.Count > 1)// اگر تعدادشون بیش از 1 بود + { + + var stDate = step2.FirstOrDefault(); // آخری + + if (DayCounter < Max365) + { + + if (LoopDateGr >= stDate.StartDate && LoopDateGr <= stDate.EndDate && oldYear != loopdateYear && stDate.id != stDateId) + { + + var fixFeePercentage = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) + .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + // مبلغ مزد ثابت سال جاری + var fixFeePrice = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) + .YearlySalaryItemsList.Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + + // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد + var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; + // نتیجه عملیات بالا بعلاوه مزد سال قبل + var Sum = firstDayliSalary + percntSumDaylifee; + + //مزد پایه + BaseResult = Sum + fixFeePrice; + BaseResult = GetCurrectFirstDailyFee(BaseResult, test); + //var rondUp = Convert.ToInt32(BaseResult); + + Console.WriteLine($"{test} - mozdeSaleGhabl[{firstDayliSalary}] - mozdeSaleJari[{BaseResult}] - fixFeePercentage[{fixFeePercentage}] - fixFeePrice[{fixFeePrice}]"); + //آی دی سال جاری + loopDateId = salary.Where(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId).Select(x => x.id).FirstOrDefault(); + // ذخیره سال جاری بعنوان سال گذشته برای عملیات بعدی + oldYear = loopdateYear; + stDateId = stDate.id; + } + else + { + if (BaseResult == 0) + { + var oldYearString = oldYear.ToString(); + var resDouble = salary.FirstOrDefault(x => x.Year == oldYearString) + .YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه").Select(x => x.ItemValue).FirstOrDefault(); + var resFa = resDouble.ToMoney(); + BaseResult = resFa.MoneyToDouble(); + + } + + } + + + } + else if (DayCounter == Max365 && oldYear != loopdateYear) + { + + var fixFeePercentage = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) + .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + // مبلغ مزد ثابت سال جاری + var fixFeePrice = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) + .YearlySalaryItemsList.Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + + // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد + var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; + // نتیجه عملیات بالا بعلاوه مزد سال قبل + var Sum = firstDayliSalary + percntSumDaylifee; + //مزد پایه + BaseResult = Sum + fixFeePrice; + //var rondUp = Convert.ToInt32(BaseResult); + BaseResult = GetCurrectFirstDailyFee(BaseResult, test); + Console.WriteLine($"{test} - mozdeSaleGhabl[{firstDayliSalary}] - mozdeSaleJari[{BaseResult}] - fixFeePercentage[{fixFeePercentage}] - fixFeePrice[{fixFeePrice}]"); + + //آی دی سال جاری + loopDateId = salary.Where(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId).Select(x => x.id).FirstOrDefault(); + // ذخیره سال جاری بعنوان سال گذشته برای عملیات بعدی + oldYear = loopdateYear; + } + + } + else if (step2.Count == 1 && oldYear != loopdateYear) + { + //درصد مزد ثابت تاریخ جاری + var fixFeePercentage = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) + .YearlySalaryItemsList.Where(x => x.ItemName == "درصد مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + // مبلغ مزد ثابت سال جاری + var fixFeePrice = salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId) + .YearlySalaryItemsList.Where(x => x.ItemName == "مبلغ مزد ثابت").Select(x => x.ItemValue).FirstOrDefault(); + + // مزد روزانه سال قبل ضربدر درصد مزد ثابت تقسیم بر صد + var percntSumDaylifee = (firstDayliSalary * fixFeePercentage) / 100; + // نتیجه عملیات بالا بعلاوه مزد سال قبل + var Sum = firstDayliSalary + percntSumDaylifee; + + + //مزد پایه + BaseResult = Sum + fixFeePrice; + BaseResult = GetCurrectFirstDailyFee(BaseResult, test); + //var rondUp = Convert.ToInt32(BaseResult); + + Console.WriteLine($"{test} - mozdeSaleGhabl[{firstDayliSalary}] - mozdeSaleJari[{BaseResult}] - fixFeePercentage[{fixFeePercentage}] - fixFeePrice[{fixFeePrice}]"); + + //آی دی سال جاری + loopDateId = salary.Where(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr && x.id != loopDateId).Select(x => x.id).FirstOrDefault(); + // ذخیره سال جاری بعنوان سال گذشته برای عملیات بعدی + oldYear = loopdateYear; + } + } + //اگر شرط بالا صحیح بود و سال جاری از سال گذشته بزرگتر بود اعملیات را انجام بده + //if (checkExist && loopdateYear > oldYear) + //{ + + + //} + + + + + //اگر شمارنده روزها مساوی شد یا 365 + if (DayCounter == Max365) + { + var test = LoopDateGr.ToFarsi(); + var basicSalari = + salary.FirstOrDefault(x => x.StartDate <= LoopDateGr && x.EndDate >= LoopDateGr); + //پایه سنوات سال جاری + Basic = basicSalari + .YearlySalaryItemsList.Where(x => x.ItemName == "پایه سنوات").Select(x => x.ItemValue).FirstOrDefault(); + //پایه سنوات سال جاری بعلاوه مزد پایه + BaseResult += Basic; + basicResultSum += Basic; + Console.BackgroundColor = ConsoleColor.DarkYellow; + Console.WriteLine($"{test} - mozd[{BaseResult}] - Basic[{Basic}]"); + Console.ResetColor(); + //صفر نمودن شمارنده روزها + DayCounter = 0; + } + + //if (loopdateFa == "1398/12/29") + //{ + // Console.WriteLine(BaseResult); + //} + //else if (loopdateFa == "1399/12/30") + //{ + // Console.WriteLine(BaseResult); + //} + //else if (loopdateFa == "1400/12/29") + //{ + // Console.WriteLine(BaseResult); + //} + //else if (loopdateFa == "1401/12/29") + //{ + // Console.WriteLine(BaseResult); + //} + //else if (loopdateFa == "1402/01/29") + //{ + // Console.WriteLine(BaseResult); + //} + + + FinalResult = BaseResult; + //ذخیره نتیجه نهایی مزد پایه + firstDayliSalary = FinalResult; + + } + + //ارسال مزد نهایی بعد از پایان حقه + #region round + + int FinalResultInt = (int)FinalResult; + var FinalResultDouble = (double)FinalResultInt; + #endregion + finalResultMoney = FinalResultDouble.ToMoney(); + + var res = new DayliFeeViewModel() + { + DayliFeeDouble = FinalResultDouble, + DayliFee = finalResultMoney, + Basic = basicResultSum.ToMoney() + }; + return res; + + + + + } + + public async Task DayliFeeComputingAsync(DateTime startDateW, DateTime contractStart, DateTime endDateW, long employeeId, + long workshopId, List leftWorkList) + { + var res = DayliFeeComputing(startDateW, contractStart, endDateW, employeeId, + workshopId, leftWorkList); + return res; + } + + #endregion + + //کمک هزینه اقلام از جدول مقادیر بر اساس سال انتخاب شده + #region ConsumableItems + + public string ConsumableItems(DateTime endDateW) + { + var endDateInput = _context.YearlySalaries + .SingleOrDefault(x => x.StartDate <= endDateW && x.EndDate >= endDateW); + var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "کمک هزینه اقلام"); + var res = FirstItems.ItemValue; + var result = res.ToMoney(); + return result; + } + + #endregion + + //یافتن حق مسکن از جدول مقادیر بر اساس سال انتخاب شده + #region HousingAllowance + + public string HousingAllowance(DateTime endDateW) + { + var endDateInput = _context.YearlySalaries + .SingleOrDefault(x => x.StartDate <= endDateW && x.EndDate >= endDateW); + var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "کمک هزینه مسکن"); + var res = FirstItems.ItemValue; + var result = res.ToMoney(); + return result; + } + + #endregion + + // محاسبه حق عائله مندی پرسنل بر اساس تاریخ ورودی و آی دی پرسنل + #region FamilyAllowance + + public string FamilyAllowance(long personelID, DateTime startContract, DateTime endContract) + { + //DateTime zeroTime = new DateTime(1, 1, 1); + //TimeSpan Age = new TimeSpan(); + + + var endDateInput = _context.YearlySalaries + .SingleOrDefault(x => x.StartDate <= endContract && x.EndDate >= endContract); + var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "مزد روزانه"); + var dayliSalary = FirstItems.ItemValue; + var familyAllowance = dayliSalary * 3; + double sumOfFamilyAllowance = 0; + DateTime firstDayOFContract = endContract.FindFirstDayOfMonthGr(); + if (startContract < firstDayOFContract) + startContract = firstDayOFContract; + var totalContractDays = Convert.ToInt32((endContract - startContract).TotalDays + 1); + try + { + var children = _context.EmployeeChildrenSet.Where(x => x.EmployeeId == personelID).ToList(); + var insuranceYearAndMonth = _context.Employees.SingleOrDefault(x => x.id == personelID); + var yearI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByYear); + var monthI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByMonth); + yearI *= 365; + monthI *= 30; + var insurancHistoey = yearI + monthI; + + foreach (var item in children) + { + if (item.DateOfBirth < endContract) + { + //Age = (endContract - item.DateOfBirth); + //var ageUp18 = (zeroTime + Age).Year - 1; + + var childAge = Tools.GetAge(item.DateOfBirth, endContract); + + if (childAge.yearCount < 18 && insurancHistoey >= 720) + { + sumOfFamilyAllowance += familyAllowance; + + } + else if (childAge.yearCount == 18 && childAge.monthCount == 0 && insurancHistoey >= 720) + { + + if (childAge.dayCount > 0) + { + //به دست آوردن روزهای مجاز قبل از 18 سال + var daysToPay = totalContractDays - childAge.dayCount; + + if (daysToPay > 0) + { + //محاسبه مبلغ بر اساس تعداد روزهای مجاز + var payPerDay = (familyAllowance / 30) * daysToPay; + sumOfFamilyAllowance += payPerDay; + } + + } + else + { + sumOfFamilyAllowance += familyAllowance; + } + } + } + + } + } + catch (Exception e) + { + sumOfFamilyAllowance = 0; + } + + //var ress = dayliSalar3 * childeNumber; + + var result = sumOfFamilyAllowance.ToMoney(); + + + return result; + } + + public string FamilyAllowanceAutoExtention(long personelID, DateTime startContract) + { + var endDateInput = _context.YearlySalaries + .SingleOrDefault(x => x.StartDate <= startContract && x.EndDate >= startContract); + var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "مزد روزانه"); + var dayliSalary = FirstItems.ItemValue; + var familyAllowance = dayliSalary * 3; + double sumOfFamilyAllowance = 0; + try + { + var children = _context.EmployeeChildrenSet.Where(x => x.EmployeeId == personelID).ToList(); + var insuranceYearAndMonth = _context.Employees.SingleOrDefault(x => x.id == personelID); + var yearI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByYear); + var monthI = Convert.ToInt32(insuranceYearAndMonth.InsuranceHistoryByMonth); + yearI *= 365; + monthI *= 30; + var insurancHistoey = yearI + monthI; + + foreach (var item in children) + { + if (item.DateOfBirth < startContract) + { + + + var childAge = Tools.GetAge(item.DateOfBirth, startContract); + + if (childAge.yearCount < 18 && insurancHistoey >= 720) + { + sumOfFamilyAllowance += familyAllowance; + + } + + } + + } + } + catch (Exception e) + { + sumOfFamilyAllowance = 0; + } + + + + var result = sumOfFamilyAllowance.ToMoney(); + + return result; + } + + #endregion + + + #region AsyncMetods + public async Task ConsumableItemsAsync(DateTime endDateW) + { + var res = ConsumableItems(endDateW); + return res; + } + + public async Task HousingAllowanceAsync(DateTime endDateW) + { + var res = HousingAllowance(endDateW); + return res; + } + + public async Task FamilyAllowanceAsync(long personelID, DateTime EndCantract) + { + var res = "FamilyAllowance(personelID, EndCantract);"; + return res; + } + #endregion + + + //جستجوی مقادیر یک سال یا آی دی + #region SerachYearlySalaryById + + public EditYearlySalary GetDetails(long id) + { + return _context.YearlySalaries.Select(x => new EditYearlySalary + { + Id = x.id, + StartDate = x.StartDate.ToFarsi(), + EndDate = x.EndDate.ToFarsi(), + ConnectionId = x.ConnectionId, + + }).FirstOrDefault(x => x.Id == id); + } + + #endregion + + + // سرچ مدل صفحه مقادیر سالانه + #region YearlySalaryMainSerach + + public List Search(YearlySalarySearchModel searchModel) + { + var query = _context.YearlySalaries.Select(x => new YearlySalaryViewModel + { + Id = x.id, + + StartDate = x.StartDate.ToFarsi(), + StartDateGr = x.StartDate, + Year = x.Year, + EndDate = x.EndDate.ToFarsi(), + + + }); + + if (!string.IsNullOrWhiteSpace(searchModel.year)) + { + + + query = query.Where(x => x.Year == searchModel.year); + } + + + return query.OrderByDescending(x => x.StartDateGr).ToList(); + } + #endregion + + + public int FindConnection() + { + int connectionid = 0; + var exist = _context.YearlySalaries.Any(x => x.ConnectionId > 0); + if (exist) + { + connectionid = _context.YearlySalaries.Max(x => x.ConnectionId); + } + else + { + connectionid = 0; + } + return connectionid += 1; + } + + // heydari جستجوی مقادیر با سرچ مدل + #region yearlySalarySearchBySearchModel + + public EditYearlySalary GetDetailsBySearchModel(YearlySalarySearchModel searchModel) + { + var query = _context.YearlySalaries.FirstOrDefault(x => x.StartDate <= searchModel.StartDateGr && x.EndDate >= searchModel.EndDateGr && x.Year == searchModel.year); + if (query != null) + { + var yearlySalariesObj = new EditYearlySalary() + { + Id = query.id, + StartDate = query.StartDate.ToFarsi(), + EndDate = query.EndDate.ToFarsi(), + ConnectionId = query.ConnectionId, + }; + return yearlySalariesObj; + } + else + return null; + } + + #endregion + + // محاسبه حق تاهل + #region MarriedAlloance + public double MarriedAllowance(DateTime endDateW, long employeeId) + { + var getEmployee = _context.Employees.FirstOrDefault(x => x.id == employeeId); + if (getEmployee == null) + { + return 0; + } + + if (getEmployee.MaritalStatus == "متاهل") + { + var endDateInput = _context.YearlySalaries + .SingleOrDefault(x => x.StartDate <= endDateW && x.EndDate >= endDateW); + var FirstItems = _context.YearlySalaryItems.SingleOrDefault(x => x.YearlySalaryId == endDateInput.id && x.ItemName == "حق تاهل"); + if (FirstItems == null) + { + return 0; + } + return FirstItems.ItemValue; + } + else + { + return 0; + } + + + } + + + #endregion + + //سنوات + #region yeaers + + public BunosesAndYearsPayStatus Years(DateTime separationStartDate, DateTime leftWorkDate, DateTime separationEndDate, double daylyWage, string yearsOptions, + bool hasleft, DateTime startWorkDate, DateTime contractStart, DateTime contractEnd, long workshopId, long employeeId, bool isOldContract) + { + BunosesAndYearsPayStatus finalResult = new BunosesAndYearsPayStatus(); + var startDateFa = separationEndDate.ToFarsi(); + var checkoutMonth = startDateFa.Substring(5, 2); + double result = 0; + var start1403 = new DateTime(2024, 3, 20); + switch (yearsOptions) + { + case "OnCheckoutOfMonth": + var totalCheckoutDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalCheckoutDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalCheckoutDays); + break; + //محاسبه در پایان سال به شرطی که قرارداد منتهی به پایان سال باشد + case "OnEndOfYear"://درپایان سال + + if (isOldContract && contractEnd < start1403) + { + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + else if (isOldContract && contractEnd > start1403) + { + if ((hasleft && leftWorkDate <= separationEndDate) || (checkoutMonth == "12" && separationEndDate == contractEnd)) + { + + //بدست آوردن اولین روز سال + var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + + // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود + var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; + + + + #region NewCompute + + //شروع دوره + string st = startComputeDay.ToFarsi(); + int syear = Convert.ToInt32(st.Substring(0, 4)); + int smonth = Convert.ToInt32(st.Substring(5, 2)); + PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); + PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); + //پایان فیش حقوقی آخر + PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); + if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) + { + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + else + { + var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && + x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); + //پایان دوره + PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); + List nullDateList = new List(); + double sumOfOldYearsPay = 0; + var oldTotaldays = 0; + for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) + { + var searchStart = ($"{startDate}").ToGeorgianDateTime(); + var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); + var foundCheckout = checkoutList.FirstOrDefault(x => + x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); + if (foundCheckout == null) + { + nullDateList.Add(new BunosesAndYearsPayStatus() + { + ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, + ContractEnd = searchEnd + }); + finalResult.NotCompleted = true; + } + else + { + double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; + int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); + double foundDayliWage = foundMonthlySalary / foundTotaldays; + double foundYearsPay = ((foundDayliWage * 30) / 365) * foundTotaldays; + oldTotaldays += foundTotaldays; + sumOfOldYearsPay += foundYearsPay; + } + + } + + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + double lastMonthYearsPay = ((daylyWage * 30) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotaldays); + finalResult.YearsPay = lastMonthYearsPay + sumOfOldYearsPay; + finalResult.BunosesStatusList = nullDateList; + + } + + #endregion + } + } + else if (!isOldContract) + + { + if ((hasleft && leftWorkDate <= separationEndDate) || (checkoutMonth == "12" && separationEndDate == contractEnd)) + { + //بدست آوردن اولین روز سال + var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; + #region NewCompute + + //شروع دوره + string st = startComputeDay.ToFarsi(); + int syear = Convert.ToInt32(st.Substring(0, 4)); + int smonth = Convert.ToInt32(st.Substring(5, 2)); + PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); + PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); + //پایان فیش حقوقی آخر + PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); + if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) + { + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + else + { + var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && + x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); + //پایان دوره + PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); + List nullDateList = new List(); + double sumOfOldYearsPay = 0; + var oldTotaldays = 0; + for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) + { + var searchStart = ($"{startDate}").ToGeorgianDateTime(); + var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); + var foundCheckout = checkoutList.FirstOrDefault(x => + x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); + if (foundCheckout == null) + { + nullDateList.Add(new BunosesAndYearsPayStatus() + { + ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, + ContractEnd = searchEnd + }); + finalResult.NotCompleted = true; + } + else + { + double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; + int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); + double foundDayliWage = foundMonthlySalary / foundTotaldays; + double foundYearsPay = ((foundDayliWage * 30) / 365) * foundTotaldays; + oldTotaldays += foundTotaldays; + sumOfOldYearsPay += foundYearsPay; + } + + } + + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + double lastMonthYearsPay = ((daylyWage * 30) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotaldays); + finalResult.YearsPay = lastMonthYearsPay + sumOfOldYearsPay; + finalResult.BunosesStatusList = nullDateList; + + } + + #endregion + //var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + //result = (daylyWage * 30) / 365 * totalDays; + } + } + + break; + //از شروع بکار تا ترک کار + case "OnLeftWork"://درپایان همکاری + + if (isOldContract && contractEnd < start1403) + { + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + else if (isOldContract && contractEnd > start1403) + { + + if ((hasleft && leftWorkDate <= separationEndDate)) + { + //بدست آوردن اولین روز سال + var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + + // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود + var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + } + else if (!isOldContract) + { + if ((hasleft && leftWorkDate <= separationEndDate)) + { + + var totalDays = (separationEndDate - startWorkDate).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + } + + break; + // از شروع قراداد تا پایان قراداد یا ترک کار + case "OnEndOfContract"://در پایان قرارداد + var start1403EndOfContract = new DateTime(2024, 3, 20); + if (isOldContract && contractEnd < start1403EndOfContract) + { + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + else if (isOldContract && contractEnd > start1403) + { + if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) + { + var totalDays = (separationEndDate - contractStart).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + + } + else if (!isOldContract) + { + if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) + { + var totalDays = (separationEndDate - contractStart).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + } + + break; + case "EndOfContract1402LeftWork1403": //پایان قرارداد قبل 403 پایان همکاری بعد 403 + + if (contractStart >= start1403 && contractEnd > start1403)// بعد از 1403 + { + if (hasleft && leftWorkDate <= separationEndDate)//اگر ترک کار کرده بود + { + //اگر شروع بکار بعد از 1403 بود تاریخ شرو بکار را در نظر میگیرد در غیر اینصورت اولین روز 1403 را در نظر میگیرد + var startComputeDay = startWorkDate >= start1403 ? startWorkDate : start1403; + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + } + else if (contractStart < start1403 && contractEnd < start1403)// قبل از 1403 + { + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.YearsPay = (daylyWage * 30) / 365 * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + //if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd)// اگر ترک کار کرده بود یا فیش آخر قراداد بود + //{ + // var totalDays = (separationEndDate - contractStart).TotalDays + 1; + // result = (daylyWage * 30) / 365 * totalDays; + //} + } + break; + default: + finalResult.YearsPay = 0; + finalResult.TotalDayCompute = 0; + break; + } + + return finalResult; + } + + + + #endregion + //مزد مرخصی + #region LeavePay + + public LeaveAndAbsenceViewModel LeavePay(string startDateFa, DateTime leftWorkDate, DateTime separationStartDate, DateTime separationEndDate, + double daylyWage, string computeOptions, bool hasleft, DateTime startWorkDate, DateTime contractStart, + DateTime contractEnd, long workshopId, long employeeId, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, double consumableItem, + double housingAllowance, double familyAllowance, double marriedAllowance, bool isOldContract) + { + + + var result = new LeaveAndAbsenceViewModel(); + // ماه فیش آخر + var checkoutMonth = startDateFa.Substring(5, 2); + // بدست آوردن مقدار مجاژ مرخصی پرسنل در این فیش + #region HoursPerDay + // روز های کارکرد فیش + var totalChekoutDays = (separationEndDate - separationStartDate).TotalDays + 1; + + //تعداد روزهای موظفی این فیش حقوقی + //var mandatoryWorkingDay = totalChekoutDays - (fridayStartToEnd + officialHoliday); + //تبدیل ساعت به عدد + var totalHoursHDouble = Convert.ToDouble(totalHoursH); + var totalHoursMDouble = Convert.ToDouble(totalHorsM); + if (totalHoursMDouble > 0) + { + //تبیدل دقیه به اعشار + totalHoursMDouble = totalHoursMDouble / 60; + } + //کل ساعت کار پرسنل در این ماه + var totalHours = totalHoursHDouble + totalHoursMDouble; + var checkoutMandatoryDays = _mandatoryHoursRepository.GetMondatoryDays(separationStartDate, separationEndDate); + // میانگین ساعت کارکرد پرسنل در روز + var hoursePerDay = totalHours / checkoutMandatoryDays.MoandatoryDays; + + + // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل + var leaveHoursesPerDay = 190.58 / 365; + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل + + double canToLeave = 0; + + + //مزد مرخصی برای یک ساعت + #region MyRegion + + //مقدار مزد روزانه برای یک ساعت + var LeaveDayliFee = daylyWage / 7.33;// مورد سوم - به این روش برای بک ساعت مرد مرخصی درست است + + //اقلام مصرفی برای یک ساعت + var LeaveConoumableItemsStep1 = consumableItem / totalChekoutDays; + var LeaveConsumableItems = LeaveConoumableItemsStep1 / 7.33; + + //کمک هزینه مسکن برای یک ساعت + var LeavehousingAllowanceStep1 = housingAllowance / totalChekoutDays; + var LeaveHousingAllowance = LeavehousingAllowanceStep1 / 7.33; + + //حق عائله مندی برای یک ساعت + var LeavefamilyAllowanceStep1 = familyAllowance / totalChekoutDays; + var LeaveFamilyAllowance = LeavefamilyAllowanceStep1 / 7.33; + + //حق تاهل برای یک ساعت + var LeavemarriedAllowanceStep1 = marriedAllowance / totalChekoutDays; + var LeaveMarriedAllowance = LeavemarriedAllowanceStep1 / 7.33; + + var leavePayPerHours = LeaveDayliFee + LeaveConsumableItems + LeaveHousingAllowance + LeaveFamilyAllowance + LeaveMarriedAllowance; + + #endregion + + + //غیبت برای یک ساعت + double absenceDeductionPerHourses = leavePayPerHours; + //if (hoursePerDay < 7.33) + //{ + // //مقدار مزد روزانه برای یک ساعت + // var dayliFee = daylyWage / hoursePerDay; + + // //اقلام مصرفی برای یک ساعت + // var ConoumableItemsStep1 = consumableItem / 30; + // var ConsumableItems = ConoumableItemsStep1 / hoursePerDay; + + // //کمک هزینه مسکن برای یک ساعت + // var housingAllowanceStep1 = housingAllowance / 30; + // var HousingAllowance = housingAllowanceStep1 / hoursePerDay; + + // //حق عائله مندی برای یک ساعت + // var familyAllowanceStep1 = familyAllowance / 30; + // var FamilyAllowance = familyAllowanceStep1 / hoursePerDay; + + // //حق تاهل برای یک ساعت + // var marriedAllowanceStep1 = marriedAllowance / 30; + // var MarriedAllowance = marriedAllowanceStep1 / hoursePerDay; + // //مزد مرخصی این پرسنل به ازای یک ساعت + // absenceDeductionPerHourses = dayliFee + ConsumableItems + HousingAllowance + FamilyAllowance + MarriedAllowance; + //} + //else + //{ + // //مزد مرخصی این پرسنل به ازای یک ساعت + // absenceDeductionPerHourses = LeaveDayliFee + LeaveConsumableItems + LeaveHousingAllowance + LeaveFamilyAllowance + LeaveMarriedAllowance; + + //} + + #endregion + + //بدست آوردن اولین روز سال + var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + var start1403 = new DateTime(2024, 3, 20); + switch (computeOptions) + { + case "OnCheckoutOfMonth": + var resCanToLeave = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, + leaveHoursesPerDay, totalChekoutDays, hoursePerDay); + + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = resCanToLeave.CanToLeave; + //مزد مرخصی + result.LeavPay = resCanToLeave.CanToLeave * leavePayPerHours; + //مدت غیبت + result.AbsencePeriod = resCanToLeave.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = resCanToLeave.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = hoursePerDay; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{(separationEndDate - separationStartDate).TotalDays + 1}"; + + break; + //محاسبه در پایان سال به شرطی که قرارداد منتهی به پایان سال باشد + case "OnEndOfYear": + if (isOldContract && contractEnd < start1403) + { + var resEndOfYear = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, + leaveHoursesPerDay, totalChekoutDays, hoursePerDay); + + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = resEndOfYear.CanToLeave; + //مزد مرخصی + result.LeavPay = resEndOfYear.CanToLeave * leavePayPerHours; + //مدت غیبت + result.AbsencePeriod = resEndOfYear.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = resEndOfYear.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = hoursePerDay; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{resEndOfYear.CountChekoutDays}"; + + } + else if (isOldContract && contractEnd > start1403) + { + var startDate = startWorkDate >= start1403 ? startWorkDate : start1403; + + var endOfYearRes = EndOfYearCantoleaveList(startDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) + .FirstOrDefault(x => x.ContractStart == separationStartDate); + if ((hasleft && leftWorkDate <= separationEndDate) || (separationEndDate == contractEnd && checkoutMonth == "12")) + { + var end = EndOfYearCantoleaveList(startDate, separationEndDate, workshopId, employeeId, + hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, + separationStartDate); + + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + + var canTolv = endOfYearRes.CanToLeave; + var absence = end.Sum(x => x.PeriodOfAbsence); + + if (canTolv >= absence) + { + canTolv -= absence; + absence = 0; + + } + else + { + absence -= canTolv; + canTolv = 0; + + } + + //مزد مرخصی + //result.LeavPay = endOfYearRes.CanToLeave * leavePayPerHours; + result.LeavPay = canTolv * leavePayPerHours; + //مدت غیبت + result.AbsencePeriod = absence; + ////مدت طلب مرخصی + result.CreditLeaves = canTolv; + //کسری غیبت + result.AbsenceDeduction = absence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = end.FirstOrDefault()!.WorkingPerDayHourses; + + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{endOfYearRes.CountChekoutDays}"; + + } + else + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = false; + //مدت طلب مرخصی + result.CreditLeaves = endOfYearRes.CanToLeave; + //مزد مرخصی + result.LeavPay = 0; + //مدت غیبت + result.AbsencePeriod = endOfYearRes.PeriodOfAbsence; + //کسری غیبت + //result.AbsenceDeduction = endOfYearRes.PeriodOfAbsence * absenceDeductionPerHourses; + result.AbsenceDeduction = 0; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = endOfYearRes.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = "0"; + + } + } + else if (!isOldContract) + { + var endOfYearRes = EndOfYearCantoleaveList(startWorkDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) + .FirstOrDefault(x => x.ContractStart == separationStartDate); + if ((hasleft && leftWorkDate <= separationEndDate) || (separationEndDate == contractEnd && checkoutMonth == "12")) + { + var end = EndOfYearCantoleaveList(startWorkDate, separationEndDate, workshopId, employeeId, + hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, + separationStartDate); + + var canTolv = endOfYearRes.CanToLeave; + var absence = end.Sum(x => x.PeriodOfAbsence); + if (canTolv >= absence) + { + canTolv -= absence; + absence = 0; + + } + else + { + absence -= canTolv; + canTolv = 0; + + } + + result.LeavPay = canTolv * leavePayPerHours; + //مدت غیبت + result.AbsencePeriod = absence; + ////مدت طلب مرخصی + result.CreditLeaves = canTolv; + //کسری غیبت + result.AbsenceDeduction = absence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = end.FirstOrDefault()!.WorkingPerDayHourses; + + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{endOfYearRes.CountChekoutDays}"; + + //مزد مرخصی + //result.LeavPay = endOfYearRes.CanToLeave * leavePayPerHours; + + //مدت غیبت + //result.AbsencePeriod = endOfYearRes.PeriodOfAbsence; + //کسری غیبت + //result.AbsenceDeduction = endOfYearRes.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + //result.AverageHoursPerDay = endOfYearRes.WorkingPerDayHourses; + + } + else + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = false; + //مدت طلب مرخصی + result.CreditLeaves = endOfYearRes.CanToLeave; + //مزد مرخصی + result.LeavPay = 0; + //مدت غیبت + result.AbsencePeriod = endOfYearRes.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = endOfYearRes.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = endOfYearRes.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = "0"; + + } + } + + break; + case "OnLeftWork"://درپایان همکاری + if (isOldContract && contractEnd < start1403) + { + + var resLeftWork = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, + leaveHoursesPerDay, totalChekoutDays, hoursePerDay); + + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = resLeftWork.CanToLeave; + //مزد مرخصی + result.LeavPay = resLeftWork.CanToLeave * leavePayPerHours; + //مدت غیبت + result.AbsencePeriod = resLeftWork.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = resLeftWork.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = hoursePerDay; + } + else if (isOldContract && contractEnd > start1403) + { + var startDate = startWorkDate >= start1403 ? startWorkDate : start1403; + var res = LeftWorkCantoleaveList(startDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) + .FirstOrDefault(x => x.ContractStart == separationStartDate); + + if (hasleft && leftWorkDate <= separationEndDate) + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = 0; + + //مزد مرخصی + result.LeavPay = res.CanToLeave * leavePayPerHours; + + //مدت غیبت + result.AbsencePeriod = res.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = res.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{res.CountChekoutDays}"; + } + else + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = false; + //مدت طلب مرخصی + result.CreditLeaves = res.CanToLeave; + //مزد مرخصی + result.LeavPay = 0; + //مدت غیبت + result.AbsencePeriod = res.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = res.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"0"; + + } + + } + else if (!isOldContract) + { + + var res = LeftWorkCantoleaveList(startWorkDate, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) + .FirstOrDefault(x => x.ContractStart == separationStartDate); + + if (hasleft && leftWorkDate <= separationEndDate) + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = 0; + + //مزد مرخصی + result.LeavPay = res.CanToLeave * leavePayPerHours; + + //مدت غیبت + result.AbsencePeriod = res.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = res.WorkingPerDayHourses; + + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{res.CountChekoutDays}"; + } + else + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = false; + //مدت طلب مرخصی + result.CreditLeaves = res.CanToLeave; + //مزد مرخصی + result.LeavPay = 0; + //مدت غیبت + result.AbsencePeriod = res.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = res.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = res.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"0"; + + } + } + + break; + case "OnEndOfContract"://در پایان قرارداد + if (isOldContract && contractEnd < start1403) + { + var resEndOfContract = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, + leaveHoursesPerDay, totalChekoutDays, hoursePerDay); + + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = resEndOfContract.CanToLeave; + //مزد مرخصی + result.LeavPay = resEndOfContract.CanToLeave * leavePayPerHours; + //مدت غیبت + result.AbsencePeriod = resEndOfContract.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = resEndOfContract.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = hoursePerDay; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{(separationEndDate - separationEndDate).TotalDays + 1}"; + + } + else if ((isOldContract && contractEnd > start1403) || (!isOldContract)) + { + var resEndOfContract = LeftWorkCantoleaveList(contractStart, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) + .FirstOrDefault(x => x.ContractStart == separationStartDate); + if (resEndOfContract != null) + { + if ((hasleft && leftWorkDate <= separationEndDate) || resEndOfContract.LastChekoutOfContract) + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = 0; + + //مزد مرخصی + result.LeavPay = resEndOfContract.CanToLeave * leavePayPerHours; + + //مدت غیبت + result.AbsencePeriod = resEndOfContract.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = resEndOfContract.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = resEndOfContract.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{resEndOfContract.CountChekoutDays}"; + } + else + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = false; + //مدت طلب مرخصی + result.CreditLeaves = resEndOfContract.CanToLeave; + //مزد مرخصی + result.LeavPay = 0; + //مدت غیبت + result.AbsencePeriod = resEndOfContract.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = resEndOfContract.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = resEndOfContract.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"0"; + + } + } + } + break; + case "EndOfContract1402LeftWork1403": //پایان قرارداد قبل 403 پایان همکاری بعد 403 + + if (contractStart >= start1403 && contractEnd > start1403)// بعد از 1403 + { + //تاریخ شروع یافتن قرادادها + var startSearchContracts = startWorkDate >= start1403 ? startWorkDate : start1403; + //تمام قراداد ها از تاریخ شروع تا پایان این فیش + + + + var ress = LeftWorkCantoleaveList(startSearchContracts, separationEndDate, workshopId, employeeId, hasleft, leftWorkDate, fridayStartToEnd, officialHoliday, totalHoursH, totalHorsM, separationStartDate) + .FirstOrDefault(x => x.ContractStart == separationStartDate); + + if (hasleft && leftWorkDate <= separationEndDate) + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = 0; + + //مزد مرخصی + result.LeavPay = ress.CanToLeave * leavePayPerHours; + + //مدت غیبت + result.AbsencePeriod = ress.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = ress.PeriodOfAbsence * absenceDeductionPerHourses; ; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = ress.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{ress.CountChekoutDays}"; + + } + else + { + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = false; + //مدت طلب مرخصی + result.CreditLeaves = ress.CanToLeave; + //مزد مرخصی + result.LeavPay = 0; + //مدت غیبت + result.AbsencePeriod = ress.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = ress.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = ress.WorkingPerDayHourses; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"0"; + + } + } + else if (contractEnd < start1403)// قبل از 1403 + { + var resCanTo1402 = OnCheckoutCantoleaveList(separationStartDate, separationEndDate, workshopId, employeeId, + leaveHoursesPerDay, totalChekoutDays, hoursePerDay); + + //وضعیت تصفیه مزد مرخصی + result.LeaveCheckout = true; + ////مدت طلب مرخصی + result.CreditLeaves = resCanTo1402.CanToLeave; + //مزد مرخصی + result.LeavPay = resCanTo1402.CanToLeave * leavePayPerHours; + //مدت غیبت + result.AbsencePeriod = resCanTo1402.PeriodOfAbsence; + //کسری غیبت + result.AbsenceDeduction = resCanTo1402.PeriodOfAbsence * absenceDeductionPerHourses; + //میانگین ساعت کار در یک روز + result.AverageHoursPerDay = hoursePerDay; + // تعداد روزهایی که برای پرسنل مرخصی حساب شده + result.TotalDayOfLeaveCompute = $"{totalChekoutDays}"; + + } + break; + default: + result = new LeaveAndAbsenceViewModel(); + break; + } + + return result; + } + private static TimeSpan CalculateBreakTime(BreakTime breakTime, TimeSpan sumOneDaySpan) + { + if (breakTime.BreakTimeType != BreakTimeType.WithTime) + return new TimeSpan(); + + var breakTimeSpan = breakTime.BreakTimeValue.ToTimeSpan(); + + if (breakTimeSpan * 2 >= sumOneDaySpan) + return new TimeSpan(); + + return breakTimeSpan; ; + + } + private static TimeSpan CalculateBreakTime(TimeSpan breakTimeSpan, TimeSpan sumOneDaySpan) + { + if (breakTimeSpan * 2 >= sumOneDaySpan) + return new TimeSpan(); + return breakTimeSpan; ; + } + + private (bool hasRollCall, double WorkingTotalHours) GetTotalWorkingHoursIfHasRollCall(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd) + { + bool hasRollCall = _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, + contractStart, contractEnd); + double totalWorkingHours = 0; + if (!hasRollCall) + return (false, 0); + + List rollCallResult; + List groupedRollCall; + + + BaseCustomizeEntity settings = _context.CustomizeWorkshopEmployeeSettings.AsSplitQuery() + .Include(x => x.CustomizeWorkshopGroupSettings).FirstOrDefault(x => + x.WorkshopId == workshopId && x.EmployeeId == employeeId); + //اگر ساعت استراحت پرسنل وجود نداشت صفر است + var breakTimeEntity = settings == null ? new BreakTime(false, new TimeOnly()) : settings.BreakTime; + var endOfFarvardin = "1404/01/31".ToGeorgianDateTime(); + + + rollCallResult = _context.RollCalls.Where(x => + x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart && + x.StartDate.Value.Date <= contractEnd && x.EndDate != null).Select(x => new RollCallViewModel() + { + StartDate = x.StartDate, + EndDate = x.EndDate, + ShiftSpan = (x.EndDate.Value - x.StartDate.Value), + CreationDate = x.ShiftDate, + BreakTimeSpan = x.BreakTimeSpan + }).ToList(); + + groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => + { + TimeSpan breakTime; + if (contractStart > endOfFarvardin) + { + breakTime = CalculateBreakTime( + x.First().BreakTimeSpan, + new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))); + } + else + { + breakTime = CalculateBreakTime(breakTimeEntity, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))); + } + return new GroupedRollCalls() + { + CreationDate = x.Key, + ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }) + .ToList(), + HasFriday = x.Any(s => + s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || + s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)), + SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - breakTime, + + BreakTime = breakTime, + }; + }).OrderBy(x => x.CreationDate).ToList(); + + + TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks)); + totalWorkingHours = sumSpans.TotalMinutes / 60; + + return (true, totalWorkingHours); + + + } + public List LeftWorkCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId, bool hasleft, DateTime leftWorkDate, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, DateTime separationStartDate) + { + // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل + var leaveHoursesPerDay = 190.58 / 365; + var contactCanToleaveList = new List(); + var allContractsBetween = _context.Contracts.AsSplitQuery().Include(x => x.WorkingHoursList) + .Where(x => x.WorkshopIds == workshopId && x.EmployeeId == employeeId && + x.ContractEnd >= startDate && x.ContarctStart <= endDate).ToList(); + + int mandatoryDays = 0; + double allCanToLeave = 0; + double canToLeave = 0; + int contractCounter = 0; + foreach (var contract in allContractsBetween) + { + contractCounter += 1; + var m = _mandatoryHoursRepository.GetMondatoryDays(contract.ContarctStart, + contract.ContractEnd); + + var workinghoursH = contract.WorkingHoursList.Select(x => x.TotalHoursesH).FirstOrDefault(); + var workinghoursM = contract.WorkingHoursList.Select(x => x.TotalHoursesM).FirstOrDefault(); + workinghoursM = string.IsNullOrWhiteSpace(workinghoursM) ? "0" : workinghoursM; + var workingHoursHDouble = Convert.ToDouble(workinghoursH); + var workingHoursMDouble = Convert.ToDouble(workinghoursM); + + + if (workingHoursMDouble > 0) + { + //تبیدل دقیه به اعشار + workingHoursMDouble = workingHoursMDouble / 60; + } + //کل ساعت کار پرسنل در این ماه + var totalWorkingHours = workingHoursHDouble + workingHoursMDouble; + + #region RollCallSpan + + var contractTotallDays = Convert.ToInt32((contract.ContractEnd - contract.ContarctStart).TotalDays + 1); + if (contractTotallDays <= 31) + { + + var rollCallTotalHoures = GetTotalWorkingHoursIfHasRollCall(employeeId, workshopId, + contract.ContarctStart.Date, contract.ContractEnd.Date); + if (rollCallTotalHoures.hasRollCall) + { + totalWorkingHours = rollCallTotalHoures.WorkingTotalHours; + } + } + + #endregion + // میانگین ساعت کارکرد پرسنل در روز + var workingHoursePerDay = totalWorkingHours / m.MoandatoryDays; + + // از شروع قرارداد تا پایان قرارداد + var totalDays = (contract.ContractEnd - contract.ContarctStart).TotalDays + 1; + double leftChekoutCanToleave = 0; + double leftleaveHoursesPerTotalDays = 0; + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل + var leaveHoursesPerTotalDays = leaveHoursesPerDay * totalDays; + + + double thisContractCanToLeavPerDay = 0; + double leftThisContractCanToLeavePerDay = 0; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + thisContractCanToLeavPerDay = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + //if (hasleft && leftWorkDate <= endDate) + //{ + // leftThisContractCanToLeavePerDay = (leftleaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + //} + + } + else + { + workingHoursePerDay = 7.33; + thisContractCanToLeavPerDay = leaveHoursesPerTotalDays; + //if (hasleft && leftWorkDate <= endDate) + //{ + // leftThisContractCanToLeavePerDay = leftleaveHoursesPerTotalDays; + //} + + } + //canToLeave = allCanToLeave + thisContractCanToLeavPerDay; + //leftChekoutCanToleave = allCanToLeave + leftThisContractCanToLeavePerDay; + + var sdate = contract.ContarctStart.ToFarsi(); + var edate = contract.ContractEnd.ToFarsi(); + // اگر فیش در قرارداد جاری حلقه بود تا تاریخ پایان فیش برو + if (separationStartDate >= contract.ContarctStart && separationStartDate < contract.ContractEnd) + edate = endDate.ToFarsi(); + var syear = Convert.ToInt32(sdate.Substring(0, 4)); + var smonth = Convert.ToInt32(sdate.Substring(5, 2)); + var sday = Convert.ToInt32(sdate.Substring(8, 2)); + + var eyear = Convert.ToInt32(edate.Substring(0, 4)); + var emonth = Convert.ToInt32(edate.Substring(5, 2)); + var eday = Convert.ToInt32(edate.Substring(8, 2)); + + var d1 = new PersianDateTime(syear, smonth, sday); + var d2 = new PersianDateTime(eyear, emonth, eday); + for (var currntMonth = d1; currntMonth <= d2; currntMonth = currntMonth.AddMonths(1)) + { + var startMonthFa = $"{currntMonth}"; + var startMonthGr = new DateTime(); + if (currntMonth == d1) + { + var d1Fa = $"{d1}"; + startMonthGr = d1Fa.ToGeorgianDateTime(); + } + else + { + var a = $"{startMonthFa.Substring(0, 8)}01"; + startMonthGr = a.ToGeorgianDateTime(); + } + + + var endMonthFa = startMonthFa.FindeEndOfMonth(); + var endMonthGr = endMonthFa.ToGeorgianDateTime(); + bool left = false; + if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) + { + left = true; + + if (endMonthGr > leftWorkDate) + endMonthGr = endDate; + } + #region 365 + + double canToLeavAfter365 = 0; + bool is365 = false; + var countChekoutDays = (int)((endMonthGr - startMonthGr).TotalDays + 1); + var beforeCountDays = contactCanToleaveList.MaxBy(x => x.ContractStart); + if (beforeCountDays != null) + { + if (!beforeCountDays.EndOfYear) + { + var sumCounDays = countChekoutDays + beforeCountDays.CountChekoutDays; + if (sumCounDays > 365) + { + is365 = true; + countChekoutDays = sumCounDays - 365; + + // مقدار ساعت مجاز مرخصی باقی مانده بعد از 365 روز + leaveHoursesPerTotalDays = 7.33 * 9; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + canToLeavAfter365 = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + } + else + { + + canToLeavAfter365 = leaveHoursesPerTotalDays; + } + } + else + { + countChekoutDays = sumCounDays; + } + } + + } + + + + #endregion + + + var leaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= startMonthGr && x.EndLeave >= startMonthGr) || + (x.StartLeave <= endMonthGr && x.EndLeave >= endMonthGr) || + (x.StartLeave >= startMonthGr && x.StartLeave <= endMonthGr) || + (x.EndLeave >= startMonthGr && x.EndLeave <= endMonthGr)).ToList(); + //مرخصی استفاده شده در این ماه + double usedLeaves = 0; + if (leaveList.Count > 0) + { + foreach (var item in leaveList) + { + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < startDate ? startDate : item.StartLeave; + end = item.EndLeave > endDate ? endDate : item.EndLeave; + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * workingHoursePerDay; + usedLeaves += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + else + { + + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + + } + } + + + + //طلب مرخصی این ماه + double creditLeaves = 0; + // مزد مرخصی + double leavePay = 0; + //مدت غیبت + double periodOfAbsence = 0; + double absenceDeduction = 0; + var beforContactCanToleave = new ContractsCanToLeave(); + var beforContractCount = contractCounter - 1; + if (contactCanToleaveList.Count > 0) + { + //آخری قبل از این + beforContactCanToleave = contactCanToleaveList.MaxBy(x => x.ContractStart); + canToLeave = beforContactCanToleave.CanToLeave; + if (beforContactCanToleave.LastChekoutOfContract) + canToLeave = thisContractCanToLeavPerDay + beforContactCanToleave.CanToLeave; + if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) + { + if (canToLeave > 0) + { + #region LeftChekoutCanToLeave + + var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{ترک کار شده + leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + thisContractCanToLeavPerDay = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + } + else + { + workingHoursePerDay = 7.33; + thisContractCanToLeavPerDay = leaveHoursesPerTotalDays; + } + + + if (contactCanToleaveList.Any(x => x.LastChekoutOfContract && x.ContractCounter == beforContractCount)) + { + + var b = contactCanToleaveList.FirstOrDefault(x => + x.LastChekoutOfContract && x.ContractCounter == beforContractCount); + canToLeave = thisContractCanToLeavPerDay + b.CanToLeave; + } + else + { + canToLeave = thisContractCanToLeavPerDay; + } + leaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= contract.ContarctStart && x.EndLeave >= contract.ContarctStart) || + (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || + (x.StartLeave >= contract.ContarctStart && x.StartLeave <= leftWorkDate) || + (x.EndLeave >= contract.ContarctStart && x.EndLeave <= leftWorkDate)).ToList(); + usedLeaves = 0; + if (leaveList.Count > 0) + { + foreach (var item in leaveList) + { + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < startDate ? startDate : item.StartLeave; + end = item.EndLeave > endDate ? endDate : item.EndLeave; + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * workingHoursePerDay; + usedLeaves += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + else + { + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + + } + } + + + + #endregion + + } + else + { + var checkAbsenceDeduction = contactCanToleaveList + .Where(x => x.CanToLeave == 0 && x.ContractStart >= contract.ContarctStart).MaxBy(x => x.ContractStart); + if (checkAbsenceDeduction != null) + { + + var startSerach = checkAbsenceDeduction.ContractEnd.AddDays(1); + leaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= startSerach && x.EndLeave >= startSerach) || + (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || + (x.StartLeave >= startSerach && x.StartLeave <= leftWorkDate) || + (x.EndLeave >= startSerach && x.EndLeave <= leftWorkDate)).ToList(); + usedLeaves = 0; + if (leaveList.Count > 0) + { + foreach (var item in leaveList) + { + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < startSerach ? startSerach : item.StartLeave; + end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * workingHoursePerDay; + usedLeaves += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + else + { + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + + } + } + } + } + + + + } + + } + else + { + canToLeave = thisContractCanToLeavPerDay; + if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) + { + var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل + leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + canToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + } + else + { + workingHoursePerDay = 7.33; + canToLeave = leaveHoursesPerTotalDays; + } + } + + + + } ; - if (canToLeave >= usedLeaves) //اگر طلب مرخصی داشت - { - creditLeaves = canToLeave - usedLeaves; - var has365 = contactCanToleaveList.Any(x => x.Is365); - //اگر از 365 روز تجاوز کرد و باقی مانده مرخصی بیشتر از 9 روز بود فقط 9 روز بماند - if (is365 && !has365 && creditLeaves > canToLeavAfter365 && !left) - { - creditLeaves = canToLeavAfter365; - - } - - if (is365 && has365 && !left) - { - var last365 = contactCanToleaveList - .Where(x => x.Is365) - .MaxBy(x => x.ContractStart); - canToLeavAfter365 += last365.CanToLeave; - if (creditLeaves > canToLeavAfter365) - { - creditLeaves = canToLeavAfter365; - } - - } - periodOfAbsence = 0; - } - else - { - periodOfAbsence = usedLeaves - canToLeave; - - #region AbsenceItemsCompute - - //var consumableItems = ConsumableItems(endMonthGr); - //var housingAllowance = HousingAllowance(endMonthGr); - //var familyAllowance = FamilyAllowance(employeeId, endMonthGr); - //var marriedAllowance = MarriedAllowance(endMonthGr, employeeId); - - //var leftworkList = _leftWorkRepository.search(new LeftWorkSearchModel(){EmployeeId = employeeId,WorkshopId = workshopId}); - //if (leftworkList == null) - // leftworkList = new List(); - ////دستمزد تجمیعی تا این تاریخ - //var dayliFeeResult = DayliFeeComputing(startDate, contract.ContarctStart, endDate, employeeId, workshopId, leftworkList); - - //var dayliFeeComplete = dayliFeeResult.DayliFee.MoneyToDouble(); - //if (workingHoursePerDay < 7.33) - //{ - // //مقدار مزد روزانه برای یک ساعت - // //var contractDayliFee = contract.DayliWage.MoneyToDouble(); - // var dayliFee = dayliFeeComplete / workingHoursePerDay; - - // var HousingAllowonceNumberType = housingAllowance.MoneyToDouble(); - // var HousingStep1 = HousingAllowonceNumberType / 30; - // var HousingPerHourse = HousingStep1 / workingHoursePerDay; - - // var consumableItemsNumberType = consumableItems.MoneyToDouble(); - // var consumableItemsStep1 = consumableItemsNumberType / 30; - // var consumablePerHourse = consumableItemsStep1 / workingHoursePerDay; - - // var MarriedStep1 = marriedAllowance / 30; - // var MarriedPerHours = MarriedStep1 / workingHoursePerDay; - - // var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyPerHours = familyAllowanceStep1 / workingHoursePerDay; - - // //کسری غیبت این پرسنل به ازای یک ساعت - // var absencePerHourse = dayliFee + HousingPerHourse + consumablePerHourse + MarriedPerHours + familyPerHours; - // absenceDeduction = absencePerHourse * periodOfAbsence; - //} - //else - //{ - // //مقدار مزد روزانه برای یک ساعت - // var dayliFee = dayliFeeComplete / 7.33; - - // var HousingAllowonceNumberType = housingAllowance.MoneyToDouble(); - // var HousingStep1 = HousingAllowonceNumberType / 30; - // var HousingPerHourse = HousingStep1 / 7.33; - - // var consumableItemsNumberType = consumableItems.MoneyToDouble(); - // var consumableItemsStep1 = consumableItemsNumberType / 30; - // var consumablePerHourse = consumableItemsStep1 / 7.33; - - // var MarriedStep1 = marriedAllowance / 30; - // var MarriedPerHours = MarriedStep1 / 7.33; - - // var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyPerHours = familyAllowanceStep1 / 7.33; - - // //کسری غیبت این پرسنل به ازای یک ساعت - // var absencePerHourse = dayliFee + HousingPerHourse + consumablePerHourse + MarriedPerHours + familyPerHours; - // absenceDeduction = absencePerHourse * periodOfAbsence; - //} - #endregion - - - creditLeaves = 0; - } - - bool lastChekout = endMonthGr == contract.ContractEnd; - - contactCanToleaveList.Add(new ContractsCanToLeave() - { - ContractCounter = contractCounter, - WorkingPerDayHourses = workingHoursePerDay, - ContractStart = startMonthGr, - ContractEnd = endMonthGr, - CanToLeave = creditLeaves, - PeriodOfAbsence = periodOfAbsence, - AbsenceDeduction = absenceDeduction, - LastChekoutOfContract = lastChekout, - Left = left, - CountChekoutDays = countChekoutDays, - Is365 = is365, - }); - - } - - allCanToLeave = canToLeave; - - - - } - - return contactCanToleaveList; - } - - public List EndOfYearCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId, bool hasleft, - DateTime leftWorkDate, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, - DateTime separationStartDate) - { - // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل - var leaveHoursesPerDay = 190.58 / 365; - var contactCanToleaveList = new List(); - var allContractsBetween = _context.Contracts.AsSplitQuery().Include(x => x.WorkingHoursList) - .Where(x => x.WorkshopIds == workshopId && x.EmployeeId == employeeId && - x.ContractEnd >= startDate && x.ContarctStart <= endDate).OrderBy(x => x.ContarctStart).ToList(); - double canToLeave = 0; - int contractCounter = 0; - foreach (var contract in allContractsBetween) - { - contractCounter += 1; - var m = _mandatoryHoursRepository.GetMondatoryDays(contract.ContarctStart, - contract.ContractEnd); - // میانگین ساعت کارکرد پرسنل در روز - #region PersonelWorkingHoursPerDay - - var workinghoursH = contract.WorkingHoursList.Select(x => x.TotalHoursesH).FirstOrDefault(); - var workinghoursM = contract.WorkingHoursList.Select(x => x.TotalHoursesM).FirstOrDefault(); - //workinghoursH = string.IsNullOrWhiteSpace(workinghoursH) ? "0" : workinghoursH; - workinghoursM = string.IsNullOrWhiteSpace(workinghoursM) ? "0" : workinghoursM; - var workingHoursHDouble = Convert.ToDouble(workinghoursH); - var workingHoursMDouble = Convert.ToDouble(workinghoursM); - if (workingHoursMDouble > 0) - { - //تبیدل دقیه به اعشار - workingHoursMDouble = workingHoursMDouble / 60; - } - //کل ساعت کار پرسنل در این قرارداد - var totalWorkingHours = workingHoursHDouble + workingHoursMDouble; - - #region RollCallSpan - - var contractTotallDays = Convert.ToInt32((contract.ContractEnd - contract.ContarctStart).TotalDays + 1); - if (contractTotallDays <= 31) - { - - var rollCallTotalHoures = GetTotalWorkingHoursIfHasRollCall(employeeId, workshopId, - contract.ContarctStart.Date, contract.ContractEnd.Date); - if (rollCallTotalHoures.hasRollCall) - { - totalWorkingHours = rollCallTotalHoures.WorkingTotalHours; - } - } - - #endregion - // میانگین ساعت کارکرد پرسنل در روز - var workingHoursePerDay = totalWorkingHours / m.MoandatoryDays; - - #endregion - // مقدار ساعت استاندارد مرخصی در این قرارداد - #region StandardCanToleave - - // از شروع قرارداد تا پایان قرارداد - var totalDays = (contract.ContractEnd - contract.ContarctStart).TotalDays + 1; - double leftChekoutCanToleave = 0; - double leftleaveHoursesPerTotalDays = 0; - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل - var leaveHoursesPerTotalDays = leaveHoursesPerDay * totalDays; - - #endregion - - //مقدار ساعت مجاز مرخصی پرسنل در این قرارداد - #region PersonelCanToLeave - - double personelCanToLeave = 0; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - personelCanToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - } - else - { - workingHoursePerDay = 7.33; - personelCanToLeave = leaveHoursesPerTotalDays; - } - - #endregion - - double leftThisContractCanToLeavePerDay = 0; - - - var sdate = contract.ContarctStart.ToFarsi(); - var edate = contract.ContractEnd.ToFarsi(); - // اگر فیش در قرارداد جاری حلقه بود تا تاریخ پایان فیش برو - if (separationStartDate >= contract.ContarctStart && separationStartDate < contract.ContractEnd) - edate = endDate.ToFarsi(); - var syear = Convert.ToInt32(sdate.Substring(0, 4)); - var smonth = Convert.ToInt32(sdate.Substring(5, 2)); - var sday = Convert.ToInt32(sdate.Substring(8, 2)); - - var eyear = Convert.ToInt32(edate.Substring(0, 4)); - var emonth = Convert.ToInt32(edate.Substring(5, 2)); - var eday = Convert.ToInt32(edate.Substring(8, 2)); - - var d1 = new PersianDateTime(syear, smonth, sday); - var d2 = new PersianDateTime(eyear, emonth, eday); - for (var currntMonth = d1; currntMonth <= d2; currntMonth = currntMonth.AddMonths(1)) - { - - var startMonthFa = $"{currntMonth}"; - var startMonthGr = new DateTime(); - if (currntMonth == d1) - { - var d1Fa = $"{d1}"; - startMonthGr = d1Fa.ToGeorgianDateTime(); - } - else - { - var a = $"{startMonthFa.Substring(0, 8)}01"; - startMonthGr = a.ToGeorgianDateTime(); - } - - - var endMonthFa = startMonthFa.FindeEndOfMonth(); - bool isEndOfYear = endMonthFa.Substring(5, 2) == "12"; - var endMonthGr = endMonthFa.ToGeorgianDateTime(); - bool left = false; - if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) - { - left = true; - - if (endMonthGr > leftWorkDate) - endMonthGr = endDate; - } - #region 365 - - double canToLeavAfter365 = 0; - bool is365 = false; - var countChekoutDays = (int)((endMonthGr - startMonthGr).TotalDays + 1); - var beforeCountDays = contactCanToleaveList.MaxBy(x => x.ContractStart); - if (beforeCountDays != null) - { - if (!beforeCountDays.EndOfYear) - { - var sumCounDays = countChekoutDays + beforeCountDays.CountChekoutDays; - if (sumCounDays > 365) - { - - is365 = true; - countChekoutDays = sumCounDays - 365; - - // مقدار ساعت مجاز مرخصی باقی مانده بعد از 365 روز - leaveHoursesPerTotalDays = 7.33 * 9; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - canToLeavAfter365 = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - } - else - { - - canToLeavAfter365 = leaveHoursesPerTotalDays; - } - } - else - { - countChekoutDays = sumCounDays; - } - } - - } - - - - #endregion - var leaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= startMonthGr && x.EndLeave >= startMonthGr) || - (x.StartLeave <= endMonthGr && x.EndLeave >= endMonthGr) || - (x.StartLeave >= startMonthGr && x.StartLeave <= endMonthGr) || - (x.EndLeave >= startMonthGr && x.EndLeave <= endMonthGr)).ToList(); - //مرخصی استفاده شده در این ماه - double usedLeaves = 0; - if (leaveList.Count > 0) - { - foreach (var item in leaveList) - { - - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < startDate ? startDate : item.StartLeave; - end = item.EndLeave > endDate ? endDate : item.EndLeave; - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * workingHoursePerDay; - usedLeaves += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - else - { - - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - - } - } - - - - //طلب مرخصی این ماه - double creditLeaves = 0; - // مزد مرخصی - double leavePay = 0; - //مدت غیبت - double periodOfAbsence = 0; - double absenceDeduction = 0; - var beforContactCanToleave = new ContractsCanToLeave(); - var beforContractCount = contractCounter - 1; - if (contactCanToleaveList.Count > 0) - { - //آخری قبل از این - beforContactCanToleave = contactCanToleaveList.MaxBy(x => x.ContractStart); - if (beforContactCanToleave.EndOfYear) - { - canToLeave = personelCanToLeave; - } - else - { - canToLeave = beforContactCanToleave.CanToLeave; - } - - - if (beforContactCanToleave.LastChekoutOfContract && !beforContactCanToleave.EndOfYear) - canToLeave = personelCanToLeave + beforContactCanToleave.CanToLeave; - if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) - { - if (canToLeave > 0) - { - #region LeftChekoutCanToLeave - - var check365 = contactCanToleaveList.FirstOrDefault(x => - x.ContractStart >= contract.ContarctStart && x.Is365); - - if (check365 != null) - { - var startAfter365 = check365.ContractEnd.AddDays(1); - canToLeave = check365.CanToLeave; - leaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= startAfter365 && x.EndLeave >= startAfter365) || - (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || - (x.StartLeave >= startAfter365 && x.StartLeave <= leftWorkDate) || - (x.EndLeave >= startAfter365 && x.EndLeave <= leftWorkDate)).ToList(); - usedLeaves = 0; - if (leaveList.Count > 0) - { - foreach (var item in leaveList) - { - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < startAfter365 ? startAfter365 : item.StartLeave; - end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * workingHoursePerDay; - usedLeaves += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - else - { - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - - } - } - } - else - { - var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{ترک کار شده - leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - personelCanToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - } - else - { - workingHoursePerDay = 7.33; - personelCanToLeave = leaveHoursesPerTotalDays; - } - - if (contactCanToleaveList.Any(x => x.LastChekoutOfContract && x.ContractCounter == beforContractCount && !x.EndOfYear)) - { - - var b = contactCanToleaveList.FirstOrDefault(x => - x.LastChekoutOfContract && x.ContractCounter == beforContractCount && !x.EndOfYear); - - canToLeave = personelCanToLeave + b.CanToLeave; - - - } - else - { - canToLeave = personelCanToLeave; - } - - leaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= contract.ContarctStart && x.EndLeave >= contract.ContarctStart) || - (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || - (x.StartLeave >= contract.ContarctStart && x.StartLeave <= leftWorkDate) || - (x.EndLeave >= contract.ContarctStart && x.EndLeave <= leftWorkDate)).ToList(); - usedLeaves = 0; - if (leaveList.Count > 0) - { - foreach (var item in leaveList) - { - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < contract.ContarctStart ? contract.ContarctStart : item.StartLeave; - end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * workingHoursePerDay; - usedLeaves += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - else - { - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - - } - } - } - - #endregion - - } - else - { - var checkAbsenceDeduction = contactCanToleaveList - .Where(x => x.CanToLeave == 0 && x.ContractStart >= contract.ContarctStart) - .MaxBy(x => x.ContractStart); - if (checkAbsenceDeduction != null) - { - - var startSerach = checkAbsenceDeduction.ContractEnd.AddDays(1); - leaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= startSerach && x.EndLeave >= startSerach) || - (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || - (x.StartLeave >= startSerach && x.StartLeave <= leftWorkDate) || - (x.EndLeave >= startSerach && x.EndLeave <= leftWorkDate)).ToList(); - usedLeaves = 0; - if (leaveList.Count > 0) - { - foreach (var item in leaveList) - { - - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < startSerach ? startSerach : item.StartLeave; - end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * workingHoursePerDay; - usedLeaves += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - else - { - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeaves += usedLeave; - } - - } - } - } - } - - - - } - - } - else - { - canToLeave = personelCanToLeave; - if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) - { - var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل - leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; - if (workingHoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - canToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; - } - else - { - workingHoursePerDay = 7.33; - canToLeave = leaveHoursesPerTotalDays; - } - } - - - - } - - - - bool lastChekout = endMonthGr == contract.ContractEnd; - bool endOfyear = lastChekout && isEndOfYear; - - - - #region NewcChanges - - var has365B = contactCanToleaveList.Any(x => x.Is365); - creditLeaves = canToLeave; - //اگر از 365 روز تجاوز کرد و باقی مانده مرخصی بیشتر از 9 روز بود فقط 9 روز بماند - if (is365 && !has365B && creditLeaves > canToLeavAfter365 && !left && !endOfyear) - { - creditLeaves = canToLeavAfter365; - - } - - if (is365 && has365B && !left && !endOfyear) - { - var last365 = contactCanToleaveList - .Where(x => x.Is365) - .MaxBy(x => x.ContractStart); - canToLeavAfter365 += last365.CanToLeave; - if (creditLeaves > canToLeavAfter365) - { - creditLeaves = canToLeavAfter365; - } - - } - - periodOfAbsence = usedLeaves; + if (canToLeave >= usedLeaves) //اگر طلب مرخصی داشت + { + creditLeaves = canToLeave - usedLeaves; + var has365 = contactCanToleaveList.Any(x => x.Is365); + //اگر از 365 روز تجاوز کرد و باقی مانده مرخصی بیشتر از 9 روز بود فقط 9 روز بماند + if (is365 && !has365 && creditLeaves > canToLeavAfter365 && !left) + { + creditLeaves = canToLeavAfter365; + + } + + if (is365 && has365 && !left) + { + var last365 = contactCanToleaveList + .Where(x => x.Is365) + .MaxBy(x => x.ContractStart); + canToLeavAfter365 += last365.CanToLeave; + if (creditLeaves > canToLeavAfter365) + { + creditLeaves = canToLeavAfter365; + } + + } + periodOfAbsence = 0; + } + else + { + periodOfAbsence = usedLeaves - canToLeave; + if (workingHoursePerDay >= 7.33) + periodOfAbsence = 0; + + + #region AbsenceItemsCompute + + //var consumableItems = ConsumableItems(endMonthGr); + //var housingAllowance = HousingAllowance(endMonthGr); + //var familyAllowance = FamilyAllowance(employeeId, endMonthGr); + //var marriedAllowance = MarriedAllowance(endMonthGr, employeeId); + + //var leftworkList = _leftWorkRepository.search(new LeftWorkSearchModel(){EmployeeId = employeeId,WorkshopId = workshopId}); + //if (leftworkList == null) + // leftworkList = new List(); + ////دستمزد تجمیعی تا این تاریخ + //var dayliFeeResult = DayliFeeComputing(startDate, contract.ContarctStart, endDate, employeeId, workshopId, leftworkList); + + //var dayliFeeComplete = dayliFeeResult.DayliFee.MoneyToDouble(); + //if (workingHoursePerDay < 7.33) + //{ + // //مقدار مزد روزانه برای یک ساعت + // //var contractDayliFee = contract.DayliWage.MoneyToDouble(); + // var dayliFee = dayliFeeComplete / workingHoursePerDay; + + // var HousingAllowonceNumberType = housingAllowance.MoneyToDouble(); + // var HousingStep1 = HousingAllowonceNumberType / 30; + // var HousingPerHourse = HousingStep1 / workingHoursePerDay; + + // var consumableItemsNumberType = consumableItems.MoneyToDouble(); + // var consumableItemsStep1 = consumableItemsNumberType / 30; + // var consumablePerHourse = consumableItemsStep1 / workingHoursePerDay; + + // var MarriedStep1 = marriedAllowance / 30; + // var MarriedPerHours = MarriedStep1 / workingHoursePerDay; + + // var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyPerHours = familyAllowanceStep1 / workingHoursePerDay; + + // //کسری غیبت این پرسنل به ازای یک ساعت + // var absencePerHourse = dayliFee + HousingPerHourse + consumablePerHourse + MarriedPerHours + familyPerHours; + // absenceDeduction = absencePerHourse * periodOfAbsence; + //} + //else + //{ + // //مقدار مزد روزانه برای یک ساعت + // var dayliFee = dayliFeeComplete / 7.33; + + // var HousingAllowonceNumberType = housingAllowance.MoneyToDouble(); + // var HousingStep1 = HousingAllowonceNumberType / 30; + // var HousingPerHourse = HousingStep1 / 7.33; + + // var consumableItemsNumberType = consumableItems.MoneyToDouble(); + // var consumableItemsStep1 = consumableItemsNumberType / 30; + // var consumablePerHourse = consumableItemsStep1 / 7.33; + + // var MarriedStep1 = marriedAllowance / 30; + // var MarriedPerHours = MarriedStep1 / 7.33; + + // var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyPerHours = familyAllowanceStep1 / 7.33; + + // //کسری غیبت این پرسنل به ازای یک ساعت + // var absencePerHourse = dayliFee + HousingPerHourse + consumablePerHourse + MarriedPerHours + familyPerHours; + // absenceDeduction = absencePerHourse * periodOfAbsence; + //} + #endregion + + + creditLeaves = 0; + } + + bool lastChekout = endMonthGr == contract.ContractEnd; + + contactCanToleaveList.Add(new ContractsCanToLeave() + { + ContractCounter = contractCounter, + WorkingPerDayHourses = workingHoursePerDay, + ContractStart = startMonthGr, + ContractEnd = endMonthGr, + CanToLeave = creditLeaves, + PeriodOfAbsence = periodOfAbsence, + AbsenceDeduction = absenceDeduction, + LastChekoutOfContract = lastChekout, + Left = left, + CountChekoutDays = countChekoutDays, + Is365 = is365, + }); + + } + + allCanToLeave = canToLeave; + + + + } + + return contactCanToleaveList; + } + + public List EndOfYearCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId, bool hasleft, + DateTime leftWorkDate, int fridayStartToEnd, int officialHoliday, string totalHoursH, string totalHorsM, + DateTime separationStartDate) + { + // {مقدار ساعت مجاز مرخصی در برای یک روز{کامل + var leaveHoursesPerDay = 190.58 / 365; + var contactCanToleaveList = new List(); + var allContractsBetween = _context.Contracts.AsSplitQuery().Include(x => x.WorkingHoursList) + .Where(x => x.WorkshopIds == workshopId && x.EmployeeId == employeeId && + x.ContractEnd >= startDate && x.ContarctStart <= endDate).OrderBy(x => x.ContarctStart).ToList(); + double canToLeave = 0; + int contractCounter = 0; + foreach (var contract in allContractsBetween) + { + contractCounter += 1; + var m = _mandatoryHoursRepository.GetMondatoryDays(contract.ContarctStart, + contract.ContractEnd); + // میانگین ساعت کارکرد پرسنل در روز + #region PersonelWorkingHoursPerDay + + var workinghoursH = contract.WorkingHoursList.Select(x => x.TotalHoursesH).FirstOrDefault(); + var workinghoursM = contract.WorkingHoursList.Select(x => x.TotalHoursesM).FirstOrDefault(); + //workinghoursH = string.IsNullOrWhiteSpace(workinghoursH) ? "0" : workinghoursH; + workinghoursM = string.IsNullOrWhiteSpace(workinghoursM) ? "0" : workinghoursM; + var workingHoursHDouble = Convert.ToDouble(workinghoursH); + var workingHoursMDouble = Convert.ToDouble(workinghoursM); + if (workingHoursMDouble > 0) + { + //تبیدل دقیه به اعشار + workingHoursMDouble = workingHoursMDouble / 60; + } + //کل ساعت کار پرسنل در این قرارداد + var totalWorkingHours = workingHoursHDouble + workingHoursMDouble; + + #region RollCallSpan + + var contractTotallDays = Convert.ToInt32((contract.ContractEnd - contract.ContarctStart).TotalDays + 1); + if (contractTotallDays <= 31) + { + + var rollCallTotalHoures = GetTotalWorkingHoursIfHasRollCall(employeeId, workshopId, + contract.ContarctStart.Date, contract.ContractEnd.Date); + if (rollCallTotalHoures.hasRollCall) + { + totalWorkingHours = rollCallTotalHoures.WorkingTotalHours; + } + } + + #endregion + // میانگین ساعت کارکرد پرسنل در روز + var workingHoursePerDay = totalWorkingHours / m.MoandatoryDays; + + #endregion + // مقدار ساعت استاندارد مرخصی در این قرارداد + #region StandardCanToleave + + // از شروع قرارداد تا پایان قرارداد + var totalDays = (contract.ContractEnd - contract.ContarctStart).TotalDays + 1; + double leftChekoutCanToleave = 0; + double leftleaveHoursesPerTotalDays = 0; + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل + var leaveHoursesPerTotalDays = leaveHoursesPerDay * totalDays; + + #endregion + + //مقدار ساعت مجاز مرخصی پرسنل در این قرارداد + #region PersonelCanToLeave + + double personelCanToLeave = 0; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + personelCanToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + } + else + { + workingHoursePerDay = 7.33; + personelCanToLeave = leaveHoursesPerTotalDays; + } + + #endregion + + double leftThisContractCanToLeavePerDay = 0; + + + var sdate = contract.ContarctStart.ToFarsi(); + var edate = contract.ContractEnd.ToFarsi(); + // اگر فیش در قرارداد جاری حلقه بود تا تاریخ پایان فیش برو + if (separationStartDate >= contract.ContarctStart && separationStartDate < contract.ContractEnd) + edate = endDate.ToFarsi(); + var syear = Convert.ToInt32(sdate.Substring(0, 4)); + var smonth = Convert.ToInt32(sdate.Substring(5, 2)); + var sday = Convert.ToInt32(sdate.Substring(8, 2)); + + var eyear = Convert.ToInt32(edate.Substring(0, 4)); + var emonth = Convert.ToInt32(edate.Substring(5, 2)); + var eday = Convert.ToInt32(edate.Substring(8, 2)); + + var d1 = new PersianDateTime(syear, smonth, sday); + var d2 = new PersianDateTime(eyear, emonth, eday); + for (var currntMonth = d1; currntMonth <= d2; currntMonth = currntMonth.AddMonths(1)) + { + + var startMonthFa = $"{currntMonth}"; + var startMonthGr = new DateTime(); + if (currntMonth == d1) + { + var d1Fa = $"{d1}"; + startMonthGr = d1Fa.ToGeorgianDateTime(); + } + else + { + var a = $"{startMonthFa.Substring(0, 8)}01"; + startMonthGr = a.ToGeorgianDateTime(); + } + + + var endMonthFa = startMonthFa.FindeEndOfMonth(); + bool isEndOfYear = endMonthFa.Substring(5, 2) == "12"; + var endMonthGr = endMonthFa.ToGeorgianDateTime(); + bool left = false; + if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) + { + left = true; + + if (endMonthGr > leftWorkDate) + endMonthGr = endDate; + } + #region 365 + + double canToLeavAfter365 = 0; + bool is365 = false; + var countChekoutDays = (int)((endMonthGr - startMonthGr).TotalDays + 1); + var beforeCountDays = contactCanToleaveList.MaxBy(x => x.ContractStart); + if (beforeCountDays != null) + { + if (!beforeCountDays.EndOfYear) + { + var sumCounDays = countChekoutDays + beforeCountDays.CountChekoutDays; + if (sumCounDays > 365) + { + + is365 = true; + countChekoutDays = sumCounDays - 365; + + // مقدار ساعت مجاز مرخصی باقی مانده بعد از 365 روز + leaveHoursesPerTotalDays = 7.33 * 9; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + canToLeavAfter365 = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + } + else + { + + canToLeavAfter365 = leaveHoursesPerTotalDays; + } + } + else + { + countChekoutDays = sumCounDays; + } + } + + } + + + + #endregion + var leaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= startMonthGr && x.EndLeave >= startMonthGr) || + (x.StartLeave <= endMonthGr && x.EndLeave >= endMonthGr) || + (x.StartLeave >= startMonthGr && x.StartLeave <= endMonthGr) || + (x.EndLeave >= startMonthGr && x.EndLeave <= endMonthGr)).ToList(); + //مرخصی استفاده شده در این ماه + double usedLeaves = 0; + if (leaveList.Count > 0) + { + foreach (var item in leaveList) + { + + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < startDate ? startDate : item.StartLeave; + end = item.EndLeave > endDate ? endDate : item.EndLeave; + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * workingHoursePerDay; + usedLeaves += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + else + { + + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + + } + } + + + + //طلب مرخصی این ماه + double creditLeaves = 0; + // مزد مرخصی + double leavePay = 0; + //مدت غیبت + double periodOfAbsence = 0; + double absenceDeduction = 0; + var beforContactCanToleave = new ContractsCanToLeave(); + var beforContractCount = contractCounter - 1; + if (contactCanToleaveList.Count > 0) + { + //آخری قبل از این + beforContactCanToleave = contactCanToleaveList.MaxBy(x => x.ContractStart); + if (beforContactCanToleave.EndOfYear) + { + canToLeave = personelCanToLeave; + } + else + { + canToLeave = beforContactCanToleave.CanToLeave; + } + + + if (beforContactCanToleave.LastChekoutOfContract && !beforContactCanToleave.EndOfYear) + canToLeave = personelCanToLeave + beforContactCanToleave.CanToLeave; + if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) + { + if (canToLeave > 0) + { + #region LeftChekoutCanToLeave + + var check365 = contactCanToleaveList.FirstOrDefault(x => + x.ContractStart >= contract.ContarctStart && x.Is365); + + if (check365 != null) + { + var startAfter365 = check365.ContractEnd.AddDays(1); + canToLeave = check365.CanToLeave; + leaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= startAfter365 && x.EndLeave >= startAfter365) || + (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || + (x.StartLeave >= startAfter365 && x.StartLeave <= leftWorkDate) || + (x.EndLeave >= startAfter365 && x.EndLeave <= leftWorkDate)).ToList(); + usedLeaves = 0; + if (leaveList.Count > 0) + { + foreach (var item in leaveList) + { + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < startAfter365 ? startAfter365 : item.StartLeave; + end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * workingHoursePerDay; + usedLeaves += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + else + { + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + + } + } + } + else + { + var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{ترک کار شده + leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + personelCanToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + } + else + { + workingHoursePerDay = 7.33; + personelCanToLeave = leaveHoursesPerTotalDays; + } + + if (contactCanToleaveList.Any(x => x.LastChekoutOfContract && x.ContractCounter == beforContractCount && !x.EndOfYear)) + { + + var b = contactCanToleaveList.FirstOrDefault(x => + x.LastChekoutOfContract && x.ContractCounter == beforContractCount && !x.EndOfYear); + + canToLeave = personelCanToLeave + b.CanToLeave; + + + } + else + { + canToLeave = personelCanToLeave; + } + + leaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= contract.ContarctStart && x.EndLeave >= contract.ContarctStart) || + (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || + (x.StartLeave >= contract.ContarctStart && x.StartLeave <= leftWorkDate) || + (x.EndLeave >= contract.ContarctStart && x.EndLeave <= leftWorkDate)).ToList(); + usedLeaves = 0; + if (leaveList.Count > 0) + { + foreach (var item in leaveList) + { + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < contract.ContarctStart ? contract.ContarctStart : item.StartLeave; + end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * workingHoursePerDay; + usedLeaves += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + else + { + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + + } + } + } + + #endregion + + } + else + { + var checkAbsenceDeduction = contactCanToleaveList + .Where(x => x.CanToLeave == 0 && x.ContractStart >= contract.ContarctStart) + .MaxBy(x => x.ContractStart); + if (checkAbsenceDeduction != null) + { + + var startSerach = checkAbsenceDeduction.ContractEnd.AddDays(1); + leaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= startSerach && x.EndLeave >= startSerach) || + (x.StartLeave <= leftWorkDate && x.EndLeave >= leftWorkDate) || + (x.StartLeave >= startSerach && x.StartLeave <= leftWorkDate) || + (x.EndLeave >= startSerach && x.EndLeave <= leftWorkDate)).ToList(); + usedLeaves = 0; + if (leaveList.Count > 0) + { + foreach (var item in leaveList) + { + + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < startSerach ? startSerach : item.StartLeave; + end = item.EndLeave > leftWorkDate ? leftWorkDate : item.EndLeave; + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * workingHoursePerDay; + usedLeaves += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + else + { + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeaves += usedLeave; + } + + } + } + } + } + + + + } + + } + else + { + canToLeave = personelCanToLeave; + if (hasleft && leftWorkDate >= startMonthGr && leftWorkDate <= endMonthGr) + { + var leftMonthtotalDays = Convert.ToInt32((leftWorkDate - contract.ContarctStart).TotalDays + 1); + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل + leaveHoursesPerTotalDays = leaveHoursesPerDay * leftMonthtotalDays; + if (workingHoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + canToLeave = (leaveHoursesPerTotalDays * workingHoursePerDay) / 7.33; + } + else + { + workingHoursePerDay = 7.33; + canToLeave = leaveHoursesPerTotalDays; + } + } + + + + } + + + + bool lastChekout = endMonthGr == contract.ContractEnd; + bool endOfyear = lastChekout && isEndOfYear; + + + + #region NewcChanges + + var has365B = contactCanToleaveList.Any(x => x.Is365); + creditLeaves = canToLeave; + //اگر از 365 روز تجاوز کرد و باقی مانده مرخصی بیشتر از 9 روز بود فقط 9 روز بماند + if (is365 && !has365B && creditLeaves > canToLeavAfter365 && !left && !endOfyear) + { + creditLeaves = canToLeavAfter365; + + } + + if (is365 && has365B && !left && !endOfyear) + { + var last365 = contactCanToleaveList + .Where(x => x.Is365) + .MaxBy(x => x.ContractStart); + canToLeavAfter365 += last365.CanToLeave; + if (creditLeaves > canToLeavAfter365) + { + creditLeaves = canToLeavAfter365; + } + + } + + periodOfAbsence = usedLeaves; + #endregion contactCanToleaveList.Add(new ContractsCanToLeave() - { - ContractCounter = contractCounter, - WorkingPerDayHourses = workingHoursePerDay, - ContractStart = startMonthGr, - ContractEnd = endMonthGr, - CanToLeave = creditLeaves, - PeriodOfAbsence = periodOfAbsence, - AbsenceDeduction = absenceDeduction, - LastChekoutOfContract = lastChekout, - Left = left, - EndOfYear = endOfyear, - CountChekoutDays = countChekoutDays, - Is365 = is365, - }); - - } - - } - return contactCanToleaveList; - } - - - - public ContractsCanToLeave OnCheckoutCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId, - double leaveHoursesPerDay, double totalChekoutDays, double hoursePerDay) - { - double checkoutCanToLeave = 0; - // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل - var starndardHoursesPerTotalDays = leaveHoursesPerDay * totalChekoutDays; - if (hoursePerDay < 7.33) - { - // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل - checkoutCanToLeave = (starndardHoursesPerTotalDays * hoursePerDay) / 7.33; - } - else - { - hoursePerDay = 7.33; - checkoutCanToLeave = starndardHoursesPerTotalDays; - } - //بدست آوردن مرخصی این ماه - var checkoutLeaveList = _context.LeaveList.AsSplitQuery() - .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) - .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) - .Where(x => - (x.StartLeave <= startDate && x.EndLeave >= startDate) || - (x.StartLeave <= endDate && x.EndLeave >= endDate) || - (x.StartLeave >= startDate && x.StartLeave <= endDate) || - (x.EndLeave >= startDate && x.EndLeave <= endDate)).ToList(); - //مرخصی استفاده شده در این ماه - double usedLeavesChekout = 0; - if (checkoutLeaveList.Count > 0) - { - foreach (var item in checkoutLeaveList) - { - var start = new DateTime(); - var end = new DateTime(); - start = item.StartLeave < startDate ? startDate : item.StartLeave; - end = item.EndLeave > endDate ? endDate : item.EndLeave; - - if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) - { - var leaveSpan = (end - start).TotalDays + 1; - var usedLeave = leaveSpan * hoursePerDay; - usedLeavesChekout += usedLeave; - } - else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) - { - var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; - usedLeavesChekout += usedLeave; - } - else - { - var leavingHourses = TimeSpan.Parse(item.LeaveHourses); - var usedLeave = (leavingHourses.TotalMinutes) / 60; - usedLeavesChekout += usedLeave; - } - - } - } - - double creditLeaves = 0; - double periodOfAbsence = 0; - if (checkoutCanToLeave >= usedLeavesChekout) //اگر طلب مرخصی داشت - { - creditLeaves = checkoutCanToLeave - usedLeavesChekout; - periodOfAbsence = 0; - - } - else - { - - - periodOfAbsence = usedLeavesChekout - checkoutCanToLeave; - - creditLeaves = 0; - } - - - var result = new ContractsCanToLeave() - { - - CanToLeave = creditLeaves, - PeriodOfAbsence = periodOfAbsence, - - }; - return result; - - } - - public async Task HolidayGregorian(DateTime gregorianDate) - { - var result = new HolidayApiVewModel(); - var gregorianStr = gregorianDate.ToString("MM/dd/yyyy"); - var month = gregorianStr.Substring(0, 2); - var day = gregorianStr.Substring(3, 2); - var year = gregorianStr.Substring(6, 4); - - var client = new HttpClient(); - var request = new HttpRequestMessage(HttpMethod.Get, $"https://holidayapi.ir/gregorian/{year}/{month}/{day}"); - request.Headers.Add("Cookie", "XSRF-TOKEN=eyJpdiI6IjFrOTRrM0tFeVh5ZHFnNis3K0xZQVE9PSIsInZhbHVlIjoidlQ5TEg3c2hGYTVYeU0zRU9ha2NWTWpnYWRLMWxWSG9NWm5JYXhiaC8xRzliSlpmZGp2TlExd0VtL0JIL2JYWXNnVEREeTZNNDd1VHRQdjlQajFCNUxHZkwvdExWb3hCc25IMndUdEVwdDJ4T3drbkdhRTdscVoxNUxDeVNNOTciLCJtYWMiOiJkNjY4NGNkZWI3NGNkMzA1YWUyMjQxNGU5MWYwMjVlMGE1OGQzMjhkYTQ1NGE5NzcyNjA3NGNhM2RjOGI2NDVmIiwidGFnIjoiIn0%3D; holidayapi_session=eyJpdiI6IkdxRGx1NUZsRnlJazUwS3JhRUgrMFE9PSIsInZhbHVlIjoiclZ2U0hQZTErZ3duQmZXWmV6WjlvR1JTWEpwZHRSR0p2YytFOENUYzg0R1JBOGZHcWI1TzhFTEtIRjdXQy9Qa0doY0RXR2pBRGZTOEN3cGJsVEtTcC9uSkliOWZ6U3ZJRkFvY3N0TytWSGJwNWt2dWhKTmI0bnJOb09Ic3NJd0siLCJtYWMiOiI2MTk4YzNjNTdmODJmNDVkZTM5YWE2OTcyNGJiYzI1MTM1ZTViYTZlZTVhZTNhMzNmY2U5NzM1OThiOTg5YThlIiwidGFnIjoiIn0%3D"); - var response = await client.SendAsync(request); - var success = response.IsSuccessStatusCode; - - if (success) - { - var res = await response.Content.ReadAsStringAsync(); - var convertedRes = JsonConvert.DeserializeObject(res); - result.IsHoliday = convertedRes.IsHoliday; - result.IsSuccess = true; - } - - return result; - } - - public async Task HolidayShamsi(string shamsiDate) - { - var result = new HolidayApiVewModel(); - var year = shamsiDate.Substring(0, 4); - var month = shamsiDate.Substring(5, 2); - var day = shamsiDate.Substring(8, 2); - - - var client = new HttpClient(); - var request = new HttpRequestMessage(HttpMethod.Get, $"https://holidayapi.ir/gregorian/{year}/{month}/{day}"); - request.Headers.Add("Cookie", "XSRF-TOKEN=eyJpdiI6IjFrOTRrM0tFeVh5ZHFnNis3K0xZQVE9PSIsInZhbHVlIjoidlQ5TEg3c2hGYTVYeU0zRU9ha2NWTWpnYWRLMWxWSG9NWm5JYXhiaC8xRzliSlpmZGp2TlExd0VtL0JIL2JYWXNnVEREeTZNNDd1VHRQdjlQajFCNUxHZkwvdExWb3hCc25IMndUdEVwdDJ4T3drbkdhRTdscVoxNUxDeVNNOTciLCJtYWMiOiJkNjY4NGNkZWI3NGNkMzA1YWUyMjQxNGU5MWYwMjVlMGE1OGQzMjhkYTQ1NGE5NzcyNjA3NGNhM2RjOGI2NDVmIiwidGFnIjoiIn0%3D; holidayapi_session=eyJpdiI6IkdxRGx1NUZsRnlJazUwS3JhRUgrMFE9PSIsInZhbHVlIjoiclZ2U0hQZTErZ3duQmZXWmV6WjlvR1JTWEpwZHRSR0p2YytFOENUYzg0R1JBOGZHcWI1TzhFTEtIRjdXQy9Qa0doY0RXR2pBRGZTOEN3cGJsVEtTcC9uSkliOWZ6U3ZJRkFvY3N0TytWSGJwNWt2dWhKTmI0bnJOb09Ic3NJd0siLCJtYWMiOiI2MTk4YzNjNTdmODJmNDVkZTM5YWE2OTcyNGJiYzI1MTM1ZTViYTZlZTVhZTNhMzNmY2U5NzM1OThiOTg5YThlIiwidGFnIjoiIn0%3D"); - var response = await client.SendAsync(request); - var success = response.IsSuccessStatusCode; - - if (success) - { - var res = await response.Content.ReadAsStringAsync(); - var convertedRes = JsonConvert.DeserializeObject(res); - result.IsHoliday = convertedRes.IsHoliday; - result.IsSuccess = true; - } - - return result; - } - - #endregion - - //عیدی - #region Bunoses - - public BunosesAndYearsPayStatus Bunoses(string startDateFa, DateTime leftWorkDate, DateTime separationStartDate, DateTime separationEndDate, double daylyWage, string bonusesOptions, - bool hasleft, DateTime startWorkDate, DateTime contractStart, DateTime contractEnd, long workshopId, - long employeeId, bool isOldContract) - { - BunosesAndYearsPayStatus finalResult = new BunosesAndYearsPayStatus(); - double result = 0; - // ماه فیش آخر - var checkoutMonth = startDateFa.Substring(5, 2); - var start1403 = new DateTime(2024, 3, 20); - switch (bonusesOptions) - { - case "OnCheckoutOfMonth": - - var totalCheckoutDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.Bunoses = ((daylyWage * 60) / 365) * totalCheckoutDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalCheckoutDays); - - break; - case "OnEndOfYear"://درپایان سال - - if (isOldContract && contractEnd < start1403) - { - var totaltDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.Bunoses = ((daylyWage * 60) / 365) * totaltDays; - finalResult.TotalDayCompute = Convert.ToInt32(totaltDays); - } - else if (isOldContract && contractEnd > start1403) - { - - - if ((hasleft && leftWorkDate <= separationEndDate) || checkoutMonth == "12") - { - - //بدست آوردن اولین روز سال - string startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - DateTime startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - - // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود - DateTime startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; - - - #region NewCompute - - //شروع دوره - string st = startComputeDay.ToFarsi(); - int syear = Convert.ToInt32(st.Substring(0, 4)); - int smonth = Convert.ToInt32(st.Substring(5, 2)); - PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); - PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); - //پایان فیش حقوقی آخر - PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); - if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) - { - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - else - { - var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && - x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); - //پایان دوره - PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); - List nullDateList = new List(); - double sumOfOldBonuses = 0; - var oldTotalDays = 0; - for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) - { - var searchStart = ($"{startDate}").ToGeorgianDateTime(); - var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); - var foundCheckout = checkoutList.FirstOrDefault(x => - x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); - if (foundCheckout == null) - { - nullDateList.Add(new BunosesAndYearsPayStatus() - { - ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, - ContractEnd = searchEnd - }); - finalResult.NotCompleted = true; - } - else - { - double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; - int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); - double foundDayliWage = foundMonthlySalary / foundTotaldays; - double foundYearsPay = ((foundDayliWage * 60) / 365) * foundTotaldays; - oldTotalDays += foundTotaldays; - sumOfOldBonuses += foundYearsPay; - } - - } - - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); - finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; - finalResult.BunosesStatusList = nullDateList; - } - - #endregion - - - } - } - else if (!isOldContract) - { - if ((hasleft && leftWorkDate <= separationEndDate) || checkoutMonth == "12") - { - //بدست آوردن اولین روز سال - var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; - #region NewCompute - - //شروع دوره - string st = startComputeDay.ToFarsi(); - int syear = Convert.ToInt32(st.Substring(0, 4)); - int smonth = Convert.ToInt32(st.Substring(5, 2)); - PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); - PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); - //پایان فیش حقوقی آخر - PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); - if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) - { - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; - } - else - { - var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && - x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); - //پایان دوره - PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); - List nullDateList = new List(); - double sumOfOldBonuses = 0; - var oldTotalDays = 0; - for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) - { - var searchStart = ($"{startDate}").ToGeorgianDateTime(); - var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); - var foundCheckout = checkoutList.FirstOrDefault(x => - x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); - if (foundCheckout == null) - { - nullDateList.Add(new BunosesAndYearsPayStatus() - { - ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, - ContractEnd = searchEnd - }); - finalResult.NotCompleted = true; - } - else - { - double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; - int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); - double foundDayliWage = foundMonthlySalary / foundTotaldays; - double foundYearsPay = ((foundDayliWage * 60) / 365) * foundTotaldays; - oldTotalDays += foundTotaldays; - sumOfOldBonuses += foundYearsPay; - } - - } - - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); - finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; - finalResult.BunosesStatusList = nullDateList; - } - - #endregion - } - } - - - break; - case "OnEndOfContract"://در پایان قرارداد - - if (isOldContract && contractEnd < start1403) - { - var totaltDays = (separationEndDate - separationStartDate).TotalDays + 1; - finalResult.Bunoses = ((daylyWage * 60) / 365) * totaltDays; - } - else if (isOldContract && contractEnd > start1403) - { - if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) - { - - //بدست آوردن اولین روز سال - //var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - //var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - - var startComputeDay = contractStart; - //var totalDays = (separationEndDate - contractStart).TotalDays + 1; - //result = (daylyWage * 60) / 365 * totalDays; - - #region NewCompute - - //شروع دوره - string st = startComputeDay.ToFarsi(); - int syear = Convert.ToInt32(st.Substring(0, 4)); - int smonth = Convert.ToInt32(st.Substring(5, 2)); - PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); - PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); - //پایان فیش حقوقی آخر - PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); - if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) - { - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays); - } - else - { - var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && - x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); - //پایان دوره - PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); - List nullDateList = new List(); - double sumOfOldBonuses = 0; - var oldTotalDays = 0; - for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) - { - var searchStart = ($"{startDate}").ToGeorgianDateTime(); - var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); - var foundCheckout = checkoutList.FirstOrDefault(x => - x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); - if (foundCheckout == null) - { - nullDateList.Add(new BunosesAndYearsPayStatus() - { - ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, - ContractEnd = searchEnd - }); - finalResult.NotCompleted = true; - } - else - { - double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; - int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); - double foundDayliWage = foundMonthlySalary / foundTotaldays; - double foundBonuses = ((foundDayliWage * 60) / 365) * foundTotaldays; - oldTotalDays += foundTotaldays; - sumOfOldBonuses += foundBonuses; - } - - } - - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); - finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; - finalResult.BunosesStatusList = nullDateList; - } - - #endregion - } - } - else if (!isOldContract) - { - if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) - { - var startComputeDay = contractStart; - //var totalDays = (separationEndDate - contractStart).TotalDays + 1; - // finalResult.Bunoses = (daylyWage * 60) / 365 * totalDays; - - #region NewCompute - - //شروع دوره - string st = startComputeDay.ToFarsi(); - int syear = Convert.ToInt32(st.Substring(0, 4)); - int smonth = Convert.ToInt32(st.Substring(5, 2)); - PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); - PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); - //پایان فیش حقوقی آخر - PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); - if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) - { - var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; - } - else - { - var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && - x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); - //پایان دوره - PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); - List nullDateList = new List(); - double sumOfOldBonuses = 0; - var oldTotalDays = 0; - for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) - { - var searchStart = ($"{startDate}").ToGeorgianDateTime(); - var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); - var foundCheckout = checkoutList.FirstOrDefault(x => - x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); - if (foundCheckout == null) - { - nullDateList.Add(new BunosesAndYearsPayStatus() - { - ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, - ContractEnd = searchEnd - }); - finalResult.NotCompleted = true; - } - else - { - double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; - int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); - double foundDayliWage = foundMonthlySalary / foundTotaldays; - double foundBonuses = ((foundDayliWage * 60) / 365) * foundTotaldays; - oldTotalDays += foundTotaldays; - sumOfOldBonuses += foundBonuses; - } - - } - - var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; - finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); - finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; - finalResult.BunosesStatusList = nullDateList; - } - - #endregion - } - } - - break; - //case "EndOfContract1402LeftWork1403": //پایان قرارداد قبل 403 پایان همکاری بعد 403 - - // if (contractStart >= start1403 && contractEnd > start1403)// بعد از 1403 - // { - // if (hasleft && leftWorkDate <= separationEndDate) - // { - // //بدست آوردن اولین روز سال - // var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - // var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - - // // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود - // var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; - // var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; - // result = (daylyWage * 60) / 365 * totalDays; - // } - // } - // else if (contractStart < start1403)// قبل از 1403 - // { - // var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; - // finalResult.Bunoses = (daylyWage * 60) / 365 * totalDays; - - // //if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd || checkoutMonth == "12") - // //{ - // // //بدست آوردن اولین روز سال - // // var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; - // // var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); - - // // var startComputeDay = contractStart >= startDayOfYearGr ? contractStart : startDayOfYearGr; - - // //} - // } - // break; - - default: - finalResult.Bunoses = 0; - finalResult.TotalDayCompute = 0; - break; - } - - return finalResult; - } - - - - #endregion - - - #region Insurance - - public InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year) - { - var query = _context.YearlySalaries - .Where(x => x.StartDate <= startDate && x.EndDate >= endDate && x.Year == year) - .Include(x => x.YearlySalaryItemsList) - .Select(x => new InsuranceYearlySalaryModel - { - DayliWage = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "مزد روزانه").ItemValue, - ConsumableItems = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "کمک هزینه اقلام").ItemValue, - HousingAllowance = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "کمک هزینه مسکن").ItemValue, - MarriedAllowance = x.YearlySalaryItemsList.Any(item => item.ItemName == "حق تاهل") ? x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "حق تاهل").ItemValue : 0, - - }).FirstOrDefault(); - - return query; - } - - #endregion - - - private double GetRoundValue(double value) - { - string strValue = value.ToString(); - if (strValue.IndexOf('.') > -1) - { - - - string a = strValue.Substring(strValue.IndexOf('.') + 1, 1); - if (int.Parse(a) > 3) - { - return (Math.Round(value, MidpointRounding.ToPositiveInfinity)); - } - else - { - return (Math.Round(value, MidpointRounding.ToNegativeInfinity)); - } - } - - return value; - } + { + ContractCounter = contractCounter, + WorkingPerDayHourses = workingHoursePerDay, + ContractStart = startMonthGr, + ContractEnd = endMonthGr, + CanToLeave = creditLeaves, + PeriodOfAbsence = periodOfAbsence, + AbsenceDeduction = absenceDeduction, + LastChekoutOfContract = lastChekout, + Left = left, + EndOfYear = endOfyear, + CountChekoutDays = countChekoutDays, + Is365 = is365, + }); + + } + + } + return contactCanToleaveList; + } + + + + public ContractsCanToLeave OnCheckoutCantoleaveList(DateTime startDate, DateTime endDate, long workshopId, long employeeId, + double leaveHoursesPerDay, double totalChekoutDays, double hoursePerDay) + { + double checkoutCanToLeave = 0; + // {مقدار ساعت مجاز مرخصی در مدت این فیش حقوقی{کامل + var starndardHoursesPerTotalDays = leaveHoursesPerDay * totalChekoutDays; + if (hoursePerDay < 7.33) + { + // تناسب مجدد به نسبت ساعات کمتر از 7/33 برای بدست آوردن ساعت مجاز مرخصی این پرسنل + checkoutCanToLeave = (starndardHoursesPerTotalDays * hoursePerDay) / 7.33; + } + else + { + hoursePerDay = 7.33; + checkoutCanToLeave = starndardHoursesPerTotalDays; + } + //بدست آوردن مرخصی این ماه + var checkoutLeaveList = _context.LeaveList.AsSplitQuery() + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Where(x => x.LeaveType == "استحقاقی" && x.IsAccepted) + .Where(x => + (x.StartLeave <= startDate && x.EndLeave >= startDate) || + (x.StartLeave <= endDate && x.EndLeave >= endDate) || + (x.StartLeave >= startDate && x.StartLeave <= endDate) || + (x.EndLeave >= startDate && x.EndLeave <= endDate)).ToList(); + //مرخصی استفاده شده در این ماه + double usedLeavesChekout = 0; + if (checkoutLeaveList.Count > 0) + { + foreach (var item in checkoutLeaveList) + { + var start = new DateTime(); + var end = new DateTime(); + start = item.StartLeave < startDate ? startDate : item.StartLeave; + end = item.EndLeave > endDate ? endDate : item.EndLeave; + + if (item.PaidLeaveType == "روزانه" && !item.HasShiftDuration) + { + var leaveSpan = (end - start).TotalDays + 1; + var usedLeave = leaveSpan * hoursePerDay; + usedLeavesChekout += usedLeave; + } + else if (item.PaidLeaveType == "روزانه" && item.HasShiftDuration) + { + var usedLeave = (item.ShiftDuration.TotalMinutes) / 60; + usedLeavesChekout += usedLeave; + } + else + { + var leavingHourses = TimeSpan.Parse(item.LeaveHourses); + var usedLeave = (leavingHourses.TotalMinutes) / 60; + usedLeavesChekout += usedLeave; + } + + } + } + + double creditLeaves = 0; + double periodOfAbsence = 0; + if (checkoutCanToLeave >= usedLeavesChekout) //اگر طلب مرخصی داشت + { + creditLeaves = checkoutCanToLeave - usedLeavesChekout; + periodOfAbsence = 0; + + } + else + { + + + periodOfAbsence = usedLeavesChekout - checkoutCanToLeave; + + creditLeaves = 0; + } + + + var result = new ContractsCanToLeave() + { + + CanToLeave = creditLeaves, + PeriodOfAbsence = periodOfAbsence, + + }; + return result; + + } + + public async Task HolidayGregorian(DateTime gregorianDate) + { + var result = new HolidayApiVewModel(); + var gregorianStr = gregorianDate.ToString("MM/dd/yyyy"); + var month = gregorianStr.Substring(0, 2); + var day = gregorianStr.Substring(3, 2); + var year = gregorianStr.Substring(6, 4); + + var client = new HttpClient(); + var request = new HttpRequestMessage(HttpMethod.Get, $"https://holidayapi.ir/gregorian/{year}/{month}/{day}"); + request.Headers.Add("Cookie", "XSRF-TOKEN=eyJpdiI6IjFrOTRrM0tFeVh5ZHFnNis3K0xZQVE9PSIsInZhbHVlIjoidlQ5TEg3c2hGYTVYeU0zRU9ha2NWTWpnYWRLMWxWSG9NWm5JYXhiaC8xRzliSlpmZGp2TlExd0VtL0JIL2JYWXNnVEREeTZNNDd1VHRQdjlQajFCNUxHZkwvdExWb3hCc25IMndUdEVwdDJ4T3drbkdhRTdscVoxNUxDeVNNOTciLCJtYWMiOiJkNjY4NGNkZWI3NGNkMzA1YWUyMjQxNGU5MWYwMjVlMGE1OGQzMjhkYTQ1NGE5NzcyNjA3NGNhM2RjOGI2NDVmIiwidGFnIjoiIn0%3D; holidayapi_session=eyJpdiI6IkdxRGx1NUZsRnlJazUwS3JhRUgrMFE9PSIsInZhbHVlIjoiclZ2U0hQZTErZ3duQmZXWmV6WjlvR1JTWEpwZHRSR0p2YytFOENUYzg0R1JBOGZHcWI1TzhFTEtIRjdXQy9Qa0doY0RXR2pBRGZTOEN3cGJsVEtTcC9uSkliOWZ6U3ZJRkFvY3N0TytWSGJwNWt2dWhKTmI0bnJOb09Ic3NJd0siLCJtYWMiOiI2MTk4YzNjNTdmODJmNDVkZTM5YWE2OTcyNGJiYzI1MTM1ZTViYTZlZTVhZTNhMzNmY2U5NzM1OThiOTg5YThlIiwidGFnIjoiIn0%3D"); + var response = await client.SendAsync(request); + var success = response.IsSuccessStatusCode; + + if (success) + { + var res = await response.Content.ReadAsStringAsync(); + var convertedRes = JsonConvert.DeserializeObject(res); + result.IsHoliday = convertedRes.IsHoliday; + result.IsSuccess = true; + } + + return result; + } + + public async Task HolidayShamsi(string shamsiDate) + { + var result = new HolidayApiVewModel(); + var year = shamsiDate.Substring(0, 4); + var month = shamsiDate.Substring(5, 2); + var day = shamsiDate.Substring(8, 2); + + + var client = new HttpClient(); + var request = new HttpRequestMessage(HttpMethod.Get, $"https://holidayapi.ir/gregorian/{year}/{month}/{day}"); + request.Headers.Add("Cookie", "XSRF-TOKEN=eyJpdiI6IjFrOTRrM0tFeVh5ZHFnNis3K0xZQVE9PSIsInZhbHVlIjoidlQ5TEg3c2hGYTVYeU0zRU9ha2NWTWpnYWRLMWxWSG9NWm5JYXhiaC8xRzliSlpmZGp2TlExd0VtL0JIL2JYWXNnVEREeTZNNDd1VHRQdjlQajFCNUxHZkwvdExWb3hCc25IMndUdEVwdDJ4T3drbkdhRTdscVoxNUxDeVNNOTciLCJtYWMiOiJkNjY4NGNkZWI3NGNkMzA1YWUyMjQxNGU5MWYwMjVlMGE1OGQzMjhkYTQ1NGE5NzcyNjA3NGNhM2RjOGI2NDVmIiwidGFnIjoiIn0%3D; holidayapi_session=eyJpdiI6IkdxRGx1NUZsRnlJazUwS3JhRUgrMFE9PSIsInZhbHVlIjoiclZ2U0hQZTErZ3duQmZXWmV6WjlvR1JTWEpwZHRSR0p2YytFOENUYzg0R1JBOGZHcWI1TzhFTEtIRjdXQy9Qa0doY0RXR2pBRGZTOEN3cGJsVEtTcC9uSkliOWZ6U3ZJRkFvY3N0TytWSGJwNWt2dWhKTmI0bnJOb09Ic3NJd0siLCJtYWMiOiI2MTk4YzNjNTdmODJmNDVkZTM5YWE2OTcyNGJiYzI1MTM1ZTViYTZlZTVhZTNhMzNmY2U5NzM1OThiOTg5YThlIiwidGFnIjoiIn0%3D"); + var response = await client.SendAsync(request); + var success = response.IsSuccessStatusCode; + + if (success) + { + var res = await response.Content.ReadAsStringAsync(); + var convertedRes = JsonConvert.DeserializeObject(res); + result.IsHoliday = convertedRes.IsHoliday; + result.IsSuccess = true; + } + + return result; + } + + #endregion + + //عیدی + #region Bunoses + + public BunosesAndYearsPayStatus Bunoses(string startDateFa, DateTime leftWorkDate, DateTime separationStartDate, DateTime separationEndDate, double daylyWage, string bonusesOptions, + bool hasleft, DateTime startWorkDate, DateTime contractStart, DateTime contractEnd, long workshopId, + long employeeId, bool isOldContract) + { + BunosesAndYearsPayStatus finalResult = new BunosesAndYearsPayStatus(); + double result = 0; + // ماه فیش آخر + var checkoutMonth = startDateFa.Substring(5, 2); + var start1403 = new DateTime(2024, 3, 20); + switch (bonusesOptions) + { + case "OnCheckoutOfMonth": + + var totalCheckoutDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.Bunoses = ((daylyWage * 60) / 365) * totalCheckoutDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalCheckoutDays); + + break; + case "OnEndOfYear"://درپایان سال + + if (isOldContract && contractEnd < start1403) + { + var totaltDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.Bunoses = ((daylyWage * 60) / 365) * totaltDays; + finalResult.TotalDayCompute = Convert.ToInt32(totaltDays); + } + else if (isOldContract && contractEnd > start1403) + { + + + if ((hasleft && leftWorkDate <= separationEndDate) || checkoutMonth == "12") + { + + //بدست آوردن اولین روز سال + string startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + DateTime startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + + // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود + DateTime startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; + + + #region NewCompute + + //شروع دوره + string st = startComputeDay.ToFarsi(); + int syear = Convert.ToInt32(st.Substring(0, 4)); + int smonth = Convert.ToInt32(st.Substring(5, 2)); + PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); + PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); + //پایان فیش حقوقی آخر + PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); + if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) + { + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + else + { + var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && + x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); + //پایان دوره + PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); + List nullDateList = new List(); + double sumOfOldBonuses = 0; + var oldTotalDays = 0; + for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) + { + var searchStart = ($"{startDate}").ToGeorgianDateTime(); + var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); + var foundCheckout = checkoutList.FirstOrDefault(x => + x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); + if (foundCheckout == null) + { + nullDateList.Add(new BunosesAndYearsPayStatus() + { + ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, + ContractEnd = searchEnd + }); + finalResult.NotCompleted = true; + } + else + { + double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; + int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); + double foundDayliWage = foundMonthlySalary / foundTotaldays; + double foundYearsPay = ((foundDayliWage * 60) / 365) * foundTotaldays; + oldTotalDays += foundTotaldays; + sumOfOldBonuses += foundYearsPay; + } + + } + + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); + finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; + finalResult.BunosesStatusList = nullDateList; + } + + #endregion + + + } + } + else if (!isOldContract) + { + if ((hasleft && leftWorkDate <= separationEndDate) || checkoutMonth == "12") + { + //بدست آوردن اولین روز سال + var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; + #region NewCompute + + //شروع دوره + string st = startComputeDay.ToFarsi(); + int syear = Convert.ToInt32(st.Substring(0, 4)); + int smonth = Convert.ToInt32(st.Substring(5, 2)); + PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); + PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); + //پایان فیش حقوقی آخر + PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); + if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) + { + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; + } + else + { + var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && + x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); + //پایان دوره + PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); + List nullDateList = new List(); + double sumOfOldBonuses = 0; + var oldTotalDays = 0; + for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) + { + var searchStart = ($"{startDate}").ToGeorgianDateTime(); + var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); + var foundCheckout = checkoutList.FirstOrDefault(x => + x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); + if (foundCheckout == null) + { + nullDateList.Add(new BunosesAndYearsPayStatus() + { + ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, + ContractEnd = searchEnd + }); + finalResult.NotCompleted = true; + } + else + { + double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; + int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); + double foundDayliWage = foundMonthlySalary / foundTotaldays; + double foundYearsPay = ((foundDayliWage * 60) / 365) * foundTotaldays; + oldTotalDays += foundTotaldays; + sumOfOldBonuses += foundYearsPay; + } + + } + + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); + finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; + finalResult.BunosesStatusList = nullDateList; + } + + #endregion + } + } + + + break; + case "OnEndOfContract"://در پایان قرارداد + + if (isOldContract && contractEnd < start1403) + { + var totaltDays = (separationEndDate - separationStartDate).TotalDays + 1; + finalResult.Bunoses = ((daylyWage * 60) / 365) * totaltDays; + } + else if (isOldContract && contractEnd > start1403) + { + if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) + { + + //بدست آوردن اولین روز سال + //var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + //var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + + var startComputeDay = contractStart; + //var totalDays = (separationEndDate - contractStart).TotalDays + 1; + //result = (daylyWage * 60) / 365 * totalDays; + + #region NewCompute + + //شروع دوره + string st = startComputeDay.ToFarsi(); + int syear = Convert.ToInt32(st.Substring(0, 4)); + int smonth = Convert.ToInt32(st.Substring(5, 2)); + PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); + PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); + //پایان فیش حقوقی آخر + PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); + if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) + { + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays); + } + else + { + var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && + x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); + //پایان دوره + PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); + List nullDateList = new List(); + double sumOfOldBonuses = 0; + var oldTotalDays = 0; + for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) + { + var searchStart = ($"{startDate}").ToGeorgianDateTime(); + var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); + var foundCheckout = checkoutList.FirstOrDefault(x => + x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); + if (foundCheckout == null) + { + nullDateList.Add(new BunosesAndYearsPayStatus() + { + ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, + ContractEnd = searchEnd + }); + finalResult.NotCompleted = true; + } + else + { + double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; + int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); + double foundDayliWage = foundMonthlySalary / foundTotaldays; + double foundBonuses = ((foundDayliWage * 60) / 365) * foundTotaldays; + oldTotalDays += foundTotaldays; + sumOfOldBonuses += foundBonuses; + } + + } + + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); + finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; + finalResult.BunosesStatusList = nullDateList; + } + + #endregion + } + } + else if (!isOldContract) + { + if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd) + { + var startComputeDay = contractStart; + //var totalDays = (separationEndDate - contractStart).TotalDays + 1; + // finalResult.Bunoses = (daylyWage * 60) / 365 * totalDays; + + #region NewCompute + + //شروع دوره + string st = startComputeDay.ToFarsi(); + int syear = Convert.ToInt32(st.Substring(0, 4)); + int smonth = Convert.ToInt32(st.Substring(5, 2)); + PersianDateTime startPeriod = new PersianDateTime(syear, smonth, 1); + PersianDateTime startPeriodGr = new PersianDateTime(syear, smonth, 1); + //پایان فیش حقوقی آخر + PersianDateTime endCheckout = separationEndDate.ToPersianDateTime(); + if (startPeriod.Year == endCheckout.Year && startPeriod.Month == endCheckout.Month) + { + var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + finalResult.Bunoses = ((daylyWage * 60) / 365) * totalDays; + } + else + { + var checkoutList = _context.CheckoutSet.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && + x.ContractStart >= startComputeDay && x.ContractEnd < separationStartDate).AsEnumerable(); + //پایان دوره + PersianDateTime endPeriod = (separationStartDate.AddDays(-1)).ToPersianDateTime(); + List nullDateList = new List(); + double sumOfOldBonuses = 0; + var oldTotalDays = 0; + for (var startDate = startPeriod; startDate <= endPeriod; startDate = startDate.AddMonths(1)) + { + var searchStart = ($"{startDate}").ToGeorgianDateTime(); + var searchEnd = (($"{startDate}").FindeEndOfMonth()).ToGeorgianDateTime(); + var foundCheckout = checkoutList.FirstOrDefault(x => + x.ContractStart >= searchStart && x.ContractEnd <= searchEnd); + if (foundCheckout == null) + { + nullDateList.Add(new BunosesAndYearsPayStatus() + { + ContractStart = startDate == startPeriodGr ? startComputeDay : searchStart, + ContractEnd = searchEnd + }); + finalResult.NotCompleted = true; + } + else + { + double foundMonthlySalary = foundCheckout.MonthlySalary + foundCheckout.BaseYearsPay; + int foundTotaldays = Convert.ToInt32(foundCheckout.SumOfWorkingDays); + double foundDayliWage = foundMonthlySalary / foundTotaldays; + double foundBonuses = ((foundDayliWage * 60) / 365) * foundTotaldays; + oldTotalDays += foundTotaldays; + sumOfOldBonuses += foundBonuses; + } + + } + + var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + double lastMonthBonuses = ((daylyWage * 60) / 365) * totalDays; + finalResult.TotalDayCompute = Convert.ToInt32(totalDays + oldTotalDays); + finalResult.Bunoses = lastMonthBonuses + sumOfOldBonuses; + finalResult.BunosesStatusList = nullDateList; + } + + #endregion + } + } + + break; + //case "EndOfContract1402LeftWork1403": //پایان قرارداد قبل 403 پایان همکاری بعد 403 + + // if (contractStart >= start1403 && contractEnd > start1403)// بعد از 1403 + // { + // if (hasleft && leftWorkDate <= separationEndDate) + // { + // //بدست آوردن اولین روز سال + // var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + // var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + + // // اگر تاریخ شروع بکار بزرگتر مساوی روز اول همین سال بود از تازیخ شوع بکار استفاده میشود در غیر اینصورت از روز اول سال استفاده میشود + // var startComputeDay = startWorkDate >= startDayOfYearGr ? startWorkDate : startDayOfYearGr; + // var totalDays = (separationEndDate - startComputeDay).TotalDays + 1; + // result = (daylyWage * 60) / 365 * totalDays; + // } + // } + // else if (contractStart < start1403)// قبل از 1403 + // { + // var totalDays = (separationEndDate - separationStartDate).TotalDays + 1; + // finalResult.Bunoses = (daylyWage * 60) / 365 * totalDays; + + // //if ((hasleft && leftWorkDate <= separationEndDate) || separationEndDate == contractEnd || checkoutMonth == "12") + // //{ + // // //بدست آوردن اولین روز سال + // // var startDayOfYear = $"{startDateFa.Substring(0, 4)}/01/01"; + // // var startDayOfYearGr = startDayOfYear.ToGeorgianDateTime(); + + // // var startComputeDay = contractStart >= startDayOfYearGr ? contractStart : startDayOfYearGr; + + // //} + // } + // break; + + default: + finalResult.Bunoses = 0; + finalResult.TotalDayCompute = 0; + break; + } + + return finalResult; + } + + + + #endregion + + + #region Insurance + + public InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year) + { + var query = _context.YearlySalaries + .Where(x => x.StartDate <= startDate && x.EndDate >= endDate && x.Year == year) + .Include(x => x.YearlySalaryItemsList) + .Select(x => new InsuranceYearlySalaryModel + { + DayliWage = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "مزد روزانه").ItemValue, + ConsumableItems = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "کمک هزینه اقلام").ItemValue, + HousingAllowance = x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "کمک هزینه مسکن").ItemValue, + MarriedAllowance = x.YearlySalaryItemsList.Any(item => item.ItemName == "حق تاهل") ? x.YearlySalaryItemsList.FirstOrDefault(item => item.ItemName == "حق تاهل").ItemValue : 0, + + }).FirstOrDefault(); + + return query; + } + #endregion + + + private double GetRoundValue(double value) + { + string strValue = value.ToString(); + if (strValue.IndexOf('.') > -1) + { + + + string a = strValue.Substring(strValue.IndexOf('.') + 1, 1); + if (int.Parse(a) > 3) + { + return (Math.Round(value, MidpointRounding.ToPositiveInfinity)); + } + else + { + return (Math.Round(value, MidpointRounding.ToNegativeInfinity)); + } + } + + return value; + } } diff --git a/DadmehrGostar.sln.DotSettings b/DadmehrGostar.sln.DotSettings index 71841217..ed0ebd5d 100644 --- a/DadmehrGostar.sln.DotSettings +++ b/DadmehrGostar.sln.DotSettings @@ -1,2 +1,3 @@  + True True \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/CreateRole.cshtml b/ServiceHost/Areas/Admin/Pages/Accounts/Account/CreateRole.cshtml index 44f61a60..30a37640 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/CreateRole.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/CreateRole.cshtml @@ -770,15 +770,28 @@ + +
+ +
+
+ +
+
+ +
+
+ +
-
- +
+
- +
diff --git a/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml b/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml index 38909dc7..6f17ca6b 100644 --- a/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Accounts/Account/EditRole.cshtml @@ -783,13 +783,26 @@
- + +
+
+ +
+
+ +
+
+ +
+ +
+
- +
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CreateLoadList.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CreateLoadList.cshtml index 39ea0494..e49343e6 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CreateLoadList.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CreateLoadList.cshtml @@ -1,4 +1,5 @@ -@model CompanyManagment.App.Contracts.Checkout.CreateCheckoutListViewModel +@using Microsoft.CodeAnalysis.CSharp.Syntax +@model CompanyManagment.App.Contracts.Checkout.CreateCheckoutListViewModel @{ var i = 1; var b = 0; @@ -14,7 +15,7 @@ -@if (Model.CreateCheckoutList.Count > 0) +@if (Model.CreateCheckoutList.Count > 0 && !Model.HasWorkFlow) { @foreach (var item in Model.CreateCheckoutList) { @@ -151,6 +152,22 @@ } } +else +{ + if (@Model.HasWorkFlow) + { +
+
+
+
+

این کارگاه به دلیل داشتن کارپوشه مجاز به ایجاد تصفیه حساب نمی باشد

+
+
+
+
+ + } +} + - - - + + + - @* + @* *@ - - + } \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/ConnectedPersonnels/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/ConnectedPersonnels/Index.cshtml.cs index 5a7a5ede..689260ae 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/ConnectedPersonnels/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/ConnectedPersonnels/Index.cshtml.cs @@ -1,170 +1,205 @@ using _0_Framework.Application; using CompanyManagment.App.Contracts.EmployeeComputeOptions; +using CompanyManagment.App.Contracts.RollCallEmployee; +using CompanyManagment.App.Contracts.RollCallEmployeeStatus; using CompanyManagment.App.Contracts.Workshop; +using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using System.Transactions; +using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.Contract; -namespace ServiceHost.Areas.Admin.Pages.Company.ConnectedPersonnels; - -public class IndexModel : PageModel +namespace ServiceHost.Areas.Admin.Pages.Company.ConnectedPersonnels { - private readonly IAuthHelper _authHelper; - private readonly IEmployeeComputeOptionsApplication _employeeComputeOptionsApplication; - private readonly IWebHostEnvironment _webHostEnvironment; - private readonly IWorkshopApplication _workshopApplication; - public ConnectedPersonnelViewModel PersonnelList; - public string WorkshopFullName; - public long workshopId; + public class IndexModel : PageModel + { + public ConnectedPersonnelViewModel PersonnelList; + public string WorkshopFullName; + private readonly IWorkshopApplication _workshopApplication; + private readonly IEmployeeComputeOptionsApplication _employeeComputeOptionsApplication; + private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication; + private readonly IRollCallEmployeeStatusApplication _rollCallEmployeeStatusApplication; + private readonly IEmployeeApplication _employeeApplication; + private readonly IAuthHelper _authHelper; + public long workshopId; + private readonly IWebHostEnvironment _webHostEnvironment; - public IndexModel(IAuthHelper authHelper, IWorkshopApplication workshopApplication, - IEmployeeComputeOptionsApplication employeeComputeOptionsApplication, IWebHostEnvironment webHostEnvironment) - { - _authHelper = authHelper; - _workshopApplication = workshopApplication; - _employeeComputeOptionsApplication = employeeComputeOptionsApplication; - _webHostEnvironment = webHostEnvironment; - } + public IndexModel(IAuthHelper authHelper, IWorkshopApplication workshopApplication, IEmployeeComputeOptionsApplication employeeComputeOptionsApplication, IWebHostEnvironment webHostEnvironment, IRollCallEmployeeApplication rollCallEmployeeApplication, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication, IEmployeeApplication employeeApplication) + { + _authHelper = authHelper; + _workshopApplication = workshopApplication; + _employeeComputeOptionsApplication = employeeComputeOptionsApplication; + _webHostEnvironment = webHostEnvironment; + _rollCallEmployeeApplication = rollCallEmployeeApplication; + _rollCallEmployeeStatusApplication = rollCallEmployeeStatusApplication; + _employeeApplication = employeeApplication; + } - public void OnGet(long workshopID) - { - var workshop = _workshopApplication.GetWorkshopInfo(workshopID); - WorkshopFullName = workshop.WorkshopFullName; - workshopId = workshopID; + public void OnGet(long workshopID) + { + var workshop = _workshopApplication.GetWorkshopInfo(workshopID); + WorkshopFullName = workshop.WorkshopFullName; + workshopId = workshopID; - var result = _workshopApplication.GetConnectedPersonnels(workshopID).GroupBy(x => x.PersonName) - .Select(x => x.First()).ToList(); + var result = _workshopApplication.GetConnectedPersonnels(workshopID).GroupBy(x => x.PersonName).Select(x => x.First()).ToList(); - var final = new List(); - foreach (var item in result) - { - var option = new EmployeeComputeOptionsViewModel(); - if (item.ContractPerson) - option = _employeeComputeOptionsApplication.GetEmployeeOptions(workshopID, item.EmployeeId); + var final = new List(); + foreach (var item in result) + { + var option = new EmployeeComputeOptionsViewModel(); - var finalResult = new ConnectedPersonnelViewModel - { - WorkshopId = item.WorkshopId, - EmployeeId = item.EmployeeId, - PersonName = item.PersonName, - PersonelCode = item.PersonelCode, - ContractPerson = item.ContractPerson, - InsurancePerson = item.InsurancePerson, - ContractLeft = item.ContractLeft, - InsurancetLeft = item.InsurancetLeft, - Black = item.Black, - StartWork = item.StartWork, - BonusesOptions = item.ContractPerson ? option.BonusesOptions : "null", - ComputeOptions = item.ContractPerson ? option.ComputeOptions : "null", - YearsOptions = item.ContractPerson ? option.YearsOptions : "null" - }; + option = _employeeComputeOptionsApplication.GetEmployeeOptions(workshopID, item.EmployeeId); + - final.Add(finalResult); - } + var finalResult = new ConnectedPersonnelViewModel() + { + WorkshopId = item.WorkshopId, + EmployeeId = item.EmployeeId, + PersonName = item.PersonName, + PersonelCode = item.PersonelCode, + ContractPerson = item.ContractPerson, + InsurancePerson = item.InsurancePerson, + ContractLeft = item.ContractLeft, + InsurancetLeft = item.InsurancetLeft, + Black = item.Black, + StartWork = item.StartWork, + BonusesOptions = option.BonusesOptions, + ComputeOptions = option.ComputeOptions, + YearsOptions = option.YearsOptions, + CreateContract = option.CreateContract, + CreateCheckout = option.CreateCheckout, + SignContract = option.SignContract, + SignCheckout = option.SignCheckout, + ContractTerm = option.ContractTerm, + CutContractEndOfYear = option.CutContractEndOfYear + }; - PersonnelList = new ConnectedPersonnelViewModel - { - ConnectedPersonnelViewModels = final.OrderBy(x => x.Black ? 1 : 0).ThenBy(x => x.PersonelCode).ToList() - }; - } + final.Add(finalResult); + } - public IActionResult OnGetCreate(CreateEmployeeComputeOptions command) - { - var result = _employeeComputeOptionsApplication.Create(command); - return new JsonResult(new - { - isSuccedded = result.IsSuccedded, - message = result.Message - }); - } + PersonnelList = new ConnectedPersonnelViewModel() + { + ConnectedPersonnelViewModels = final.OrderBy(x => x.Black ? 1 : 0).ThenBy(x => x.PersonelCode).ToList(), + }; + } - public IActionResult OnGetTakePicture(long employeeId, long workshopId) - { - var res = new TakePictureModel - { - EmployeeId = employeeId, - WorkshopId = workshopId - }; + public IActionResult OnPostCreate(CreateEmployeeComputeOptions command) + { + var result = _employeeComputeOptionsApplication.Create(command); + return new JsonResult(new + { + isSuccedded = result.IsSuccedded, + message = result.Message + }); + } + + public IActionResult OnGetTakePicture(long employeeId, long workshopId) + { + var res = new TakePictureModel() + { + EmployeeId = employeeId, + WorkshopId = workshopId + }; + + return Partial("TakePicture", res); + } + + public IActionResult OnPostTakePicture(string base64pic1, string base64pic2, long workshopId, long employeeId) + { + try + { + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\Faces\\{workshopId}\\{employeeId}"; + if (!Directory.Exists(directoryPath)) + Directory.CreateDirectory(directoryPath); + + var filePath1 = Path.Combine(directoryPath) + $@"\1.jpg"; + CreateImageFromBase64(base64pic1, filePath1); + var filePath2 = Path.Combine(directoryPath) + $@"\2.jpg"; + CreateImageFromBase64(base64pic2, filePath2); + + var employee = _employeeApplication.GetDetailsForClient(employeeId, workshopId); + var rollCallEmployee = _rollCallEmployeeApplication.GetByEmployeeIdAndWorkshopId(employeeId, workshopId); + + var result = new OperationResult() + { + IsSuccedded = false, + Message = " ?? " + }; + var result2 = new OperationResult() + { + IsSuccedded = false, + Message = " ?? " + }; + using var transaction = new TransactionScope(); + + if (rollCallEmployee == null) + { + var createCommand = new CreateRollCallEmployee() + { + EmployeeId = employeeId, + WorkshopId = workshopId, + EmployeeFullName = employee.EmployeeFullName, + HasUploadedImage = "true", + }; + result = _rollCallEmployeeApplication.Create(createCommand); + result2 = _rollCallEmployeeStatusApplication.Create(new CreateRollCallEmployeeStatus() + { RollCallEmployeeId = result.SendId }); + } + else + { + result = _rollCallEmployeeApplication.UploadedImage(employeeId, workshopId); + } + + if (result.IsSuccedded && result2.IsSuccedded) + { + transaction.Complete(); + return new JsonResult(new + { + IsSuccedded = result.IsSuccedded, + Message = result.Message, + src = Tools.ResizeImage(Path.Combine(_webHostEnvironment.ContentRootPath, "Faces", workshopId.ToString(), employeeId.ToString(), "1.jpg"), 150, 150) + }); + } + else + { + if (result.IsSuccedded == false) + return new JsonResult(new + { + IsSuccedded = result.IsSuccedded, + Message = result.Message, + }); + else + return new JsonResult(new + { + IsSuccedded = result2.IsSuccedded, + Message = result2.Message + }); + } + } + catch (Exception e) + { + Console.WriteLine(e); + return new JsonResult(new + { + IsSuccedded = false, + Message = e.Message, + }); + } - return Partial("TakePicture", res); - } + } - public IActionResult OnPostTakePicture(string base64pic1, string base64pic2, long workshopId, long employeeId) - { - try - { - var directoryPath = $"{_webHostEnvironment.WebRootPath}\\Faces\\{workshopId}\\{employeeId}"; - if (!Directory.Exists(directoryPath)) - Directory.CreateDirectory(directoryPath); - - var filePath1 = Path.Combine(directoryPath) + @"\1.jpg"; - CreateImageFromBase64(base64pic1, filePath1); - var filePath2 = Path.Combine(directoryPath) + @"\2.jpg"; - CreateImageFromBase64(base64pic2, filePath2); - return new JsonResult(new - { - IsSuccedded = true - }); - //var fileName = file.FileName; - - //var fileExtention = Path.GetExtension(fileName); - - //if (!string.IsNullOrWhiteSpace(filePath)) - //{ - // StoreInFolder(file, filePath); - //} - //var files = HttpContext.Request.Form.Files; - //if (files != null) - //{ - // foreach (var file in files) - // { - // if (file.Length > 0) - // { - // var fileName = file.FileName; - // var uniqName = "1"; - // var fileExtention = Path.GetExtension(fileName); - // var filePath = Path.Combine(_webHostEnvironment.WebRootPath, "Faces") + $@"\uniqName"; - // if (!string.IsNullOrWhiteSpace(filePath)) - // { - // StoreInFolder(file, filePath); - // } - // } - // } - - // return new JsonResult(new - // { - // IsSuccedded = true, - - // }); - //} - //else - //{ - // return new JsonResult(new - // { - // IsSuccedded = false, - - // }); - //} - } - catch (Exception e) - { - Console.WriteLine(e); - return new JsonResult(new - { - IsSuccedded = false - }); - } - } - - public void CreateImageFromBase64(string base64, string imagePathWithExtension) - { - var subBase64 = base64.Substring(base64.LastIndexOf(',') + 1); - //Convert the base64 to byte array - var bytes = Convert.FromBase64String(subBase64); - //Here you can save the byte array to the SQL database. You can use your own function - //bool saved = DAL.SaveUserPhoto(bytes); - //Create the physical image from the byte array - System.IO.File.WriteAllBytes(imagePathWithExtension, bytes); - } -} \ No newline at end of file + public void CreateImageFromBase64(string base64, string imagePathWithExtension) + { + var subBase64 = base64.Substring(base64.LastIndexOf(',') + 1); + //Convert the base64 to byte array + byte[] bytes = Convert.FromBase64String(subBase64); + //Here you can save the byte array to the SQL database. You can use your own function + //bool saved = DAL.SaveUserPhoto(bytes); + //Create the physical image from the byte array + System.IO.File.WriteAllBytes(imagePathWithExtension, bytes); + } + } +} diff --git a/ServiceHost/Areas/Admin/Pages/Company/Contracts/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Contracts/Index.cshtml index 3b7456d7..284170cf 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Contracts/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Contracts/Index.cshtml @@ -748,30 +748,35 @@ @item.PersonnelCode - @if (item.Signature == "1") + @if (@item.HasSignContract) { - + @if (item.Signature == "1") + { + - - - - @* + + + - - - *@ + } + else + { + + + + + + } } else { - - - + + + + - @* - - - *@ } + @{ diff --git a/ServiceHost/Areas/Admin/Pages/Company/Employees/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Employees/Create.cshtml index be5f8e23..32b0cd0e 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Employees/Create.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Employees/Create.cshtml @@ -548,37 +548,105 @@ var codeMelli = $('#iniCodeMelli').val(); try { - const response = await $.ajax({ + const response = $.ajax({ url: loadUidInfo, method: 'POST', data: { nationalCode: codeMelli, birthDate: birthday }, - headers: { "RequestVerificationToken": antiForgeryToken } + headers: { "RequestVerificationToken": antiForgeryToken }, + success: function(response) { + debugger; + if (response.success) { + $('#IsAuthorized').val(true); + $('#name').val(response.data.fName); + $('#family').val(response.data.lName); + $('#FatherName').val(response.data.fatherName); + $('#DateOfBirth').val(response.data.birthDate); + $('#code-melli').val(response.data.nationalCode); + $('#IdNumber').val(response.data.idNumber); + $('#IdNumberSerial').val(response.data.idNumberSerial); + $('#IdNumberSeri').val(response.data.idNumberSeri); + if (response.data.gender === 0) { + $('#GenderMale').prop('checked', true); + $('#soldier').prop('disabled', false); + } else if (response.data.gender === 1) { + $('#GenderFemale').prop('checked', true); + $('#soldier').prop('disabled', true); + } + currentStep++; + showStep(currentStep); + } + else if (response.data?.authorizedCanceled) { + + $('#name').removeClass("disable"); + $('#family').removeClass("disable"); + $('#FatherName').removeClass("disable"); + $('#DateOfBirth').removeClass("disable"); + $('#code-melli').removeClass("disable"); + $('#IdNumber').removeClass("disable"); + $('#IdNumberSerial').removeClass("disable"); + $('#IdNumberSeri').removeClass("disable"); + $('#GenderMale').removeClass("disable"); + $('#GenderFemale').removeClass("disable"); + $('#divGender .radio-box').removeClass('disable'); + currentStep++; + showStep(currentStep); + $.Notification.autoHideNotify('error', 'top right', 'خطا', response.message); + return; + } + else { + $.Notification.autoHideNotify('error', 'top right', 'خطا', response.message); + return; + } + }, + error:function(error) { + $.Notification.autoHideNotify('error', 'top right', 'خطا', response.message); + return; + } }); + // debugger; + // if (response.success) { + // $('#IsAuthorized').val(true); + // $('#name').val(response.data.fName); + // $('#family').val(response.data.lName); + // $('#FatherName').val(response.data.fatherName); + // $('#DateOfBirth').val(response.data.birthDate); + // $('#code-melli').val(response.data.nationalCode); + // $('#IdNumber').val(response.data.idNumber); + // $('#IdNumberSerial').val(response.data.idNumberSerial); + // $('#IdNumberSeri').val(response.data.idNumberSeri); + // if (response.data.gender === 0) { + // $('#GenderMale').prop('checked', true); + // $('#soldier').prop('disabled', false); + // } else if (response.data.gender === 1) { + // $('#GenderFemale').prop('checked', true); + // $('#soldier').prop('disabled', true); + // } + // } + // else if (response.data.authorizedCanceled) { - if (response.success) { - $('#IsAuthorized').val(true); - $('#name').val(response.data.fName); - $('#family').val(response.data.lName); - $('#FatherName').val(response.data.fatherName); - $('#DateOfBirth').val(response.data.birthDate); - $('#code-melli').val(response.data.nationalCode); - $('#IdNumber').val(response.data.idNumber); - $('#IdNumberSerial').val(response.data.idNumberSerial); - $('#IdNumberSeri').val(response.data.idNumberSeri); - if (response.data.gender === 0) { - $('#GenderMale').prop('checked', true); - $('#soldier').prop('disabled', false); - } else if (response.data.gender === 1) { - $('#GenderFemale').prop('checked', true); - $('#soldier').prop('disabled', true); - } - } else { - $.Notification.autoHideNotify('error', 'top right', 'خطا', response.message); - return; - } + // $('#name').removeClass("disable"); + // $('#family').removeClass("disable"); + // $('#FatherName').removeClass("disable"); + // $('#DateOfBirth').removeClass("disable"); + // $('#code-melli').removeClass("disable"); + // $('#IdNumber').removeClass("disable"); + // $('#IdNumberSerial').removeClass("disable"); + // $('#IdNumberSeri').removeClass("disable"); + // $('#GenderMale').removeClass("disable"); + // $('#GenderFemale').removeClass("disable"); + // $('#divGender .radio-box').removeClass('disable'); + // currentStep++; + // showStep(currentStep); + // $.Notification.autoHideNotify('error', 'top right', 'خطا', response.message); + // return; + // } + // else { + // $.Notification.autoHideNotify('error', 'top right', 'خطا', response.message); + // return; + // } - currentStep++; - showStep(currentStep); + // currentStep++; + // showStep(currentStep); } catch (error) { $.Notification.autoHideNotify('error', 'top right', 'خطا', "ارسال اطلاعات با مشکل مواجه شد."); return; diff --git a/ServiceHost/Areas/Admin/Pages/Company/Employees/CreateEmployee.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Employees/CreateEmployee.cshtml new file mode 100644 index 00000000..4df980de --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/Employees/CreateEmployee.cshtml @@ -0,0 +1,1153 @@ +@using _0_Framework.Application +@model CompanyManagment.App.Contracts.Employee.CreateEmployee + +@{ + var adminVersion = _0_Framework.Application.Version.AdminVersion; +} + + + +
+ + مشخصات پرسنل جدید +
+
+
+
مشخصات سامانه ای
+
مشخصات تکمیلی
+
مشخصات اجباری
+
احراز هویت
+
+
+
+
+
+ + + +
+ + + +

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

+
+
+
+
+ + + +

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

+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+
+
+ + + +

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

+
+
+ + + +

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

+
+
+ + + +

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

+
+
+ + + +

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

+
+
+
+
+ + + +

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

+
+
+ + + +

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

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

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

+
+
+ + + +

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

+
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+
+
+
+ اداره کار +
+
+ + +
+
+
+
+ + +
+
+
+
+ تامین اجتماعی +
+
+ + +
+
+
+
+ + +
+
+
+
+ قوه قضائیه +
+
+ + +
+
+
+
+ + +
+
+
+
+ امور مالیاتی +
+
+ + +
+
+
+
+ + +
+
+
+
+
+ +
+
+ +
+ + diff --git a/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml index 51278d85..dcfb2559 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml @@ -320,7 +320,7 @@

- ایجاد پرسنل جدید + ایجاد پرسنل جدید

ویرایش گروهی کد پرسنلی diff --git a/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs index fd0866e6..53bd9e0b 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Employees/Index.cshtml.cs @@ -161,11 +161,16 @@ public class IndexModel : PageModel #endregion + #region Create Employee File پرونده public IActionResult OnGetCreate() { return Partial("./Create"); } - + ///

+ /// ایجاد پرسنل پرونده + /// + /// + /// public IActionResult OnPostCreate(CreateEmployee command) { var children = command.CreateEmployeChildrenList.Count(x => x.DateOfBirth != null); @@ -188,8 +193,56 @@ public class IndexModel : PageModel } return new JsonResult(result); + } + #endregion + + + #region Create admin Employee + public IActionResult OnGetCreateEmployee() + { + return Partial("./CreateEmployee"); } + /// + /// ایجاد پرسنل در ادمین + /// + /// + /// + public IActionResult OnPostCreateEmployee(CreateEmployee command) + { + + var children = command.CreateEmployeChildrenList.Count(x => x.DateOfBirth != null); + command.NumberOfChildren = children.ToString(); + var result = new OperationResult(); + + if (string.IsNullOrWhiteSpace(command.NationalCode)) + return new JsonResult(result.Failed("لطفا کد ملی را وارد نمایید")); + + + if (string.IsNullOrWhiteSpace(command.MaritalStatus)) + return new JsonResult(result.Failed("لطفا وضعیت تاهل را مشخص نمایید")); + + result = _employeeApplication.Create(command); + Thread.Sleep(1000); + + if (result.IsSuccedded) + for (var i = 0; i <= children - 1; i++) + if (command.CreateEmployeChildrenList[i].DateOfBirth != null) + { + var child = new CreateEmployeChildren + { + ParentNationalCode = command.NationalCode, + DateOfBirth = command.CreateEmployeChildrenList[i].DateOfBirth, + FName = command.CreateEmployeChildrenList[i].FName, + EmployeeId = result.SendId + }; + _employeeChildrenApplication.Create(child); + } + + return new JsonResult(result); + } + #endregion + public IActionResult OnGetEdit(long id) { diff --git a/ServiceHost/Areas/Admin/Pages/Company/FilePage/CreateFile.cshtml b/ServiceHost/Areas/Admin/Pages/Company/FilePage/CreateFile.cshtml index d65ff895..5c6fb49d 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/FilePage/CreateFile.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/FilePage/CreateFile.cshtml @@ -297,7 +297,22 @@ -} - - - - - - - \ No newline at end of file + + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs index 4491ced0..4a3ec377 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/Index.cshtml.cs @@ -26,6 +26,8 @@ public class IndexModel : PageModel private readonly IInsuranceListApplication _insuranceListApplication; private readonly IInsuranceWorkshopInfoApplication _insuranceWorkshopInfoApplication; + private readonly IAuthHelper _authHelper; + private readonly IJobApplication _jobApplication; //private readonly IInsuranceEmployeeInfoApplication _insuranceEmployeeInfoApplication; @@ -45,7 +47,7 @@ public class IndexModel : PageModel IYearlySalaryApplication yearlySalaryApplication, IEmployerApplication employerApplication, IInsuranceWorkshopInfoApplication insuranceWorkshopInfoApplication, IEmployeeApplication employeeApplication, IJobApplication jobApplication, - IWebHostEnvironment webHostEnvironment) // , IInsuranceEmployeeInfoApplication insuranceEmployeeInfoApplication ) + IWebHostEnvironment webHostEnvironment, IAuthHelper authHelper) // , IInsuranceEmployeeInfoApplication insuranceEmployeeInfoApplication ) { _jobApplication = jobApplication; _insuranceListApplication = insuranceListApplication; @@ -56,6 +58,7 @@ public class IndexModel : PageModel _employeeApplication = employeeApplication; //_insuranceEmployeeInfoApplication = insuranceEmployeeInfoApplication; _webHostEnvironment = webHostEnvironment; + _authHelper = authHelper; } @@ -175,7 +178,7 @@ public class IndexModel : PageModel double included = 0; //مشمول double sumOfWorkingDays = 0; double benefitsIncludedNonContinuous = 0; //مزایای ماهانه غیر مشمول - double sumOfSalaries = 0; + double sumOfSalaries = 0; double sumOfDailyWage = 0; double insuredShare = 0; double employerShare = 0; //سهم بیمه کارفرما @@ -186,15 +189,28 @@ public class IndexModel : PageModel double benefitsIncludedContinuous = 0; double sumOfIncludedKarfarma = 0; var hasKarfarma = false; + var karfamaCount = 0; double countWithoutLeft = 0; double sumOfBaseYears = 0; double sumOfMarriedAllowance = 0; - double sumOfDailyWagePlusBaseYear = 0; - - double sumOfBenefitIncludedAndNotIncluded = 0; //مشمول و غیر مشمول + double yearlySalaryDailyWage = 0; + if (employeeDetailsForInsuranceList.Count > 0) + { + var employeeDetail = employeeDetailsForInsuranceList.First(); + var startMonthFa = $"{employeeDetail.Year}/{employeeDetail.Month.PadLeft(2, '0')}/01"; + DateTime startDateGr = startMonthFa.ToGeorgianDateTime(); + DateTime endDateGr = startMonthFa.FindeEndOfMonth() + .ToGeorgianDateTime(); + int endOfMonth = Convert.ToInt32((startMonthFa.FindeEndOfMonth()).Substring(8, 2)); + yearlySalaryDailyWage = _yearlySalaryApplication.GetInsuranceItems(startDateGr, endDateGr, employeeDetail.Year).DayliWage; + } + double sumOfDailyWagePlusBaseYear = 0; - for (var i = 0; i < employeeDetailsForInsuranceList.Count; i++) + double sumOfBenefitIncludedAndNotIncluded = 0; //مشمول و غیر مشمول + double sumOfMonthlySalaryWithoutBaseYears = 0; //جمع حقوق ماهیانه بدون پایه سنوات + + for (var i = 0; i < employeeDetailsForInsuranceList.Count; i++) { var leftWorkDay = ""; if (!string.IsNullOrWhiteSpace(employeeDetailsForInsuranceList[i].LeftWorkDate)) @@ -211,16 +227,16 @@ public class IndexModel : PageModel } //بدست آوردن جمع پایه سنواتی - var baseYear = employeeDetailsForInsuranceList[i].BaseYears * - employeeDetailsForInsuranceList[i].WorkingDays; - sumOfBaseYears += baseYear; + var baseYear = employeeDetailsForInsuranceList[i].BaseYears * + employeeDetailsForInsuranceList[i].WorkingDays; + sumOfBaseYears += baseYear; - //بدست آوردن جمع حق تاهل - sumOfMarriedAllowance += employeeDetailsForInsuranceList[i].MarriedAllowance; + //بدست آوردن جمع حق تاهل + sumOfMarriedAllowance += employeeDetailsForInsuranceList[i].MarriedAllowance; - // if (employeeDetailsForInsuranceList[i].IncludeStatus && (employeeDetailsForInsuranceList[i].JobId == 10 || employeeDetailsForInsuranceList[i].JobId == 17 || employeeDetailsForInsuranceList[i].JobId == 18 || employeeDetailsForInsuranceList[i].JobId == 16))// 10 --> karfarma - if (!employeeDetailsForInsuranceList[i].IncludeStatus && + // if (employeeDetailsForInsuranceList[i].IncludeStatus && (employeeDetailsForInsuranceList[i].JobId == 10 || employeeDetailsForInsuranceList[i].JobId == 17 || employeeDetailsForInsuranceList[i].JobId == 18 || employeeDetailsForInsuranceList[i].JobId == 16))// 10 --> karfarma + if (!employeeDetailsForInsuranceList[i].IncludeStatus && (employeeDetailsForInsuranceList[i].JobCode == "027079" || employeeDetailsForInsuranceList[i].JobCode == "024398" || employeeDetailsForInsuranceList[i].JobCode == "011015" || @@ -239,7 +255,15 @@ public class IndexModel : PageModel if (employeeDetailsForInsuranceList[i].JobCode == "024398") //کارفرما { hasKarfarma = true; - sumOfIncludedKarfarma = employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous; + sumOfIncludedKarfarma += employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous; + karfamaCount++; + } + else + { + //Mahan Changes + //مجموع حقوق ماهیانه خالص + sumOfMonthlySalaryWithoutBaseYears += + GetRoundValueWhitGovermentlist(yearlySalaryDailyWage * employeeDetailsForInsuranceList[i].WorkingDays, typeOfInsuranceSendWorkshop); } sumOfWorkingDays = sumOfWorkingDays + employeeDetailsForInsuranceList[i].WorkingDays; @@ -248,14 +272,15 @@ public class IndexModel : PageModel monthlyBenefits = monthlyBenefits + +employeeDetailsForInsuranceList[i].MonthlyBenefits; sumOfIncluded = sumOfIncluded + employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous; - sumOfDailyWagePlusBaseYear += employeeDetailsForInsuranceList[i].DailyWagePlusBaseYears; + sumOfDailyWagePlusBaseYear += employeeDetailsForInsuranceList[i].DailyWagePlusBaseYears; + - if (leftWorkDay != "01") //اگر ترک کار آن یکم ماه نبود + if (leftWorkDay != "01") //اگر ترک کار آن یکم ماه نبود sumOfBenefitIncludedAndNotIncluded += employeeDetailsForInsuranceList[i].IncludedAndNotIncluded; - benefitsIncludedNonContinuous += employeeDetailsForInsuranceList[i].BenefitsIncludedNonContinuous; - insuredShare = insuredShare + employeeDetailsForInsuranceList[i].InsuranceShare; + benefitsIncludedNonContinuous += employeeDetailsForInsuranceList[i].BenefitsIncludedNonContinuous; + insuredShare = insuredShare + employeeDetailsForInsuranceList[i].InsuranceShare; } employerShare = GetRoundValueWhitGovermentlist(sumOfIncluded * 20 / 100, typeOfInsuranceSendWorkshop); @@ -264,41 +289,85 @@ public class IndexModel : PageModel var totalEmployee = sumOfEmployees; //sumOfEmployees = sumOfEmployees - countWithoutLeft; - #region heydari - - if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 5 && !hasKarfarma) - //console.log(1); - employerShare = 0; - - if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 6 && hasKarfarma) + var workingEmployeesCount = sumOfEmployees - countWithoutLeft; //تعداد کارگران بدون ترک کار + if (hasKarfarma) { - //console.log(sumOfIncludedKarfarma); - var result = sumOfIncludedKarfarma * 20 / 100; - employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + workingEmployeesCount -= karfamaCount; //تعداد کارگران بدون ترک کار و بدون کارفرما + } + + if (typeOfInsuranceSendWorkshop == "Govermentlist") + { + if (workingEmployeesCount <= 5) + { + var result = ((sumOfIncluded - sumOfMonthlySalaryWithoutBaseYears) * 20 / 100); + employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + if (hasKarfarma) + { + employerShare += (sumOfIncludedKarfarma * 20 / 100); + } + } + else + { + var governmentPay = (sumOfMonthlySalaryWithoutBaseYears / workingEmployeesCount) * 5; + var extraAmount = sumOfMonthlySalaryWithoutBaseYears - governmentPay; + + var employeeSumOfIncluded = sumOfIncluded - sumOfIncludedKarfarma; + + var employeesBenefits = employeeSumOfIncluded - sumOfMonthlySalaryWithoutBaseYears; + + var result = extraAmount + employeesBenefits; + employerShare = result * 20 / 100; + if (hasKarfarma) + { + var karfarmaShare = sumOfIncludedKarfarma * 20 / 100; + employerShare += GetRoundValueWhitGovermentlist(karfarmaShare, typeOfInsuranceSendWorkshop); + } + } } - if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft >= 6 && !hasKarfarma) - { - //ابتدا جمع کل مزایا به دست می آید - //جمع کل مزایا تقسیم بر تعداد کارگران منهای کسانی که ترک کار کرده اند. - //حاصل عبارت بالا در 5 ضرب میشو یعنی میانگینی برای محاسبه قیمت 5 نفر حساب می کنیم تا از طریق دولت پرداخت شود + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 5 && !hasKarfarma) + //{ + // employerShare = 0; - var result = (sumOfIncluded - sumOfIncluded / (sumOfEmployees - countWithoutLeft) * 5) * 20 / 100; + //} + ////console.log(1); - employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); - } + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 6 && hasKarfarma) + //{ + // //console.log(sumOfIncludedKarfarma); + // var result = sumOfIncludedKarfarma * 20 / 100; + // employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + //} - if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft > 6 && hasKarfarma) - { - // console.log(4); - //مجموع حقوق و مزایای ماهانه مشمول - حقوق و مزایای ماهانه مشمول کارفرما - var sum = sumOfIncluded - sumOfIncludedKarfarma; //ستون مربوط به کارفرما محاسبه نمی شود - var result = (sum - sum / (sumOfEmployees - countWithoutLeft - 1) * 5 + sumOfIncludedKarfarma) * 20 / 100; - employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); - } - #endregion + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft >= 6 && !hasKarfarma) + //{ + // //ابتدا جمع کل مزایا به دست می آید + // //جمع کل مزایا تقسیم بر تعداد کارگران منهای کسانی که ترک کار کرده اند. + // //حاصل عبارت بالا در 5 ضرب میشو یعنی میانگینی برای محاسبه قیمت 5 نفر حساب می کنیم تا از طریق دولت پرداخت شود + + // var result = (sumOfIncluded - sumOfIncluded / (sumOfEmployees - countWithoutLeft) * 5) * 20 / 100; + + // employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + //} + + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft > 6 && hasKarfarma) + //{ + // // console.log(4); + // //مجموع حقوق و مزایای ماهانه مشمول - حقوق و مزایای ماهانه مشمول کارفرما + // var sum = sumOfIncluded - sumOfIncludedKarfarma; //ستون مربوط به کارفرما محاسبه نمی شود + // var result = (sum - sum / (sumOfEmployees - countWithoutLeft - 1) * 5 + sumOfIncludedKarfarma) * 20 / 100; + // employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + //} + + ////اگر گارگاه کمک دولت بود بعد از اجرای فرمول ها + ////بیست درصد از اختلاف ( مجموع حقوق خالص با مجموع مزایای مشمول ) به سهم کارفرما اضافه میشود + //if (typeOfInsuranceSendWorkshop == "Govermentlist") + //{ + + //} + //sumOfIncluded مجموع حقوق و مزایای ماهیانه مشمول // عادی @@ -396,18 +465,18 @@ public class IndexModel : PageModel //جمع پایه سنواتی SumOfBaseYears = sumOfBaseYears.ToMoney(), //جمع حق تاهل - SumOfMarriedAllowance = sumOfMarriedAllowance.ToMoney(), + SumOfMarriedAllowance = sumOfMarriedAllowance.ToMoney(), - //جمع دستمزد روزانه + پایه سنوات روزانه - SumOfDailyWagePlusBaseYears = sumOfDailyWagePlusBaseYear.ToMoney(), + //جمع دستمزد روزانه + پایه سنوات روزانه + SumOfDailyWagePlusBaseYears = sumOfDailyWagePlusBaseYear.ToMoney(), //جمع مزایای غیر مشمول - SumOfBenefitsIncludedNonContinuous = benefitsIncludedNonContinuous.ToMoney(), + SumOfBenefitsIncludedNonContinuous = benefitsIncludedNonContinuous.ToMoney(), - }); + }); } - - + + public IActionResult OnPostCreate(CreateInsuranceList command) { //var result =new OperationResult(); @@ -559,14 +628,14 @@ public class IndexModel : PageModel odbf.Header.AddColumn(new DbfColumn("DSK_DISC", DbfColumn.DbfColumnType.Character, 100, 0)); //تعداد کارکنان odbf.Header.AddColumn(new DbfColumn("DSK_NUM", DbfColumn.DbfColumnType.Number, 5, 0)); - //مجموع روزهای کارکرد کارکنان - odbf.Header.AddColumn(new DbfColumn("DSK_TDD", DbfColumn.DbfColumnType.Number, 6, 0)); + //مجموع روزهای کارکرد کارکنان + odbf.Header.AddColumn(new DbfColumn("DSK_TDD", DbfColumn.DbfColumnType.Number, 6, 0)); //مجموع دستمزد روزانه کارکنان odbf.Header.AddColumn(new DbfColumn("DSK_TROOZ", DbfColumn.DbfColumnType.Number, 12, 0)); //مجموع دستمزد ماهانه کارکنان odbf.Header.AddColumn(new DbfColumn("DSK_TMAH", DbfColumn.DbfColumnType.Number, 12, 0)); - //مجموع مزایای ماهانه مشمول - odbf.Header.AddColumn(new DbfColumn("DSK_TMAZ", DbfColumn.DbfColumnType.Number, 12, 0)); + //مجموع مزایای ماهانه مشمول + odbf.Header.AddColumn(new DbfColumn("DSK_TMAZ", DbfColumn.DbfColumnType.Number, 12, 0)); //مجموع دستمزد و مزایای ماهانه مشمول odbf.Header.AddColumn(new DbfColumn("DSK_TMASH", DbfColumn.DbfColumnType.Number, 12, 0)); // مجموع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول @@ -586,11 +655,11 @@ public class IndexModel : PageModel //ردیف پیمان odbf.Header.AddColumn(new DbfColumn("MON_PYM", DbfColumn.DbfColumnType.Character, 3, 0)); - //مجموع پایه سنواتی ها - odbf.Header.AddColumn(new DbfColumn("DSK_INC", DbfColumn.DbfColumnType.Character, 12, 0)); - //مجموع حق تاهل ها - odbf.Header.AddColumn(new DbfColumn("DSK_SPOUSE", DbfColumn.DbfColumnType.Character, 12, 0)); - var orec = new DbfRecord(odbf.Header); + //مجموع پایه سنواتی ها + odbf.Header.AddColumn(new DbfColumn("DSK_INC", DbfColumn.DbfColumnType.Character, 12, 0)); + //مجموع حق تاهل ها + odbf.Header.AddColumn(new DbfColumn("DSK_SPOUSE", DbfColumn.DbfColumnType.Character, 12, 0)); + var orec = new DbfRecord(odbf.Header); //کد کارگاه orec[0] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.InsuranceCode, 10); @@ -612,12 +681,12 @@ public class IndexModel : PageModel orec[8] = GetSpecifiedCharactes("", 100).ToIranSystem(); //تعداد کرکنان orec[9] = createInsuranceList.SumOfEmployees.ToString(); - //مجموع روزهای کارکرد کارکنان - orec[10] = createInsuranceList.SumOfWorkingDays.ToString(); + //مجموع روزهای کارکرد کارکنان + orec[10] = createInsuranceList.SumOfWorkingDays.ToString(); //مجموع دستمزد روزانه کارکنان orec[11] = createInsuranceList.SumOfDailyWage.ToString(); - //مجموع دستمزد ماهانه کارکنان - orec[12] = createInsuranceList.SumOfSalaries.ToString(); + //مجموع دستمزد ماهانه کارکنان + orec[12] = createInsuranceList.SumOfSalaries.ToString(); //مجموع مزایای ماهانه مشمول orec[13] = createInsuranceList.SumOfBenefitsIncluded.ToString(); //مجموع دستمزد و مزایای ماهانه مشمول @@ -628,7 +697,7 @@ public class IndexModel : PageModel orec[16] = createInsuranceList.InsuredShare.ToString(); //مجموع حق بیمه سهم کارفرما orec[17] = createInsuranceList.EmployerShare.ToString(); //"44911361"; - //مجموع حق بیمه بیکاری + //مجموع حق بیمه بیکاری orec[18] = createInsuranceList.UnEmploymentInsurance.ToString(); //نرخ حق بیمه orec[19] = "23"; @@ -639,18 +708,18 @@ public class IndexModel : PageModel //ردیف پیمان orec[22] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.AgreementNumber, 12); - //مجموع پایه سنواتی ها - orec[23] = createInsuranceList.SumOfBaseYears.ToString(); + //مجموع پایه سنواتی ها + orec[23] = createInsuranceList.SumOfBaseYears.ToString(); - //مجموع حق تاهل ها - orec[24] = createInsuranceList.SumOfMarriedAllowance.ToString(); + //مجموع حق تاهل ها + orec[24] = createInsuranceList.SumOfMarriedAllowance.ToString(); - odbf.Write(orec); + odbf.Write(orec); //odbf.Header.RecordCount = 50; odbf.WriteHeader(); odbf.Close(); } - + //ایجاد فایل پرسنل - DSW if (createInsuranceList.EmployeeInsurancListDataList != null) { @@ -712,12 +781,12 @@ public class IndexModel : PageModel // کد ملی dsw.Header.AddColumn(new DbfColumn("PER_NATCOD", DbfColumn.DbfColumnType.Character, 10, 0)); - // پایه سنوات - dsw.Header.AddColumn(new DbfColumn("DSW_INC", DbfColumn.DbfColumnType.Number, 12, 0)); - // حق تاهل - dsw.Header.AddColumn(new DbfColumn("DSW_SPOUSE", DbfColumn.DbfColumnType.Number, 12, 0)); + // پایه سنوات + dsw.Header.AddColumn(new DbfColumn("DSW_INC", DbfColumn.DbfColumnType.Number, 12, 0)); + // حق تاهل + dsw.Header.AddColumn(new DbfColumn("DSW_SPOUSE", DbfColumn.DbfColumnType.Number, 12, 0)); - foreach (var item in createInsuranceList.EmployeeInsurancListDataList) + foreach (var item in createInsuranceList.EmployeeInsurancListDataList) { var employee = createInsuranceList.EmployeeDetailsForInsuranceList.FirstOrDefault(p => p.EmployeeId == item.EmployeeId); @@ -795,12 +864,12 @@ public class IndexModel : PageModel //کد ملی dswrec[26] = employee.NationalCode; - //پایه سنوات - dswrec[27] = item.BaseYears.ToString(); - //حق تاهل - dswrec[28] = item.MarriedAllowance.ToString(); + //پایه سنوات + dswrec[27] = item.BaseYears.ToString(); + //حق تاهل + dswrec[28] = item.MarriedAllowance.ToString(); - dsw.Write(dswrec); + dsw.Write(dswrec); } @@ -842,18 +911,18 @@ public class IndexModel : PageModel return Partial("Edit", insurance); } - //-2 - /// - /// لود اطلاعات پرسنل در مودال ویرایش بیمه -- DSKWOR - /// محاسبه تب پرسنل - /// - /// - /// - public IActionResult OnGetEmployeeListForEdit(EmployeeForEditInsuranceListSearchModel searchModel) + //-2 + /// + /// لود اطلاعات پرسنل در مودال ویرایش بیمه -- DSKWOR + /// محاسبه تب پرسنل + /// + /// + /// + public IActionResult OnGetEmployeeListForEdit(EmployeeForEditInsuranceListSearchModel searchModel) { - // var result = _insuranceListApplication.SearchEmployeeListForEditByInsuranceListId(searchModel); - var result = _insuranceListApplication.GetEmployeeListForEditByInsuranceListId(searchModel); - return Partial("./EmployeeListForEdit", result); + // var result = _insuranceListApplication.SearchEmployeeListForEditByInsuranceListId(searchModel); + var result = _insuranceListApplication.GetEmployeeListForEditByInsuranceListId(searchModel); + return Partial("./EmployeeListForEdit", result); } //-3 @@ -896,7 +965,7 @@ public class IndexModel : PageModel } return new JsonResult(result); - } + } #endregion public IActionResult OnGetInsuranceSummary(long id) @@ -922,7 +991,7 @@ public class IndexModel : PageModel string benefitsIncludedContinuous, string jobId, string housingAllowance, string includeStatus, string consumableItems, string endMonthCurrentDay, long employeeId, double maritalStatus, double baseYear) { - if(workingDays == "0") + if (workingDays == "0") return new JsonResult(new { monthlySalaryPlusBaseYear = "0", @@ -936,15 +1005,15 @@ public class IndexModel : PageModel baseYears = "0", }); - + var benefitsIncludedContinuousL = benefitsIncludedContinuous.MoneyToDouble(); - bool isManager = jobId is "10" or "16" or "17" or "18" or "3498"; + bool isManager = jobId is "10" or "16" or "17" or "18" or "3498"; //if (isManager && includeStatus !="1") شنبه if (isManager) maritalStatus = 0; - double sum = 0; + double sum = 0; var employeeMaritalStatus = _employeeApplication.GetDetails(employeeId); if (employeeMaritalStatus.MaritalStatus == "متاهل") sum = consumableItems.MoneyToDouble() + housingAllowance.MoneyToDouble() + maritalStatus; @@ -957,10 +1026,10 @@ public class IndexModel : PageModel var jobIdL = Convert.ToInt64(jobId); var includeStatusL = Convert.ToInt64(includeStatus); var dailyWageL = (dailyWage.MoneyToDouble()) + baseYear; - var dailyWageWithOutBaseYear = dailyWage.MoneyToDouble(); + var dailyWageWithOutBaseYear = dailyWage.MoneyToDouble(); - if (workingDaysL == endMonthCurrentDayL) benefitsIncludedContinuousL = sum; + if (workingDaysL == endMonthCurrentDayL) benefitsIncludedContinuousL = sum; //farokhiChanges if (employeeId == 42783) benefitsIncludedContinuousL = 53082855; @@ -983,24 +1052,24 @@ public class IndexModel : PageModel // benefitsIncludedContinuousL = 0; //} if (isManager && includeStatus != "1") - benefitsIncludedContinuousL = 0; + benefitsIncludedContinuousL = 0; var monthlySalaryL = workingDaysL * dailyWageL; var insuranceShareL = (benefitsIncludedContinuousL + monthlySalaryL) * 7 / 100; insuranceShareL = _insuranceListApplication.GetRoundValue(insuranceShareL); - var monthlySalaryWithOutBaseYear = workingDaysL * dailyWageWithOutBaseYear; - //var persianBefore = ""; - //var year = Convert.ToInt32(date.Substring(0, 4)); - //var month = Convert.ToInt32(date.Substring(5, 2)); - //var day = Convert.ToInt32(date.Substring(8, 2)); - //var persianDate = new PersianDateTime(year, month, day); - //var persianBeforeDate = persianDate.AddDays(-1); - //persianBefore = persianBeforeDate.ToString("yyyy/MM/dd"); + var monthlySalaryWithOutBaseYear = workingDaysL * dailyWageWithOutBaseYear; + //var persianBefore = ""; + //var year = Convert.ToInt32(date.Substring(0, 4)); + //var month = Convert.ToInt32(date.Substring(5, 2)); + //var day = Convert.ToInt32(date.Substring(8, 2)); + //var persianDate = new PersianDateTime(year, month, day); + //var persianBeforeDate = persianDate.AddDays(-1); + //persianBefore = persianBeforeDate.ToString("yyyy/MM/dd"); - if (benefitsIncludedContinuousL == 0 && monthlySalaryL == 0 && insuranceShareL == 0 && dailyWageL == 0) + if (benefitsIncludedContinuousL == 0 && monthlySalaryL == 0 && insuranceShareL == 0 && dailyWageL == 0) workingDaysL = 0; if (benefitsIncludedContinuousL == 0 && monthlySalaryL == 0 && insuranceShareL == 0 && - workingDaysL == 0) dailyWageL = 0; + workingDaysL == 0) dailyWageL = 0; var includeStatusBool = includeStatus == "1"; double marridAllowance = 0; @@ -1010,23 +1079,23 @@ public class IndexModel : PageModel includeStatusBool, Convert.ToInt32(workingDays), maritalStatus, Convert.ToInt32(endMonthCurrentDay)); } - var baseYears = baseYear; + var baseYears = baseYear; Console.WriteLine(baseYears); return new JsonResult(new { - monthlySalaryPlusBaseYear = monthlySalaryL.ToMoney(), - monthlySalary = monthlySalaryWithOutBaseYear.ToMoney(), + monthlySalaryPlusBaseYear = monthlySalaryL.ToMoney(), + monthlySalary = monthlySalaryWithOutBaseYear.ToMoney(), benefitsIncludedContinuous = benefitsIncludedContinuousL.ToMoney(), insuranceShare = insuranceShareL.ToMoney(), workingDay = workingDaysL, dailyWag = dailyWageWithOutBaseYear.ToMoney(), - dailyWagePlusBaseYear = dailyWageL, + dailyWagePlusBaseYear = dailyWageL, marriedAllowance = marridAllowance.ToMoney(), baseYears = baseYears.ToMoney(), - }); + }); } - + public double GetRoundValueWhitGovermentlist(double value, string type) { @@ -1078,4 +1147,51 @@ public class IndexModel : PageModel } #endregion + + #region Insurance Operations + + public IActionResult OnGetSearchNew(InsuranceListSearchModel searchModel) + { + var resultData = _insuranceListApplication.Search(searchModel); + + return new JsonResult(new + { + success = true, + data = resultData, + pageIndex = resultData.Count + }); + } + + public async Task OnGetTabCounts(InsuranceListSearchModel searchModel) + { + + var resultData = await _insuranceListApplication.GetTabCounts(searchModel); + + return new JsonResult(new + { + notStarted = resultData.NotStarted, + inProgress = resultData.InProgress, + readyToSendList = resultData.ReadyToSendList, + done = resultData.Done, + }); + } + + public async Task OnGetOperationsModal(long id) + { + var command = await _insuranceListApplication.GetInsuranceOperationDetails(id); + return Partial("_Partials/OperationsModal", command); + } + + public async Task OnPostSaveOperationsModal(InsuranceListConfirmOperation command) + { + var result = await _insuranceListApplication.ConfirmInsuranceOperation(command); + + return new JsonResult(new + { + success = result.IsSuccedded, + message = result.Message, + }); + } + + #endregion } \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/IndexOld.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/IndexOld.cshtml new file mode 100644 index 00000000..7b2d0263 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/IndexOld.cshtml @@ -0,0 +1,662 @@ +@page +@model ServiceHost.Areas.Admin.Pages.Company.InsuranceList.IndexOldModel + +@{ + string adminVersion = _0_Framework.Application.Version.AdminVersion; + Layout = "Shared/_AdminLayout"; + ViewData["title"] = "بیمه"; + var selctedOption = "selectedOption"; +} + +@*select2 css start*@ + + +
+
+ +

+ @* pull-right *@ + مودال ویرایش + ایجاد لیست بیمه +

+
+
+
+
+ +
+
+ @*===================================================================================================================*@ +
+
+
+
+
+
+
انتخاب تاریخ
+
+ + +
+
+ + +
+
+
+ + +
+
+ + + + + + @* *@ +
+
+ + + + + + @* *@ +
+
+
+
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+
+
+
+
+ + حذف جستجو +
+
+
+
+
+
+
+
+
+
+
+
+
+
+

لیست بیمه ی کارگاه ها

+
+
+
+
+ +
+
+
+
+
+
+ + + + +@section Script + { + + + + + + + +} + + + + + + + + \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/IndexOld.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/IndexOld.cshtml.cs new file mode 100644 index 00000000..92ef135b --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/IndexOld.cshtml.cs @@ -0,0 +1,1115 @@ +using System.Text; +using _0_Framework.Application; +using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects; +using Company.Domain.EmployeeAgg; +using CompanyManagment.App.Contracts.Employee; +using CompanyManagment.App.Contracts.Employer; +using CompanyManagment.App.Contracts.InsuranceList; +using CompanyManagment.App.Contracts.InsuranceWorkshopInfo; +using CompanyManagment.App.Contracts.Job; +using CompanyManagment.App.Contracts.Workshop; +using CompanyManagment.App.Contracts.YearlySalary; +using MD.PersianDateTime.Standard; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.Rendering; +using SocialExplorer.IO.FastDBF; + +namespace ServiceHost.Areas.Admin.Pages.Company.InsuranceList; + +[Authorize] +public class IndexOldModel : PageModel +{ + private readonly IEmployeeApplication _employeeApplication; + private readonly IEmployerApplication _employerApplication; + private readonly IInsuranceListApplication _insuranceListApplication; + private readonly IInsuranceWorkshopInfoApplication _insuranceWorkshopInfoApplication; + + private readonly IJobApplication _jobApplication; + + //private readonly IInsuranceEmployeeInfoApplication _insuranceEmployeeInfoApplication; + private readonly IWebHostEnvironment _webHostEnvironment; + private readonly IWorkshopApplication _workshopApplication; + private readonly IYearlySalaryApplication _yearlySalaryApplication; + public string BeforCurrentMonth_; + public string CurrentYear_; + public string EmployerFullName; + public InsuranceListSearchModel searchModel; + public string WorkshopFullName; + + + public List YearlyList; + + public IndexOldModel(IInsuranceListApplication insuranceListApplication, IWorkshopApplication workshopApplication, + IYearlySalaryApplication yearlySalaryApplication, IEmployerApplication employerApplication, + IInsuranceWorkshopInfoApplication insuranceWorkshopInfoApplication, IEmployeeApplication employeeApplication, + IJobApplication jobApplication, + IWebHostEnvironment webHostEnvironment) // , IInsuranceEmployeeInfoApplication insuranceEmployeeInfoApplication ) + { + _jobApplication = jobApplication; + _insuranceListApplication = insuranceListApplication; + _workshopApplication = workshopApplication; + _yearlySalaryApplication = yearlySalaryApplication; + _employerApplication = employerApplication; + _insuranceWorkshopInfoApplication = insuranceWorkshopInfoApplication; + _employeeApplication = employeeApplication; + //_insuranceEmployeeInfoApplication = insuranceEmployeeInfoApplication; + _webHostEnvironment = webHostEnvironment; + } + + + #region MainPageList + + public void OnGet() + { + var date = DateTime.Now.ToFarsi(); + var year = Convert.ToInt32(date.Substring(0, 4)); + var month = Convert.ToInt32(date.Substring(5, 2)); + var day = Convert.ToInt32(date.Substring(8, 2)); + var persianDate = new PersianDateTime(year, month, day); + var persianBeforeDate = persianDate.AddMonths(-1).ToString("yyyy/MM/dd"); + BeforCurrentMonth_ = persianBeforeDate.Substring(5, 2); + CurrentYear_ = persianBeforeDate.Substring(0, 4); + YearlyList = _yearlySalaryApplication.GetYears(); + } + + /// + /// لیستهای بیمه صفحه اصلی + /// + /// + /// + public IActionResult OnGetSearch(InsuranceListSearchModel searchModel) + { + var searchResult = _insuranceListApplication.Search(searchModel); + + + + var result = new MainViewModel(); + result.MainList = searchResult; + + + return Partial("./MainSearch", result); + } + #endregion + + #region CreateInsurance + //-1 + /// + /// دکمه ایجاد لیست بیمه + /// + /// + public IActionResult OnGetCreate() + { + var date = DateTime.Now.ToFarsi(); + var year = Convert.ToInt32(date.Substring(0, 4)); + var month = Convert.ToInt32(date.Substring(5, 2)); + var day = Convert.ToInt32(date.Substring(8, 2)); + var persianDate = new PersianDateTime(year, month, day); + var persianBeforeDate = persianDate.AddMonths(-1).ToString("yyyy/MM/dd"); + + //کارگاه هایی نوع ارسال لیست بیمه آنها مشخص شده + var workshopList = _workshopApplication.GetWorkshopSelectListInsuransce(); + var command = new CreateInsuranceList + { + WorkShopSelectList = new SelectList(workshopList, "Id", "WorkshopFullName"), + YearList = _yearlySalaryApplication.GetYears(), + //ماه قبل + BeforCurrentMonth = persianBeforeDate.Substring(5, 2), + //سال جاری + CurrentYear = persianBeforeDate.Substring(0, 4), + + InsuranceWorkshopInfo = new InsuranceWorkshopInfoViewModel(), + }; + return Partial("./Create", command); + } + + //-2 + /// + /// دریافت اطلاعات کارگاه وکارفرما برای نمایش در مودال ایجاد بیمه + /// + /// + /// + public IActionResult OnPostGetEmployerAndWorkshopInfo(int workshopId) + { + + var workshopInfo = _insuranceWorkshopInfoApplication.GetDetails(workshopId); + var employer = _employerApplication.InsuranceEmployerByWorkshopId(workshopId); + + return new JsonResult(new + { + EmployerNames = employer.employerName, + WorkshopInfo = workshopInfo, + IsLegal = employer.isLegal + }); + } + + + //-3 + /// + /// لود اطلاعات پرسنل در مودال ایجاد بیمه -- DSKWOR + /// محاسبه تب پرسنل + /// + /// + /// + public IActionResult OnGetEmployeeSearch(EmployeeForCreateInsuranceListSearchModel searchModel) + { + var result = _insuranceListApplication.SearchEmployeeForCreateInsuranceList(searchModel); + return Partial("./EmployeeDatatable", result); + } + + + // -4 + /// + /// زمان لود مودال ایجاد یا ویرایش محاسبه - DSSKAR + /// محاسبه تب کارگاه + /// + /// + /// + /// + public IActionResult OnPostComputeInsuranceList( + List employeeDetailsForInsuranceList, + string typeOfInsuranceSendWorkshop) + { + double sumOfEmployees = employeeDetailsForInsuranceList.Count(); + double included = 0; //مشمول + double sumOfWorkingDays = 0; + double benefitsIncludedNonContinuous = 0; //مزایای ماهانه غیر مشمول + double sumOfSalaries = 0; + double sumOfDailyWage = 0; + double insuredShare = 0; + double employerShare = 0; //سهم بیمه کارفرما + double sumOfIncluded = 0; + double unEmploymentInsurance = 0; //سهم بیمه بیکاری + double monthlyBenefits = 0; //مزایای ماهیانه + double sumForunEmploymentInsurance = 0; + double benefitsIncludedContinuous = 0; + double sumOfIncludedKarfarma = 0; + var hasKarfarma = false; + double countWithoutLeft = 0; + double sumOfBaseYears = 0; + double sumOfMarriedAllowance = 0; + double sumOfDailyWagePlusBaseYear = 0; + + double sumOfBenefitIncludedAndNotIncluded = 0; //مشمول و غیر مشمول + + + for (var i = 0; i < employeeDetailsForInsuranceList.Count; i++) + { + var leftWorkDay = ""; + if (!string.IsNullOrWhiteSpace(employeeDetailsForInsuranceList[i].LeftWorkDate)) + { + leftWorkDay = employeeDetailsForInsuranceList[i].LeftWorkDate.Substring(8, 2); + if (leftWorkDay == "01") + countWithoutLeft = countWithoutLeft + 1; + else + leftWorkDay = ""; + } + else + { + leftWorkDay = ""; + } + + //بدست آوردن جمع پایه سنواتی + var baseYear = employeeDetailsForInsuranceList[i].BaseYears * + employeeDetailsForInsuranceList[i].WorkingDays; + sumOfBaseYears += baseYear; + + //بدست آوردن جمع حق تاهل + sumOfMarriedAllowance += employeeDetailsForInsuranceList[i].MarriedAllowance; + + + // if (employeeDetailsForInsuranceList[i].IncludeStatus && (employeeDetailsForInsuranceList[i].JobId == 10 || employeeDetailsForInsuranceList[i].JobId == 17 || employeeDetailsForInsuranceList[i].JobId == 18 || employeeDetailsForInsuranceList[i].JobId == 16))// 10 --> karfarma + if (!employeeDetailsForInsuranceList[i].IncludeStatus && + (employeeDetailsForInsuranceList[i].JobCode == "027079" || + employeeDetailsForInsuranceList[i].JobCode == "024398" || + employeeDetailsForInsuranceList[i].JobCode == "011015" || + employeeDetailsForInsuranceList[i].JobCode == "020010")) // 10 --> karfarma + { + benefitsIncludedContinuous = 0; + sumForunEmploymentInsurance = sumForunEmploymentInsurance; + } + else + { + sumForunEmploymentInsurance = sumForunEmploymentInsurance + + employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous; + } + + //if (employeeDetailsForInsuranceList[i].JobId == 10)//کارفرما + if (employeeDetailsForInsuranceList[i].JobCode == "024398") //کارفرما + { + hasKarfarma = true; + sumOfIncludedKarfarma = employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous; + } + + sumOfWorkingDays = sumOfWorkingDays + employeeDetailsForInsuranceList[i].WorkingDays; + sumOfDailyWage = sumOfDailyWage + employeeDetailsForInsuranceList[i].DailyWage; + sumOfSalaries = sumOfSalaries + employeeDetailsForInsuranceList[i].MonthlySalary; + monthlyBenefits = monthlyBenefits + +employeeDetailsForInsuranceList[i].MonthlyBenefits; + sumOfIncluded = sumOfIncluded + employeeDetailsForInsuranceList[i].BenefitsIncludedContinuous; + + sumOfDailyWagePlusBaseYear += employeeDetailsForInsuranceList[i].DailyWagePlusBaseYears; + + + if (leftWorkDay != "01") //اگر ترک کار آن یکم ماه نبود + sumOfBenefitIncludedAndNotIncluded += employeeDetailsForInsuranceList[i].IncludedAndNotIncluded; + + benefitsIncludedNonContinuous += employeeDetailsForInsuranceList[i].BenefitsIncludedNonContinuous; + insuredShare = insuredShare + employeeDetailsForInsuranceList[i].InsuranceShare; + } + + employerShare = GetRoundValueWhitGovermentlist(sumOfIncluded * 20 / 100, typeOfInsuranceSendWorkshop); + unEmploymentInsurance = + GetRoundValueWhitGovermentlist(sumForunEmploymentInsurance * 3 / 100, typeOfInsuranceSendWorkshop); + var totalEmployee = sumOfEmployees; + //sumOfEmployees = sumOfEmployees - countWithoutLeft; + + #region heydari + + if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 5 && !hasKarfarma) + //console.log(1); + employerShare = 0; + + if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft <= 6 && hasKarfarma) + { + //console.log(sumOfIncludedKarfarma); + var result = sumOfIncludedKarfarma * 20 / 100; + employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + } + + + if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft >= 6 && !hasKarfarma) + { + //ابتدا جمع کل مزایا به دست می آید + //جمع کل مزایا تقسیم بر تعداد کارگران منهای کسانی که ترک کار کرده اند. + //حاصل عبارت بالا در 5 ضرب میشو یعنی میانگینی برای محاسبه قیمت 5 نفر حساب می کنیم تا از طریق دولت پرداخت شود + + var result = (sumOfIncluded - sumOfIncluded / (sumOfEmployees - countWithoutLeft) * 5) * 20 / 100; + + employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + } + + if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees - countWithoutLeft > 6 && hasKarfarma) + { + // console.log(4); + //مجموع حقوق و مزایای ماهانه مشمول - حقوق و مزایای ماهانه مشمول کارفرما + var sum = sumOfIncluded - sumOfIncludedKarfarma; //ستون مربوط به کارفرما محاسبه نمی شود + var result = (sum - sum / (sumOfEmployees - countWithoutLeft - 1) * 5 + sumOfIncludedKarfarma) * 20 / 100; + employerShare = GetRoundValueWhitGovermentlist(result, typeOfInsuranceSendWorkshop); + } + + #endregion + + //sumOfIncluded مجموع حقوق و مزایای ماهیانه مشمول + // عادی + //if (typeOfInsuranceSendWorkshop != "Govermentlist" && !hasKarfarma) + //{ + + // var empployerShare = (sumOfIncluded * 20) / 100; //سهم حق کارفرما + // insuredShare = (sumOfIncluded * 7) / 100; //سهم حق بیمه شده + // unEmploymentInsurance = (sumOfIncluded * 3) / 100; //بیمه بیکاری + // employerShare = GetRoundValueWhitGovermentlist(empployerShare, typeOfInsuranceSendWorkshop); + //} + //else if (typeOfInsuranceSendWorkshop != "Govermentlist" && hasKarfarma) + //{ + // var tweniSeven = (sumOfIncludedKarfarma * 27) / 100; + // var sum = sumOfIncluded - sumOfIncludedKarfarma; + // var tweni= (sum * 20) / 100; + // var empployerShare = tweniSeven + tweni; + + // insuredShare = (sum * 7) / 100; + // unEmploymentInsurance = (sum * 3) / 100; + + // employerShare = GetRoundValueWhitGovermentlist(empployerShare, typeOfInsuranceSendWorkshop); + //} + + // کمک دولت + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees <= 5 && !hasKarfarma) + //{ //console.log(1); + // employerShare = 0; + //} + + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees <= 6 && hasKarfarma) + //{ + // var tweniSeven = (sumOfIncludedKarfarma * 27) / 100; + // var sum = sumOfIncluded - sumOfIncludedKarfarma; + // insuredShare = (sum * 7) / 100; + // unEmploymentInsurance = (sum * 3) / 100; + + // employerShare = GetRoundValueWhitGovermentlist(tweniSeven, typeOfInsuranceSendWorkshop); + //} + + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees >= 6 && !hasKarfarma) + //{ + + + // var person = sumOfEmployees - 5; + // var divide = sumOfIncluded / sumOfEmployees; + // var result = divide * person; + // var finalresult = (result * 20) / 100; + // employerShare = GetRoundValueWhitGovermentlist(finalresult, typeOfInsuranceSendWorkshop); + // // employerShare =getRoundValue(((sumOfIncluded/sumOfEmployees)*(sumOfEmployees-5))*20/100); + //} + + //if (typeOfInsuranceSendWorkshop == "Govermentlist" && sumOfEmployees > 6 && hasKarfarma) + //{ // console.log(4); + // var sum = sumOfIncluded - sumOfIncludedKarfarma;//ستون مربوط به کارفرما محاسبه نمی شود + // sumOfEmployees = sumOfEmployees - 1; + + // var person = sumOfEmployees - 5; + // var divide = sum / sumOfEmployees; + // var result = divide * person; + // var finalresult = (result * 20) / 100; + // var toeniSeven = (sumOfIncludedKarfarma * 27) / 100; + // var sumOfUp = finalresult + toeniSeven; + // insuredShare = (sum * 7) / 100; + // var treePercent = (sum * 3) / 100; + // employerShare = GetRoundValueWhitGovermentlist(sumOfUp, typeOfInsuranceSendWorkshop); + + + //} + + + return new JsonResult(new + { + //تعداد نفرات + SumOfEmployees = totalEmployee, + //جمع حقوق ماهیانه + SumOfSalaries = sumOfSalaries.ToMoney(), + //جمع دستمزد روزانه + SumOfDailyWage = sumOfDailyWage.ToMoney(), + //جمع روزهای کارکرد + SumOfWorkingDays = sumOfWorkingDays, + //جمع مزایای ماهانه مشمول + SumOfBenefitsIncluded = monthlyBenefits.ToMoney(), + //مشمول + Included = sumOfIncluded.ToMoney(), + ////مشمول و غیر مشمول + IncludedAndNotIncluded = sumOfBenefitIncludedAndNotIncluded.ToMoney(), + ////IncludedAndNotIncluded = (sumOfIncluded + benefitsIncludedNonContinuous).ToMoney(), + //سهم حق بیمه شده + InsuredShare = insuredShare.ToMoney(), + //سهم حق کارفرما + EmployerShare = employerShare.ToMoney(), + //بیمه بیکاری + UnEmploymentInsurance = unEmploymentInsurance.ToMoney(), + //جمع پایه سنواتی + SumOfBaseYears = sumOfBaseYears.ToMoney(), + //جمع حق تاهل + SumOfMarriedAllowance = sumOfMarriedAllowance.ToMoney(), + + //جمع دستمزد روزانه + پایه سنوات روزانه + SumOfDailyWagePlusBaseYears = sumOfDailyWagePlusBaseYear.ToMoney(), + + //جمع مزایای غیر مشمول + SumOfBenefitsIncludedNonContinuous = benefitsIncludedNonContinuous.ToMoney(), + + }); + } + + + public IActionResult OnPostCreate(CreateInsuranceList command) + { + //var result =new OperationResult(); + //result.IsSuccedded = true; + var result = _insuranceListApplication.Create(command); + if (result.IsSuccedded) + { + var saveFileResult = SaveFile(command); + if (saveFileResult) + { + result.IsSuccedded = true; + result.Message = "ثبت اطلاعات با موفقیت انجام شد"; + } + else + { + result.Failed("ایجاد فایل بیمه با خطا مواجه شد"); + } + } + + //else + //{ + // result.Failed("ثبت اطلاعات با خطا مواجه شد"); + //} + return new JsonResult(result); + } + + + #endregion + + public IActionResult OnPostCreateEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command) + { + TempData["EmployeeDetails"] = command; + var result = new OperationResult(); + if (command.InsuranceEmployeeInformationId == 0) + result = _insuranceListApplication.CreateEmployeeDetailsInfo(command); + else + result = _insuranceListApplication.EditEmployeeDetailsInfo(command); + + return new JsonResult(result); + } + + public IActionResult OnPostJobList() + { + var jobs = _jobApplication.GetJob(); + return new JsonResult(new + { + IsSuccedded = true, + jobList = jobs + }); + } + + /// + /// حذف لیست بیمه + /// + /// + /// + /// + /// + public IActionResult OnPostRemoveInsuranceList(long id, string pathDSKKAR00, string pathDSKWOR00) + { + var result = _insuranceListApplication.Remove(id); + if (result.IsSuccedded) + { + pathDSKKAR00 = pathDSKKAR00.Replace("-", "\\"); + var filePathDSKKAR00 = $"{_webHostEnvironment.ContentRootPath}\\InsuranceList\\{pathDSKKAR00}"; + if (System.IO.File.Exists(filePathDSKKAR00)) + System.IO.File.Delete(filePathDSKKAR00); + + pathDSKWOR00 = pathDSKWOR00.Replace("-", "\\"); + var filePathDSKWOR00 = $"{_webHostEnvironment.ContentRootPath}\\InsuranceList\\{pathDSKWOR00}"; + if (System.IO.File.Exists(filePathDSKWOR00)) + System.IO.File.Delete(filePathDSKWOR00); + } + + return new JsonResult(result); + } + + public IActionResult OnPostConfirmInsuranceList(long id) + { + var result = _insuranceListApplication.ConfirmInsuranceList(id); + return new JsonResult(result); + } + + + public IActionResult OnGetDownloadFile(string path, string fileName) + { + //var path= "11\\1402_03\\DSKWOR00.dbf"; + // Replace "file.dbf" with the name of your .dbf file + var filePath = $"{_webHostEnvironment.ContentRootPath}\\InsuranceList\\{path}"; + ; + + // Read the file content into a byte array + var fileContent = System.IO.File.ReadAllBytes(filePath); + + // Return the file content as a FileResult with the appropriate MIME type and file name + return File(fileContent, "application/dbase", fileName); + } + + private string GetSpecifiedCharactes(string str, int MaxLength) + { + return str.Length <= MaxLength ? str : str.Substring(0, MaxLength); + } + + private bool SaveFile(CreateInsuranceList createInsuranceList) + { + try + { + //var path = $"profilePhotos"; + var path = createInsuranceList.InsuranceWorkshopInfo.WorkshopId; + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\InsuranceList\\{path}"; + if (!Directory.Exists(directoryPath)) + Directory.CreateDirectory(directoryPath); + + //ایجاد پوشه با توجه به هر ماه و سال + var monthPath = directoryPath + "\\" + createInsuranceList.Year + "_" + createInsuranceList.Month; + if (!Directory.Exists(monthPath)) + Directory.CreateDirectory(monthPath); + + var currentdate = DateTime.Now; + var currentDay = Convert.ToInt32(currentdate.ToFarsi().Substring(8, 2)); + ////ایجاد پوشه با توجه به هر روز و ساعت و دقیقه و ثانیه + //var dayPath = monthPath +"\\"+ currentDay+"_"+ currentdate.Hour + "_" + currentdate.Month + "_" + currentdate.Second; + //if (!Directory.Exists(dayPath)) + // Directory.CreateDirectory(dayPath); + //فعلا قرار شد روی فایل قبلی ریپلیس بشه + // string fileName = currentDay + "_" + currentdate.Hour + "_" + currentdate.Month + "_" + currentdate.Second +"_"; + //ایجاد فایل کارگاه - DSK + if (createInsuranceList.InsuranceWorkshopInfo != null) + { + var odbf = new DbfFile(Encoding.GetEncoding(1256)); + odbf.Open(Path.Combine(monthPath, "DSKKAR00.dbf"), FileMode.Create); + //کد کارگاه + odbf.Header.AddColumn(new DbfColumn("DSK_ID", DbfColumn.DbfColumnType.Character, 10, 0)); + //نام کارگاه + odbf.Header.AddColumn(new DbfColumn("DSK_NAME", DbfColumn.DbfColumnType.Character, 100, 0)); + //نام کارفرما + odbf.Header.AddColumn(new DbfColumn("DSK_FARM", DbfColumn.DbfColumnType.Character, 100, 0)); + //نام آدرس + odbf.Header.AddColumn(new DbfColumn("DSK_ADRS", DbfColumn.DbfColumnType.Character, 100, 0)); + //نوع لیست + odbf.Header.AddColumn(new DbfColumn("DSK_KIND", DbfColumn.DbfColumnType.Number, 1, 0)); + //سال عملکرد + odbf.Header.AddColumn(new DbfColumn("DSK_YY", DbfColumn.DbfColumnType.Number, 2, 0)); + //ماه عملکرد + odbf.Header.AddColumn(new DbfColumn("DSK_MM", DbfColumn.DbfColumnType.Number, 2, 0)); + //شماره لیست + odbf.Header.AddColumn(new DbfColumn("DSK_LISTNO", DbfColumn.DbfColumnType.Character, 12, 0)); + //شرح لیست + odbf.Header.AddColumn(new DbfColumn("DSK_DISC", DbfColumn.DbfColumnType.Character, 100, 0)); + //تعداد کارکنان + odbf.Header.AddColumn(new DbfColumn("DSK_NUM", DbfColumn.DbfColumnType.Number, 5, 0)); + //مجموع روزهای کارکرد کارکنان + odbf.Header.AddColumn(new DbfColumn("DSK_TDD", DbfColumn.DbfColumnType.Number, 6, 0)); + //مجموع دستمزد روزانه کارکنان + odbf.Header.AddColumn(new DbfColumn("DSK_TROOZ", DbfColumn.DbfColumnType.Number, 12, 0)); + //مجموع دستمزد ماهانه کارکنان + odbf.Header.AddColumn(new DbfColumn("DSK_TMAH", DbfColumn.DbfColumnType.Number, 12, 0)); + //مجموع مزایای ماهانه مشمول + odbf.Header.AddColumn(new DbfColumn("DSK_TMAZ", DbfColumn.DbfColumnType.Number, 12, 0)); + //مجموع دستمزد و مزایای ماهانه مشمول + odbf.Header.AddColumn(new DbfColumn("DSK_TMASH", DbfColumn.DbfColumnType.Number, 12, 0)); + // مجموع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول + odbf.Header.AddColumn(new DbfColumn("DSK_TTOTL", DbfColumn.DbfColumnType.Number, 12, 0)); + //مجموع حق بیمه سهم بیمه شده + odbf.Header.AddColumn(new DbfColumn("DSK_TBIME", DbfColumn.DbfColumnType.Number, 12, 0)); + //مجموع حق بیمه سهم کارفرما + odbf.Header.AddColumn(new DbfColumn("DSK_TKOSO", DbfColumn.DbfColumnType.Number, 12, 0)); + //مجموع حق بیمه بیکاری + odbf.Header.AddColumn(new DbfColumn("DSK_BIC", DbfColumn.DbfColumnType.Number, 12, 0)); + //نرخ حق بیمه + odbf.Header.AddColumn(new DbfColumn("DSK_RATE", DbfColumn.DbfColumnType.Number, 5, 0)); + //نرخ پورسانتاژ + odbf.Header.AddColumn(new DbfColumn("DSK_PRATE", DbfColumn.DbfColumnType.Number, 2, 0)); + //نرخ مشاغل سخت زیان آور + odbf.Header.AddColumn(new DbfColumn("DSK_BIMH", DbfColumn.DbfColumnType.Number, 12, 0)); + //ردیف پیمان + odbf.Header.AddColumn(new DbfColumn("MON_PYM", DbfColumn.DbfColumnType.Character, 3, 0)); + + //مجموع پایه سنواتی ها + odbf.Header.AddColumn(new DbfColumn("DSK_INC", DbfColumn.DbfColumnType.Character, 12, 0)); + //مجموع حق تاهل ها + odbf.Header.AddColumn(new DbfColumn("DSK_SPOUSE", DbfColumn.DbfColumnType.Character, 12, 0)); + var orec = new DbfRecord(odbf.Header); + + //کد کارگاه + orec[0] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.InsuranceCode, 10); + orec[1] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.WorkshopName, 100) + .ToIranSystem(); + orec[2] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.EmployerName, 100) + .ToIranSystem(); + orec[3] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.Address, 100).ToIranSystem(); + //orec[3] = ConvertToIranSystem.ToIranSystem(GetSpecifiedCharactes("رشت - بلوار شهدای گمنام - کوچه شهید علی قربانی - ساختمان پیام نور - طبقه اول واحد 2", 100), IranSystemNumbers.DontConvert); + // نوع لیست + orec[4] = "0"; + //سال + orec[5] = Convert.ToInt32(createInsuranceList.Year.Substring(2, 2)).ToString(); + //ماه + orec[6] = Convert.ToInt32(createInsuranceList.Month).ToString(); + //شماره لیست + orec[7] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.ListNumber, 12); + //شرح لیست + orec[8] = GetSpecifiedCharactes("", 100).ToIranSystem(); + //تعداد کرکنان + orec[9] = createInsuranceList.SumOfEmployees.ToString(); + //مجموع روزهای کارکرد کارکنان + orec[10] = createInsuranceList.SumOfWorkingDays.ToString(); + //مجموع دستمزد روزانه کارکنان + orec[11] = createInsuranceList.SumOfDailyWage.ToString(); + //مجموع دستمزد ماهانه کارکنان + orec[12] = createInsuranceList.SumOfSalaries.ToString(); + //مجموع مزایای ماهانه مشمول + orec[13] = createInsuranceList.SumOfBenefitsIncluded.ToString(); + //مجموع دستمزد و مزایای ماهانه مشمول + orec[14] = createInsuranceList.Included.ToString(); + //مجموع کل دستمزد و مزایای ماهانه مشمول و غیر مشمول + orec[15] = createInsuranceList.IncludedAndNotIncluded.ToString(); + // مجموع حق بیمه سهم بیمه شده + orec[16] = createInsuranceList.InsuredShare.ToString(); + //مجموع حق بیمه سهم کارفرما + orec[17] = createInsuranceList.EmployerShare.ToString(); //"44911361"; + //مجموع حق بیمه بیکاری + orec[18] = createInsuranceList.UnEmploymentInsurance.ToString(); + //نرخ حق بیمه + orec[19] = "23"; + //نرخ پورسانتاژ + orec[20] = "0"; + //نرخ مشاغل سخت زیان آور + orec[21] = createInsuranceList.DifficultJobsInsuranc.ToString(); + //ردیف پیمان + orec[22] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.AgreementNumber, 12); + + //مجموع پایه سنواتی ها + orec[23] = createInsuranceList.SumOfBaseYears.ToString(); + + //مجموع حق تاهل ها + orec[24] = createInsuranceList.SumOfMarriedAllowance.ToString(); + + odbf.Write(orec); + //odbf.Header.RecordCount = 50; + odbf.WriteHeader(); + odbf.Close(); + } + + //ایجاد فایل پرسنل - DSW + if (createInsuranceList.EmployeeInsurancListDataList != null) + { + //لیست پرسنل + var dsw = new DbfFile(Encoding.GetEncoding(1256)); + dsw.Open(Path.Combine(monthPath, "DSKWOR00.dbf"), FileMode.Create); + //کد کارگاه + dsw.Header.AddColumn(new DbfColumn("DSW_ID", DbfColumn.DbfColumnType.Character, 10, 0)); + //سال عملکرد + dsw.Header.AddColumn(new DbfColumn("DSW_YY", DbfColumn.DbfColumnType.Number, 2, 0)); + //ماه عملکرد + dsw.Header.AddColumn(new DbfColumn("DSW_MM", DbfColumn.DbfColumnType.Number, 2, 0)); + //شماره لیست + dsw.Header.AddColumn(new DbfColumn("DSW_LISTNO", DbfColumn.DbfColumnType.Character, 12, 0)); + //شماره بیمه + dsw.Header.AddColumn(new DbfColumn("DSW_ID1", DbfColumn.DbfColumnType.Character, 10, 0)); + // نام + dsw.Header.AddColumn(new DbfColumn("DSW_FNAME", DbfColumn.DbfColumnType.Character, 100, 0)); + // نام خانوادگی + dsw.Header.AddColumn(new DbfColumn("DSW_LNAME", DbfColumn.DbfColumnType.Character, 100, 0)); + //نام پدر + dsw.Header.AddColumn(new DbfColumn("DSW_DNAME", DbfColumn.DbfColumnType.Character, 100, 0)); + // شماره شناسنامه + dsw.Header.AddColumn(new DbfColumn("DSW_IDNO", DbfColumn.DbfColumnType.Character, 15, 0)); + // محل صدور + dsw.Header.AddColumn(new DbfColumn("DSW_IDPLC", DbfColumn.DbfColumnType.Character, 100, 0)); + // تاریخ صدور + dsw.Header.AddColumn(new DbfColumn("DSW_IDATE", DbfColumn.DbfColumnType.Character, 8, 0)); + // تاریخ تولد + dsw.Header.AddColumn(new DbfColumn("DSW_BDATE", DbfColumn.DbfColumnType.Character, 8, 0)); + // جنسیت + dsw.Header.AddColumn(new DbfColumn("DSW_SEX", DbfColumn.DbfColumnType.Character, 3, 0)); + // ملیت + dsw.Header.AddColumn(new DbfColumn("DSW_NAT", DbfColumn.DbfColumnType.Character, 10, 0)); + // شرح شغل + dsw.Header.AddColumn(new DbfColumn("DSW_OCP", DbfColumn.DbfColumnType.Character, 100, 0)); + // تاریخ شروع بکار + dsw.Header.AddColumn(new DbfColumn("DSW_SDATE", DbfColumn.DbfColumnType.Character, 8, 0)); + // تاریخ ترک کار + dsw.Header.AddColumn(new DbfColumn("DSW_EDATE", DbfColumn.DbfColumnType.Character, 8, 0)); + // تعداد روزهای کارکرد + dsw.Header.AddColumn(new DbfColumn("DSW_DD", DbfColumn.DbfColumnType.Number, 2, 0)); + // دستمزد روزانه + dsw.Header.AddColumn(new DbfColumn("DSW_ROOZ", DbfColumn.DbfColumnType.Number, 12, 0)); + // دستمزد ماهانه + dsw.Header.AddColumn(new DbfColumn("DSW_MAH", DbfColumn.DbfColumnType.Number, 12, 0)); + // مزایای ماهانه + dsw.Header.AddColumn(new DbfColumn("DSW_MAZ", DbfColumn.DbfColumnType.Number, 12, 0)); + // جمع دستمزد و مزایای ماهانه مشمول + dsw.Header.AddColumn(new DbfColumn("DSW_MASH", DbfColumn.DbfColumnType.Number, 12, 0)); + // جمع کل دستمزد و مزایای ماهانه + dsw.Header.AddColumn(new DbfColumn("DSW_TOTL", DbfColumn.DbfColumnType.Number, 12, 0)); + //حق بیمه سهم بیمه شده + dsw.Header.AddColumn(new DbfColumn("DSW_BIME", DbfColumn.DbfColumnType.Number, 12, 0)); + //نرخ پورسانتاژ + dsw.Header.AddColumn(new DbfColumn("DSW_PRATE", DbfColumn.DbfColumnType.Number, 2, 0)); + // کد شغل + dsw.Header.AddColumn(new DbfColumn("DSW_JOB", DbfColumn.DbfColumnType.Character, 6, 0)); + // کد ملی + dsw.Header.AddColumn(new DbfColumn("PER_NATCOD", DbfColumn.DbfColumnType.Character, 10, 0)); + + // پایه سنوات + dsw.Header.AddColumn(new DbfColumn("DSW_INC", DbfColumn.DbfColumnType.Number, 12, 0)); + // حق تاهل + dsw.Header.AddColumn(new DbfColumn("DSW_SPOUSE", DbfColumn.DbfColumnType.Number, 12, 0)); + + foreach (var item in createInsuranceList.EmployeeInsurancListDataList) + { + var employee = createInsuranceList.EmployeeDetailsForInsuranceList.FirstOrDefault(p => p.EmployeeId == item.EmployeeId); + + //var employeeObj = _employeeApplication.GetDetails(item.EmployeeId); + + var dswrec = new DbfRecord(dsw.Header); + //کد کارگاه + dswrec[0] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.InsuranceCode, 10); + //سال + dswrec[1] = Convert.ToInt32(createInsuranceList.Year.Substring(2, 2)).ToString(); + //ماه + dswrec[2] = Convert.ToInt32(createInsuranceList.Month).ToString(); + //شماره لیست + dswrec[3] = GetSpecifiedCharactes(createInsuranceList.InsuranceWorkshopInfo.ListNumber, 12); + //شماره بیمه + dswrec[4] = GetSpecifiedCharactes(employee.InsuranceCode, 8); + // نام + dswrec[5] = GetSpecifiedCharactes(employee.FName, 100).ToIranSystem(); + //var x = ConvertToIranSystem.ToIranSystem(GetSpecifiedCharactes(employee.FName, 100), IranSystemNumbers.DontConvert); + //byte[] bytes = Encoding.Default.GetBytes(x); + //string resultString = Encoding.UTF8.GetString(bytes); + + //خانوادگی نام + + dswrec[6] = GetSpecifiedCharactes(employee.LName, 100).ToIranSystem(); + //پدر نام + dswrec[7] = GetSpecifiedCharactes(employee.FatherName, 100).ToIranSystem(); + //شماره شناسنامه + dswrec[8] = employee.IdNumber; + //محل صدور + dswrec[9] = GetSpecifiedCharactes(employee.PlaceOfIssue, 100).ToIranSystem(); + //تاریخ صدور + dswrec[10] = employee.DateOfIssue == "1300/10/11" || string.IsNullOrEmpty(employee.DateOfIssue) + ? "" + : employee.DateOfIssue.Replace("/", ""); + //تاریخ تولد + dswrec[11] = employee.DateOfBirth == "1300/10/11" || string.IsNullOrEmpty(employee.DateOfIssue) + ? "" + : employee.DateOfBirth.Replace("/", ""); + ; + //جنسیت + dswrec[12] = GetSpecifiedCharactes(employee.Gender, 3).ToIranSystem(); + //ملیت + //dswrec[13] = ConvertToIranSystem.ToIranSystem(GetSpecifiedCharactes("ایرانی", 10), + dswrec[13] = GetSpecifiedCharactes(employee.Nationality, 10).ToIranSystem(); + //شرح شغل + dswrec[14] = GetSpecifiedCharactes(item.JobName, 100).ToIranSystem(); + //تاریخ شروع بکار + dswrec[15] = item.StartWorkDate.ToFarsi().Replace("/", ""); + + //تاریخ ترک کار + if (item.LeftWorkDate != null) + dswrec[16] = item.LeftWorkDate.ToFarsi().Replace("/", ""); + else + dswrec[16] = ""; + + //تعداد روزهای کارکرد + dswrec[17] = item.WorkingDays.ToString(); + //دستمزد روزانه + dswrec[18] = item.DailyWage.ToString(); + //دستمزد مااهانه + dswrec[19] = item.MonthlySalary.ToString(); + //مزایای ماهانه + dswrec[20] = item.MonthlyBenefits.ToString(); + //دستمزد و مزایای ماهانه مشمول + dswrec[21] = item.MonthlyBenefitsIncluded.ToString(); + //جمع کل دستمزد و مزایای ماهانه مشمول غیرمشمول + dswrec[22] = item.IncludedAndNotIncluded.ToString(); + //حق بیمه سهم بیمه شده + dswrec[23] = item.InsuranceShare.ToString(); + //نرخ پورسانتاژ + dswrec[24] = "0"; + //کد شغل + dswrec[25] = item.JobCode; + //کد ملی + dswrec[26] = employee.NationalCode; + + //پایه سنوات + dswrec[27] = item.BaseYears.ToString(); + //حق تاهل + dswrec[28] = item.MarriedAllowance.ToString(); + + dsw.Write(dswrec); + } + + + dsw.WriteHeader(); + + dsw.Close(); + } + + return true; + } + catch (Exception er) + { + return false; + } + } + + #region EditInsurance + //-1 + /// + /// متد لود اطلاعات بیمه برای ویرایش + /// + /// + /// + public IActionResult OnGetEdit(long id) + { + var insurance = _insuranceListApplication.GetDetailsForEdit(id); + var workshopList = _workshopApplication.GetWorkshopSelectListInsuransce(); + var workshopObj = workshopList.Where(x => x.Id == insurance.WorkshopId)?.FirstOrDefault(); + insurance.WorkshopName = workshopObj == null ? string.Empty : workshopObj.WorkshopFullName; + insurance.TypeOfInsuranceSend = workshopObj.TypeOfInsuranceSend; + insurance.Population = workshopObj.Population; + insurance.FixedSalary = workshopObj.FixedSalary; + insurance.InsuranceJobId = workshopObj.InsuranceJobId; + workshopList = workshopList + .Where(x => !string.IsNullOrWhiteSpace(x.TypeOfInsuranceSend) && x.TypeOfInsuranceSend != "false").ToList(); + insurance.WorkShopSelectList = new SelectList(workshopList, "Id", "WorkshopFullName"); + //insurance.YearList = _yearlySalaryApplication.GetYears(); + + return Partial("Edit", insurance); + } + + //-2 + /// + /// لود اطلاعات پرسنل در مودال ویرایش بیمه -- DSKWOR + /// محاسبه تب پرسنل + /// + /// + /// + public IActionResult OnGetEmployeeListForEdit(EmployeeForEditInsuranceListSearchModel searchModel) + { + // var result = _insuranceListApplication.SearchEmployeeListForEditByInsuranceListId(searchModel); + var result = _insuranceListApplication.GetEmployeeListForEditByInsuranceListId(searchModel); + return Partial("./EmployeeListForEdit", result); + } + + //-3 + /// + /// ذخیره ویرایش + /// + /// + /// + public IActionResult OnPostEdit(EditInsuranceList command) + { + //var result =new OperationResult(); + //result.IsSuccedded = true; + var result = _insuranceListApplication.Edit(command); + if (result.IsSuccedded) + { + var path = command.InsuranceWorkshopInfo.WorkshopId; + var directoryPath = $"{_webHostEnvironment.ContentRootPath}\\InsuranceList\\{path}"; + var monthPath = directoryPath + "\\" + command.Year + "_" + command.Month; + //if (Directory.Exists(monthPath)) + // Directory.Delete(monthPath); + + var filePathDSKKAR00 = monthPath + "\\DSKKAR00.dbf"; + if (System.IO.File.Exists(filePathDSKKAR00)) + System.IO.File.Delete(filePathDSKKAR00); + + + var filePathDSKWOR00 = monthPath + "\\DSKWOR00.dbf"; + if (System.IO.File.Exists(filePathDSKWOR00)) + System.IO.File.Delete(filePathDSKWOR00); + var saveFileResult = SaveFile(command); + if (saveFileResult) + { + result.IsSuccedded = true; + result.Message = "ویرایش اطلاعات با موفقیت انجام شد"; + } + else + { + result.Failed("ایجاد فایل بیمه با خطا مواجه شد"); + } + } + + return new JsonResult(result); + } + #endregion + + public IActionResult OnGetInsuranceSummary(long id) + { + var insurance = _insuranceListApplication.GetDetails(id); + return Partial("InsuranceSummary", insurance); + } + + public IActionResult OnGetInsuranceConfirm(long id) + { + var insurance = _insuranceListApplication.GetDetails(id); + return Partial("InsuranceConfirm", insurance); + } + + public IActionResult OnGetInspectionReport(long id) + { + var insurance = _insuranceListApplication.GetDetails(id); + return Partial("InspectionReport", insurance); + } + + + public IActionResult OnPostMonthlySalary(string dailyWage, string workingDays, string insuranceShare, + string benefitsIncludedContinuous, string jobId, string housingAllowance, string includeStatus, + string consumableItems, string endMonthCurrentDay, long employeeId, double maritalStatus, double baseYear) + { + if(workingDays == "0") + return new JsonResult(new + { + monthlySalaryPlusBaseYear = "0", + monthlySalary = "0", + benefitsIncludedContinuous = "0", + insuranceShare = "0", + workingDay = 0, + dailyWag = "0", + dailyWagePlusBaseYear = "0", + marriedAllowance = "0", + baseYears = "0", + }); + + + + var benefitsIncludedContinuousL = benefitsIncludedContinuous.MoneyToDouble(); + bool isManager = jobId is "10" or "16" or "17" or "18" or "3498"; + //if (isManager && includeStatus !="1") شنبه + if (isManager) + maritalStatus = 0; + + double sum = 0; + var employeeMaritalStatus = _employeeApplication.GetDetails(employeeId); + if (employeeMaritalStatus.MaritalStatus == "متاهل") + sum = consumableItems.MoneyToDouble() + housingAllowance.MoneyToDouble() + maritalStatus; + else + sum = consumableItems.MoneyToDouble() + housingAllowance.MoneyToDouble(); + + + var workingDaysL = Convert.ToInt64(workingDays); + var endMonthCurrentDayL = Convert.ToInt64(endMonthCurrentDay); + var jobIdL = Convert.ToInt64(jobId); + var includeStatusL = Convert.ToInt64(includeStatus); + var dailyWageL = (dailyWage.MoneyToDouble()) + baseYear; + var dailyWageWithOutBaseYear = dailyWage.MoneyToDouble(); + + + if (workingDaysL == endMonthCurrentDayL) benefitsIncludedContinuousL = sum; + //farokhiChanges + if (employeeId == 42783) + benefitsIncludedContinuousL = 53082855; + if (workingDaysL < endMonthCurrentDayL) + { + if (endMonthCurrentDayL == 29) + //farokhiChanges عدد پایین 30 بود به 29 تبدیل کردم + endMonthCurrentDayL = 29; + else if (endMonthCurrentDayL == 30) //farokhiChanges این شرط رو اضافه کردم + endMonthCurrentDayL = 30; + else if (endMonthCurrentDayL == 31) //farokhiChanges این شرط رو اضافه کردم + endMonthCurrentDayL = 31; + + var a = sum * workingDaysL / endMonthCurrentDayL; + benefitsIncludedContinuousL = _insuranceListApplication.GetRoundValue(a); + } + + //if (dailyWageL == 0) + //{ + // benefitsIncludedContinuousL = 0; + //} + if (isManager && includeStatus != "1") + benefitsIncludedContinuousL = 0; + var monthlySalaryL = workingDaysL * dailyWageL; + var insuranceShareL = (benefitsIncludedContinuousL + monthlySalaryL) * 7 / 100; + insuranceShareL = _insuranceListApplication.GetRoundValue(insuranceShareL); + + var monthlySalaryWithOutBaseYear = workingDaysL * dailyWageWithOutBaseYear; + //var persianBefore = ""; + //var year = Convert.ToInt32(date.Substring(0, 4)); + //var month = Convert.ToInt32(date.Substring(5, 2)); + //var day = Convert.ToInt32(date.Substring(8, 2)); + //var persianDate = new PersianDateTime(year, month, day); + //var persianBeforeDate = persianDate.AddDays(-1); + //persianBefore = persianBeforeDate.ToString("yyyy/MM/dd"); + + if (benefitsIncludedContinuousL == 0 && monthlySalaryL == 0 && insuranceShareL == 0 && dailyWageL == 0) + workingDaysL = 0; + if (benefitsIncludedContinuousL == 0 && monthlySalaryL == 0 && insuranceShareL == 0 && + workingDaysL == 0) dailyWageL = 0; + + var includeStatusBool = includeStatus == "1"; + double marridAllowance = 0; + if (employeeMaritalStatus.MaritalStatus == "متاهل" && !isManager) + { + marridAllowance = _insuranceListApplication.MarriedAllowance(employeeMaritalStatus.MaritalStatus, 0, + includeStatusBool, Convert.ToInt32(workingDays), maritalStatus, Convert.ToInt32(endMonthCurrentDay)); + } + + var baseYears = baseYear; + Console.WriteLine(baseYears); + return new JsonResult(new + { + monthlySalaryPlusBaseYear = monthlySalaryL.ToMoney(), + monthlySalary = monthlySalaryWithOutBaseYear.ToMoney(), + benefitsIncludedContinuous = benefitsIncludedContinuousL.ToMoney(), + insuranceShare = insuranceShareL.ToMoney(), + workingDay = workingDaysL, + dailyWag = dailyWageWithOutBaseYear.ToMoney(), + dailyWagePlusBaseYear = dailyWageL, + marriedAllowance = marridAllowance.ToMoney(), + baseYears = baseYears.ToMoney(), + }); + } + + + + public double GetRoundValueWhitGovermentlist(double value, string type) + { + var strValue = value.ToString(); + if (strValue.IndexOf('.') > -1) + { + var a = strValue.Substring(strValue.IndexOf('.') + 1, 1); + if (type == "Govermentlist") + { + if (int.Parse(a) >= 4) + return Math.Round(value, MidpointRounding.ToPositiveInfinity); + return Math.Round(value, MidpointRounding.ToNegativeInfinity); + } + + if (int.Parse(a) > 5) + return Math.Round(value, MidpointRounding.ToPositiveInfinity); + return Math.Round(value, MidpointRounding.ToNegativeInfinity); + } + + return value; + } + + #region New by heydari + /// + /// جستجوی کارگاه در صفحه اصلی بیمه + /// + /// + /// + public IActionResult OnGetWorkshopName(string searchText) + { + var result = _workshopApplication.GetWorkshopByTextSearch(searchText); + result = result.OrderBy(x => x.WorkshopFullName.Length).ToList(); + return new JsonResult(new + { + IsSuccedded = true, + mylist = result + }); + } + + public IActionResult OnGetEmployerName(string searchText) + { + var result = _employerApplication.GetEmployerWithFNameOrLName(searchText); + result = result.OrderBy(x => x.LName.Length).ToList(); + return new JsonResult(new + { + IsSuccedded = true, + mylist = result + }); + } + + #endregion + + #region Insurance Operations + + //public async Task OnGetIndex(GetInsuranceListSearchModel searchModel) + //{ + // var resultData = await _insuranceListApplication.GetInsuranceList(searchModel); + + // return new JsonResult(new + // { + // success = true, + // data = resultData, + // pageIndex = resultData.Count + // }); + //} + + + public async Task OnGetOperationsModal(long id) + { + var command = await _insuranceListApplication.GetInsuranceOperationDetails(id); + return Partial("_Partials/OperationsModal", command); + } + + public async Task OnPostSaveOperationsModal(InsuranceListConfirmOperation command) + { + var result = await _insuranceListApplication.ConfirmInsuranceOperation(command); + + return new JsonResult(new + { + success = result.IsSuccedded, + message = result.Message, + }); + } + + #endregion +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/_Partials/OperationsModal.cshtml b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/_Partials/OperationsModal.cshtml new file mode 100644 index 00000000..c8d15d51 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/InsuranceList/_Partials/OperationsModal.cshtml @@ -0,0 +1,215 @@ +@using CompanyManagment.App.Contracts.InsuranceList.Enums +@using Microsoft.AspNetCore.Mvc.TagHelpers +@model CompanyManagment.App.Contracts.InsuranceList.InsuranceListConfirmOperation + +@{ + string adminVersion = _0_Framework.Application.Version.AdminVersion; + +} + +
+
+ +
+
+ + + \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml index 3f5ca027..31c60a1d 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml @@ -776,15 +776,15 @@ - - + + href="#showmodal=@Url.Page("./AutoExtension", "ContractStatus", new { employeeId = item.EmployeeId, workshopId = @Model.WorkshopId, employeeName = item.EmployeeName, workshopname = Model.workshopName })"> diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs index 5dd119ce..32439d90 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/AutoExtension.cshtml.cs @@ -1,3 +1,4 @@ +using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using _0_Framework.Application; using Company.Domain.ContractAgg; @@ -12,6 +13,7 @@ using CompanyManagment.App.Contracts.PersonnleCode; using CompanyManagment.App.Contracts.WorkingHours; using CompanyManagment.App.Contracts.WorkingHoursTemp; using CompanyManagment.App.Contracts.Workshop; +using CompanyManagment.App.Contracts.Workshop.DTOs; using CompanyManagment.App.Contracts.YearlySalary; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; @@ -24,148 +26,190 @@ namespace ServiceHost.Areas.Admin.Pages.Company.Workshops; public class AutoExtensionModel : PageModel { - private readonly ICheckoutApplication _checkoutApplication; - private readonly IContractApplication _contractApplication; - private readonly IContractRepository _contractRepository; - private readonly IEmployeeApplication _employeeApplication; - private readonly IEmployerApplication _employerApplication; - private readonly IHolidayItemRepository _holidayItemRepository; - private readonly IHubContext _hubContext; - private readonly ILeftWorkApplication _leftWorkApplication; - private readonly IPersonnelCodeApplication _personnelCodeApplication; - private readonly IWorkingHoursApplication _workingHoursApplication; - private readonly IWorkingHoursTempApplication _workingHoursTempApplication; - private readonly IWorkshopApplication _workshopApplication; - private readonly IYearlySalaryApplication _yearlySalaryApplication; - private readonly IYearlySalaryRepository _yearlySalaryRepository; - public List EmployeeList; - public SelectList EmployeeSelectList { get; set; } - private string InterferenceMessage = string.Empty; - public List YearlyList; + private readonly ICheckoutApplication _checkoutApplication; + private readonly IContractApplication _contractApplication; + private readonly IContractRepository _contractRepository; + private readonly IEmployeeApplication _employeeApplication; + private readonly IEmployerApplication _employerApplication; + private readonly IHolidayItemRepository _holidayItemRepository; + private readonly IHubContext _hubContext; + private readonly ILeftWorkApplication _leftWorkApplication; + private readonly IPersonnelCodeApplication _personnelCodeApplication; + private readonly IWorkingHoursApplication _workingHoursApplication; + private readonly IWorkingHoursTempApplication _workingHoursTempApplication; + private readonly IWorkshopApplication _workshopApplication; + private readonly IYearlySalaryApplication _yearlySalaryApplication; + private readonly IYearlySalaryRepository _yearlySalaryRepository; + public List EmployeeList; + public SelectList EmployeeSelectList { get; set; } + private string InterferenceMessage = string.Empty; + public List YearlyList; - public AutoExtensionModel(IWorkshopApplication workshopApplication, ILeftWorkApplication leftWorkApplication, - IPersonnelCodeApplication personnelCodeApplication, IContractApplication contractApplication, - ICheckoutApplication checkoutApplication, IWorkingHoursTempApplication workingHoursTempApplication, - IHolidayItemRepository holidayItemRepository, IYearlySalaryRepository yearlySalaryRepository, - IContractRepository contractRepository, IYearlySalaryApplication yearlySalaryApplication, - IWorkingHoursApplication workingHoursApplication, IHubContext hubContext, - IEmployerApplication employerApplication, IEmployeeApplication employeeApplication) - { - _workshopApplication = workshopApplication; - _leftWorkApplication = leftWorkApplication; - _personnelCodeApplication = personnelCodeApplication; - _contractApplication = contractApplication; - _checkoutApplication = checkoutApplication; - _workingHoursTempApplication = workingHoursTempApplication; - _holidayItemRepository = holidayItemRepository; - _yearlySalaryRepository = yearlySalaryRepository; - _contractRepository = contractRepository; - _yearlySalaryApplication = yearlySalaryApplication; - _workingHoursApplication = workingHoursApplication; - _hubContext = hubContext; - _employerApplication = employerApplication; - _employeeApplication = employeeApplication; - } + public AutoExtensionModel(IWorkshopApplication workshopApplication, ILeftWorkApplication leftWorkApplication, + IPersonnelCodeApplication personnelCodeApplication, IContractApplication contractApplication, + ICheckoutApplication checkoutApplication, IWorkingHoursTempApplication workingHoursTempApplication, + IHolidayItemRepository holidayItemRepository, IYearlySalaryRepository yearlySalaryRepository, + IContractRepository contractRepository, IYearlySalaryApplication yearlySalaryApplication, + IWorkingHoursApplication workingHoursApplication, IHubContext hubContext, + IEmployerApplication employerApplication, IEmployeeApplication employeeApplication) + { + _workshopApplication = workshopApplication; + _leftWorkApplication = leftWorkApplication; + _personnelCodeApplication = personnelCodeApplication; + _contractApplication = contractApplication; + _checkoutApplication = checkoutApplication; + _workingHoursTempApplication = workingHoursTempApplication; + _holidayItemRepository = holidayItemRepository; + _yearlySalaryRepository = yearlySalaryRepository; + _contractRepository = contractRepository; + _yearlySalaryApplication = yearlySalaryApplication; + _workingHoursApplication = workingHoursApplication; + _hubContext = hubContext; + _employerApplication = employerApplication; + _employeeApplication = employeeApplication; + } - public string workshopName { get; set; } - public string FirstPersonStartWork { get; set; } - public string End { get; set; } - public bool HavingPersonel { get; set; } - public long MaxPersonnelCode { get; set; } - public long WorkshopId { get; set; } - public string ArchiveCode { get; private set; } - public string WAddress1 { get; set; } - public long EmployerId { get; set; } - public bool EmployerWarning { get; set; } - public string EmployerWarningMessage { get; set; } + public string workshopName { get; set; } + public string FirstPersonStartWork { get; set; } + public string End { get; set; } + public bool HavingPersonel { get; set; } + public long MaxPersonnelCode { get; set; } + public long WorkshopId { get; set; } + public string ArchiveCode { get; private set; } + public string WAddress1 { get; set; } + public long EmployerId { get; set; } + public bool EmployerWarning { get; set; } + public string EmployerWarningMessage { get; set; } - public void OnGet(long id) - { - var selctedWorkshop = _workshopApplication.GetDetails(id); - workshopName = selctedWorkshop?.WorkshopFullName; - YearlyList = - _yearlySalaryApplication.GetYears(); - var employerId = selctedWorkshop.EmployerIdList.FirstOrDefault()!; - var employer = _employerApplication.GetDetails(employerId); - if (employer.IsLegal == "حقوقی") - { - if (string.IsNullOrWhiteSpace(employer.NationalId) || string.IsNullOrWhiteSpace(employer.RegisterId)) - { - EmployerWarning = true; - EmployerWarningMessage = "شناسه ملی ، شماره ثبت کارفرمای این کارگاه را بررسی کنید"; - } - } - else - { - if (string.IsNullOrWhiteSpace(employer.Nationalcode) || string.IsNullOrWhiteSpace(employer.Gender)) - { - EmployerWarning = true; - EmployerWarningMessage = "کد ملی ، جنسیت کارفرمای این کارگاه را بررسی گنید"; - } - } + public void OnGet(long id) + { + var watch = new Stopwatch(); + watch.Start(); + var res = _leftWorkApplication.AutoExtentionEmployees(id); + YearlyList = + _yearlySalaryApplication.GetYears(); - var LeftWorkSerchModel = new LeftWorkSearchModel - { - WorkshopId = id - }; - var LeftWorkList = _leftWorkApplication.SearchCreateContract(LeftWorkSerchModel); - var personnelCodeSearch = new PersonnelCodeSearchModel - { - WorkshopId = id - }; - var pcodes = _personnelCodeApplication.Search(personnelCodeSearch); - if (pcodes.Any(x => x.PersonnelCode > 0)) - { - MaxPersonnelCode = pcodes.Select(x => x.PersonnelCode).Max(); - MaxPersonnelCode += 1; - } - else - { - MaxPersonnelCode = 1; - } + workshopName = res.WorkshopName; + WorkshopId = res.WorkshopId; + ArchiveCode = res.ArchiveCode; + WAddress1 = res.WAddress1; + EmployerId = res.EmployerId; + EmployerWarning = res.EmployerWarning; + if (res.EmployeeList != null) + { + if (res.EmployeeList.Any(x => x.PersonnelCode > 0)) + { + MaxPersonnelCode = res.EmployeeList.Select(x => x.PersonnelCode).Max(); + MaxPersonnelCode += 1; + } + else + { + MaxPersonnelCode = 1; + } + + EmployeeList = res.EmployeeList.Where(x => x.EmployeeHasCreateContract).ToList(); + EmployeeSelectList = new SelectList(res.EmployeeList, "EmployeeId", "EmployeeName"); + HavingPersonel = !res.EmployeeList.Any(x => x.EmployeeHasCreateContract) ? false : res.HavingPersonel; + } + else + { + MaxPersonnelCode = 1; + HavingPersonel = false; + } + - if (LeftWorkList.Count > 0) - { - HavingPersonel = true; - var firstStartWork = LeftWorkList.OrderBy(x => x.StartWorkDateGr).FirstOrDefault(); - var personelList = LeftWorkList.GroupBy(x => x.EmployeeId).Select(x => x.First()).ToList(); - //FirstPersonStartWork = firstStartWork.StartWorkDateGr.ToFarsi(); - //End = DateTime.Now.ToFarsi(); - personelList = personelList.OrderBy(x => x.StartWorkDateGr).ToList(); - if (!string.IsNullOrWhiteSpace(selctedWorkshop.Address)) - selctedWorkshop.Address = - $"{selctedWorkshop.State} - {selctedWorkshop.City} - {selctedWorkshop.Address}"; + - WorkshopId = id; - ArchiveCode = selctedWorkshop.ArchiveCode; - WAddress1 = selctedWorkshop.Address; - EmployerId = selctedWorkshop.EmployerIdList.FirstOrDefault(); - EmployeeList = personelList.Select(x => new ContractViweModel - { - EmployeeId = x.EmployeeId, - EmployeeName = x.EmployeeFullName, - ContarctStart = FirstPersonStartWork, - ContractEnd = End, - WorkshopIds = id, - PersonnelCode = pcodes.Any(p => p.EmployeeId == x.EmployeeId) - ? pcodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId)!.PersonnelCode - : 0, - JobType = x.JobName, - JobTypeId = x.JobId, - EmployerId = employerId, - ArchiveCode = selctedWorkshop.ArchiveCode, - WorkshopAddress1 = selctedWorkshop.Address - }).OrderBy(x => x.PersonnelCode).ToList(); - EmployeeSelectList = new SelectList(personelList, "EmployeeId", "EmployeeFullName"); - } - else - { - HavingPersonel = false; - } - //Correction(); - } + + + #region Old + + //var selctedWorkshop = _workshopApplication.GetDetails(id); + //workshopName = selctedWorkshop?.WorkshopFullName; + + //var employerId = selctedWorkshop.EmployerIdList.FirstOrDefault()!; + //var employer = _employerApplication.GetDetails(employerId); + //if (employer.IsLegal == "حقوقی") + //{ + // if (string.IsNullOrWhiteSpace(employer.NationalId) || string.IsNullOrWhiteSpace(employer.RegisterId)) + // { + // EmployerWarning = true; + // EmployerWarningMessage = "شناسه ملی ، شماره ثبت کارفرمای این کارگاه را بررسی کنید"; + // } + //} + //else + //{ + // if (string.IsNullOrWhiteSpace(employer.Nationalcode) || string.IsNullOrWhiteSpace(employer.Gender)) + // { + // EmployerWarning = true; + // EmployerWarningMessage = "کد ملی ، جنسیت کارفرمای این کارگاه را بررسی گنید"; + // } + //} + + //var LeftWorkSerchModel = new LeftWorkSearchModel + //{ + // WorkshopId = id + //}; + //var LeftWorkList = _leftWorkApplication.SearchCreateContract(LeftWorkSerchModel); + //var personnelCodeSearch = new PersonnelCodeSearchModel + //{ + // WorkshopId = id + //}; + //var pcodes = _personnelCodeApplication.Search(personnelCodeSearch); + + + + //if (LeftWorkList.Count > 0) + //{ + // HavingPersonel = true; + // var firstStartWork = LeftWorkList.OrderBy(x => x.StartWorkDateGr).FirstOrDefault(); + // var personelList = LeftWorkList.GroupBy(x => x.EmployeeId).Select(x => x.First()).ToList(); + // //FirstPersonStartWork = firstStartWork.StartWorkDateGr.ToFarsi(); + // //End = DateTime.Now.ToFarsi(); + // personelList = personelList.OrderBy(x => x.StartWorkDateGr).ToList(); + // if (!string.IsNullOrWhiteSpace(selctedWorkshop.Address)) + // selctedWorkshop.Address = + // $"{selctedWorkshop.State} - {selctedWorkshop.City} - {selctedWorkshop.Address}"; + + // WorkshopId = id; + // ArchiveCode = selctedWorkshop.ArchiveCode; + // WAddress1 = selctedWorkshop.Address; + // EmployerId = selctedWorkshop.EmployerIdList.FirstOrDefault(); + // EmployeeList = personelList.Select(x => new ContractViweModel + // { + // EmployeeId = x.EmployeeId, + // EmployeeName = x.EmployeeFullName, + // ContarctStart = FirstPersonStartWork, + // ContractEnd = End, + // WorkshopIds = id, + // PersonnelCode = pcodes.Any(p => p.EmployeeId == x.EmployeeId) + // ? pcodes.FirstOrDefault(p => p.EmployeeId == x.EmployeeId)!.PersonnelCode + // : 0, + // JobType = x.JobName, + // JobTypeId = x.JobId, + // EmployerId = employerId, + // ArchiveCode = selctedWorkshop.ArchiveCode, + // WorkshopAddress1 = selctedWorkshop.Address + // }).OrderBy(x => x.PersonnelCode).ToList(); + // EmployeeSelectList = new SelectList(personelList, "EmployeeId", "EmployeeFullName"); + + // Console.WriteLine(" old : " + watch.Elapsed); + // watch.Reset(); + // watch.Start(); + + // Console.WriteLine(" new : " + watch.Elapsed); + //} + //else + //{ + // HavingPersonel = false; + //} + + #endregion + + //Correction(); + } public IActionResult OnPostEmployeesStartedWorkInSelectedPeriod(long workshopId, string startDate, string endDate, bool manualDate) { @@ -194,13 +238,13 @@ public class AutoExtensionModel : PageModel { return new JsonResult(new { - founded = true, - leftWorkList = res, - error = false + founded = true, + leftWorkList = res, + error = false }); } - + } return new JsonResult(new @@ -211,6347 +255,6269 @@ public class AutoExtensionModel : PageModel }); } - public IActionResult OnGetContractStatus(long employeeId, long workshopId, string employeeName, string workshopname) - { - var command = new ContractStatusViewModel(); - var contractSearch = new ContractSearchModel - { - EmployeeId = employeeId, - WorkshopIds = workshopId - }; - var checkoutSearch = new CheckoutSearchModel - { - EmployeeId = employeeId, - WorkshopId = workshopId - }; - var contractResult = _contractApplication.Search(contractSearch); - var checkoutResult = _checkoutApplication.SimpleSearch(checkoutSearch); - - if (contractResult.Count > 0) - { - var divideList = new List(); - var ChekoutDivideList = new List(); - - var groupList = new List(); - - foreach (var item in contractResult) - { - var divide = new ContractStatusDivide - { - ContractStart = item.ContarctStart, - ContractEnd = item.ContractEnd, - Year = item.ContarctStart.Substring(0, 4), - MonthStart = Convert.ToInt32(item.ContarctStart.Substring(5, 2)), - MonthEnd = Convert.ToInt32(item.ContractEnd.Substring(5, 2)), - SignaturStatus = item.Signature - }; - divideList.Add(divide); - } - - foreach (var item in checkoutResult) - { - var CheckoutDivide = new CheckoutStatusDivide - { - CheckoutStart = item.ContractStart, - CheckoutEnd = item.ContractEnd, - Year = item.ContractStart.Substring(0, 4), - MonthStart = Convert.ToInt32(item.ContractStart.Substring(5, 2)), - MonthEnd = Convert.ToInt32(item.ContractEnd.Substring(5, 2)), - SignaturStatus = item.Signature - }; - ChekoutDivideList.Add(CheckoutDivide); - } - - var contractByYear = divideList.GroupBy(x => x.Year).Select(x => x.First()).ToList(); - foreach (var year in contractByYear) - { - var divided = divideList.Where(x => x.Year == year.Year).ToList(); - var chDivided = ChekoutDivideList.Where(x => x.Year == year.Year).ToList(); - if (chDivided.Count < 1) chDivided = new List(); - - var group = new ContractStatusGroup - { - Year = year.Year, - ContractStatusDivideList = divided, - CheckoutStatusDivideList = chDivided - }; - groupList.Add(group); - } - - command.EmployeeName = employeeName; - command.WorkshopName = workshopname; - command.HavingContract = true; - command.ContractStatusGroupList = groupList; - } - else - { - command.EmployeeName = employeeName; - command.WorkshopName = workshopname; - command.HavingContract = false; - } - - - return Partial("ContractStatus", command); - } - - public IActionResult OnGetClock(long employeeId, long workshopId, string workshopAddress, long personelCode, - long jobId, string startContract, string endContract, string employeeName) - { - var start = new DateTime(); - var end = new DateTime(); - var psCodeZeroCheck = ""; - var jobIdZeroCheck = ""; - var leftWorkCheckExist = ""; - var dateValid = ""; - var getWorkDateHide = ""; - var contractExistCheck = string.Empty; - if (personelCode == 0) - psCodeZeroCheck = $"برای {employeeName} در این کارگاه کد پرسنلی مشخص نشده است"; - if (jobId == 0) - jobIdZeroCheck = $" برای {employeeName} در این کارگاه سمت مشخص نشده است"; - - - var leftWorkSerachModel = new LeftWorkSearchModel - { - EmployeeId = employeeId, - WorkshopId = workshopId - }; - if (!string.IsNullOrWhiteSpace(startContract) && !string.IsNullOrWhiteSpace(endContract)) - { - start = startContract.ToGeorgianDateTime(); - end = endContract.ToGeorgianDateTime(); - - var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); - if (leftWoekSerchResult.Count > 0) - { - getWorkDateHide = leftWoekSerchResult.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; - var check = leftWoekSerchResult.FirstOrDefault(x => x.StartWorkDateGr <= start && - x.LeftWorkDateGr > start); - - if (check != null) - { - var leftWorkDate = check.LeftWorkDateGr.ToFarsi(); - - if (leftWorkDate != "1500/01/01") - { - var endOfmonth = leftWorkDate.FindeEndOfMonth(); - var endOfMonthGr = endOfmonth.ToGeorgianDateTime(); - if (end <= endOfMonthGr) - { - } - else - { - leftWorkCheckExist = - $" با تو جه به ترک کار پرسنل در تاریخ {leftWorkDate} می توانید تا تاریخ {endOfmonth} قرارداد ایجاد نمایید"; - } - } - } - else - { - leftWorkCheckExist = $" برای {employeeName} در بازه تاریخ وارد شده شروع به کار وجود ندارد"; - } - } - - contractExistCheck = _contractRepository.ContractStartCheck(start, end, employeeId, workshopId); - if (start > end) - dateValid = "تاریخ شروع از تاریخ پایان بزرگتر است"; - - if (start == end) - dateValid = "تاریخ شروع و تاریخ پایان برابر وارد شده اند"; - } - else - { - if (string.IsNullOrWhiteSpace(startContract) && string.IsNullOrWhiteSpace(endContract)) - dateValid = "تاریخ شروع و پایان قرارداد را وارد کنید"; - else if (string.IsNullOrWhiteSpace(startContract)) - dateValid = "تاریخ شروع قرارداد را وارد کنید"; - else if (string.IsNullOrWhiteSpace(endContract)) dateValid = "تاریخ پایان قرارداد را وارد کنید"; - } - - - if (!string.IsNullOrWhiteSpace(psCodeZeroCheck) || !string.IsNullOrWhiteSpace(jobIdZeroCheck) - || !string.IsNullOrWhiteSpace(leftWorkCheckExist) || - !string.IsNullOrWhiteSpace(contractExistCheck) - || !string.IsNullOrWhiteSpace(dateValid)) - { - var alarm = new AlarmViewModel - { - PersonnelCodeZeroCheck = psCodeZeroCheck, - JobIdZeroCheck = jobIdZeroCheck, - LeftWorkExistCheck = leftWorkCheckExist, - ContractExistCheck = contractExistCheck, - DateValidCheck = dateValid, - EmployeeName = employeeName - }; - return Partial("Alert", alarm); - } - - var result = _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(workshopId, employeeId); - if (result == null) result = new CreateWorkingHoursTemp(); - - - result.WorkshopAddress1 = workshopAddress; - //var today = DateTime.Now; - //var start = today.ToFarsi(); - result.StartDate = startContract; - result.EndDate = endContract; - result.GetWorkDateHide = getWorkDateHide; - return Partial("clock", result); - } - - //FirstCheck - public IActionResult OnPostContractSet(long employeeId, long workshopId, string workshopAddress, - long personelCode, long jobId, string startContract, string endContract, string employeeName) - { - var employeeDetails = _employeeApplication.GetDetails(employeeId); - var workingHoursResult = _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(workshopId, employeeId); - var start = new DateTime(); - var end = new DateTime(); - var employeeWarning = ""; - var psCodeZeroCheck = ""; - var jobIdZeroCheck = ""; - var leftWorkCheckExist = ""; - var dateValid = ""; - var getWorkDateHide = ""; - var contractExistCheck = ""; - var workingHoursCheck = ""; - var leftValidForEndMonth = false; - var leftValid = true; - var contractExist = false; - - if ((string.IsNullOrWhiteSpace(employeeDetails.NationalCode) && employeeDetails.Nationality == "ایرانی") - || string.IsNullOrWhiteSpace(employeeDetails.Address) - || string.IsNullOrWhiteSpace(employeeDetails.City) - || string.IsNullOrWhiteSpace(employeeDetails.State) - || string.IsNullOrWhiteSpace(employeeDetails.MaritalStatus)) - employeeWarning = $"برای {employeeName} موارد اجباری مانند کدملی و وضعیت تاهل و نشانی را بررسی کنید"; - - if (personelCode == 0) - psCodeZeroCheck = $"برای {employeeName} در این کارگاه کد پرسنلی مشخص نشده است"; - if (jobId == 0) - jobIdZeroCheck = $" برای {employeeName} در این کارگاه سمت مشخص نشده است"; - - #region leftworkCheck - - var leftWorkSerachModel = new LeftWorkSearchModel - { - EmployeeId = employeeId, - WorkshopId = workshopId - }; - - start = startContract.ToGeorgianDateTime(); - end = endContract.ToGeorgianDateTime(); - - var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); - if (leftWoekSerchResult.Count > 0) - { - getWorkDateHide = leftWoekSerchResult.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; - var check = leftWoekSerchResult.FirstOrDefault(x => x.StartWorkDateGr <= start && - x.LeftWorkDateGr > start); - - if (check != null) - { - var leftWorkDate = check.LeftWorkDateGr.ToFarsi(); - - if (leftWorkDate != "1500/01/01") - { - var endOfmonth = leftWorkDate.FindeEndOfMonth(); - var endOfMonthGr = endOfmonth.ToGeorgianDateTime(); - if (end <= endOfMonthGr) - { - } - else - { - leftWorkCheckExist = - $" با تو جه به ترک کار پرسنل در تاریخ {leftWorkDate} می توانید تا تاریخ {endOfmonth} قرارداد ایجاد نمایید"; - leftValidForEndMonth = true; - } - } - } - else - { - leftWorkCheckExist = $" برای {employeeName} در بازه تاریخ وارد شده شروع به کار وجود ندارد"; - leftValid = false; - } - } - - #endregion - - - contractExistCheck = _contractRepository.ContractStartCheck(start, end, employeeId, workshopId); - if (start > end) - dateValid = "تاریخ شروع از تاریخ پایان بزرگتر است"; - - if (start == end) - dateValid = "تاریخ شروع و تاریخ پایان برابر وارد شده اند"; - - - if (!string.IsNullOrWhiteSpace(dateValid)) - { - leftWorkCheckExist = ""; - contractExistCheck = ""; - } - - if (string.IsNullOrWhiteSpace(workingHoursResult.ShiftWork)) - workingHoursCheck = "ساعت کار را تنظیم نمایید"; - if (leftValid && (!string.IsNullOrWhiteSpace(psCodeZeroCheck) - || !string.IsNullOrWhiteSpace(jobIdZeroCheck) || !string.IsNullOrWhiteSpace(employeeWarning) - || leftValidForEndMonth - || !string.IsNullOrWhiteSpace(dateValid) || !string.IsNullOrWhiteSpace(workingHoursCheck))) - return new JsonResult(new - { - success = false, - errPersonnelCodeZeroCheck = psCodeZeroCheck, - errJobIdZeroCheck = jobIdZeroCheck, - errLeftWorkExistCheck = leftWorkCheckExist, - errLeftValidForEndMonth = leftValidForEndMonth, - - errDateValidCheck = dateValid, - errEmployeeName = employeeName, - errWorkingHoursCheck = workingHoursCheck, - errEmployeeWarning = employeeWarning - }); - //var alarm = new AlarmViewModel() - //{ - // PersonnelCodeZeroCheck = psCodeZeroCheck, - // JobIdZeroCheck = jobIdZeroCheck, - // LeftWorkExistCheck = leftWorkCheckExist, - // ContractExistCheck = contractExistCheck, - // DateValidCheck = dateValid, - // EmployeeName = employeeName, - // WorkingHoursCheck = workingHoursCheck - //}; - //return Partial("Alert", alarm); - if (!string.IsNullOrWhiteSpace(contractExistCheck)) contractExist = true; - - return new JsonResult(new - { - success = true, - getWorkDate = getWorkDateHide, - errContractExist = contractExist, - errLeftValid = leftValid - }); - } - - public IActionResult OnGetAlertModal(string errPsCodeZeroCheck, string errJobIdZeroCheck, string errDateValid, - string errLeftWorkExistCheck, string errEmployeeName, string errWorkingHoursCheck, bool errLeftValidForEndMonth, - string errEmployeeWarning) - { - var alarm = new AlarmViewModel - { - PersonnelCodeZeroCheck = errPsCodeZeroCheck, - JobIdZeroCheck = errJobIdZeroCheck, - LeftWorkExistCheck = errLeftValidForEndMonth ? errLeftWorkExistCheck : "", - DateValidCheck = errDateValid, - EmployeeName = errEmployeeName, - WorkingHoursCheck = errWorkingHoursCheck, - EmployeeWarning = errEmployeeWarning - }; - return Partial("Alert", alarm); - } - - #region CorrectNullSHift - - public IActionResult OnGetCorrection() - { - //var contractList = _workingHoursTempApplication.Correct(); - // int i = 1; - // foreach (var item in contractList) - // { - - // var result = _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(item.WorkshopIds, item.EmployeeId); - // result.EmployeeId = item.EmployeeId; - // result.WorkshopId = item.WorkshopIds; - // result.GetWorkDate = item.GetWorkDate; - // result.GetWorkDateHide = item.GetWorkDateHide; - // result.ContarctStart = item.ContarctStart; - // result.ContractEnd= item.ContractEnd; - // var compute = MandatoryHours(result); - - // item.DayliWage = compute.SalaryCompute; - - // item.ConsumableItems = compute.ConsumableItems; - // item.HousingAllowance = compute.HousingAllowance; - // item.FamilyAllowance = compute.FamilyAllowance; - // item.WorkingHoursWeekly = compute.SumTime44; - // item.AgreementSalary = "0"; - // var editContract = _contractApplication.EditCompute(item); - - // _workingHoursApplication.removeWorkingHours(item.Id); - // result.ContractId = item.Id; - // result.ContractNo = item.ContractNo; - // result.NumberOfWorkingDays = compute.NumberOfWorkingDays; - // result.NumberOfFriday = compute.NumberOfFriday; - // result.TotalHoursesH = compute.TotalHoursesH; - // result.TotalHoursesM = compute.TotalHoursesM; - // result.OverTimeWorkH = compute.OverTimeWorkH; - // result.OverTimeWorkM = compute.OverTimeWorkM; - // result.OverNightWorkH = compute.OverNightWorkH; - // result.OverNightWorkM = compute.OverNightWorkM; - // result.WeeklyWorkingTime = compute.SumTime44; - // _workingHoursApplication.CreateNew(result); - - // Console.WriteLine(i +"- finish no : " + item.ContractNo); - // i++; - // } - - return RedirectToPage("./Index"); - } - - #endregion - - #region CreateContract - - public IActionResult OnPostCreateContract(List createContarctList) - { - var contractCount = createContarctList.Count; - var successProcess = 0; - double maxNumber = contractCount; - var i = 1; - if (contractCount > 0) - { - var yearlysalaryList = _yearlySalaryRepository.GetYearlySalary(); - var yearlySalarId = yearlysalaryList.FirstOrDefault().Id; - - foreach (var item in createContarctList) - { - var result = - _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(item.WorkshopId, - item.EmployeeId); - result.EmployeeId = item.EmployeeId; - result.WorkshopId = item.WorkshopId; - result.ContarctStart = item.ContractStart; - result.ContractEnd = item.ContractEnd; - var leftWorkSerachModel = new LeftWorkSearchModel - { - EmployeeId = item.EmployeeId, - WorkshopId = item.WorkshopId - }; - var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); - var getWorkDateHide = leftWoekSerchResult?.OrderBy(x => x.StartWorkDateGr).FirstOrDefault() - ?.StartWorkDate; - result.GetWorkDate = getWorkDateHide; - result.GetWorkDateHide = getWorkDateHide; - var compute = MandatoryHours(result); - item.DayliWage = compute.SalaryCompute; - item.GetWorkDate = getWorkDateHide; - item.ConsumableItems = compute.ConsumableItems; - item.HousingAllowance = compute.HousingAllowance; - item.FamilyAllowance = compute.FamilyAllowance; - item.WorkingHoursWeekly = compute.SumTime44; - item.NumberOfWorkingDays = compute.NumberOfWorkingDays; - item.NumberOfFriday = compute.NumberOfFriday; - item.TotalHoursesH = compute.TotalHoursesH; - item.TotalHoursesM = compute.TotalHoursesM; - item.OverTimeWorkH = compute.OverTimeWorkH; - item.OverTimeWorkM = compute.OverTimeWorkM; - item.OverNightWorkH = compute.OverNightWorkH; - item.OverNightWorkM = compute.OverNightWorkM; - item.WorkshopAddress2 = result.WorkshopAddress2; - - item.YearlySalaryId = yearlySalarId; - var createContractResult = _contractApplication.CreateNew(item); - var percent = i / maxNumber * 100; - _hubContext.Clients.Group(CreateContractTarckingHub.GetGroupName(item.WorkshopId)) - .SendAsync("showStatus", (int)percent); - if (createContractResult.IsSuccedded) - successProcess += 1; - - - i++; - } - - if (successProcess == contractCount) - { - return new JsonResult(new - { - isSuccess = true, - contractCount = successProcess - }); - } - - var failds = contractCount - successProcess; - return new JsonResult(new - { - isSuccess = false, - contractCount = failds - }); - } - - return new JsonResult(new - { - isSuccess = false, - contractCount = 0 - }); - } - - #endregion - - public IActionResult OnGetCreateGroupCompute(CreateWorkingHoursTemp command) - { - var result = - _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(command.WorkshopId, - command.EmployeeId); - result.EmployeeId = command.EmployeeId; - result.WorkshopId = command.WorkshopId; - result.ContarctStart = command.ContarctStart; - //result.ContractStartGr = command.ContarctStart.ToGeorgianDateTime(); - result.ContractEnd = command.ContractEnd; - //result.ContractEndGr = command.ContractEnd.ToGeorgianDateTime(); - - if (result.ShiftWork != "") - { - var leftWorkSerachModel = new LeftWorkSearchModel - { - EmployeeId = command.EmployeeId, - WorkshopId = command.WorkshopId - }; - var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); - var getWorkDateHide = leftWoekSerchResult?.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; - result.GetWorkDate = getWorkDateHide; - result.GetWorkDateHide = getWorkDateHide; - var compute = MandatoryHours(result); - return new JsonResult(new - { - isSuccess = true, - compute.NumberOfWorkingDays, - compute.NumberOfFriday, - compute.TotalHoursesH, - compute.TotalHoursesM, - OverTimeWorkH = compute.OverNightWorkH, - compute.OverTimeWorkM, - compute.OverNightWorkH, - compute.OverNightWorkM, - WeeklyWorkingTime = $"{compute.weeklyTime}", - compute.SumTime44, - compute.SalaryCompute, - compute.ConsumableItems, - compute.HousingAllowance, - compute.FamilyAllowance, - getWorkDate = getWorkDateHide - }); - } - - return new JsonResult(new - { - isSuccess = false - }); - } - - #region clockSave - - public IActionResult OnPostCreateWorkingHoursTemp(CreateWorkingHoursTemp command) - { - #region WeekEmptyValidation - - if (command.ShiftWork == "4") - { - //week1 - - #region week1 - - var week1Valid = true; - if (command.Shanbe1) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe1) || - string.IsNullOrWhiteSpace(command.SingleShift2Shanbe1)) part1 = false; - - if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1) || - string.IsNullOrWhiteSpace(command.TowShifts2Shanbe1)) - part2 = false; - - - if (!part1 && !part2) - week1Valid = false; - if (!Tools.CheckValidHm(command.TowShifts1Shanbe1) || - !Tools.CheckValidHm(command.TowShifts2Shanbe1) || - !Tools.CheckValidHm(command.TowShifts1Shanbe1) || - !Tools.CheckValidHm(command.TowShifts2Shanbe1)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = false, - week2Valid = true, - week3Valid = true, - week4Valid = true - }); - } - - if (command.YekShanbe1) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe1) || - string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe1)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1) || - string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe1)) - part2 = false; - - - if (!part1 && !part2) - week1Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1YekShanbe1) || - !Tools.CheckValidHm(command.SingleShift2YekShanbe1) || - !Tools.CheckValidHm(command.TowShifts1YekShanbe1) || - !Tools.CheckValidHm(command.TowShifts2YekShanbe1)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = false, - week2Valid = true, - week3Valid = true, - week4Valid = true - }); - } - - if (command.DoShanbe1) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe1) || - string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe1)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1) || - string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe1)) - part2 = false; - - if (!part1 && !part2) - week1Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1DoShanbe1) || - !Tools.CheckValidHm(command.SingleShift1DoShanbe1) || - !Tools.CheckValidHm(command.TowShifts1DoShanbe1) || - !Tools.CheckValidHm(command.TowShifts2DoShanbe1)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = false, - week2Valid = true, - week3Valid = true, - week4Valid = true - }); - } - - if (command.SeShanbe1) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe1) || - string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe1)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1) || - string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe1)) - part2 = false; - - if (!part1 && !part2) - week1Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1SeShanbe1) || - !Tools.CheckValidHm(command.SingleShift2SeShanbe1) || - !Tools.CheckValidHm(command.TowShifts1SeShanbe1) || - !Tools.CheckValidHm(command.TowShifts2SeShanbe1)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = false, - week2Valid = true, - week3Valid = true, - week4Valid = true - }); - } - - if (command.CheharShanbe1) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe1) || - string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe1)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1) || - string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe1)) - part2 = false; - - if (!part1 && !part2) - week1Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1CheharShanbe1) || - !Tools.CheckValidHm(command.SingleShift2CheharShanbe1) || - !Tools.CheckValidHm(command.TowShifts1CheharShanbe1) || - !Tools.CheckValidHm(command.TowShifts2CheharShanbe1)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = false, - week2Valid = true, - week3Valid = true, - week4Valid = true - }); - } - - if (command.PanjShanbe1) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe1) || - string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe1)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1) || - string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe1)) - part2 = false; - - if (!part1 && !part2) - week1Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1PanjShanbe1) || - !Tools.CheckValidHm(command.SingleShift2PanjShanbe1) || - !Tools.CheckValidHm(command.TowShifts1PanjShanbe1) || - !Tools.CheckValidHm(command.TowShifts2PanjShanbe1)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = false, - week2Valid = true, - week3Valid = true, - week4Valid = true - }); - } - - if (command.Jome1) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Jome1) || - string.IsNullOrWhiteSpace(command.SingleShift2Jome1)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1Jome1) || - string.IsNullOrWhiteSpace(command.TowShifts2Jome1)) - part2 = false; - - if (!part1 && !part2) - week1Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1Jome1) || - !Tools.CheckValidHm(command.SingleShift2Jome1) || - !Tools.CheckValidHm(command.TowShifts1Jome1) || - !Tools.CheckValidHm(command.TowShifts2Jome1)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = false, - week2Valid = true, - week3Valid = true, - week4Valid = true - }); - } - - #endregion - - //week2 - - #region Week2 - - var week2Valid = true; - if (command.Shanbe2) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe2) || - string.IsNullOrWhiteSpace(command.SingleShift2Shanbe2)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2) || - string.IsNullOrWhiteSpace(command.TowShifts2Shanbe2)) - part2 = false; - - if (!part1 && !part2) - week2Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1Shanbe2) || - !Tools.CheckValidHm(command.SingleShift2Shanbe2) || - !Tools.CheckValidHm(command.TowShifts1Shanbe2) || - !Tools.CheckValidHm(command.TowShifts2Shanbe2)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = false, - week3Valid = true, - week4Valid = true - }); - } - - if (command.YekShanbe2) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe2) || - string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe2)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2) || - string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe2)) - part2 = false; - - if (!part1 && !part2) - week2Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1YekShanbe2) || - !Tools.CheckValidHm(command.SingleShift2YekShanbe2) || - !Tools.CheckValidHm(command.TowShifts1YekShanbe2) || - !Tools.CheckValidHm(command.TowShifts2YekShanbe2)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = false, - week3Valid = true, - week4Valid = true - }); - } - - if (command.DoShanbe2) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe2) || - string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe2)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2) || - string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe2)) - part2 = false; - - if (!part1 && !part2) - week2Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1DoShanbe2) || - !Tools.CheckValidHm(command.SingleShift2DoShanbe2) || - !Tools.CheckValidHm(command.TowShifts1DoShanbe2) || - !Tools.CheckValidHm(command.TowShifts2DoShanbe2)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = false, - week3Valid = true, - week4Valid = true - }); - } - - if (command.SeShanbe2) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe2) || - string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe2)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2) || - string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe2)) - part2 = false; - - if (!part1 && !part2) - week2Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1SeShanbe2) || - !Tools.CheckValidHm(command.SingleShift2SeShanbe2) || - !Tools.CheckValidHm(command.TowShifts1SeShanbe2) || - !Tools.CheckValidHm(command.TowShifts2SeShanbe2)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = false, - week3Valid = true, - week4Valid = true - }); - } - - if (command.CheharShanbe2) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe2) || - string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe2)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2) || - string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe2)) - part2 = false; - - if (!part1 && !part2) - week2Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1CheharShanbe2) || - !Tools.CheckValidHm(command.SingleShift2CheharShanbe2) || - !Tools.CheckValidHm(command.TowShifts1CheharShanbe2) || - !Tools.CheckValidHm(command.TowShifts2CheharShanbe2)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = false, - week3Valid = true, - week4Valid = true - }); - } - - if (command.PanjShanbe2) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe2) || - string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe2)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2) || - string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe2)) - part2 = false; - - if (!part1 && !part2) - week2Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1PanjShanbe2) || - !Tools.CheckValidHm(command.SingleShift2PanjShanbe2) || - !Tools.CheckValidHm(command.TowShifts1PanjShanbe2) || - !Tools.CheckValidHm(command.TowShifts2PanjShanbe2)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = false, - week3Valid = true, - week4Valid = true - }); - } - - if (command.Jome2) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Jome2) || - string.IsNullOrWhiteSpace(command.SingleShift2Jome2)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1Jome2) || - string.IsNullOrWhiteSpace(command.TowShifts2Jome2)) - part2 = false; - - if (!part1 && !part2) - week2Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1Jome2) || - !Tools.CheckValidHm(command.SingleShift2Jome2) || - !Tools.CheckValidHm(command.TowShifts1Jome2) || - !Tools.CheckValidHm(command.TowShifts2Jome2)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = false, - week3Valid = true, - week4Valid = true - }); - } - - #endregion - - //week3 - - #region Week3 - - var week3Valid = true; - if (command.Shanbe3) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe3) || - string.IsNullOrWhiteSpace(command.SingleShift2Shanbe3)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe3) || - string.IsNullOrWhiteSpace(command.TowShifts2Shanbe3)) - part2 = false; - - if (!part1 && !part2) - week3Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1Shanbe3) || - !Tools.CheckValidHm(command.SingleShift2Shanbe3) || - !Tools.CheckValidHm(command.TowShifts1Shanbe3) || - !Tools.CheckValidHm(command.TowShifts2Shanbe3)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = false, - week4Valid = true - }); - } - - if (command.YekShanbe3) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe3) || - string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe3)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe3) || - string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe3)) - part2 = false; - - if (!part1 && !part2) - week3Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1YekShanbe3) || - !Tools.CheckValidHm(command.SingleShift2YekShanbe3) || - !Tools.CheckValidHm(command.TowShifts1YekShanbe3) || - !Tools.CheckValidHm(command.TowShifts2YekShanbe3)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = false, - week4Valid = true - }); - } - - if (command.DoShanbe3) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe3) || - string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe3)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe3) || - string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe3)) - part2 = false; - - if (!part1 && !part2) - week3Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1DoShanbe3) || - !Tools.CheckValidHm(command.SingleShift2DoShanbe3) || - !Tools.CheckValidHm(command.TowShifts1DoShanbe3) || - !Tools.CheckValidHm(command.TowShifts2DoShanbe3)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = false, - week4Valid = true - }); - } - - if (command.SeShanbe3) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe3) || - string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe3)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe3) || - string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe3)) - part2 = false; - - if (!part1 && !part2) - week3Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1SeShanbe3) || - !Tools.CheckValidHm(command.SingleShift2SeShanbe3) || - !Tools.CheckValidHm(command.TowShifts1SeShanbe3) || - !Tools.CheckValidHm(command.TowShifts2SeShanbe3)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = false, - week4Valid = true - }); - } - - if (command.CheharShanbe3) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe3) || - string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe3)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe3) || - string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe3)) - part2 = false; - - if (!part1 && !part2) - week3Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1CheharShanbe3) || - !Tools.CheckValidHm(command.SingleShift2CheharShanbe3) || - !Tools.CheckValidHm(command.TowShifts1CheharShanbe3) || - !Tools.CheckValidHm(command.TowShifts2CheharShanbe3)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = false, - week4Valid = true - }); - } - - if (command.PanjShanbe3) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe3) || - string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe3)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe3) || - string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe3)) - part2 = false; - - if (!part1 && !part2) - week3Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1PanjShanbe3) || - !Tools.CheckValidHm(command.SingleShift2PanjShanbe3) || - !Tools.CheckValidHm(command.TowShifts1PanjShanbe3) || - !Tools.CheckValidHm(command.TowShifts2PanjShanbe3)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = false, - week4Valid = true - }); - } - - if (command.Jome3) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Jome3) || - string.IsNullOrWhiteSpace(command.SingleShift2Jome3)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1Jome3) || - string.IsNullOrWhiteSpace(command.TowShifts2Jome3)) - part2 = false; - - if (!part1 && !part2) - week3Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1Jome3) || - !Tools.CheckValidHm(command.SingleShift2Jome3) || - !Tools.CheckValidHm(command.TowShifts1Jome3) || - !Tools.CheckValidHm(command.TowShifts2Jome3)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = false, - week4Valid = true - }); - } - - #endregion - - //week4 - - #region Week4 - - var week4Valid = true; - if (command.Shanbe4) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe4) || - string.IsNullOrWhiteSpace(command.SingleShift2Shanbe4)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe4) || - string.IsNullOrWhiteSpace(command.TowShifts2Shanbe4)) - part2 = false; - - if (!part1 && !part2) - week4Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1Shanbe4) || - !Tools.CheckValidHm(command.SingleShift2Shanbe4) || - !Tools.CheckValidHm(command.TowShifts1Shanbe4) || - !Tools.CheckValidHm(command.TowShifts2Shanbe4)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = true, - week4Valid = false - }); - } - - if (command.YekShanbe4) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe4) || - string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe4)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe4) || - string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe4)) - part2 = false; - - if (!part1 && !part2) - week4Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1YekShanbe4) || - !Tools.CheckValidHm(command.SingleShift2YekShanbe4) || - !Tools.CheckValidHm(command.TowShifts1YekShanbe4) || - !Tools.CheckValidHm(command.TowShifts2YekShanbe4)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = true, - week4Valid = false - }); - } - - if (command.DoShanbe4) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe4) || - string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe4)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe4) || - string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe4)) - part2 = false; - - if (!part1 && !part2) - week4Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1DoShanbe4) || - !Tools.CheckValidHm(command.SingleShift2DoShanbe4) || - !Tools.CheckValidHm(command.TowShifts1DoShanbe4) || - !Tools.CheckValidHm(command.TowShifts2DoShanbe4)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = true, - week4Valid = false - }); - } - - if (command.SeShanbe4) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe4) || - string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe4)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe4) || - string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe4)) - part2 = false; - - if (!part1 && !part2) - week4Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1SeShanbe4) || - !Tools.CheckValidHm(command.SingleShift2SeShanbe4) || - !Tools.CheckValidHm(command.TowShifts1SeShanbe4) || - !Tools.CheckValidHm(command.TowShifts2SeShanbe4)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = true, - week4Valid = false - }); - } - - if (command.CheharShanbe4) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe4) || - string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe4)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe4) || - string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe4)) - part2 = false; - - if (!part1 && !part2) - week4Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1CheharShanbe4) || - !Tools.CheckValidHm(command.SingleShift2CheharShanbe4) || - !Tools.CheckValidHm(command.TowShifts1CheharShanbe4) || - !Tools.CheckValidHm(command.TowShifts2CheharShanbe4)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = true, - week4Valid = false - }); - } - - if (command.PanjShanbe4) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe4) || - string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe4)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe4) || - string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe4)) - part2 = false; - - if (!part1 && !part2) - week4Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1PanjShanbe4) || - !Tools.CheckValidHm(command.SingleShift2PanjShanbe4) || - !Tools.CheckValidHm(command.TowShifts1PanjShanbe4) || - !Tools.CheckValidHm(command.TowShifts2PanjShanbe4)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = true, - week4Valid = false - }); - } - - if (command.Jome4) - { - var part1 = true; - var part2 = true; - if (string.IsNullOrWhiteSpace(command.SingleShift1Jome4) || - string.IsNullOrWhiteSpace(command.SingleShift2Jome4)) - part1 = false; - if (string.IsNullOrWhiteSpace(command.TowShifts1Jome4) || - string.IsNullOrWhiteSpace(command.TowShifts2Jome4)) - part2 = false; - - if (!part1 && !part2) - week4Valid = false; - if (!Tools.CheckValidHm(command.SingleShift1Jome4) || - !Tools.CheckValidHm(command.SingleShift2Jome4) || - !Tools.CheckValidHm(command.TowShifts1Jome4) || - !Tools.CheckValidHm(command.TowShifts2Jome4)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid = true, - week2Valid = true, - week3Valid = true, - week4Valid = false - }); - } - - #endregion - - if (!week1Valid || !week2Valid || !week3Valid || !week4Valid) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "4", - week1Valid, - week2Valid, - week3Valid, - week4Valid - }); - } - else if (command.ShiftWork == "5") - { - if (string.IsNullOrWhiteSpace(command.Start1224) || string.IsNullOrWhiteSpace(command.End1224)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "5" - }); - } - else if (command.ShiftWork == "6") - { - if (string.IsNullOrWhiteSpace(command.Start2424) || string.IsNullOrWhiteSpace(command.End2424)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "6" - }); - } - else if (command.ShiftWork == "7") - { - if (string.IsNullOrWhiteSpace(command.Start1236) || string.IsNullOrWhiteSpace(command.End1236)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "7" - }); - } - else if (command.ShiftWork == "8") - { - if (string.IsNullOrWhiteSpace(command.Start2448) || string.IsNullOrWhiteSpace(command.End2448)) - return new JsonResult(new - { - isSuccess = false, - shiftErr = "7" - }); - } - - #endregion - - var result = _workingHoursTempApplication.Create(command); - var compute = MandatoryHours(command); - return new JsonResult(new - { - isSuccess = result.IsSuccedded, - compute.NumberOfWorkingDays, - compute.NumberOfFriday, - compute.TotalHoursesH, - compute.TotalHoursesM, - OverTimeWorkH = compute.OverNightWorkH, - compute.OverTimeWorkM, - compute.OverNightWorkH, - compute.OverNightWorkM, - WeeklyWorkingTime = $"{compute.weeklyTime}", - compute.SumTime44, - compute.SalaryCompute, - compute.ConsumableItems, - compute.HousingAllowance, - compute.FamilyAllowance - }); - } - - #endregion - - #region TestCompute - - [SuppressMessage("ReSharper.DPA", "DPA0009: High execution time of DB command", MessageId = "time: 1490ms")] - public IActionResult OnPostCompute(CreateWorkingHoursTemp command) - { - var result = MandatoryHours(command); - return new JsonResult(result); - //string leftWorkStartDate = ""; - //bool exsit = false; - //var serachModel = new LeftWorkSearchModel() - //{ - // EmployeeId = command.EmployeeId, - // WorkshopId = command.WorkshopId, - - //}; - //var leftWoekSerchResult = _leftWorkApplication.search(serachModel); - //leftWorkStartDate = leftWoekSerchResult.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; - //if (leftWoekSerchResult.Count > 0) - //{ - // var start = command.ContarctStart.ToGeorgianDateTime(); - // var end = command.ContractEnd.ToGeorgianDateTime(); - // var check = leftWoekSerchResult.FirstOrDefault(x => x.StartWorkDateGr <= start && - // x.LeftWorkDateGr > start); - // if (check != null) - // { - // var leftWorkDate = check.LeftWorkDateGr.ToFarsi(); - // if (leftWorkDate != "1500/01/01") - // { - // var endOfmonth = leftWorkDate.FindeEndOfMonth(); - // var endOfMonthGr = endOfmonth.ToGeorgianDateTime(); - // if (end <= endOfMonthGr) - // exsit = true; - // } - // else - // { - // exsit = true; - // } - - // } - - - //} - - //if (!string.IsNullOrEmpty(leftWorkStartDate)) - //{ - // if (exsit) - // { - // command.GetWorkDate = leftWorkStartDate; - // command.GetWorkDateHide = leftWorkStartDate; - // var result = MandatoryHours(command); - // return new JsonResult(result); - // } - // else - // { - // return new JsonResult(new - // { - // checkDate = false, - // }); - // } - //} - //else - //{ - // return new JsonResult(new - // { - // checkExist = false, - // }); - //} - } - - #region MandatoryCompute - - public ComputingViewModel MandatoryHours(CreateWorkingHoursTemp command) - { - #region entityes - - var Notholiday = string.Empty; - var Holidays = string.Empty; - var SingleShiftResult = string.Empty; - var shift1Hourse = "0"; - var shift1Minuts = "0"; - var shift1HolidayHours = "0"; - var shift1HolidayMinuts = "0"; - var overMandatoryHours = "0"; - var overMandatoryMinuts = "0"; - var shiftOver22Hours = "0"; - var shiftOver22Minuts = "0"; - var SumWorkeTime = string.Empty; - var weeklyTime = new TimeSpan(); - var FridayStartToEnd = 0; - var overNight = false; - var overNightTow = false; - var singleOver24 = new TimeSpan(); - var towOver24 = new TimeSpan(); - var panjshanbehOver24 = new TimeSpan(); - var panjshanbehOver24Tow = new TimeSpan(); - var rest = new TimeSpan(); - var Over22 = new TimeSpan(); - - var starTimeSingel1 = new DateTime(); - var endTimeSingel2 = new DateTime(); - var singleShiftOver24 = new DateTime(); - var startTimeTowSh1 = new DateTime(); - var endTimeTowSh2 = new DateTime(); - var nightWork22 = new DateTime(); - var nightWork6 = new DateTime(); - - var rotatingResultList = new List(); - - - singleShiftOver24 = Convert.ToDateTime("00:00"); - nightWork22 = Convert.ToDateTime("22:00"); - nightWork6 = Convert.ToDateTime("06:00"); - - var rest0 = new TimeSpan(); - var rest1 = new TimeSpan(); - var rest2 = new TimeSpan(); - var rest3 = new TimeSpan(); - var rest4 = new TimeSpan(); - var rest5 = new TimeSpan(); - var rest6 = new TimeSpan(); - - var rest0w1 = new TimeSpan(); - var rest1w1 = new TimeSpan(); - var rest2w1 = new TimeSpan(); - var rest3w1 = new TimeSpan(); - var rest4w1 = new TimeSpan(); - var rest5w1 = new TimeSpan(); - var rest6w1 = new TimeSpan(); - - var rest0w2 = new TimeSpan(); - var rest1w2 = new TimeSpan(); - var rest2w2 = new TimeSpan(); - var rest3w2 = new TimeSpan(); - var rest4w2 = new TimeSpan(); - var rest5w2 = new TimeSpan(); - var rest6w2 = new TimeSpan(); - - var rest0w3 = new TimeSpan(); - var rest1w3 = new TimeSpan(); - var rest2w3 = new TimeSpan(); - var rest3w3 = new TimeSpan(); - var rest4w3 = new TimeSpan(); - var rest5w3 = new TimeSpan(); - var rest6w3 = new TimeSpan(); - - var rest0w4 = new TimeSpan(); - var rest1w4 = new TimeSpan(); - var rest2w4 = new TimeSpan(); - var rest3w4 = new TimeSpan(); - var rest4w4 = new TimeSpan(); - var rest5w4 = new TimeSpan(); - var rest6w4 = new TimeSpan(); - - var SumSingle = new TimeSpan(); - var SumTow = new TimeSpan(); - var SumSingleHourses = 0; - var SumTowHourses = 0; - - var sumRest = new TimeSpan(); - var SumComplexDays = 0; - var OfficialHoliday = 0; - - var conStartGr = command.ContarctStart.ToGeorgianDateTime(); - var conEndGr = command.ContractEnd.ToGeorgianDateTime(); - - #endregion - - #region SumRestTimesOneShift - - switch (command.ShiftWork) - { - case "1": - case "2": - command.RestTime = command.RestTime == "0" ? "00" : command.RestTime; - command.RestTimeYekshanbeh = command.RestTimeYekshanbeh == "0" ? "00" : command.RestTimeYekshanbeh; - command.RestTimeDoshanbeh = command.RestTimeDoshanbeh == "0" ? "00" : command.RestTimeDoshanbeh; - command.RestTimeSeshanbeh = command.RestTimeSeshanbeh == "0" ? "00" : command.RestTimeSeshanbeh; - command.RestTimeCheharshanbeh = - command.RestTimeCheharshanbeh == "0" ? "00" : command.RestTimeCheharshanbeh; - command.RestTimePanjshanbeh = command.RestTimePanjshanbeh == "0" ? "00" : command.RestTimePanjshanbeh; - command.RestTimeJomeh = command.RestTimeJomeh == "0" ? "00" : command.RestTimeJomeh; - command.RestTimeMin = command.RestTimeMin == "0" ? "00" : command.RestTimeMin; - command.RestTimeYekshanbehMin = - command.RestTimeYekshanbehMin == "0" ? "00" : command.RestTimeYekshanbehMin; - command.RestTimeDoshanbehMin = - command.RestTimeDoshanbehMin == "0" ? "00" : command.RestTimeDoshanbehMin; - command.RestTimeSeshanbehMin = - command.RestTimeSeshanbehMin == "0" ? "00" : command.RestTimeSeshanbehMin; - command.RestTimeCheharshanbehMin = - command.RestTimeCheharshanbehMin == "0" ? "00" : command.RestTimeCheharshanbehMin; - command.RestTimePanjshanbehMin = - command.RestTimePanjshanbehMin == "0" ? "00" : command.RestTimePanjshanbehMin; - command.RestTimeJomehMin = command.RestTimeJomehMin == "0" ? "00" : command.RestTimeJomehMin; - - rest0 = TimeSpan.Parse($"{command.RestTime}:{command.RestTimeMin}"); - sumRest = sumRest.Add(rest0); - rest1 = TimeSpan.Parse($"{command.RestTimeYekshanbeh}:{command.RestTimeYekshanbehMin}"); - sumRest = sumRest.Add(rest1); - rest2 = TimeSpan.Parse($"{command.RestTimeDoshanbeh}:{command.RestTimeDoshanbehMin}"); - sumRest = sumRest.Add(rest2); - rest3 = TimeSpan.Parse($"{command.RestTimeSeshanbeh}:{command.RestTimeSeshanbehMin}"); - sumRest = sumRest.Add(rest3); - rest4 = TimeSpan.Parse($"{command.RestTimeCheharshanbeh}:{command.RestTimeCheharshanbehMin}"); - sumRest = sumRest.Add(rest4); - rest5 = TimeSpan.Parse($"{command.RestTimePanjshanbeh}:{command.RestTimePanjshanbehMin}"); - sumRest = sumRest.Add(rest5); - rest6 = TimeSpan.Parse($"{command.RestTimeJomeh}:{command.RestTimeJomehMin}"); - sumRest = sumRest.Add(rest6); - break; - - case "4": - //week1 - command.RestTimeShanbe1 = command.RestTimeShanbe1 == "0" ? "00" : command.RestTimeShanbe1; - command.RestTimeShanbe1Min = command.RestTimeShanbe1Min == "0" ? "00" : command.RestTimeShanbe1Min; - command.RestTimeYekShanbe1 = command.RestTimeYekShanbe1 == "0" ? "00" : command.RestTimeYekShanbe1; - command.RestTimeYekShanbe1Min = - command.RestTimeYekShanbe1Min == "0" ? "00" : command.RestTimeYekShanbe1Min; - command.RestTimeDoShanbe1 = command.RestTimeDoShanbe1 == "0" ? "00" : command.RestTimeDoShanbe1; - command.RestTimeDoShanbe1Min = - command.RestTimeDoShanbe1Min == "0" ? "00" : command.RestTimeDoShanbe1Min; - command.RestTimeSeShanbe1 = command.RestTimeSeShanbe1 == "0" ? "00" : command.RestTimeSeShanbe1; - command.RestTimeSeShanbe1Min = - command.RestTimeSeShanbe1Min == "0" ? "00" : command.RestTimeSeShanbe1Min; - command.RestTimeCheharShanbe1 = - command.RestTimeCheharShanbe1 == "0" ? "00" : command.RestTimeCheharShanbe1; - command.RestTimeCheharShanbe1Min = - command.RestTimeCheharShanbe1Min == "0" ? "00" : command.RestTimeCheharShanbe1Min; - command.RestTimePanjShanbe1 = command.RestTimePanjShanbe1 == "0" ? "00" : command.RestTimePanjShanbe1; - command.RestTimePanjShanbe1Min = - command.RestTimePanjShanbe1Min == "0" ? "00" : command.RestTimePanjShanbe1Min; - command.RestTimeJome1 = command.RestTimeJome1 == "0" ? "00" : command.RestTimeJome1; - command.RestTimeJome1Min = command.RestTimeJome1Min == "0" ? "00" : command.RestTimeJome1Min; - - //week2 - command.RestTimeShanbe2 = command.RestTimeShanbe2 == "0" ? "00" : command.RestTimeShanbe2; - command.RestTimeShanbe2Min = command.RestTimeShanbe2Min == "0" ? "00" : command.RestTimeShanbe2Min; - command.RestTimeYekShanbe2 = command.RestTimeYekShanbe2 == "0" ? "00" : command.RestTimeYekShanbe2; - command.RestTimeYekShanbe2Min = - command.RestTimeYekShanbe2Min == "0" ? "00" : command.RestTimeYekShanbe2Min; - command.RestTimeDoShanbe2 = command.RestTimeDoShanbe2 == "0" ? "00" : command.RestTimeDoShanbe2; - command.RestTimeDoShanbe2Min = - command.RestTimeDoShanbe2Min == "0" ? "00" : command.RestTimeDoShanbe2Min; - command.RestTimeSeShanbe2 = command.RestTimeSeShanbe2 == "0" ? "00" : command.RestTimeSeShanbe2; - command.RestTimeSeShanbe2Min = - command.RestTimeSeShanbe2Min == "0" ? "00" : command.RestTimeSeShanbe2Min; - command.RestTimeCheharShanbe2 = - command.RestTimeCheharShanbe2 == "0" ? "00" : command.RestTimeCheharShanbe2; - command.RestTimeCheharShanbe2Min = - command.RestTimeCheharShanbe2Min == "0" ? "00" : command.RestTimeCheharShanbe2Min; - command.RestTimePanjShanbe2 = command.RestTimePanjShanbe2 == "0" ? "00" : command.RestTimePanjShanbe2; - command.RestTimePanjShanbe2Min = - command.RestTimePanjShanbe2Min == "0" ? "00" : command.RestTimePanjShanbe2Min; - command.RestTimeJome2 = command.RestTimeJome2 == "0" ? "00" : command.RestTimeJome2; - command.RestTimeJome2Min = command.RestTimeJome2Min == "0" ? "00" : command.RestTimeJome2Min; - - //week3 - command.RestTimeShanbe3 = command.RestTimeShanbe3 == "0" ? "00" : command.RestTimeShanbe3; - command.RestTimeShanbe3Min = command.RestTimeShanbe3Min == "0" ? "00" : command.RestTimeShanbe3Min; - command.RestTimeYekShanbe3 = command.RestTimeYekShanbe3 == "0" ? "00" : command.RestTimeYekShanbe3; - command.RestTimeYekShanbe3Min = - command.RestTimeYekShanbe3Min == "0" ? "00" : command.RestTimeYekShanbe3Min; - command.RestTimeDoShanbe3 = command.RestTimeDoShanbe3 == "0" ? "00" : command.RestTimeDoShanbe3; - command.RestTimeDoShanbe3Min = - command.RestTimeDoShanbe3Min == "0" ? "00" : command.RestTimeDoShanbe3Min; - command.RestTimeSeShanbe3 = command.RestTimeSeShanbe3 == "0" ? "00" : command.RestTimeSeShanbe3; - command.RestTimeSeShanbe3Min = - command.RestTimeSeShanbe3Min == "0" ? "00" : command.RestTimeSeShanbe3Min; - command.RestTimeCheharShanbe3 = - command.RestTimeCheharShanbe3 == "0" ? "00" : command.RestTimeCheharShanbe3; - command.RestTimeCheharShanbe3Min = - command.RestTimeCheharShanbe3Min == "0" ? "00" : command.RestTimeCheharShanbe3Min; - command.RestTimePanjShanbe3 = command.RestTimePanjShanbe3 == "0" ? "00" : command.RestTimePanjShanbe3; - command.RestTimePanjShanbe3Min = - command.RestTimePanjShanbe3Min == "0" ? "00" : command.RestTimePanjShanbe3Min; - command.RestTimeJome3 = command.RestTimeJome3 == "0" ? "00" : command.RestTimeJome3; - command.RestTimeJome3Min = command.RestTimeJome3Min == "0" ? "00" : command.RestTimeJome3Min; - - //week4 - command.RestTimeShanbe4 = command.RestTimeShanbe4 == "0" ? "00" : command.RestTimeShanbe4; - command.RestTimeShanbe4Min = command.RestTimeShanbe4Min == "0" ? "00" : command.RestTimeShanbe4Min; - command.RestTimeYekShanbe4 = command.RestTimeYekShanbe4 == "0" ? "00" : command.RestTimeYekShanbe4; - command.RestTimeYekShanbe4Min = - command.RestTimeYekShanbe4Min == "0" ? "00" : command.RestTimeYekShanbe4Min; - command.RestTimeDoShanbe4 = command.RestTimeDoShanbe4 == "0" ? "00" : command.RestTimeDoShanbe4; - command.RestTimeDoShanbe4Min = - command.RestTimeDoShanbe4Min == "0" ? "00" : command.RestTimeDoShanbe4Min; - command.RestTimeSeShanbe4 = command.RestTimeSeShanbe4 == "0" ? "00" : command.RestTimeSeShanbe4; - command.RestTimeSeShanbe4Min = - command.RestTimeSeShanbe4Min == "0" ? "00" : command.RestTimeSeShanbe4Min; - command.RestTimeCheharShanbe4 = - command.RestTimeCheharShanbe4 == "0" ? "00" : command.RestTimeCheharShanbe4; - command.RestTimeCheharShanbe4Min = - command.RestTimeCheharShanbe4Min == "0" ? "00" : command.RestTimeCheharShanbe4Min; - command.RestTimePanjShanbe4 = command.RestTimePanjShanbe4 == "0" ? "00" : command.RestTimePanjShanbe4; - command.RestTimePanjShanbe4Min = - command.RestTimePanjShanbe4Min == "0" ? "00" : command.RestTimePanjShanbe4Min; - command.RestTimeJome4 = command.RestTimeJome4 == "0" ? "00" : command.RestTimeJome4; - command.RestTimeJome4Min = command.RestTimeJome4Min == "0" ? "00" : command.RestTimeJome4Min; - - // sumrest week1 - rest0w1 = TimeSpan.Parse($"{command.RestTimeShanbe1}:{command.RestTimeShanbe1Min}"); - rest1w1 = TimeSpan.Parse($"{command.RestTimeYekShanbe1}:{command.RestTimeYekShanbe1Min}"); - rest2w1 = TimeSpan.Parse($"{command.RestTimeDoShanbe1}:{command.RestTimeDoShanbe1Min}"); - rest3w1 = TimeSpan.Parse($"{command.RestTimeSeShanbe1}:{command.RestTimeSeShanbe1Min}"); - rest4w1 = TimeSpan.Parse($"{command.RestTimeCheharShanbe1}:{command.RestTimeCheharShanbe1Min}"); - rest5w1 = TimeSpan.Parse($"{command.RestTimePanjShanbe1}:{command.RestTimePanjShanbe1Min}"); - rest6w1 = TimeSpan.Parse($"{command.RestTimeJome1}:{command.RestTimeJome1Min}"); - - // sumrest week2 - rest0w2 = TimeSpan.Parse($"{command.RestTimeShanbe2}:{command.RestTimeShanbe2Min}"); - rest1w2 = TimeSpan.Parse($"{command.RestTimeYekShanbe2}:{command.RestTimeYekShanbe2Min}"); - rest2w2 = TimeSpan.Parse($"{command.RestTimeDoShanbe2}:{command.RestTimeDoShanbe2Min}"); - rest3w2 = TimeSpan.Parse($"{command.RestTimeSeShanbe2}:{command.RestTimeSeShanbe2Min}"); - rest4w2 = TimeSpan.Parse($"{command.RestTimeCheharShanbe2}:{command.RestTimeCheharShanbe2Min}"); - rest5w2 = TimeSpan.Parse($"{command.RestTimePanjShanbe2}:{command.RestTimePanjShanbe2Min}"); - rest6w2 = TimeSpan.Parse($"{command.RestTimeJome2}:{command.RestTimeJome2Min}"); - - // sumrest week3 - rest0w3 = TimeSpan.Parse($"{command.RestTimeShanbe3}:{command.RestTimeShanbe3Min}"); - rest1w3 = TimeSpan.Parse($"{command.RestTimeYekShanbe3}:{command.RestTimeYekShanbe3Min}"); - rest2w3 = TimeSpan.Parse($"{command.RestTimeDoShanbe3}:{command.RestTimeDoShanbe3Min}"); - rest3w3 = TimeSpan.Parse($"{command.RestTimeSeShanbe3}:{command.RestTimeSeShanbe3Min}"); - rest4w3 = TimeSpan.Parse($"{command.RestTimeCheharShanbe3}:{command.RestTimeCheharShanbe3Min}"); - rest5w3 = TimeSpan.Parse($"{command.RestTimePanjShanbe3}:{command.RestTimePanjShanbe3Min}"); - rest6w3 = TimeSpan.Parse($"{command.RestTimeJome3}:{command.RestTimeJome3Min}"); - - // sumrest week4 - rest0w4 = TimeSpan.Parse($"{command.RestTimeShanbe4}:{command.RestTimeShanbe4Min}"); - rest1w4 = TimeSpan.Parse($"{command.RestTimeYekShanbe4}:{command.RestTimeYekShanbe4Min}"); - rest2w4 = TimeSpan.Parse($"{command.RestTimeDoShanbe4}:{command.RestTimeDoShanbe4Min}"); - rest3w4 = TimeSpan.Parse($"{command.RestTimeSeShanbe4}:{command.RestTimeSeShanbe4Min}"); - rest4w4 = TimeSpan.Parse($"{command.RestTimeCheharShanbe4}:{command.RestTimeCheharShanbe4Min}"); - rest5w4 = TimeSpan.Parse($"{command.RestTimePanjShanbe4}:{command.RestTimePanjShanbe4Min}"); - rest6w4 = TimeSpan.Parse($"{command.RestTimeJome4}:{command.RestTimeJome4Min}"); - break; - } - - #endregion - - #region SumSingleAndTowShifts - - var StartShanbehSingle = Convert.ToDateTime(command.SingleShift1); - var EndShanbehSingle = Convert.ToDateTime(command.SingleShift2); - if (StartShanbehSingle > EndShanbehSingle) - EndShanbehSingle = EndShanbehSingle.AddDays(1); - var ShanbehSingle = EndShanbehSingle - StartShanbehSingle; - SumSingle = SumSingle.Add(ShanbehSingle); - - var StartYekShanbehSingle = Convert.ToDateTime(command.SingleShift1Yekshanbeh); - var EndYekShanbehSingle = Convert.ToDateTime(command.SingleShift2Yekshanbeh); - if (StartYekShanbehSingle > EndYekShanbehSingle) - EndYekShanbehSingle = EndYekShanbehSingle.AddDays(1); - var YekShanbehSingle = EndYekShanbehSingle - StartYekShanbehSingle; - SumSingle = SumSingle.Add(YekShanbehSingle); - - var StartDoShanbehSingle = Convert.ToDateTime(command.SingleShift1Doshanbeh); - var EndDoShanbehSingle = Convert.ToDateTime(command.SingleShift2Doshanbeh); - if (StartDoShanbehSingle > EndDoShanbehSingle) - EndDoShanbehSingle = EndDoShanbehSingle.AddDays(1); - var DoShanbehSingle = EndDoShanbehSingle - StartDoShanbehSingle; - SumSingle = SumSingle.Add(DoShanbehSingle); - - - var StartSehShanbehSingle = Convert.ToDateTime(command.SingleShift1Seshanbeh); - var EndSehShanbehSingle = Convert.ToDateTime(command.SingleShift2Seshanbeh); - if (StartSehShanbehSingle > EndSehShanbehSingle) - EndSehShanbehSingle = EndSehShanbehSingle.AddDays(1); - var SeShanbehSingle = EndSehShanbehSingle - StartSehShanbehSingle; - SumSingle = SumSingle.Add(SeShanbehSingle); - - var StartCheharShanbehSingle = Convert.ToDateTime(command.SingleShift1Cheharshanbeh); - var EndCheharShanbehSingle = Convert.ToDateTime(command.SingleShift2Cheharshanbeh); - if (StartCheharShanbehSingle > EndCheharShanbehSingle) - EndCheharShanbehSingle = EndCheharShanbehSingle.AddDays(1); - var CheharShanbehSingle = EndCheharShanbehSingle - StartCheharShanbehSingle; - SumSingle = SumSingle.Add(CheharShanbehSingle); - - var StartPanjShanbehSingle = Convert.ToDateTime(command.SingleShift1Panjshanbeh); - var EndPanjShanbehSingle = Convert.ToDateTime(command.SingleShift2Panjshanbeh); - if (StartPanjShanbehSingle > EndPanjShanbehSingle) - EndPanjShanbehSingle = EndPanjShanbehSingle.AddDays(1); - var PanjShanbehSingle = EndPanjShanbehSingle - StartPanjShanbehSingle; - SumSingle = SumSingle.Add(PanjShanbehSingle); - - var StartJomehSingle = Convert.ToDateTime(command.SingleShift1Jomeh); - var EndjomehSingle = Convert.ToDateTime(command.SingleShift2Jomeh); - if (StartJomehSingle > EndjomehSingle) - EndjomehSingle = EndjomehSingle.AddDays(1); - var JomehSingle = EndjomehSingle - StartJomehSingle; - SumSingle = SumSingle.Add(JomehSingle); - if (command.ShiftWork == "1") SumSingle = SumSingle.Subtract(sumRest); - //SumSingleHourses = (int)SumSingle.TotalHours; - - - var StartShanbehTow = Convert.ToDateTime(command.TowShifts1); - var EndShanbehTow = Convert.ToDateTime(command.TowShifts2); - if (StartShanbehTow > EndShanbehTow) - EndShanbehTow = EndShanbehTow.AddDays(1); - var ShanbehTow = EndShanbehTow - StartShanbehTow; - SumTow = SumTow.Add(ShanbehTow); - - var StartYekShanbehTow = Convert.ToDateTime(command.TowShifts1Yekshanbeh); - var EndYekShanbehTow = Convert.ToDateTime(command.TowShifts2Yekshanbeh); - if (StartYekShanbehTow > EndYekShanbehTow) - EndYekShanbehTow = EndYekShanbehTow.AddDays(1); - var YekShanbehTow = EndYekShanbehTow - StartYekShanbehTow; - SumTow = SumTow.Add(YekShanbehTow); - - var StartDoShanbehTow = Convert.ToDateTime(command.TowShifts1Doshanbeh); - var EndDoShanbehTow = Convert.ToDateTime(command.TowShifts2Doshanbeh); - if (StartDoShanbehTow > EndDoShanbehTow) - EndDoShanbehTow = EndDoShanbehTow.AddDays(1); - var DoShanbehTow = EndDoShanbehTow - StartDoShanbehTow; - SumTow = SumTow.Add(DoShanbehTow); - - - var StartSehShanbehTow = Convert.ToDateTime(command.TowShifts1Seshanbeh); - var EndSehShanbehTow = Convert.ToDateTime(command.TowShifts2Seshanbeh); - if (StartSehShanbehTow > EndSehShanbehTow) - EndSehShanbehTow = EndSehShanbehTow.AddDays(1); - var SeShanbehTow = EndSehShanbehTow - StartSehShanbehTow; - SumTow = SumTow.Add(SeShanbehTow); - - var StartCheharShanbehTow = Convert.ToDateTime(command.TowShifts1Cheharshanbeh); - var EndCheharShanbehTow = Convert.ToDateTime(command.TowShifts2Cheharshanbeh); - if (StartCheharShanbehTow > EndCheharShanbehTow) - EndCheharShanbehTow = EndCheharShanbehTow.AddDays(1); - var CheharShanbehTow = EndCheharShanbehTow - StartCheharShanbehTow; - SumTow = SumTow.Add(CheharShanbehTow); - - var StartPanjShanbehTow = Convert.ToDateTime(command.TowShifts1Panjshanbeh); - var EndPanjShanbehTow = Convert.ToDateTime(command.TowShifts2Panjshanbeh); - if (StartPanjShanbehTow > EndPanjShanbehTow) - EndPanjShanbehTow = EndPanjShanbehTow.AddDays(1); - var PanjShanbehTow = EndPanjShanbehTow - StartPanjShanbehTow; - SumTow = SumTow.Add(PanjShanbehTow); - - var StartJomehTow = Convert.ToDateTime(command.TowShifts1Jomeh); - var EndjomehTow = Convert.ToDateTime(command.TowShifts2Jomeh); - if (StartJomehTow > EndjomehTow) - EndjomehTow = EndjomehTow.AddDays(1); - var jomehTow = EndjomehTow - StartJomehTow; - SumTow = SumTow.Add(jomehTow); - - //SumTowHourses = (int)SumTow.TotalHours; - - #endregion - - #region ComplexSumWorkTime - - if (command.ShiftWork == "5") - SumWorkeTime = "24 - 12"; - else if (command.ShiftWork == "6") - SumWorkeTime = "24 - 24"; - else if (command.ShiftWork == "7") - SumWorkeTime = "36 - 12"; - else if (command.ShiftWork == "8") SumWorkeTime = "48 - 24"; - - #endregion - - #region OneAndTowShiftsCompute - - var dailyFix = TimeSpan.Parse("07:20"); - var notHolidays = new TimeSpan(); - var HolidaysAndNot = new TimeSpan(); - var jomeh = new TimeSpan(); - - var sdate = command.ContarctStart.ToEnglishNumber(); - var edate = command.ContractEnd.ToEnglishNumber(); - var syear = Convert.ToInt32(sdate.Substring(0, 4)); - var smonth = Convert.ToInt32(sdate.Substring(5, 2)); - var sday = Convert.ToInt32(sdate.Substring(8, 2)); - - var eyear = Convert.ToInt32(edate.Substring(0, 4)); - var emonth = Convert.ToInt32(edate.Substring(5, 2)); - var eday = Convert.ToInt32(edate.Substring(8, 2)); - - var d1 = new PersianDateTime(syear, smonth, sday); - var d2 = new PersianDateTime(eyear, emonth, eday); - int i = 0, i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; - var holidayList = _holidayItemRepository.GetHolidayItem(sdate.Substring(0, 4)); - - #region shiftWork 1&2 - - if (command.ShiftWork == "1" || command.ShiftWork == "2") - { - for (var da = d1; da <= d2; da.AddDays(1)) - if (command.ShiftWork == "1" || command.ShiftWork == "2") - { - if (command.shanbeh) - if (da.DayOfWeek == "شنبه") - { - var test = da.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - { - i += 1; - if (command.ShiftWork == "1") - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - var singleSpan1 = endTimeSingel2 - starTimeSingel1; - - singleSpan1 = singleSpan1.Subtract(rest0); - - notHolidays = notHolidays.Add(singleSpan1); - var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); - //Over22Compute = Over22Compute.Subtract(rest); - Over22 = Over22.Add(Over22Compute); - } - else if (command.ShiftWork == "2") - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - if (startTimeTowSh1 > endTimeTowSh2) - { - overNight = true; - endTimeTowSh2 = endTimeTowSh2.AddDays(1); - } - - var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; - var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; - notHolidays = notHolidays.Add(singleSpanTow1); - notHolidays = notHolidays.Add(singleSpanTow2); - - var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22ComputeTow1); - var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); - Over22 = Over22.Add(Over22ComputeTow2); - } - } - } - - if (command.yekshanbeh) - if (da.DayOfWeek == "یکشنبه") - { - var test = da.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - { - i1 += 1; - - if (command.ShiftWork == "1") - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Yekshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Yekshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - var singleSpan1 = endTimeSingel2 - starTimeSingel1; - - singleSpan1 = singleSpan1.Subtract(rest1); - - notHolidays = notHolidays.Add(singleSpan1); - - var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); - //Over22Compute = Over22Compute.Subtract(rest); - Over22 = Over22.Add(Over22Compute); - } - - else if (command.ShiftWork == "2") - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Yekshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Yekshanbeh); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Yekshanbeh); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Yekshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - if (startTimeTowSh1 > endTimeTowSh2) - { - overNight = true; - endTimeTowSh2 = endTimeTowSh2.AddDays(1); - } - - var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; - var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; - notHolidays = notHolidays.Add(singleSpanTow1); - notHolidays = notHolidays.Add(singleSpanTow2); - - var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22ComputeTow1); - var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); - Over22 = Over22.Add(Over22ComputeTow2); - } - } - } - - if (command.doshanbeh) - if (da.DayOfWeek == "دوشنبه") - { - var test = da.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - { - i2 += 1; - switch (command.ShiftWork) - { - case "1": - - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Doshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Doshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - var singleSpan1 = endTimeSingel2 - starTimeSingel1; - - singleSpan1 = singleSpan1.Subtract(rest2); - - notHolidays = notHolidays.Add(singleSpan1); - - var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); - - Over22 = Over22.Add(Over22Compute); - break; - - case "2": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Doshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Doshanbeh); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Doshanbeh); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Doshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - if (startTimeTowSh1 > endTimeTowSh2) - { - overNight = true; - endTimeTowSh2 = endTimeTowSh2.AddDays(1); - } - - var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; - var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; - notHolidays = notHolidays.Add(singleSpanTow1); - notHolidays = notHolidays.Add(singleSpanTow2); - - var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22ComputeTow1); - var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); - Over22 = Over22.Add(Over22ComputeTow2); - break; - } - } - } - - if (command.seshanbeh) - if (da.DayOfWeek == "سه شنبه") - { - var test = da.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - { - i3 += 1; - switch (command.ShiftWork) - { - case "1": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Seshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Seshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - var singleSpan1 = endTimeSingel2 - starTimeSingel1; - - singleSpan1 = singleSpan1.Subtract(rest3); - - notHolidays = notHolidays.Add(singleSpan1); - - var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22Compute); - break; - - case "2": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Seshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Seshanbeh); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Seshanbeh); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Seshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - if (startTimeTowSh1 > endTimeTowSh2) - { - overNight = true; - endTimeTowSh2 = endTimeTowSh2.AddDays(1); - } - - var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; - var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; - notHolidays = notHolidays.Add(singleSpanTow1); - notHolidays = notHolidays.Add(singleSpanTow2); - - var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22ComputeTow1); - var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); - Over22 = Over22.Add(Over22ComputeTow2); - break; - } - } - } - - if (command.cheharshanbeh) - if (da.DayOfWeek == "چهارشنبه") - { - var test = da.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - { - i4 += 1; - switch (command.ShiftWork) - { - case "1": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Cheharshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Cheharshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - var singleSpan1 = endTimeSingel2 - starTimeSingel1; - - singleSpan1 = singleSpan1.Subtract(rest4); - - notHolidays = notHolidays.Add(singleSpan1); - - var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22Compute); - break; - - case "2": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Cheharshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Cheharshanbeh); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Cheharshanbeh); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Cheharshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - if (startTimeTowSh1 > endTimeTowSh2) - { - overNight = true; - endTimeTowSh2 = endTimeTowSh2.AddDays(1); - } - - var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; - var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; - notHolidays = notHolidays.Add(singleSpanTow1); - notHolidays = notHolidays.Add(singleSpanTow2); - - var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22ComputeTow1); - var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); - Over22 = Over22.Add(Over22ComputeTow2); - break; - } - } - } - - if (command.pangshanbeh) - if (da.DayOfWeek == "پنج شنبه") - { - var test = da.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - { - i5 += 1; - switch (command.ShiftWork) - { - case "1": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Panjshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Panjshanbeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - singleOver24 = endTimeSingel2 - singleShiftOver24; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - var singleSpan1 = endTimeSingel2 - starTimeSingel1; - - singleSpan1 = singleSpan1.Subtract(rest5); - - singleSpan1 = singleSpan1.Subtract(singleOver24); - jomeh = jomeh.Add(singleOver24); - notHolidays = notHolidays.Add(singleSpan1); - - var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22Compute); - break; - - case "2": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Panjshanbeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Panjshanbeh); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Panjshanbeh); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Panjshanbeh); - var singleOver24Tow = new TimeSpan(); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - singleOver24 = endTimeSingel2 - singleShiftOver24; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - if (startTimeTowSh1 > endTimeTowSh2) - { - overNight = true; - singleOver24Tow = endTimeTowSh2 - singleShiftOver24; - endTimeTowSh2 = endTimeTowSh2.AddDays(1); - } - - var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; - var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; - - - singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); - singleSpanTow2 = singleSpanTow2.Subtract(singleOver24Tow); - - jomeh = jomeh.Add(singleOver24); - jomeh = jomeh.Add(singleOver24Tow); - - notHolidays = notHolidays.Add(singleSpanTow1); - notHolidays = notHolidays.Add(singleSpanTow2); - - var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22ComputeTow1); - var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); - Over22 = Over22.Add(Over22ComputeTow2); - break; - } - } - } - - if (command.jomeh) - { - if (da.DayOfWeek == "جمعه") - { - i6 += 1; - switch (command.ShiftWork) - { - case "1": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jomeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jomeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - var singleSpan1 = endTimeSingel2 - starTimeSingel1; - singleSpan1 = singleSpan1.Subtract(rest6); - - jomeh = jomeh.Add(singleSpan1); - - var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22Compute); - break; - - case "2": - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jomeh); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jomeh); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jomeh); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jomeh); - if (starTimeSingel1 > endTimeSingel2) - { - overNight = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - } - - if (startTimeTowSh1 > endTimeTowSh2) - { - overNight = true; - endTimeTowSh2 = endTimeTowSh2.AddDays(1); - } - - var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; - var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; - jomeh = jomeh.Add(singleSpanTow1); - jomeh = jomeh.Add(singleSpanTow2); - - var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); - Over22 = Over22.Add(Over22ComputeTow1); - var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); - Over22 = Over22.Add(Over22ComputeTow2); - break; - } - } - } - else - { - i6 = 0; - } - } - } - - #endregion - - #endregion - - #region Rotating - - else if (command.ShiftWork == "4") - { - for (var da = d1; da <= d2; da.AddDays(1)) - { - var FirstDayOfMonth = new PersianDateTime(da.Year, da.Month, 1); - var w1 = 0; - var w2 = 0; - var w3 = 0; - var w4 = 0; - var w5 = 0; - var w6 = 0; - - switch (FirstDayOfMonth.DayOfWeek) - { - case "شنبه": - w1 = 7; - w2 = 14; - w3 = 28; - w4 = 31; - break; - case "یکشنبه": - w1 = 6; - w2 = 13; - w3 = 20; - w4 = 27; - w5 = 31; - break; - case "دوشنبه": - w1 = 5; - w2 = 12; - w3 = 19; - w4 = 26; - w5 = 31; - break; - case "سه شنبه": - w1 = 4; - w2 = 11; - w3 = 18; - w4 = 25; - w5 = 31; - break; - case "چهارشنبه": - w1 = 3; - w2 = 10; - w3 = 17; - w4 = 24; - w5 = 31; - break; - case "پنج شنبه": - w1 = 2; - w2 = 9; - w3 = 16; - w4 = 23; - w5 = 30; - w6 = 31; - break; - case "جمعه": - w1 = 1; - w2 = 8; - w3 = 15; - w4 = 22; - w5 = 29; - w6 = 31; - break; - } - - switch (da.DayOfWeek) - { - case "شنبه": - if (da.Day <= w1) - { - if (command.Shanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); - sumRest = sumRest.Add(rest0w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); - - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w1 && da.Day <= w2) - { - if (command.Shanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); - sumRest = sumRest.Add(rest0w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w2 && da.Day <= w3) - { - if (command.Shanbe3) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w3); - sumRest = sumRest.Add(rest0w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe3); - // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w3 && da.Day <= w4) - { - if (command.Shanbe4) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe4); - // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w4); - sumRest = sumRest.Add(rest0w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe4); - // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w4); - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w4 && da.Day <= w5) - { - if (command.Shanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); - sumRest = sumRest.Add(rest0w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w5 && da.Day <= w6) - { - if (command.Shanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); - sumRest = sumRest.Add(rest0w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); - // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest0w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - - break; - case "یکشنبه": - if (da.Day <= w1) - { - if (command.YekShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); - // if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); - sumRest = sumRest.Add(rest1w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w1 && da.Day <= w2) - { - if (command.YekShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); - sumRest = sumRest.Add(rest1w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w2 && da.Day <= w3) - { - if (command.YekShanbe3) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe3); - // if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w3); - sumRest = sumRest.Add(rest1w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w3 && da.Day <= w4) - { - if (command.YekShanbe4) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w4); - sumRest = sumRest.Add(rest1w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w4 && da.Day <= w5) - { - if (command.YekShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); - sumRest = sumRest.Add(rest1w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w5 && da.Day <= w6) - { - if (command.YekShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); - sumRest = sumRest.Add(rest1w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest1w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - - break; - case "دوشنبه": - if (da.Day <= w1) - { - if (command.DoShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); - sumRest = sumRest.Add(rest2w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w1 && da.Day <= w2) - { - if (command.DoShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); - // if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); - sumRest = sumRest.Add(rest2w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w2 && da.Day <= w3) - { - if (command.DoShanbe3) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w3); - sumRest = sumRest.Add(rest2w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w3 && da.Day <= w4) - { - if (command.DoShanbe4) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w4); - sumRest = sumRest.Add(rest2w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe4); - // if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w4 && da.Day <= w5) - { - if (command.DoShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); - sumRest = sumRest.Add(rest2w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w5 && da.Day <= w6) - { - if (command.DoShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); - sumRest = sumRest.Add(rest2w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest2w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - - break; - case "سه شنبه": - if (da.Day <= w1) - { - if (command.SeShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); - sumRest = sumRest.Add(rest3w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w1 && da.Day <= w2) - { - if (command.SeShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); - sumRest = sumRest.Add(rest3w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w2 && da.Day <= w3) - { - if (command.SeShanbe3) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w3); - sumRest = sumRest.Add(rest3w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w3 && da.Day <= w4) - { - if (command.SeShanbe4) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w4); - sumRest = sumRest.Add(rest3w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w4 && da.Day <= w5) - { - if (command.SeShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); - sumRest = sumRest.Add(rest3w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w5 && da.Day <= w6) - { - if (command.SeShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); - sumRest = sumRest.Add(rest3w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest3w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - - break; - case "چهارشنبه": - if (da.Day <= w1) - { - if (command.CheharShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); - sumRest = sumRest.Add(rest4w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w1 && da.Day <= w2) - { - if (command.CheharShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); - sumRest = sumRest.Add(rest4w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w2 && da.Day <= w3) - { - if (command.CheharShanbe3) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w3); - sumRest = sumRest.Add(rest4w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe3); - // if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w3 && da.Day <= w4) - { - if (command.CheharShanbe4) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w4); - sumRest = sumRest.Add(rest4w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe4); - // if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w4 && da.Day <= w5) - { - if (command.CheharShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); - sumRest = sumRest.Add(rest4w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); - // if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w5 && da.Day <= w6) - { - if (command.CheharShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); - sumRest = sumRest.Add(rest4w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest4w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - - break; - case "پنج شنبه": - if (da.Day <= w1) - { - if (command.PanjShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); - sumRest = sumRest.Add(rest5w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); - // if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w1 && da.Day <= w2) - { - if (command.PanjShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); - // if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); - sumRest = sumRest.Add(rest5w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w2 && da.Day <= w3) - { - if (command.PanjShanbe3) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w3); - sumRest = sumRest.Add(rest5w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe3)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w3 && da.Day <= w4) - { - if (command.PanjShanbe4) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w4); - sumRest = sumRest.Add(rest5w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe4)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w4 && da.Day <= w5) - { - if (command.PanjShanbe1) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); - sumRest = sumRest.Add(rest5w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - else if (da.Day > w5 && da.Day <= w6) - { - if (command.PanjShanbe2) - { - var test = $"{da}"; - var checkHoliday = holidayList.Any(x => x == test); - if (checkHoliday == false) - { - i += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); - sumRest = sumRest.Add(rest5w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - else - { - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) - if (endTimeSingel2 - starTimeSingel1 >= rest5w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, - startTimeTowSh1, endTimeTowSh2); - HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); - } - } - } - - break; - case "جمعه": - if (da.Day <= w1) - { - if (command.Jome1) - { - var test = $"{da}"; - - - i6 += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome1); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome1)) - if (endTimeSingel2 - starTimeSingel1 >= rest6w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest6w1); - sumRest = sumRest.Add(rest6w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, - endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - } - else if (da.Day > w1 && da.Day <= w2) - { - if (command.Jome2) - { - var test = $"{da}"; - - i6 += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome2)) - if (endTimeSingel2 - starTimeSingel1 >= rest6w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest6w2); - sumRest = sumRest.Add(rest6w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, - endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - } - else if (da.Day > w2 && da.Day <= w3) - { - if (command.Jome3) - { - var test = $"{da}"; - - i6 += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome3); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome3); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome3); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome3); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome3)) - if (endTimeSingel2 - starTimeSingel1 >= rest6w3) - endTimeSingel2 = endTimeSingel2.Subtract(rest6w3); - sumRest = sumRest.Add(rest6w3); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, - endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - } - else if (da.Day > w3 && da.Day <= w4) - { - if (command.Jome4) - { - var test = $"{da}"; - - i6 += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome4); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome4); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome4); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome4); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome4)) - if (endTimeSingel2 - starTimeSingel1 >= rest6w4) - endTimeSingel2 = endTimeSingel2.Subtract(rest6w4); - sumRest = sumRest.Add(rest6w4); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, - endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - } - else if (da.Day > w4 && da.Day <= w5) - { - if (command.Jome1) - { - var test = $"{da}"; - - i6 += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome1); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome1); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome1); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome1); - // if (string.IsNullOrWhiteSpace(command.TowShifts1Jome1)) - if (endTimeSingel2 - starTimeSingel1 >= rest6w1) - endTimeSingel2 = endTimeSingel2.Subtract(rest6w1); - sumRest = sumRest.Add(rest6w1); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, - endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - } - else if (da.Day > w5 && da.Day <= w6) - { - if (command.Jome2) - { - var test = $"{da}"; - - i6 += 1; - SumComplexDays += 1; - starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome2); - endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome2); - startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome2); - endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome2); - //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome2)) - if (endTimeSingel2 - starTimeSingel1 >= rest6w2) - endTimeSingel2 = endTimeSingel2.Subtract(rest6w2); - sumRest = sumRest.Add(rest6w2); - - var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, - endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - } - } - - break; - } - - - if (da.DayOfWeek != "جمعه") - { - var testDay = $"{da}"; - var IsHoliday = holidayList.Any(x => x == testDay); - if (IsHoliday) OfficialHoliday += 1; - } - else - { - FridayStartToEnd += 1; - } - } - - rotatingResultList = rotatingResultList.Where(x => - x.IsMorningShift || x.IsEveningShift || x.IsNightShift).ToList(); - } - - #endregion - - #region ComplexCompute - - else if (command.ShiftWork == "5") //12-24 - { - var now = DateTime.Now; - var sdate2 = command.ContarctStart.ToEnglishNumber(); - var edate2 = command.ContractEnd.ToEnglishNumber(); - var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); - var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); - var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); - - var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); - var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); - var eday2 = Convert.ToInt32(edate.Substring(8, 2)); - - var d1b = new PersianDateTime(syear2, smonth2, sday2); - var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); - - var start = Convert.ToDateTime(command.Start1224); - var end = Convert.ToDateTime(command.End1224); - if (string.IsNullOrWhiteSpace(command.Start1224)) - start = Convert.ToDateTime(command.StartComplex); - if (string.IsNullOrWhiteSpace(command.End1224)) - end = Convert.ToDateTime(command.EndComplex); - - var sh = start.Hour; - var sm = start.Minute; - var eh = end.Hour; - var em = end.Minute; - var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); - var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); - - end = endDateTime.ToGregorianDateTime(); - - - for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(36)) - { - var test = $"{da2}"; - if (da2.DayOfWeek == "جمعه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - - var singleSpanTow1 = new TimeSpan(); - - i6 += 1; - if (start.Date < end.Date) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - singleSpanTow1 = end - start; - singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleOver24); - jomeh = jomeh.Add(singleSpanTow1); - i += 1; - } - else - { - singleSpanTow1 = end - start; - jomeh = jomeh.Add(singleSpanTow1); - } - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - var endCal = end - start; - var NextStart = start.AddHours(36); - end = NextStart.Add(endCal); - } - else if (da2.DayOfWeek == "پنج شنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = new TimeSpan(); - i5 += 1; - if (start.Date < end.Date && start.Day != end.Day) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - - jomeh = jomeh.Add(singleOver24); - - i6 += 1; - - singleSpan1 = end - start; - singleSpan1 = singleSpan1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleSpan1); - } - else - { - singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - } - - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - var endCal = end - start; - var NextStart = start.AddHours(36); - end = NextStart.Add(endCal); - } - else if (da2.DayOfWeek == "شنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i += 1; - var NextStart = start.AddHours(36); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "یکشنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i1 += 1; - - var NextStart = start.AddHours(36); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "دوشنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i2 += 1; - - var NextStart = start.AddHours(36); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "سه شنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - i3 += 1; - var NextStart = start.AddHours(36); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "چهارشنبه") - { - start = da2.ToGregorianDateTime(); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i4 += 1; - var NextStart = start.AddHours(36); - end = NextStart.Add(singleSpan1); - } - } - - - for (var daa = d1b; daa <= d2b; daa.AddDays(1)) - if (daa.DayOfWeek != "جمعه") - { - var test = daa.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - SumComplexDays += 1; - else - OfficialHoliday += 1; - } - else - { - FridayStartToEnd += 1; - } - } - else if (command.ShiftWork == "6") //24-24 - { - var now = DateTime.Now; - var sdate2 = command.ContarctStart.ToEnglishNumber(); - var edate2 = command.ContractEnd.ToEnglishNumber(); - var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); - var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); - var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); - - var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); - var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); - var eday2 = Convert.ToInt32(edate.Substring(8, 2)); - - var d1b = new PersianDateTime(syear2, smonth2, sday2); - var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); - - var start = Convert.ToDateTime(command.Start2424); - var end = Convert.ToDateTime(command.End2424); - if (string.IsNullOrWhiteSpace(command.Start2424)) - start = Convert.ToDateTime(command.StartComplex); - if (string.IsNullOrWhiteSpace(command.End2424)) - end = Convert.ToDateTime(command.EndComplex); - - var sh = start.Hour; - var sm = start.Minute; - var eh = end.Hour; - var em = end.Minute; - var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); - var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); - //if (start > end) - //{ - - // endDateTime.AddDays(1); - //} - - endDateTime.AddDays(1); - end = endDateTime.ToGregorianDateTime(); - - - for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(48)) - { - var test = $"{da2}"; - if (da2.DayOfWeek == "جمعه") - { - start = da2.ToGregorianDateTime(); - - var singleSpanTow1 = new TimeSpan(); - var WorkHours = end - start; - i6 += 1; - if (start.Date < end.Date) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - singleSpanTow1 = end - start; - singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleOver24); - jomeh = jomeh.Add(singleSpanTow1); - i += 1; - } - else - { - singleSpanTow1 = end - start; - jomeh = jomeh.Add(singleSpanTow1); - } - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - var NextStart = start.AddHours(48); - end = NextStart.Add(WorkHours); - } - else if (da2.DayOfWeek == "پنج شنبه") - { - start = da2.ToGregorianDateTime(); - var singleSpan1 = new TimeSpan(); - var WorkHours = end - start; - i5 += 1; - if (start.Date < end.Date && start.Day != end.Day) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - - jomeh = jomeh.Add(singleOver24); - - i6 += 1; - - singleSpan1 = end - start; - singleSpan1 = singleSpan1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleSpan1); - } - else - { - singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - } - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - var NextStart = start.AddHours(48); - end = NextStart.Add(WorkHours); - } - else if (da2.DayOfWeek == "شنبه") - { - start = da2.ToGregorianDateTime(); - - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i += 1; - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "یکشنبه") - { - start = da2.ToGregorianDateTime(); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i1 += 1; - - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "دوشنبه") - { - start = da2.ToGregorianDateTime(); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i2 += 1; - - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "سه شنبه") - { - start = da2.ToGregorianDateTime(); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i3 += 1; - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "چهارشنبه") - { - start = da2.ToGregorianDateTime(); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i4 += 1; - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - } - - - for (var daa = d1b; daa <= d2b; daa.AddDays(1)) - if (daa.DayOfWeek != "جمعه") - { - var test = daa.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - SumComplexDays += 1; - else - OfficialHoliday += 1; - } - else - { - FridayStartToEnd += 1; - } - } - else if (command.ShiftWork == "7") //12-36 - { - var now = DateTime.Now; - var sdate2 = command.ContarctStart.ToEnglishNumber(); - var edate2 = command.ContractEnd.ToEnglishNumber(); - var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); - var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); - var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); - - var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); - var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); - var eday2 = Convert.ToInt32(edate.Substring(8, 2)); - - var d1b = new PersianDateTime(syear2, smonth2, sday2); - var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); - - var start = Convert.ToDateTime(command.Start1236); - var end = Convert.ToDateTime(command.End1236); - if (string.IsNullOrWhiteSpace(command.Start1236)) - start = Convert.ToDateTime(command.StartComplex); - if (string.IsNullOrWhiteSpace(command.End1236)) - end = Convert.ToDateTime(command.EndComplex); - - var sh = start.Hour; - var sm = start.Minute; - var eh = end.Hour; - var em = end.Minute; - var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); - var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); - //if (start > end) - //{ - - // endDateTime.AddDays(1); - //} - - //endDateTime.AddDays(1); - end = endDateTime.ToGregorianDateTime(); - - - for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(48)) - { - var test = $"{da2}"; - if (da2.DayOfWeek == "جمعه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - - var singleSpanTow1 = new TimeSpan(); - - i6 += 1; - if (start.Date < end.Date) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - singleSpanTow1 = end - start; - singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleOver24); - jomeh = jomeh.Add(singleSpanTow1); - i += 1; - } - else - { - singleSpanTow1 = end - start; - jomeh = jomeh.Add(singleSpanTow1); - } - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - var WorkHours = end - start; - var NextStart = start.AddHours(48); - end = NextStart.Add(WorkHours); - } - else if (da2.DayOfWeek == "پنج شنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = new TimeSpan(); - - i5 += 1; - if (start.Date < end.Date && start.Day != end.Day) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - - jomeh = jomeh.Add(singleOver24); - - i6 += 1; - - singleSpan1 = end - start; - singleSpan1 = singleSpan1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleSpan1); - } - else - { - singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - } - - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - var WorkHours = end - start; - var NextStart = start.AddHours(48); - end = NextStart.Add(WorkHours); - } - else if (da2.DayOfWeek == "شنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i += 1; - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "یکشنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i1 += 1; - - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "دوشنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i2 += 1; - - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "سه شنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - i3 += 1; - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "چهارشنبه") - { - start = da2.ToGregorianDateTime(); - if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) - end = end.AddDays(1); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i4 += 1; - var NextStart = start.AddHours(48); - end = NextStart.Add(singleSpan1); - } - } - - - for (var daa = d1b; daa <= d2b; daa.AddDays(1)) - if (daa.DayOfWeek != "جمعه") - { - var test = daa.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - SumComplexDays += 1; - else - OfficialHoliday += 1; - } - else - { - FridayStartToEnd += 1; - } - } - else if (command.ShiftWork == "8") //24-48 - { - var now = DateTime.Now; - var sdate2 = command.ContarctStart.ToEnglishNumber(); - var edate2 = command.ContractEnd.ToEnglishNumber(); - var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); - var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); - var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); - - var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); - var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); - var eday2 = Convert.ToInt32(edate.Substring(8, 2)); - - var d1b = new PersianDateTime(syear2, smonth2, sday2); - var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); - - var start = Convert.ToDateTime(command.Start2448); - var end = Convert.ToDateTime(command.End2448); - if (string.IsNullOrWhiteSpace(command.Start2448)) - start = Convert.ToDateTime(command.StartComplex); - if (string.IsNullOrWhiteSpace(command.End2448)) - end = Convert.ToDateTime(command.EndComplex); - - var sh = start.Hour; - var sm = start.Minute; - var eh = end.Hour; - var em = end.Minute; - var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); - var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); - //if (start > end) - //{ - - // endDateTime.AddDays(1); - //} - - - end = endDateTime.ToGregorianDateTime(); - end = end.AddDays(1); - - - for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(72)) - { - var test = $"{da2}"; - if (da2.DayOfWeek == "جمعه") - { - start = da2.ToGregorianDateTime(); - - var singleSpanTow1 = new TimeSpan(); - - i6 += 1; - if (start.Date < end.Date) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - singleSpanTow1 = end - start; - singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleOver24); - jomeh = jomeh.Add(singleSpanTow1); - i += 1; - } - else - { - singleSpanTow1 = end - start; - jomeh = jomeh.Add(singleSpanTow1); - } - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - var WorkHours = end - start; - var NextStart = start.AddHours(72); - end = NextStart.Add(WorkHours); - } - else if (da2.DayOfWeek == "پنج شنبه") - { - start = da2.ToGregorianDateTime(); - var singleSpan1 = new TimeSpan(); - - i5 += 1; - if (start.Date < end.Date && start.Day != end.Day) - { - overNight = true; - var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); - singleOver24 = end - over24; - - - jomeh = jomeh.Add(singleOver24); - - i6 += 1; - - singleSpan1 = end - start; - singleSpan1 = singleSpan1.Subtract(singleOver24); - notHolidays = notHolidays.Add(singleSpan1); - } - else - { - singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - } - - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - var WorkHours = end - start; - var NextStart = start.AddHours(72); - end = NextStart.Add(WorkHours); - } - else if (da2.DayOfWeek == "شنبه") - { - start = da2.ToGregorianDateTime(); - - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i += 1; - var NextStart = start.AddHours(72); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "یکشنبه") - { - start = da2.ToGregorianDateTime(); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i1 += 1; - - var NextStart = start.AddHours(72); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "دوشنبه") - { - start = da2.ToGregorianDateTime(); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i2 += 1; - - var NextStart = start.AddHours(72); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "سه شنبه") - { - start = da2.ToGregorianDateTime(); - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - i3 += 1; - var NextStart = start.AddHours(72); - end = NextStart.Add(singleSpan1); - } - else if (da2.DayOfWeek == "چهارشنبه") - { - start = da2.ToGregorianDateTime(); - - var singleSpan1 = end - start; - notHolidays = notHolidays.Add(singleSpan1); - - var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, - start.Second); - var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, - end.Second); - var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); - rotatingCheck.RotatingDate = test; - rotatingResultList.Add(rotatingCheck); - //var Over22Computing = Over22Complex2424(start, end); - Over22 = Over22.Add(rotatingCheck.NightWorkSpan); - - - i4 += 1; - var NextStart = start.AddHours(72); - end = NextStart.Add(singleSpan1); - } - } - - - for (var daa = d1b; daa <= d2b; daa.AddDays(1)) - if (daa.DayOfWeek != "جمعه") - { - var test = daa.ToGregorianDateTime(); - var checkHoliday = _holidayItemRepository.GetHoliday(test); - if (checkHoliday == false) - SumComplexDays += 1; - else - OfficialHoliday += 1; - } - else - { - FridayStartToEnd += 1; - } - } - - #endregion - - #region DayCounterAndDailyFix - - var sumDays = i + i1 + i2 + i3 + i4 + i5 + i6; - var holidaysCount = i6; - var notHolidaysCount = i + i1 + i2 + i3 + i4 + i5; - // ساعات موظفی - var ComplexFix = dailyFix.Multiply(SumComplexDays); - - dailyFix = dailyFix.Multiply(sumDays); - - Notholiday = notHolidaysCount.ToString(); - Holidays = holidaysCount.ToString(); - - var searchModel = new LeftWorkSearchModel - { - EmployeeId = command.EmployeeId, - WorkshopId = command.WorkshopId - }; - - var leftworkList = _leftWorkApplication.search(searchModel); - var lastLeftWork = leftworkList.FirstOrDefault(); - - var conStart = conStartGr; - var EndOfM = Convert.ToInt32(command.ContractEnd.Substring(8, 2)); - var conEnd = conEndGr; - if (lastLeftWork.LeftWorkDate != "1500/01/01" && lastLeftWork.LeftWorkDateGr < conEnd) - { - conEnd = lastLeftWork.LeftWorkDateGr.AddDays(-1); - } - else - { - if (EndOfM == 31) conEnd = conEnd.AddDays(-1); - } - - - var AllDaysCount = (conEnd - conStart).TotalDays + 1; - var endContract = command.ContractEnd.ToGeorgianDateTime(); - var allDays = (endContract - conStart).TotalDays + 1; - - - var jomeh2 = new TimeSpan(); - - var notHolidays2 = new TimeSpan(); - var Mandatory = new TimeSpan(); - - - notHolidays = notHolidays.Add(jomeh); - - var workingDaysH = (int)notHolidays.TotalHours; - var workingDaysM = notHolidays.TotalMinutes % 60; - - HolidaysAndNot = HolidaysAndNot.Add(notHolidays); - var totalHolidaysAndNotH = (int)HolidaysAndNot.TotalHours; - var totalHolidaysAndNotM = HolidaysAndNot.TotalMinutes % 60; - notHolidays2 = notHolidays2.Add(jomeh2); - - - var SumNotHolidays = notHolidays.Add(notHolidays2); - var SumNotHolidaysHours = (int)SumNotHolidays.TotalHours; - var SumNotHolidaysMinuts = SumNotHolidays.Minutes % 60; - - var SumHolidays = jomeh.Add(jomeh2); - var SumHolidaysHours = (int)SumHolidays.TotalHours; - var SumHolidaysMinuts = SumHolidays.Minutes % 60; - - var totalHoursShift1 = notHolidays; - var totalHoursShift1And2 = SumNotHolidays; - - #endregion - - #region DailyFeeCompute - - var basic = "0"; - - var GetWorkStartDate = command.GetWorkDateHide.ToEnglishNumber(); - var GetWorkEndDate = command.ContractEnd.ToEnglishNumber(); - var styear = Convert.ToInt32(GetWorkStartDate.Substring(0, 4)); - var stmonth = Convert.ToInt32(GetWorkStartDate.Substring(5, 2)); - var stday = Convert.ToInt32(GetWorkStartDate.Substring(8, 2)); - - var edyear = Convert.ToInt32(GetWorkEndDate.Substring(0, 4)); - var edmonth = Convert.ToInt32(GetWorkEndDate.Substring(5, 2)); - var edday = Convert.ToInt32(GetWorkEndDate.Substring(8, 2)); - var startDate = command.GetWorkDateHide.ToGeorgianDateTime(); - var endDate = command.ContractEnd.ToGeorgianDateTime(); - var dayliFee = "خطای تاریخ"; - var contractStartDate = command.ContarctStart.ToGeorgianDateTime(); - if (styear >= 1370) - { - if (leftworkList == null) - leftworkList = new List(); - - var dayliFeeResult = _yearlySalaryRepository.DayliFeeComputing(startDate, contractStartDate, - contractStartDate, command.EmployeeId, command.WorkshopId, leftworkList); - dayliFee = dayliFeeResult.DayliFee; - basic = dayliFeeResult.Basic; - } - - #endregion - - #region ConsumableItemsAndHousingAndFamily - - var ConsumableItems = _yearlySalaryRepository.ConsumableItems(contractStartDate); - var HousingAllowance = _yearlySalaryRepository.HousingAllowance(contractStartDate); - - var familyAllowance = _yearlySalaryRepository.FamilyAllowanceAutoExtention(command.EmployeeId, contractStartDate); - - #endregion - - #region Fix44Compute - - var dailyFixx = TimeSpan.Parse("07:20"); - var fix44 = dailyFixx.Multiply(6); - - var divideNum = TimeSpan.Parse("06:00"); - //ساعت موظفی برای یک ماه - - var TotalContractDays = (conEndGr - conStartGr).TotalDays + 1; - var totalDyasUnder30 = 0.0; - var startMonth = $"{command.ContarctStart.Substring(0, 8)}01"; - var startMonthGr = startMonth.ToGeorgianDateTime(); - var endOfMonth = command.ContarctStart.FindeEndOfMonth(); - var endOgMonthGr = endOfMonth.ToGeorgianDateTime(); - if (conEnd > endOgMonthGr) - { - if (startMonthGr == conStartGr) - totalDyasUnder30 = (endOgMonthGr - conStartGr).TotalDays + 1; - else - totalDyasUnder30 = (endOgMonthGr - conStartGr).TotalDays; - } - else if (conEnd <= endOgMonthGr) - { - if (startMonthGr == conStartGr) - totalDyasUnder30 = (conEndGr - conStartGr).TotalDays + 1; - else - totalDyasUnder30 = (conEndGr - conStartGr).TotalDays; - } - - - var totalWeek = (int)(TotalContractDays / 6); - var TotalDaysNoFriday = TotalContractDays - FridayStartToEnd; // مورد اول - تعطیلات رسمی به این فرمول اضافه شود - var FixHourses = TotalDaysNoFriday * 7.33; - if (command.ShiftWork == "1") - { - if (SumSingle < fix44) - { - // مجموع ساعت کار هفته تقسیم بر 6 ساعت - var dividTo6Days = SumSingle.Divide(divideNum); - - //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); - //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); - //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - var DailyFeeNumberType = dayliFee.MoneyToDouble(); - - //مزد روزانه تقسیم بر 7/33 - var dailyStep1 = DailyFeeNumberType / 7.33; - //نتیجه ضربدر جواب مجموع ساعت تقسیم بر 6 روز هفته - var dailyStep2 = dailyStep1 * dividTo6Days; - - dayliFee = dailyStep2.ToMoney(); - - //var HousingStep1 = HousingAllowonceNumberType / 30; - //var HousingStep2 = HousingStep1 / 7.33; - //var HousingStep3 = HousingStep2 * dividTo6Days; - //var HousingStep4 = HousingStep3 * AllDaysCount; - //HousingAllowance = HousingStep4.ToMoney(); - - //var consumableItemsStep1 = ConsumableItemsNumberType / 30; - //var consumableItemsStep2 = consumableItemsStep1 / 7.33; - //var consumableItemsStep3 = consumableItemsStep2 * dividTo6Days; - //var consumableItemsStep4 = consumableItemsStep3 * AllDaysCount; - //ConsumableItems = consumableItemsStep4.ToMoney(); - - //if (familyAllowance != "0") - //{ - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; - // var familyAllowanceStep3 = familyAllowanceStep2 * dividTo6Days; - // var familyAllowanceStep4 = familyAllowanceStep3 * AllDaysCount; - // familyAllowance = familyAllowanceStep4.ToMoney(); - //} - - var sumSingleRound = Math.Round(SumSingle.TotalHours, 2); - weeklyTime = SumSingle; - SumWorkeTime = $"{sumSingleRound}"; - } - else - { - //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); - //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); - //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - - //var HousingStep1 = HousingAllowonceNumberType / 30; - //var HousingStep4 = HousingStep1 * AllDaysCount; - //HousingAllowance = HousingStep4.ToMoney(); - - - //var consumableItemsStep1 = ConsumableItemsNumberType / 30; - //var consumableItemsStep4 = consumableItemsStep1 * AllDaysCount; - //ConsumableItems = consumableItemsStep4.ToMoney(); - - //if (familyAllowance != "0") - //{ - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyAllowanceStep4 = familyAllowanceStep1 * AllDaysCount; - // familyAllowance = familyAllowanceStep4.ToMoney(); - //} - - SumWorkeTime = $"{44}"; - } - } - else if (command.ShiftWork == "2") - { - var totalShift = SumSingle + SumTow; - if (totalShift < fix44) - { - var dividTo6Days = totalShift.Divide(divideNum); - var DailyFeeNumberType = dayliFee.MoneyToDouble(); - - //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); - //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); - //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - - var step1 = DailyFeeNumberType / 7.33; - var step2 = step1 * dividTo6Days; - - dayliFee = step2.ToMoney(); - - - //var HousingStep1 = HousingAllowonceNumberType / 30; - //var HousingStep2 = HousingStep1 / 7.33; - //var HousingStep3 = HousingStep2 * dividTo6Days; - //var HousingStep4 = HousingStep3 * AllDaysCount; - //HousingAllowance = HousingStep4.ToMoney(); - - //var consumableItemsStep1 = ConsumableItemsNumberType / 30; - //var consumableItemsStep2 = consumableItemsStep1 / 7.33; - //var consumableItemsStep3 = consumableItemsStep2 * dividTo6Days; - //var consumableItemsStep4 = consumableItemsStep3 * AllDaysCount; - //ConsumableItems = consumableItemsStep4.ToMoney(); - - //if (familyAllowance != "0") - //{ - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; - // var familyAllowanceStep3 = familyAllowanceStep2 * dividTo6Days; - // var familyAllowanceStep4 = familyAllowanceStep3 * AllDaysCount; - // familyAllowance = familyAllowanceStep4.ToMoney(); - //} - var totalShiftRound = Math.Round(totalShift.TotalHours, 2); - SumWorkeTime = $"{totalShiftRound}"; - weeklyTime = totalShift; - } - else - { - //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); - //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); - //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - - //var consumableItemsStep1 = ConsumableItemsNumberType / 30; - //var consumableItemsStep4 = consumableItemsStep1 * AllDaysCount; - //ConsumableItems = consumableItemsStep4.ToMoney(); - - //var HousingStep1 = HousingAllowonceNumberType / 30; - //var HousingStep4 = HousingStep1 * AllDaysCount; - //HousingAllowance = HousingStep4.ToMoney(); - - //if (familyAllowance != "0") - //{ - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyAllowanceStep4 = familyAllowanceStep1 * AllDaysCount; - // familyAllowance = familyAllowanceStep4.ToMoney(); - //} - SumWorkeTime = $"{44}"; - } - } - else if (command.ShiftWork == "4") - { - var totalHourses = HolidaysAndNot.TotalMinutes / 60; - //var totalHourses = (totalHoursShift1.TotalMinutes) / 60; - //var dividedForOneDay = totalHourses / notHolidaysCount; - if (totalHourses < FixHourses) - { - var DailyFeeNumberType = dayliFee.MoneyToDouble(); - var dailyStep1 = DailyFeeNumberType / 7.33; - var hoursesPerDay = totalHourses / TotalDaysNoFriday; - var result = hoursesPerDay * dailyStep1; - - dayliFee = result.ToMoney(); - - - var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); - var HousingStep1 = HousingAllowonceNumberType / 30; // کمک هزینه خام به ازای روز - var HousingStep2 = HousingStep1 / 7.33; // کمک هزینه خام به ازای یک ساعت - var HousingStep3 = - HousingStep2 * hoursesPerDay; // کمک هزینه یک ساعت ضربدر میانگین کارکرد یک روز برحسب ساعت - var HousingStep4 = - HousingStep3 * - totalDyasUnder30; // کمک هزینه کارکرد یک روز ضربدر تعداد روزهای قرارداد ماکسیمم یک ماه - HousingAllowance = HousingStep4.ToMoney(); - - var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); - var consumableItemsStep1 = ConsumableItemsNumberType / 30; - var consumableItemsStep2 = consumableItemsStep1 / 7.33; - var consumableItemsStep3 = consumableItemsStep2 * hoursesPerDay; - var consumableItemsStep4 = consumableItemsStep3 * totalDyasUnder30; - ConsumableItems = consumableItemsStep4.ToMoney(); - - if (familyAllowance != "0") - { - var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - var familyAllowanceStep1 = familyAllowanceNumberType / 30; - var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; - var familyAllowanceStep3 = familyAllowanceStep2 * hoursesPerDay; - var familyAllowanceStep4 = familyAllowanceStep3 * totalDyasUnder30; - familyAllowance = familyAllowanceStep4.ToMoney(); - } - - if (totalWeek > 1) - { - double weekAvrage = 0; - if (totalHourses < 44.00) - weekAvrage = totalHourses * 6 / TotalContractDays; - else - weekAvrage = totalHourses * 6 / TotalDaysNoFriday; - //var oneday = weekAvrage * 6; - var totalShiftRound = Math.Round(weekAvrage, 2); - SumWorkeTime = $"{totalShiftRound}"; - } - else if (totalWeek <= 1 && TotalDaysNoFriday <= 6) - { - var totalShiftRound = Math.Round(totalHourses, 2); - SumWorkeTime = $"{totalShiftRound}"; - } - else if (totalWeek <= 1 && TotalDaysNoFriday > 6) - - { - var perDyeWorked = totalHourses / TotalDaysNoFriday; - var weekAvrage = perDyeWorked * 6; - var totalShiftRound = Math.Round(weekAvrage, 2); - SumWorkeTime = $"{totalShiftRound}"; - } - - weeklyTime = totalHoursShift1; - } - else - { - //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); - //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); - //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - - //var HousingStep1 = HousingAllowonceNumberType / 30; - //var HousingStep4 = HousingStep1 * AllDaysCount; - //HousingAllowance = HousingStep4.ToMoney(); - - - //var consumableItemsStep1 = ConsumableItemsNumberType / 30; - //var consumableItemsStep4 = consumableItemsStep1 * AllDaysCount; - //ConsumableItems = consumableItemsStep4.ToMoney(); - - //if (familyAllowance != "0") - //{ - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyAllowanceStep4 = familyAllowanceStep1 * AllDaysCount; - // familyAllowance = familyAllowanceStep4.ToMoney(); - //} - - SumWorkeTime = $"{44}"; - } - } - else - { - var totalHourses = totalHoursShift1.TotalMinutes / 60; - - if (totalHourses < FixHourses) - { - var dailyFeeNumberType = dayliFee.MoneyToDouble(); - var dailyStep1 = dailyFeeNumberType / 7.33; - var hoursesPerDay = totalHourses / TotalDaysNoFriday; - var result = hoursesPerDay * dailyStep1; - - dayliFee = result.ToMoney(); - - //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); - //var HousingStep1 = HousingAllowonceNumberType / 30; - //var HousingStep2 = HousingStep1 / 7.33; - //var HousingStep3 = HousingStep2 * hoursesPerDay; - //var HousingStep4 = HousingStep3 * AllDaysCount; - //HousingAllowance = HousingStep4.ToMoney(); - - //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); - //var consumableItemsStep1 = ConsumableItemsNumberType / 30; - //var consumableItemsStep2 = consumableItemsStep1 / 7.33; - //var consumableItemsStep3 = consumableItemsStep2 * hoursesPerDay; - //var consumableItemsStep4 = consumableItemsStep3 * AllDaysCount; - //ConsumableItems = consumableItemsStep4.ToMoney(); - - //if (familyAllowance != "0") - //{ - - // var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); - // var familyAllowanceStep1 = familyAllowanceNumberType / 30; - // var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; - // var familyAllowanceStep3 = familyAllowanceStep2 * hoursesPerDay; - // var familyAllowanceStep4 = familyAllowanceStep3 * AllDaysCount; - // familyAllowance = familyAllowanceStep4.ToMoney(); - //} - } - } - - #endregion - - #region MandatoryTimeCompute - - if (command.ShiftWork == "1" && totalHoursShift1 > dailyFix) Mandatory = totalHoursShift1.Subtract(dailyFix); - - if (command.ShiftWork == "2" && totalHoursShift1And2 > dailyFix) - Mandatory = totalHoursShift1And2.Subtract(dailyFix); - - if (command.ShiftWork == "4" && totalHoursShift1 > dailyFix) Mandatory = totalHoursShift1.Subtract(dailyFix); - if ((command.ShiftWork == "5" && totalHoursShift1 > ComplexFix) - || (command.ShiftWork == "6" && totalHoursShift1 > ComplexFix) - || (command.ShiftWork == "7" && totalHoursShift1 > ComplexFix) - || (command.ShiftWork == "8" && totalHoursShift1 > ComplexFix)) - Mandatory = totalHoursShift1.Subtract(ComplexFix); - var mandatoryHours = (int)Mandatory.TotalHours; - var mandatoryminuts = Mandatory.Minutes % 60; - - //Over22 = Over22.Multiply(sumDays); - var Over22hours = (int)Over22.TotalHours; - var Over22Minuts = Over22.TotalMinutes % 60; - - if (command.ShiftWork == "1" || command.ShiftWork == "4") - { - shift1Hourse = workingDaysH.ToString(); - shift1Minuts = workingDaysM.ToString(); - - - if (totalHoursShift1 > dailyFix) - { - overMandatoryHours = mandatoryHours.ToString(); - overMandatoryMinuts = mandatoryminuts.ToString(); - //line3 = "مجموع ساعات اضافه کاری " + " : " + $" {mandatoryHours} " + "ساعت و " + $" {mandatoryminuts} " + "دقیقه"; - } - - - shiftOver22Hours = Over22hours.ToString(); - shiftOver22Minuts = Over22Minuts.ToString(); - } - - if (command.ShiftWork == "2") - { - shift1Hourse = SumNotHolidaysHours.ToString(); - shift1Minuts = SumNotHolidaysMinuts.ToString(); - - - if (totalHoursShift1And2 > dailyFix) - { - overMandatoryHours = mandatoryHours.ToString(); - overMandatoryMinuts = mandatoryminuts.ToString(); - } - - shiftOver22Hours = Over22hours.ToString(); - shiftOver22Minuts = Over22Minuts.ToString(); - } - - if (command.ShiftWork == "5" || command.ShiftWork == "6" || command.ShiftWork == "7" || - command.ShiftWork == "8") - { - shift1Hourse = workingDaysH.ToString(); - shift1Minuts = workingDaysM.ToString(); - - - // اضافه کاری - if (totalHoursShift1 > ComplexFix) - { - overMandatoryHours = mandatoryHours.ToString(); - overMandatoryMinuts = mandatoryminuts.ToString(); - //line3 = "مجموع ساعات اضافه کاری " + " : " + $" {mandatoryHours} " + "ساعت و " + $" {mandatoryminuts} " + "دقیقه"; - } - //else if(totalHoursShift1 < ComplexFix) - //{ - // var totalHourses = (totalHoursShift1.TotalMinutes) / 60; - - // var DailyFeeNumberType = dayliFee.MoneyToDouble(); - // var dailyStep1 = DailyFeeNumberType / 7.33; - // var dailyStep2 = totalHourses / notHolidaysCount; - // var result = dailyStep2 * dailyStep1; - - // dayliFee = result.ToMoney(); - //} - - - shiftOver22Hours = Over22hours.ToString(); - shiftOver22Minuts = Over22Minuts.ToString(); - } - - var ComplexNotHolidays = string.Empty; - if (command.ShiftWork == "5" || command.ShiftWork == "6" || command.ShiftWork == "7" || - command.ShiftWork == "8") - { - ComplexNotHolidays = Notholiday; - Notholiday = "0"; - } - - #endregion - - #region RtatingStatus - - var moriningCount = rotatingResultList.Count(x => x.IsMorningShift); - var eveningCount = rotatingResultList.Count(x => x.IsEveningShift); - var nightCount = rotatingResultList.Count(x => x.IsNightShift); - - var RotatingfaName = new List(); - if (moriningCount > 0) - RotatingfaName.Add("صبح"); - if (eveningCount > 0) - RotatingfaName.Add("عصر"); - if (nightCount > 0) - RotatingfaName.Add("شب"); - var rotatingFaResult = ""; - if (RotatingfaName.Count > 1) - { - shiftOver22Hours = "0"; - shiftOver22Minuts = "0"; - for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++) - { - if (rotateNumber == 0) - rotatingFaResult = $"{RotatingfaName[rotateNumber]}"; - if (rotateNumber == 1) - rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; - if (rotateNumber == 2) - rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; - } - } - else if (RotatingfaName.Count <= 1) - { - rotatingFaResult = "نوبت کاری ندارد"; - } - - #endregion - - #region sendResult - - rotatingResultList = rotatingResultList.Take(28).ToList(); - var ress = new ComputingViewModel - { - NumberOfWorkingDays = Notholiday == "0" ? ComplexNotHolidays : Notholiday, - NumberOfFriday = Holidays, - TotalHoursesH = shift1Hourse, - TotalHoursesM = shift1Minuts, - E = shift1HolidayHours, - F = shift1HolidayMinuts, - Interference = InterferenceMessage, - OverTimeWorkH = overMandatoryHours, - OverTimeWorkM = overMandatoryMinuts, - OverNightWorkH = shiftOver22Hours, - OverNightWorkM = shiftOver22Minuts, - ComplexNumberOfWorkingDays = ComplexNotHolidays, - SalaryCompute = dayliFee, - SumTime44 = SumWorkeTime, - ConsumableItems = ConsumableItems, - HousingAllowance = HousingAllowance, - FamilyAllowance = familyAllowance, - OfficialHoliday = OfficialHoliday, - weeklyTime = weeklyTime, - RotatingResultList = rotatingResultList, - RotatingStatus = rotatingFaResult, - Basic = basic - }; - - - return ress; - - #endregion - } - - #endregion - - #region MandatoryDependingMetods - - public RotatingShiftViewModel RotatingShiftCheck(DateTime? singleShift1, DateTime? singleShift2, - DateTime? towShift1, DateTime? towShift2) - { - #region Entityes - - var nullDateTme = new DateTime(0001, 01, 01); - var midNight24 = Convert.ToDateTime("00:00"); - var morningWorkingTime1 = new TimeSpan(); - var eveningWorkingTime1 = new TimeSpan(); - var nightWorkingTime1 = new TimeSpan(); - var morningWorkingTime2 = new TimeSpan(); - var eveningWorkingTime2 = new TimeSpan(); - var nightWorkingTime2 = new TimeSpan(); - var morningStart = Convert.ToDateTime("06:00"); - var morningEnd = Convert.ToDateTime("14:00"); - var eveningStart = Convert.ToDateTime("14:00"); - var eveningEnd = Convert.ToDateTime("22:00"); - var nightStart = Convert.ToDateTime("22:00"); - var nightEnd = Convert.ToDateTime("6:00"); - var nightEndNextday = nightEnd.AddDays(1); - var morningEndNextday = morningEnd.AddDays(1); - - #endregion - - #region shift1 - - if (singleShift1 != nullDateTme && singleShift2 != nullDateTme) - { - if (singleShift2 < singleShift1) singleShift2 = singleShift2?.AddDays(1); - - if (singleShift1 == singleShift2) // example 22<---22 - { - nightWorkingTime1 = new TimeSpan(8, 0, 0); - morningWorkingTime1 = new TimeSpan(8, 0, 0); - eveningWorkingTime1 = new TimeSpan(8, 0, 0); - } - else - { - #region morning enter 14 <- 6 - - if (singleShift1 >= morningStart // 14<---<6 - && singleShift1 < morningEnd - && singleShift2 > morningStart - && singleShift2 <= morningEnd) - { - morningWorkingTime1 = (TimeSpan)(singleShift2 - singleShift1); - } - else if (singleShift1 >= morningStart // <---14---6 - && singleShift1 < morningEnd - && singleShift2 > morningStart - && singleShift2 <= nightEndNextday) - { - if (singleShift2 <= eveningEnd) // 22<---14---6 - { - morningWorkingTime1 = (TimeSpan)(morningEnd - singleShift1); - eveningWorkingTime1 = (TimeSpan)(singleShift2 - eveningStart); - } - else if (singleShift2 > eveningEnd) // 6<---22---14---6 - { - morningWorkingTime1 = (TimeSpan)(morningEnd - singleShift1); - eveningWorkingTime1 = new TimeSpan(8, 0, 0); - nightWorkingTime1 = (TimeSpan)(singleShift2 - eveningEnd); - } - } - else if (singleShift1 >= morningStart // 14<---<6 - && singleShift1 < morningEnd - && singleShift2 > morningStart - && singleShift2 > nightEndNextday) - { - eveningWorkingTime1 = new TimeSpan(8, 0, 0); - nightWorkingTime1 = new TimeSpan(8, 0, 0); - morningWorkingTime1 = (TimeSpan)(morningEnd - singleShift1); - morningWorkingTime1 += (TimeSpan)(singleShift2 - nightEndNextday); - } - - #endregion - - #region evening enter 22 <- 14 - - if (singleShift1 >= eveningStart // 22<---<14 - && singleShift1 < eveningEnd - && singleShift2 > eveningStart - && singleShift2 <= eveningEnd) - { - eveningWorkingTime1 = (TimeSpan)(singleShift2 - singleShift1); - } - else if (singleShift1 >= eveningStart // <14---6---22---14 - && singleShift1 < eveningEnd - && singleShift2 > eveningStart - && singleShift2 <= morningEndNextday) - { - if (singleShift2 <= nightEndNextday) // 6<---22---14 - { - eveningWorkingTime1 = (TimeSpan)(eveningEnd - singleShift1); - nightWorkingTime1 = (TimeSpan)(singleShift2 - eveningEnd); - } - else if (singleShift2 > nightEndNextday) // 14<---6---22---14 - { - eveningWorkingTime1 = (TimeSpan)(eveningEnd - singleShift1); - nightWorkingTime1 = new TimeSpan(8, 0, 0); - morningWorkingTime1 = (TimeSpan)(singleShift2 - nightEndNextday); - } - } - else if (singleShift1 >= eveningStart // <22---14---6---22---14 - && singleShift1 < eveningEnd - && singleShift2 > eveningStart - && singleShift2 > morningEndNextday) - { - nightWorkingTime1 = new TimeSpan(8, 0, 0); - morningWorkingTime1 = new TimeSpan(8, 0, 0); - eveningWorkingTime1 = (TimeSpan)(eveningEnd - singleShift1); - eveningWorkingTime1 += (TimeSpan)(singleShift2 - morningEndNextday); - } - - #endregion - - #region night enter 6 <- 22 - - if ((singleShift1 >= nightStart // 6<---<22 - && singleShift1 < nightEndNextday - && singleShift2 > nightStart - && singleShift2 <= nightEndNextday) - || (singleShift1 >= midNight24 - && singleShift1 < nightEnd - && singleShift2 > midNight24 - && singleShift2 <= nightEnd)) - { - nightWorkingTime1 = (TimeSpan)(singleShift2 - singleShift1); - } - else if (singleShift1 >= nightStart // <---6---22 - && singleShift1 < nightEndNextday - && singleShift2 > nightStart - && singleShift2 > nightEndNextday) - { - if (singleShift2 <= morningEndNextday) // 14<---6---22 - { - nightWorkingTime1 = (TimeSpan)(nightEndNextday - singleShift1); - morningWorkingTime1 = (TimeSpan)(singleShift2 - nightEndNextday); - } - else if (singleShift2 > morningEndNextday) // 22<---14---6---22 - { - nightWorkingTime1 = (TimeSpan)(nightEndNextday - singleShift1); - morningWorkingTime1 = new TimeSpan(8, 0, 0); - eveningWorkingTime1 = (TimeSpan)(singleShift2 - morningEndNextday); - } - } - else if (singleShift1 >= midNight24 // <---6---00 - && singleShift1 < nightEnd - && singleShift2 > midNight24 - && singleShift2 > nightEnd) - - { - if (singleShift2 <= morningEnd) // 14<---6---00 - { - nightWorkingTime1 = (TimeSpan)(nightEnd - singleShift1); - morningWorkingTime1 = (TimeSpan)(singleShift2 - nightEnd); - } - - else if (singleShift2 > morningEnd && singleShift1 >= midNight24) // 22<---14---6--00 - { - nightWorkingTime1 = (TimeSpan)(nightEnd - singleShift1); - morningWorkingTime1 = new TimeSpan(8, 0, 0); - eveningWorkingTime1 = (TimeSpan)(singleShift2 - morningEnd); - } - } - - #endregion - } - } - - #endregion - - #region shift2 - - if (towShift1 != nullDateTme && towShift2 != nullDateTme) - { - if (towShift2 < towShift1) towShift2 = towShift2?.AddDays(1); - - if (towShift1 == towShift2) // example 22<---22 - { - nightWorkingTime2 = new TimeSpan(8, 0, 0); - morningWorkingTime2 = new TimeSpan(8, 0, 0); - eveningWorkingTime2 = new TimeSpan(8, 0, 0); - } - else - { - #region morning enter 14 <- 6 - - if (towShift1 >= morningStart // 14<---<6 - && towShift1 < morningEnd - && towShift2 > morningStart - && towShift2 <= morningEnd) - { - morningWorkingTime2 = (TimeSpan)(towShift2 - towShift1); - } - else if (towShift1 >= morningStart // <---14---6 - && towShift1 < morningEnd - && towShift2 > morningStart - && towShift2 <= nightEndNextday) - { - if (towShift2 <= eveningEnd) // 22<---14---6 - { - morningWorkingTime2 = (TimeSpan)(morningEnd - towShift1); - eveningWorkingTime2 = (TimeSpan)(towShift2 - eveningStart); - } - else if (towShift2 > eveningEnd) // 6<---22---14---6 - { - morningWorkingTime2 = (TimeSpan)(morningEnd - towShift1); - eveningWorkingTime2 = new TimeSpan(8, 0, 0); - nightWorkingTime2 = (TimeSpan)(towShift2 - eveningEnd); - } - } - else if (towShift1 >= morningStart // 14<---<6 - && towShift1 < morningEnd - && towShift2 > morningStart - && towShift2 > nightEndNextday) - { - eveningWorkingTime2 = new TimeSpan(8, 0, 0); - nightWorkingTime2 = new TimeSpan(8, 0, 0); - morningWorkingTime2 = (TimeSpan)(morningEnd - towShift1); - morningWorkingTime2 += (TimeSpan)(towShift2 - nightEndNextday); - } - - #endregion - - #region evening enter 22 <- 14 - - if (towShift1 >= eveningStart // 22<---<14 - && towShift1 < eveningEnd - && towShift2 > eveningStart - && towShift2 <= eveningEnd) - { - eveningWorkingTime2 = (TimeSpan)(towShift2 - towShift1); - } - else if (towShift1 >= eveningStart // <14---6---22---14 - && towShift1 < eveningEnd - && towShift2 > eveningStart - && towShift2 <= morningEndNextday) - { - if (towShift2 <= nightEndNextday) // 6<---22---14 - { - eveningWorkingTime2 = (TimeSpan)(eveningEnd - towShift1); - nightWorkingTime2 = (TimeSpan)(towShift2 - eveningEnd); - } - else if (towShift2 > nightEndNextday) // 14<---6---22---14 - { - eveningWorkingTime2 = (TimeSpan)(eveningEnd - towShift1); - nightWorkingTime2 = new TimeSpan(8, 0, 0); - morningWorkingTime2 = (TimeSpan)(towShift2 - nightEndNextday); - } - } - else if (towShift1 >= eveningStart // <22---14---6---22---14 - && towShift1 < eveningEnd - && towShift2 > eveningStart - && towShift2 > morningEndNextday) - { - nightWorkingTime2 = new TimeSpan(8, 0, 0); - morningWorkingTime2 = new TimeSpan(8, 0, 0); - eveningWorkingTime2 = (TimeSpan)(eveningEnd - towShift1); - eveningWorkingTime2 += (TimeSpan)(towShift2 - morningEndNextday); - } - - #endregion - - #region night enter 6 <- 22 - - if ((towShift1 >= nightStart // 6<---<22 - && towShift1 < nightEndNextday - && towShift2 > nightStart - && towShift2 <= nightEndNextday) - || (towShift1 >= midNight24 - && towShift1 < nightEnd - && towShift2 > midNight24 - && towShift2 <= nightEnd)) - { - nightWorkingTime2 = (TimeSpan)(towShift2 - towShift1); - } - else if (towShift1 >= nightStart // <---6---22 - && towShift1 < nightEndNextday - && towShift2 > nightStart - && towShift2 > nightEndNextday) - { - if (towShift2 <= morningEndNextday) // 14<---6---22 - { - nightWorkingTime2 = (TimeSpan)(nightEndNextday - towShift1); - morningWorkingTime2 = (TimeSpan)(towShift2 - nightEndNextday); - } - else if (towShift2 > morningEndNextday) // 22<---14---6---22 - { - nightWorkingTime2 = (TimeSpan)(nightEndNextday - towShift1); - morningWorkingTime2 = new TimeSpan(8, 0, 0); - eveningWorkingTime2 = (TimeSpan)(towShift2 - morningEndNextday); - } - } - else if (towShift1 >= midNight24 // <---6---00 - && towShift1 < nightEnd - && towShift2 > midNight24 - && towShift2 > nightEnd) - - { - if (towShift2 <= morningEnd) // 14<---6---00 - { - nightWorkingTime2 = (TimeSpan)(nightEnd - towShift1); - morningWorkingTime2 = (TimeSpan)(towShift2 - nightEnd); - } - - else if (towShift2 > morningEnd && towShift1 >= midNight24) // 22<---14---6--00 - { - nightWorkingTime2 = (TimeSpan)(nightEnd - towShift1); - morningWorkingTime2 = new TimeSpan(8, 0, 0); - eveningWorkingTime2 = (TimeSpan)(towShift2 - morningEnd); - } - } - - #endregion - } - } - - #endregion - - #region FinalResult - - var result = new RotatingShiftViewModel(); - result.MorningWorkSpan = morningWorkingTime1.Add(morningWorkingTime2); - result.EveningWorkSpan = eveningWorkingTime1.Add(eveningWorkingTime2); - result.NightWorkSpan = nightWorkingTime1.Add(nightWorkingTime2); - var nullWorkspan = new TimeSpan(0, 0, 0); - var totalTime = result.TotalWorkingTime.Add(result.MorningWorkSpan); - totalTime = totalTime.Add(result.EveningWorkSpan); - totalTime = totalTime.Add(result.NightWorkSpan); - - result.TotalWorkingTime = totalTime; - - var morningH = (int)result.MorningWorkSpan.TotalHours; - var morningM = result.MorningWorkSpan.Minutes % 60; - var morningMS = "00"; - if (morningM < 10 && morningM > 0) - morningMS = $"0{morningM}"; - if (morningM > 10) - morningMS = $"{morningM}"; - result.MorningString = $"0{morningH}:{morningMS}"; - - var eveningH = (int)result.EveningWorkSpan.TotalHours; - var eveningM = result.EveningWorkSpan.Minutes % 60; - var eveningMS = "00"; - if (eveningM < 10 && eveningM > 0) - eveningMS = $"0{eveningM}"; - if (eveningM > 10) - eveningMS = $"{eveningM}"; - result.EveningString = $"0{eveningH}:{eveningMS}"; - - var nightH = (int)result.NightWorkSpan.TotalHours; - var nightM = result.NightWorkSpan.Minutes % 60; - var nightMS = "00"; - if (nightM < 10 && nightM > 0) - nightMS = $"0{nightM}"; - if (nightM > 10) - nightMS = $"{nightM}"; - result.NightString = $"0{nightH}:{nightMS}"; - - if (result.MorningWorkSpan > result.EveningWorkSpan - || result.MorningWorkSpan == result.EveningWorkSpan) // if morning bigerThan evening or equal - { - if (result.MorningWorkSpan != nullWorkspan) - { - result.IsMorningShift = true; - result.IsNightShift = false; - result.IsEveningShift = false; - result.RotatingShiftStatus = "صبح"; - } - - if (result.MorningWorkSpan < result.NightWorkSpan - || result.MorningWorkSpan == result.NightWorkSpan) // if night bigerThan morning or equal - if (result.NightWorkSpan != nullWorkspan) - { - result.IsMorningShift = false; - result.IsNightShift = true; - result.IsEveningShift = false; - result.RotatingShiftStatus = "شب"; - } - } - else if (result.MorningWorkSpan < result.EveningWorkSpan) // if evening bigerThan morning - { - if (result.EveningWorkSpan != nullWorkspan) - { - result.IsEveningShift = true; - result.IsMorningShift = false; - result.IsNightShift = false; - result.RotatingShiftStatus = "عصر"; - } - - if (result.EveningWorkSpan < result.NightWorkSpan - || result.EveningWorkSpan == result.NightWorkSpan) // if night bigerThan evening or equal - if (result.NightWorkSpan != nullWorkspan) - { - result.IsMorningShift = false; - result.IsEveningShift = false; - result.IsNightShift = true; - result.RotatingShiftStatus = "شب"; - } - } - - #endregion - - - return result; - } - - public TimeSpan Over22Check(DateTime date1, DateTime date2) - { - var Over22 = new TimeSpan(); - var singleShiftOver24 = Convert.ToDateTime("00:00"); - var nightWork22 = Convert.ToDateTime("22:00"); - var nightWork6 = Convert.ToDateTime("06:00"); - var starTimeSingel1 = date1; - var endTimeSingel2 = date2; - var check = false; - if ((endTimeSingel2 > nightWork22 || endTimeSingel2 == singleShiftOver24) && starTimeSingel1 < nightWork22 && - starTimeSingel1 > nightWork6) - { - var nightWork6NextDay = new DateTime(); - if (endTimeSingel2.Date > starTimeSingel1.Date) - // 15:00 - 00:00 - nightWork6NextDay = nightWork6.AddDays(1); - check = true; - if (endTimeSingel2 <= nightWork6NextDay) - { - check = true; - Over22 = endTimeSingel2 - nightWork22; - } - else - { - check = true; - Over22 = nightWork6NextDay - nightWork22; - } - } - - if (date2 > singleShiftOver24 && endTimeSingel2 <= nightWork6 && starTimeSingel1 < nightWork22 && - starTimeSingel1 > nightWork6) - { - check = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - Over22 = endTimeSingel2 - nightWork22; - } - - if (endTimeSingel2 > singleShiftOver24 && endTimeSingel2 <= nightWork6 && starTimeSingel1 >= nightWork22) - { - check = true; - endTimeSingel2 = endTimeSingel2.AddDays(1); - Over22 = endTimeSingel2 - starTimeSingel1; - } - - if (endTimeSingel2 > singleShiftOver24 && endTimeSingel2 <= nightWork6 && - starTimeSingel1 >= singleShiftOver24 && starTimeSingel1 <= nightWork6) - { - check = true; - Over22 = endTimeSingel2 - starTimeSingel1; - } - - if (starTimeSingel1 >= nightWork22 && endTimeSingel2 > nightWork22) - { - check = true; - - var nightWork6NextDay = new DateTime(); - if (endTimeSingel2.Date > starTimeSingel1.Date) - { - nightWork6NextDay = nightWork6.AddDays(1); - if (endTimeSingel2 <= nightWork6NextDay) - { - check = true; - Over22 = endTimeSingel2 - starTimeSingel1; - } - else - { - check = true; - Over22 = nightWork6NextDay - starTimeSingel1; - } - } - } - - if (endTimeSingel2.Date == starTimeSingel1.Date) - { - if (endTimeSingel2 <= nightWork6 && starTimeSingel1 >= singleShiftOver24) - { - check = true; - Over22 = endTimeSingel2 - starTimeSingel1; - } - else if (endTimeSingel2 >= nightWork6 && starTimeSingel1 >= singleShiftOver24 && - endTimeSingel2 <= nightWork22) - - { - if (starTimeSingel1 >= nightWork6 && endTimeSingel2 <= nightWork22) - Over22 = TimeSpan.Zero; - else - Over22 = nightWork6 - starTimeSingel1; - } - else if (starTimeSingel1 >= singleShiftOver24 && endTimeSingel2 > nightWork22) - { - if (starTimeSingel1 >= nightWork22) - { - Over22 = endTimeSingel2 - starTimeSingel1; - } - else if (starTimeSingel1 < nightWork22 && endTimeSingel2 > nightWork22) - { - if (starTimeSingel1 < nightWork6) - { - var step1 = nightWork6 - starTimeSingel1; - var step2 = endTimeSingel2 - nightWork22; - var step3 = step1 + step2; - Over22 = step3; - } - else - { - Over22 = endTimeSingel2 - nightWork22; - } - } - } - else if (starTimeSingel1 > nightWork22 && endTimeSingel2 > nightWork22) - { - Over22 = endTimeSingel2 - starTimeSingel1; - } - } - - return Over22; - } - - public TimeSpan Over22Complex(DateTime date1, DateTime date2) - { - var Over22Result = new TimeSpan(); - var Over24 = new DateTime(date2.Year, date2.Month, date2.Day, 0, 0, 0); - var nightWork22 = new DateTime(date1.Year, date1.Month, date1.Day, 22, 0, 0); - var nightWork22b = new DateTime(date2.Year, date2.Month, date2.Day, 22, 0, 0); - var nightWork6 = new DateTime(date2.Year, date2.Month, date2.Day, 6, 0, 0); - var nightWork6a = new DateTime(date1.Year, date1.Month, date1.Day, 6, 0, 0); - var starTime = date1; - var endTime = date2; - if (endTime > nightWork22 && starTime < nightWork22) - { - if (starTime.Date == endTime.Date) nightWork6 = nightWork6.AddDays(1); - - if (endTime <= nightWork6) - Over22Result = endTime - nightWork22; - else if (endTime > nightWork6) Over22Result = nightWork6 - nightWork22; - } - - if (endTime > nightWork22 && starTime >= nightWork22) - { - if (endTime <= nightWork6) - Over22Result = endTime - starTime; - else if (endTime > nightWork6) Over22Result = nightWork6 - starTime; - } - - if (starTime.Hour >= 0 && starTime.Minute >= 0 && starTime < nightWork6 && starTime.Date == nightWork6.Date) - { - if (endTime > nightWork6) - Over22Result = nightWork6 - starTime; - else if (endTime <= nightWork6) Over22Result = endTime - starTime; - //nightWork22 = nightWork22.Subtract(new TimeSpan(1, 0, 0, 0)); - } - - return Over22Result; - } - - public TimeSpan Over22Complex2424(DateTime date1, DateTime date2) - { - var Over22Result = new TimeSpan(); - var Over24a = new DateTime(date1.Year, date1.Month, date1.Day, 0, 0, 0); - var Over24b = new DateTime(date2.Year, date2.Month, date2.Day, 0, 0, 0); - var nightWork22a = new DateTime(date1.Year, date1.Month, date1.Day, 22, 0, 0); - var nightWork22b = new DateTime(date2.Year, date2.Month, date2.Day, 22, 0, 0); - - var nightWork6a = new DateTime(date1.Year, date1.Month, date1.Day, 6, 0, 0); - var nightWork6b = new DateTime(date2.Year, date2.Month, date2.Day, 6, 0, 0); - var starTime = date1; - var endTime = date2; - - if (starTime >= Over24a && starTime <= nightWork6a) - { - if (endTime > nightWork22a && endTime <= nightWork6b) - { - var night1 = nightWork6a - starTime; - var night2 = endTime - nightWork22a; - Over22Result = night1.Add(night2); - } - - if (endTime > nightWork6a && endTime < nightWork22a) Over22Result = nightWork6a - starTime; - } - - if (starTime >= nightWork6a && starTime < nightWork22a) - { - if (endTime > nightWork22a && endTime <= nightWork6b) Over22Result = endTime - nightWork22a; - - if (endTime > nightWork6b) Over22Result = nightWork6b - nightWork22a; - } - - if (starTime >= nightWork22a && starTime < Over24b) - { - if (endTime <= nightWork22b) Over22Result = nightWork6b - starTime; - - - if (endTime > nightWork22b) - { - var night1 = nightWork6b - starTime; - var night2 = endTime - nightWork22b; - Over22Result = night1.Add(night2); - } - } - - - return Over22Result; - } - - #endregion - - #endregion + public IActionResult OnGetContractStatus(long employeeId, long workshopId, string employeeName, string workshopname) + { + var command = new ContractStatusViewModel(); + var contractSearch = new ContractSearchModel + { + EmployeeId = employeeId, + WorkshopIds = workshopId + }; + var checkoutSearch = new CheckoutSearchModel + { + EmployeeId = employeeId, + WorkshopId = workshopId + }; + var contractResult = _contractApplication.Search(contractSearch); + var checkoutResult = _checkoutApplication.SimpleSearch(checkoutSearch); + + if (contractResult.Count > 0) + { + var divideList = new List(); + var ChekoutDivideList = new List(); + + var groupList = new List(); + + foreach (var item in contractResult) + { + var divide = new ContractStatusDivide + { + ContractStart = item.ContarctStart, + ContractEnd = item.ContractEnd, + Year = item.ContarctStart.Substring(0, 4), + MonthStart = Convert.ToInt32(item.ContarctStart.Substring(5, 2)), + MonthEnd = Convert.ToInt32(item.ContractEnd.Substring(5, 2)), + SignaturStatus = item.Signature + }; + divideList.Add(divide); + } + + foreach (var item in checkoutResult) + { + var CheckoutDivide = new CheckoutStatusDivide + { + CheckoutStart = item.ContractStart, + CheckoutEnd = item.ContractEnd, + Year = item.ContractStart.Substring(0, 4), + MonthStart = Convert.ToInt32(item.ContractStart.Substring(5, 2)), + MonthEnd = Convert.ToInt32(item.ContractEnd.Substring(5, 2)), + SignaturStatus = item.Signature + }; + ChekoutDivideList.Add(CheckoutDivide); + } + + var contractByYear = divideList.GroupBy(x => x.Year).Select(x => x.First()).ToList(); + foreach (var year in contractByYear) + { + var divided = divideList.Where(x => x.Year == year.Year).ToList(); + var chDivided = ChekoutDivideList.Where(x => x.Year == year.Year).ToList(); + if (chDivided.Count < 1) chDivided = new List(); + + var group = new ContractStatusGroup + { + Year = year.Year, + ContractStatusDivideList = divided, + CheckoutStatusDivideList = chDivided + }; + groupList.Add(group); + } + + command.EmployeeName = employeeName; + command.WorkshopName = workshopname; + command.HavingContract = true; + command.ContractStatusGroupList = groupList; + } + else + { + command.EmployeeName = employeeName; + command.WorkshopName = workshopname; + command.HavingContract = false; + } + + + return Partial("ContractStatus", command); + } + + public IActionResult OnGetClock(long employeeId, long workshopId, string workshopAddress, long personelCode, + long jobId, string startContract, string endContract, string employeeName) + { + var start = new DateTime(); + var end = new DateTime(); + var psCodeZeroCheck = ""; + var jobIdZeroCheck = ""; + var leftWorkCheckExist = ""; + var dateValid = ""; + var getWorkDateHide = ""; + var contractExistCheck = string.Empty; + if (personelCode == 0) + psCodeZeroCheck = $"برای {employeeName} در این کارگاه کد پرسنلی مشخص نشده است"; + if (jobId == 0) + jobIdZeroCheck = $" برای {employeeName} در این کارگاه سمت مشخص نشده است"; + + + var leftWorkSerachModel = new LeftWorkSearchModel + { + EmployeeId = employeeId, + WorkshopId = workshopId + }; + if (!string.IsNullOrWhiteSpace(startContract) && !string.IsNullOrWhiteSpace(endContract)) + { + start = startContract.ToGeorgianDateTime(); + end = endContract.ToGeorgianDateTime(); + + var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); + if (leftWoekSerchResult.Count > 0) + { + getWorkDateHide = leftWoekSerchResult.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; + var check = leftWoekSerchResult.FirstOrDefault(x => x.StartWorkDateGr <= start && + x.LeftWorkDateGr > start); + + if (check != null) + { + var leftWorkDate = check.LeftWorkDateGr.ToFarsi(); + + if (leftWorkDate != "1500/01/01") + { + var endOfmonth = leftWorkDate.FindeEndOfMonth(); + var endOfMonthGr = endOfmonth.ToGeorgianDateTime(); + if (end <= endOfMonthGr) + { + } + else + { + leftWorkCheckExist = + $" با تو جه به ترک کار پرسنل در تاریخ {leftWorkDate} می توانید تا تاریخ {endOfmonth} قرارداد ایجاد نمایید"; + } + } + } + else + { + leftWorkCheckExist = $" برای {employeeName} در بازه تاریخ وارد شده شروع به کار وجود ندارد"; + } + } + + contractExistCheck = _contractRepository.ContractStartCheck(start, end, employeeId, workshopId); + if (start > end) + dateValid = "تاریخ شروع از تاریخ پایان بزرگتر است"; + + if (start == end) + dateValid = "تاریخ شروع و تاریخ پایان برابر وارد شده اند"; + } + else + { + if (string.IsNullOrWhiteSpace(startContract) && string.IsNullOrWhiteSpace(endContract)) + dateValid = "تاریخ شروع و پایان قرارداد را وارد کنید"; + else if (string.IsNullOrWhiteSpace(startContract)) + dateValid = "تاریخ شروع قرارداد را وارد کنید"; + else if (string.IsNullOrWhiteSpace(endContract)) dateValid = "تاریخ پایان قرارداد را وارد کنید"; + } + + + if (!string.IsNullOrWhiteSpace(psCodeZeroCheck) || !string.IsNullOrWhiteSpace(jobIdZeroCheck) + || !string.IsNullOrWhiteSpace(leftWorkCheckExist) || + !string.IsNullOrWhiteSpace(contractExistCheck) + || !string.IsNullOrWhiteSpace(dateValid)) + { + var alarm = new AlarmViewModel + { + PersonnelCodeZeroCheck = psCodeZeroCheck, + JobIdZeroCheck = jobIdZeroCheck, + LeftWorkExistCheck = leftWorkCheckExist, + ContractExistCheck = contractExistCheck, + DateValidCheck = dateValid, + EmployeeName = employeeName + }; + return Partial("Alert", alarm); + } + + var result = _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(workshopId, employeeId); + if (result == null) result = new CreateWorkingHoursTemp(); + + + result.WorkshopAddress1 = workshopAddress; + //var today = DateTime.Now; + //var start = today.ToFarsi(); + result.StartDate = startContract; + result.EndDate = endContract; + result.GetWorkDateHide = getWorkDateHide; + return Partial("clock", result); + } + + //FirstCheck + public IActionResult OnPostContractSet(long employeeId, long workshopId, string workshopAddress, + long personelCode, long jobId, string startContract, string endContract, string employeeName) + { + var employeeDetails = _employeeApplication.GetDetails(employeeId); + var workingHoursResult = _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(workshopId, employeeId); + var start = new DateTime(); + var end = new DateTime(); + var employeeWarning = ""; + var psCodeZeroCheck = ""; + var jobIdZeroCheck = ""; + var leftWorkCheckExist = ""; + var dateValid = ""; + var getWorkDateHide = ""; + var contractExistCheck = ""; + var workingHoursCheck = ""; + var leftValidForEndMonth = false; + var leftValid = true; + var contractExist = false; + + if ((string.IsNullOrWhiteSpace(employeeDetails.NationalCode) && employeeDetails.Nationality == "ایرانی") + || string.IsNullOrWhiteSpace(employeeDetails.Address) + || string.IsNullOrWhiteSpace(employeeDetails.City) + || string.IsNullOrWhiteSpace(employeeDetails.State) + || string.IsNullOrWhiteSpace(employeeDetails.MaritalStatus)) + employeeWarning = $"برای {employeeName} موارد اجباری مانند کدملی و وضعیت تاهل و نشانی را بررسی کنید"; + + if (personelCode == 0) + psCodeZeroCheck = $"برای {employeeName} در این کارگاه کد پرسنلی مشخص نشده است"; + if (jobId == 0) + jobIdZeroCheck = $" برای {employeeName} در این کارگاه سمت مشخص نشده است"; + + #region leftworkCheck + + var leftWorkSerachModel = new LeftWorkSearchModel + { + EmployeeId = employeeId, + WorkshopId = workshopId + }; + + start = startContract.ToGeorgianDateTime(); + end = endContract.ToGeorgianDateTime(); + + var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); + if (leftWoekSerchResult.Count > 0) + { + getWorkDateHide = leftWoekSerchResult.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; + var check = leftWoekSerchResult.FirstOrDefault(x => x.StartWorkDateGr <= start && + x.LeftWorkDateGr > start); + + if (check != null) + { + var leftWorkDate = check.LeftWorkDateGr.ToFarsi(); + + if (leftWorkDate != "1500/01/01") + { + var endOfmonth = leftWorkDate.FindeEndOfMonth(); + var endOfMonthGr = endOfmonth.ToGeorgianDateTime(); + if (end <= endOfMonthGr) + { + } + else + { + leftWorkCheckExist = + $" با تو جه به ترک کار پرسنل در تاریخ {leftWorkDate} می توانید تا تاریخ {endOfmonth} قرارداد ایجاد نمایید"; + leftValidForEndMonth = true; + } + } + } + else + { + leftWorkCheckExist = $" برای {employeeName} در بازه تاریخ وارد شده شروع به کار وجود ندارد"; + leftValid = false; + } + } + + #endregion + + + contractExistCheck = _contractRepository.ContractStartCheck(start, end, employeeId, workshopId); + if (start > end) + dateValid = "تاریخ شروع از تاریخ پایان بزرگتر است"; + + if (start == end) + dateValid = "تاریخ شروع و تاریخ پایان برابر وارد شده اند"; + + + if (!string.IsNullOrWhiteSpace(dateValid)) + { + leftWorkCheckExist = ""; + contractExistCheck = ""; + } + + if (string.IsNullOrWhiteSpace(workingHoursResult.ShiftWork)) + workingHoursCheck = "ساعت کار را تنظیم نمایید"; + if (leftValid && (!string.IsNullOrWhiteSpace(psCodeZeroCheck) + || !string.IsNullOrWhiteSpace(jobIdZeroCheck) || !string.IsNullOrWhiteSpace(employeeWarning) + || leftValidForEndMonth + || !string.IsNullOrWhiteSpace(dateValid) || !string.IsNullOrWhiteSpace(workingHoursCheck))) + return new JsonResult(new + { + success = false, + errPersonnelCodeZeroCheck = psCodeZeroCheck, + errJobIdZeroCheck = jobIdZeroCheck, + errLeftWorkExistCheck = leftWorkCheckExist, + errLeftValidForEndMonth = leftValidForEndMonth, + + errDateValidCheck = dateValid, + errEmployeeName = employeeName, + errWorkingHoursCheck = workingHoursCheck, + errEmployeeWarning = employeeWarning + }); + //var alarm = new AlarmViewModel() + //{ + // PersonnelCodeZeroCheck = psCodeZeroCheck, + // JobIdZeroCheck = jobIdZeroCheck, + // LeftWorkExistCheck = leftWorkCheckExist, + // ContractExistCheck = contractExistCheck, + // DateValidCheck = dateValid, + // EmployeeName = employeeName, + // WorkingHoursCheck = workingHoursCheck + //}; + //return Partial("Alert", alarm); + if (!string.IsNullOrWhiteSpace(contractExistCheck)) contractExist = true; + + return new JsonResult(new + { + success = true, + getWorkDate = getWorkDateHide, + errContractExist = contractExist, + errLeftValid = leftValid + }); + } + + public IActionResult OnGetAlertModal(string errPsCodeZeroCheck, string errJobIdZeroCheck, string errDateValid, + string errLeftWorkExistCheck, string errEmployeeName, string errWorkingHoursCheck, bool errLeftValidForEndMonth, + string errEmployeeWarning) + { + var alarm = new AlarmViewModel + { + PersonnelCodeZeroCheck = errPsCodeZeroCheck, + JobIdZeroCheck = errJobIdZeroCheck, + LeftWorkExistCheck = errLeftValidForEndMonth ? errLeftWorkExistCheck : "", + DateValidCheck = errDateValid, + EmployeeName = errEmployeeName, + WorkingHoursCheck = errWorkingHoursCheck, + EmployeeWarning = errEmployeeWarning + }; + return Partial("Alert", alarm); + } + + #region CorrectNullSHift + + public IActionResult OnGetCorrection() + { + //var contractList = _workingHoursTempApplication.Correct(); + // int i = 1; + // foreach (var item in contractList) + // { + + // var result = _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(item.WorkshopIds, item.EmployeeId); + // result.EmployeeId = item.EmployeeId; + // result.WorkshopId = item.WorkshopIds; + // result.GetWorkDate = item.GetWorkDate; + // result.GetWorkDateHide = item.GetWorkDateHide; + // result.ContarctStart = item.ContarctStart; + // result.ContractEnd= item.ContractEnd; + // var compute = MandatoryHours(result); + + // item.DayliWage = compute.SalaryCompute; + + // item.ConsumableItems = compute.ConsumableItems; + // item.HousingAllowance = compute.HousingAllowance; + // item.FamilyAllowance = compute.FamilyAllowance; + // item.WorkingHoursWeekly = compute.SumTime44; + // item.AgreementSalary = "0"; + // var editContract = _contractApplication.EditCompute(item); + + // _workingHoursApplication.removeWorkingHours(item.Id); + // result.ContractId = item.Id; + // result.ContractNo = item.ContractNo; + // result.NumberOfWorkingDays = compute.NumberOfWorkingDays; + // result.NumberOfFriday = compute.NumberOfFriday; + // result.TotalHoursesH = compute.TotalHoursesH; + // result.TotalHoursesM = compute.TotalHoursesM; + // result.OverTimeWorkH = compute.OverTimeWorkH; + // result.OverTimeWorkM = compute.OverTimeWorkM; + // result.OverNightWorkH = compute.OverNightWorkH; + // result.OverNightWorkM = compute.OverNightWorkM; + // result.WeeklyWorkingTime = compute.SumTime44; + // _workingHoursApplication.CreateNew(result); + + // Console.WriteLine(i +"- finish no : " + item.ContractNo); + // i++; + // } + + return RedirectToPage("./Index"); + } + + #endregion + + #region CreateContract + + public IActionResult OnPostCreateContract(List createContarctList) + { + var contractCount = createContarctList.Count; + var successProcess = 0; + double maxNumber = contractCount; + var i = 1; + if (contractCount > 0) + { + var yearlysalaryList = _yearlySalaryRepository.GetYearlySalary(); + var yearlySalarId = yearlysalaryList.FirstOrDefault().Id; + + foreach (var item in createContarctList) + { + var result = + _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(item.WorkshopId, + item.EmployeeId); + result.EmployeeId = item.EmployeeId; + result.WorkshopId = item.WorkshopId; + result.ContarctStart = item.ContractStart; + result.ContractEnd = item.ContractEnd; + var leftWorkSerachModel = new LeftWorkSearchModel + { + EmployeeId = item.EmployeeId, + WorkshopId = item.WorkshopId + }; + var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); + var getWorkDateHide = leftWoekSerchResult?.OrderBy(x => x.StartWorkDateGr).FirstOrDefault() + ?.StartWorkDate; + result.GetWorkDate = getWorkDateHide; + result.GetWorkDateHide = getWorkDateHide; + var compute = MandatoryHours(result); + item.DayliWage = compute.SalaryCompute; + item.GetWorkDate = getWorkDateHide; + item.ConsumableItems = compute.ConsumableItems; + item.HousingAllowance = compute.HousingAllowance; + item.FamilyAllowance = compute.FamilyAllowance; + item.WorkingHoursWeekly = compute.SumTime44; + item.NumberOfWorkingDays = compute.NumberOfWorkingDays; + item.NumberOfFriday = compute.NumberOfFriday; + item.TotalHoursesH = compute.TotalHoursesH; + item.TotalHoursesM = compute.TotalHoursesM; + item.OverTimeWorkH = compute.OverTimeWorkH; + item.OverTimeWorkM = compute.OverTimeWorkM; + item.OverNightWorkH = compute.OverNightWorkH; + item.OverNightWorkM = compute.OverNightWorkM; + item.WorkshopAddress2 = result.WorkshopAddress2; + + item.YearlySalaryId = yearlySalarId; + var createContractResult = _contractApplication.CreateNew(item); + var percent = i / maxNumber * 100; + _hubContext.Clients.Group(CreateContractTarckingHub.GetGroupName(item.WorkshopId)) + .SendAsync("showStatus", (int)percent); + if (createContractResult.IsSuccedded) + successProcess += 1; + + + i++; + } + + if (successProcess == contractCount) + { + return new JsonResult(new + { + isSuccess = true, + contractCount = successProcess + }); + } + + var failds = contractCount - successProcess; + return new JsonResult(new + { + isSuccess = false, + contractCount = failds + }); + } + + return new JsonResult(new + { + isSuccess = false, + contractCount = 0 + }); + } + + #endregion + + public IActionResult OnGetCreateGroupCompute(CreateWorkingHoursTemp command) + { + var result = + _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(command.WorkshopId, + command.EmployeeId); + result.EmployeeId = command.EmployeeId; + result.WorkshopId = command.WorkshopId; + result.ContarctStart = command.ContarctStart; + //result.ContractStartGr = command.ContarctStart.ToGeorgianDateTime(); + result.ContractEnd = command.ContractEnd; + //result.ContractEndGr = command.ContractEnd.ToGeorgianDateTime(); + + if (result.ShiftWork != "") + { + var leftWorkSerachModel = new LeftWorkSearchModel + { + EmployeeId = command.EmployeeId, + WorkshopId = command.WorkshopId + }; + var leftWoekSerchResult = _leftWorkApplication.search(leftWorkSerachModel); + var getWorkDateHide = leftWoekSerchResult?.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; + result.GetWorkDate = getWorkDateHide; + result.GetWorkDateHide = getWorkDateHide; + var compute = MandatoryHours(result); + return new JsonResult(new + { + isSuccess = true, + compute.NumberOfWorkingDays, + compute.NumberOfFriday, + compute.TotalHoursesH, + compute.TotalHoursesM, + OverTimeWorkH = compute.OverNightWorkH, + compute.OverTimeWorkM, + compute.OverNightWorkH, + compute.OverNightWorkM, + WeeklyWorkingTime = $"{compute.weeklyTime}", + compute.SumTime44, + compute.SalaryCompute, + compute.ConsumableItems, + compute.HousingAllowance, + compute.FamilyAllowance, + getWorkDate = getWorkDateHide + }); + } + + return new JsonResult(new + { + isSuccess = false + }); + } + + #region clockSave + + public IActionResult OnPostCreateWorkingHoursTemp(CreateWorkingHoursTemp command) + { + #region WeekEmptyValidation + + if (command.ShiftWork == "4") + { + //week1 + + #region week1 + + var week1Valid = true; + if (command.Shanbe1) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe1) || + string.IsNullOrWhiteSpace(command.SingleShift2Shanbe1)) part1 = false; + + if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1) || + string.IsNullOrWhiteSpace(command.TowShifts2Shanbe1)) + part2 = false; + + + if (!part1 && !part2) + week1Valid = false; + if (Tools.InterferenceTime(command.SingleShift1Shanbe1, command.SingleShift2Shanbe1, command.TowShifts1Shanbe1, command.TowShifts2Shanbe1)) + + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = false, + week2Valid = true, + week3Valid = true, + week4Valid = true + }); + } + + if (command.YekShanbe1) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe1) || + string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe1)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1) || + string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe1)) + part2 = false; + + + if (!part1 && !part2) + week1Valid = false; + if (Tools.InterferenceTime(command.SingleShift1YekShanbe1, command.SingleShift2YekShanbe1, command.TowShifts1YekShanbe1, command.TowShifts2YekShanbe1)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = false, + week2Valid = true, + week3Valid = true, + week4Valid = true + }); + } + + if (command.DoShanbe1) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe1) || + string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe1)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1) || + string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe1)) + part2 = false; + + if (!part1 && !part2) + week1Valid = false; + if (Tools.InterferenceTime(command.SingleShift1DoShanbe1, command.SingleShift1DoShanbe1, command.TowShifts1DoShanbe1, command.TowShifts2DoShanbe1)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = false, + week2Valid = true, + week3Valid = true, + week4Valid = true + }); + } + + if (command.SeShanbe1) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe1) || + string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe1)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1) || + string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe1)) + part2 = false; + + if (!part1 && !part2) + week1Valid = false; + if (Tools.InterferenceTime(command.SingleShift1SeShanbe1, command.SingleShift2SeShanbe1, command.TowShifts1SeShanbe1, command.TowShifts2SeShanbe1)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = false, + week2Valid = true, + week3Valid = true, + week4Valid = true + }); + } + + if (command.CheharShanbe1) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe1) || + string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe1)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1) || + string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe1)) + part2 = false; + + if (!part1 && !part2) + week1Valid = false; + if (Tools.InterferenceTime(command.SingleShift1CheharShanbe1, command.SingleShift2CheharShanbe1, command.TowShifts1CheharShanbe1, command.TowShifts2CheharShanbe1)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = false, + week2Valid = true, + week3Valid = true, + week4Valid = true + }); + } + + if (command.PanjShanbe1) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe1) || + string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe1)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1) || + string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe1)) + part2 = false; + + if (!part1 && !part2) + week1Valid = false; + if (Tools.InterferenceTime(command.SingleShift1PanjShanbe1, command.SingleShift2PanjShanbe1, command.TowShifts1PanjShanbe1, command.TowShifts2PanjShanbe1)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = false, + week2Valid = true, + week3Valid = true, + week4Valid = true + }); + } + + if (command.Jome1) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Jome1) || + string.IsNullOrWhiteSpace(command.SingleShift2Jome1)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1Jome1) || + string.IsNullOrWhiteSpace(command.TowShifts2Jome1)) + part2 = false; + + if (!part1 && !part2) + week1Valid = false; + if (Tools.InterferenceTime(command.SingleShift1Jome1, command.SingleShift2Jome1, command.TowShifts1Jome1, command.TowShifts2Jome1)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = false, + week2Valid = true, + week3Valid = true, + week4Valid = true + }); + } + + #endregion + + //week2 + + #region Week2 + + var week2Valid = true; + if (command.Shanbe2) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe2) || + string.IsNullOrWhiteSpace(command.SingleShift2Shanbe2)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2) || + string.IsNullOrWhiteSpace(command.TowShifts2Shanbe2)) + part2 = false; + + if (!part1 && !part2) + week2Valid = false; + if (Tools.InterferenceTime(command.SingleShift1Shanbe2, command.SingleShift2Shanbe2, command.TowShifts1Shanbe2, command.TowShifts2Shanbe2)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = false, + week3Valid = true, + week4Valid = true + }); + } + + if (command.YekShanbe2) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe2) || + string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe2)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2) || + string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe2)) + part2 = false; + + if (!part1 && !part2) + week2Valid = false; + if (Tools.InterferenceTime(command.SingleShift1YekShanbe2, command.SingleShift2YekShanbe2, command.TowShifts1YekShanbe2, command.TowShifts2YekShanbe2)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = false, + week3Valid = true, + week4Valid = true + }); + } + + if (command.DoShanbe2) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe2) || + string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe2)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2) || + string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe2)) + part2 = false; + + if (!part1 && !part2) + week2Valid = false; + if (Tools.InterferenceTime(command.SingleShift1DoShanbe2, command.SingleShift2DoShanbe2, command.TowShifts1DoShanbe2, command.TowShifts2DoShanbe2)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = false, + week3Valid = true, + week4Valid = true + }); + } + + if (command.SeShanbe2) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe2) || + string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe2)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2) || + string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe2)) + part2 = false; + + if (!part1 && !part2) + week2Valid = false; + if (Tools.InterferenceTime(command.SingleShift1SeShanbe2, command.SingleShift2SeShanbe2, command.TowShifts1SeShanbe2, command.TowShifts2SeShanbe2)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = false, + week3Valid = true, + week4Valid = true + }); + } + + if (command.CheharShanbe2) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe2) || + string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe2)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2) || + string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe2)) + part2 = false; + + if (!part1 && !part2) + week2Valid = false; + if (Tools.InterferenceTime(command.SingleShift1CheharShanbe2, command.SingleShift2CheharShanbe2, command.TowShifts1CheharShanbe2, command.TowShifts2CheharShanbe2)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = false, + week3Valid = true, + week4Valid = true + }); + } + + if (command.PanjShanbe2) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe2) || + string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe2)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2) || + string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe2)) + part2 = false; + + if (!part1 && !part2) + week2Valid = false; + if (Tools.InterferenceTime(command.SingleShift1PanjShanbe2, command.SingleShift2PanjShanbe2, command.TowShifts1PanjShanbe2, command.TowShifts2PanjShanbe2)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = false, + week3Valid = true, + week4Valid = true + }); + } + + if (command.Jome2) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Jome2) || + string.IsNullOrWhiteSpace(command.SingleShift2Jome2)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1Jome2) || + string.IsNullOrWhiteSpace(command.TowShifts2Jome2)) + part2 = false; + + if (!part1 && !part2) + week2Valid = false; + if (Tools.InterferenceTime(command.SingleShift1Jome2, command.SingleShift2Jome2, command.TowShifts1Jome2, command.TowShifts2Jome2)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = false, + week3Valid = true, + week4Valid = true + }); + } + + #endregion + + //week3 + + #region Week3 + + var week3Valid = true; + if (command.Shanbe3) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe3) || + string.IsNullOrWhiteSpace(command.SingleShift2Shanbe3)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe3) || + string.IsNullOrWhiteSpace(command.TowShifts2Shanbe3)) + part2 = false; + + if (!part1 && !part2) + week3Valid = false; + if (Tools.InterferenceTime(command.SingleShift1Shanbe3, command.SingleShift2Shanbe3, command.TowShifts1Shanbe3, command.TowShifts2Shanbe3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = false, + week4Valid = true + }); + } + + if (command.YekShanbe3) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe3) || + string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe3)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe3) || + string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe3)) + part2 = false; + + if (!part1 && !part2) + week3Valid = false; + if (Tools.InterferenceTime(command.SingleShift1YekShanbe3, command.SingleShift2YekShanbe3, command.TowShifts1YekShanbe3, command.TowShifts2YekShanbe3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = false, + week4Valid = true + }); + } + + if (command.DoShanbe3) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe3) || + string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe3)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe3) || + string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe3)) + part2 = false; + + if (!part1 && !part2) + week3Valid = false; + if (Tools.InterferenceTime(command.SingleShift1DoShanbe3, command.SingleShift2DoShanbe3, command.TowShifts1DoShanbe3, command.TowShifts2DoShanbe3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = false, + week4Valid = true + }); + } + + if (command.SeShanbe3) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe3) || + string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe3)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe3) || + string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe3)) + part2 = false; + + if (!part1 && !part2) + week3Valid = false; + if (Tools.InterferenceTime(command.SingleShift1SeShanbe3, command.SingleShift2SeShanbe3, command.TowShifts1SeShanbe3, command.TowShifts2SeShanbe3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = false, + week4Valid = true + }); + } + + if (command.CheharShanbe3) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe3) || + string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe3)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe3) || + string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe3)) + part2 = false; + + if (!part1 && !part2) + week3Valid = false; + if (Tools.InterferenceTime(command.SingleShift1CheharShanbe3, command.SingleShift2CheharShanbe3, command.TowShifts1CheharShanbe3, command.TowShifts2CheharShanbe3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = false, + week4Valid = true + }); + } + + if (command.PanjShanbe3) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe3) || + string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe3)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe3) || + string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe3)) + part2 = false; + + if (!part1 && !part2) + week3Valid = false; + if (Tools.InterferenceTime(command.SingleShift1PanjShanbe3, command.SingleShift2PanjShanbe3, command.TowShifts1PanjShanbe3, command.TowShifts2PanjShanbe3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = false, + week4Valid = true + }); + } + + if (command.Jome3) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Jome3) || + string.IsNullOrWhiteSpace(command.SingleShift2Jome3)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1Jome3) || + string.IsNullOrWhiteSpace(command.TowShifts2Jome3)) + part2 = false; + + if (!part1 && !part2) + week3Valid = false; + if (Tools.InterferenceTime(command.SingleShift1Jome3, command.SingleShift2Jome3, command.TowShifts1Jome2, command.TowShifts2Jome3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = false, + week4Valid = true + }); + } + + #endregion + + //week4 + + #region Week4 + + var week4Valid = true; + if (command.Shanbe4) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Shanbe4) || + string.IsNullOrWhiteSpace(command.SingleShift2Shanbe4)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe4) || + string.IsNullOrWhiteSpace(command.TowShifts2Shanbe4)) + part2 = false; + + if (!part1 && !part2) + week4Valid = false; + + if (Tools.InterferenceTime(command.SingleShift1Shanbe4, command.SingleShift2Shanbe4, command.TowShifts1Shanbe4, command.TowShifts2Shanbe4)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = true, + week4Valid = false + }); + } + + if (command.YekShanbe4) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1YekShanbe4) || + string.IsNullOrWhiteSpace(command.SingleShift2YekShanbe4)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe4) || + string.IsNullOrWhiteSpace(command.TowShifts2YekShanbe4)) + part2 = false; + + if (!part1 && !part2) + week4Valid = false; + if (Tools.InterferenceTime(command.SingleShift1YekShanbe4, command.SingleShift2YekShanbe4, command.TowShifts1YekShanbe4, command.TowShifts2YekShanbe4)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = true, + week4Valid = false + }); + } + + if (command.DoShanbe4) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1DoShanbe4) || + string.IsNullOrWhiteSpace(command.SingleShift2DoShanbe4)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe4) || + string.IsNullOrWhiteSpace(command.TowShifts2DoShanbe4)) + part2 = false; + + if (!part1 && !part2) + week4Valid = false; + if (Tools.InterferenceTime(command.SingleShift1DoShanbe4, command.SingleShift2DoShanbe4, command.TowShifts1DoShanbe4, command.TowShifts2DoShanbe4)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = true, + week4Valid = false + }); + } + + if (command.SeShanbe4) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1SeShanbe4) || + string.IsNullOrWhiteSpace(command.SingleShift2SeShanbe4)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe4) || + string.IsNullOrWhiteSpace(command.TowShifts2SeShanbe4)) + part2 = false; + + if (!part1 && !part2) + week4Valid = false; + if (!Tools.CheckValidHm(command.SingleShift1SeShanbe4) || + !Tools.CheckValidHm(command.SingleShift2SeShanbe4) || + !Tools.CheckValidHm(command.TowShifts1SeShanbe4) || + !Tools.CheckValidHm(command.TowShifts2SeShanbe4)) + if (Tools.InterferenceTime(command.SingleShift1Jome3, command.SingleShift2Jome3, command.TowShifts1Jome2, command.TowShifts2Jome3)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = true, + week4Valid = false + }); + } + + if (command.CheharShanbe4) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1CheharShanbe4) || + string.IsNullOrWhiteSpace(command.SingleShift2CheharShanbe4)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe4) || + string.IsNullOrWhiteSpace(command.TowShifts2CheharShanbe4)) + part2 = false; + + if (!part1 && !part2) + week4Valid = false; + if (Tools.InterferenceTime(command.SingleShift1CheharShanbe4, command.SingleShift2CheharShanbe4, command.TowShifts1CheharShanbe4, command.TowShifts2CheharShanbe4)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = true, + week4Valid = false + }); + } + + if (command.PanjShanbe4) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1PanjShanbe4) || + string.IsNullOrWhiteSpace(command.SingleShift2PanjShanbe4)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe4) || + string.IsNullOrWhiteSpace(command.TowShifts2PanjShanbe4)) + part2 = false; + + if (!part1 && !part2) + week4Valid = false; + if (Tools.InterferenceTime(command.SingleShift1PanjShanbe4, command.SingleShift2PanjShanbe4, command.TowShifts1PanjShanbe4, command.TowShifts2PanjShanbe4)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = true, + week4Valid = false + }); + } + + if (command.Jome4) + { + var part1 = true; + var part2 = true; + if (string.IsNullOrWhiteSpace(command.SingleShift1Jome4) || + string.IsNullOrWhiteSpace(command.SingleShift2Jome4)) + part1 = false; + if (string.IsNullOrWhiteSpace(command.TowShifts1Jome4) || + string.IsNullOrWhiteSpace(command.TowShifts2Jome4)) + part2 = false; + + if (!part1 && !part2) + week4Valid = false; + if (Tools.InterferenceTime(command.SingleShift1Jome4, command.SingleShift2Jome4, command.TowShifts1Jome4, command.TowShifts2Jome4)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid = true, + week2Valid = true, + week3Valid = true, + week4Valid = false + }); + } + + #endregion + + if (!week1Valid || !week2Valid || !week3Valid || !week4Valid) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "4", + week1Valid, + week2Valid, + week3Valid, + week4Valid + }); + } + else if (command.ShiftWork == "5") + { + if (string.IsNullOrWhiteSpace(command.Start1224) || string.IsNullOrWhiteSpace(command.End1224)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "5" + }); + } + else if (command.ShiftWork == "6") + { + if (string.IsNullOrWhiteSpace(command.Start2424) || string.IsNullOrWhiteSpace(command.End2424)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "6" + }); + } + else if (command.ShiftWork == "7") + { + if (string.IsNullOrWhiteSpace(command.Start1236) || string.IsNullOrWhiteSpace(command.End1236)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "7" + }); + } + else if (command.ShiftWork == "8") + { + if (string.IsNullOrWhiteSpace(command.Start2448) || string.IsNullOrWhiteSpace(command.End2448)) + return new JsonResult(new + { + isSuccess = false, + shiftErr = "7" + }); + } + + #endregion + + var result = _workingHoursTempApplication.Create(command); + var compute = MandatoryHours(command); + return new JsonResult(new + { + isSuccess = result.IsSuccedded, + compute.NumberOfWorkingDays, + compute.NumberOfFriday, + compute.TotalHoursesH, + compute.TotalHoursesM, + OverTimeWorkH = compute.OverNightWorkH, + compute.OverTimeWorkM, + compute.OverNightWorkH, + compute.OverNightWorkM, + WeeklyWorkingTime = $"{compute.weeklyTime}", + compute.SumTime44, + compute.SalaryCompute, + compute.ConsumableItems, + compute.HousingAllowance, + compute.FamilyAllowance + }); + } + + #endregion + + #region TestCompute + + [SuppressMessage("ReSharper.DPA", "DPA0009: High execution time of DB command", MessageId = "time: 1490ms")] + public IActionResult OnPostCompute(CreateWorkingHoursTemp command) + { + var result = MandatoryHours(command); + return new JsonResult(result); + //string leftWorkStartDate = ""; + //bool exsit = false; + //var serachModel = new LeftWorkSearchModel() + //{ + // EmployeeId = command.EmployeeId, + // WorkshopId = command.WorkshopId, + + //}; + //var leftWoekSerchResult = _leftWorkApplication.search(serachModel); + //leftWorkStartDate = leftWoekSerchResult.OrderBy(x => x.StartWorkDateGr).FirstOrDefault()?.StartWorkDate; + //if (leftWoekSerchResult.Count > 0) + //{ + // var start = command.ContarctStart.ToGeorgianDateTime(); + // var end = command.ContractEnd.ToGeorgianDateTime(); + // var check = leftWoekSerchResult.FirstOrDefault(x => x.StartWorkDateGr <= start && + // x.LeftWorkDateGr > start); + // if (check != null) + // { + // var leftWorkDate = check.LeftWorkDateGr.ToFarsi(); + // if (leftWorkDate != "1500/01/01") + // { + // var endOfmonth = leftWorkDate.FindeEndOfMonth(); + // var endOfMonthGr = endOfmonth.ToGeorgianDateTime(); + // if (end <= endOfMonthGr) + // exsit = true; + // } + // else + // { + // exsit = true; + // } + + // } + + + //} + + //if (!string.IsNullOrEmpty(leftWorkStartDate)) + //{ + // if (exsit) + // { + // command.GetWorkDate = leftWorkStartDate; + // command.GetWorkDateHide = leftWorkStartDate; + // var result = MandatoryHours(command); + // return new JsonResult(result); + // } + // else + // { + // return new JsonResult(new + // { + // checkDate = false, + // }); + // } + //} + //else + //{ + // return new JsonResult(new + // { + // checkExist = false, + // }); + //} + } + + #region MandatoryCompute + + public ComputingViewModel MandatoryHours(CreateWorkingHoursTemp command) + { + #region entityes + + var Notholiday = string.Empty; + var Holidays = string.Empty; + var SingleShiftResult = string.Empty; + var shift1Hourse = "0"; + var shift1Minuts = "0"; + var shift1HolidayHours = "0"; + var shift1HolidayMinuts = "0"; + var overMandatoryHours = "0"; + var overMandatoryMinuts = "0"; + var shiftOver22Hours = "0"; + var shiftOver22Minuts = "0"; + var SumWorkeTime = string.Empty; + var weeklyTime = new TimeSpan(); + var FridayStartToEnd = 0; + var overNight = false; + var overNightTow = false; + var singleOver24 = new TimeSpan(); + var towOver24 = new TimeSpan(); + var panjshanbehOver24 = new TimeSpan(); + var panjshanbehOver24Tow = new TimeSpan(); + var rest = new TimeSpan(); + var Over22 = new TimeSpan(); + + var starTimeSingel1 = new DateTime(); + var endTimeSingel2 = new DateTime(); + var singleShiftOver24 = new DateTime(); + var startTimeTowSh1 = new DateTime(); + var endTimeTowSh2 = new DateTime(); + var nightWork22 = new DateTime(); + var nightWork6 = new DateTime(); + + var rotatingResultList = new List(); + + + singleShiftOver24 = Convert.ToDateTime("00:00"); + nightWork22 = Convert.ToDateTime("22:00"); + nightWork6 = Convert.ToDateTime("06:00"); + + var rest0 = new TimeSpan(); + var rest1 = new TimeSpan(); + var rest2 = new TimeSpan(); + var rest3 = new TimeSpan(); + var rest4 = new TimeSpan(); + var rest5 = new TimeSpan(); + var rest6 = new TimeSpan(); + + var rest0w1 = new TimeSpan(); + var rest1w1 = new TimeSpan(); + var rest2w1 = new TimeSpan(); + var rest3w1 = new TimeSpan(); + var rest4w1 = new TimeSpan(); + var rest5w1 = new TimeSpan(); + var rest6w1 = new TimeSpan(); + + var rest0w2 = new TimeSpan(); + var rest1w2 = new TimeSpan(); + var rest2w2 = new TimeSpan(); + var rest3w2 = new TimeSpan(); + var rest4w2 = new TimeSpan(); + var rest5w2 = new TimeSpan(); + var rest6w2 = new TimeSpan(); + + var rest0w3 = new TimeSpan(); + var rest1w3 = new TimeSpan(); + var rest2w3 = new TimeSpan(); + var rest3w3 = new TimeSpan(); + var rest4w3 = new TimeSpan(); + var rest5w3 = new TimeSpan(); + var rest6w3 = new TimeSpan(); + + var rest0w4 = new TimeSpan(); + var rest1w4 = new TimeSpan(); + var rest2w4 = new TimeSpan(); + var rest3w4 = new TimeSpan(); + var rest4w4 = new TimeSpan(); + var rest5w4 = new TimeSpan(); + var rest6w4 = new TimeSpan(); + + var SumSingle = new TimeSpan(); + var SumTow = new TimeSpan(); + var SumSingleHourses = 0; + var SumTowHourses = 0; + + var sumRest = new TimeSpan(); + var SumComplexDays = 0; + var OfficialHoliday = 0; + + var conStartGr = command.ContarctStart.ToGeorgianDateTime(); + var conEndGr = command.ContractEnd.ToGeorgianDateTime(); + + #endregion + + #region SumRestTimesOneShift + + switch (command.ShiftWork) + { + case "1": + case "2": + command.RestTime = command.RestTime == "0" ? "00" : command.RestTime; + command.RestTimeYekshanbeh = command.RestTimeYekshanbeh == "0" ? "00" : command.RestTimeYekshanbeh; + command.RestTimeDoshanbeh = command.RestTimeDoshanbeh == "0" ? "00" : command.RestTimeDoshanbeh; + command.RestTimeSeshanbeh = command.RestTimeSeshanbeh == "0" ? "00" : command.RestTimeSeshanbeh; + command.RestTimeCheharshanbeh = + command.RestTimeCheharshanbeh == "0" ? "00" : command.RestTimeCheharshanbeh; + command.RestTimePanjshanbeh = command.RestTimePanjshanbeh == "0" ? "00" : command.RestTimePanjshanbeh; + command.RestTimeJomeh = command.RestTimeJomeh == "0" ? "00" : command.RestTimeJomeh; + command.RestTimeMin = command.RestTimeMin == "0" ? "00" : command.RestTimeMin; + command.RestTimeYekshanbehMin = + command.RestTimeYekshanbehMin == "0" ? "00" : command.RestTimeYekshanbehMin; + command.RestTimeDoshanbehMin = + command.RestTimeDoshanbehMin == "0" ? "00" : command.RestTimeDoshanbehMin; + command.RestTimeSeshanbehMin = + command.RestTimeSeshanbehMin == "0" ? "00" : command.RestTimeSeshanbehMin; + command.RestTimeCheharshanbehMin = + command.RestTimeCheharshanbehMin == "0" ? "00" : command.RestTimeCheharshanbehMin; + command.RestTimePanjshanbehMin = + command.RestTimePanjshanbehMin == "0" ? "00" : command.RestTimePanjshanbehMin; + command.RestTimeJomehMin = command.RestTimeJomehMin == "0" ? "00" : command.RestTimeJomehMin; + + rest0 = TimeSpan.Parse($"{command.RestTime}:{command.RestTimeMin}"); + sumRest = sumRest.Add(rest0); + rest1 = TimeSpan.Parse($"{command.RestTimeYekshanbeh}:{command.RestTimeYekshanbehMin}"); + sumRest = sumRest.Add(rest1); + rest2 = TimeSpan.Parse($"{command.RestTimeDoshanbeh}:{command.RestTimeDoshanbehMin}"); + sumRest = sumRest.Add(rest2); + rest3 = TimeSpan.Parse($"{command.RestTimeSeshanbeh}:{command.RestTimeSeshanbehMin}"); + sumRest = sumRest.Add(rest3); + rest4 = TimeSpan.Parse($"{command.RestTimeCheharshanbeh}:{command.RestTimeCheharshanbehMin}"); + sumRest = sumRest.Add(rest4); + rest5 = TimeSpan.Parse($"{command.RestTimePanjshanbeh}:{command.RestTimePanjshanbehMin}"); + sumRest = sumRest.Add(rest5); + rest6 = TimeSpan.Parse($"{command.RestTimeJomeh}:{command.RestTimeJomehMin}"); + sumRest = sumRest.Add(rest6); + break; + + case "4": + //week1 + command.RestTimeShanbe1 = command.RestTimeShanbe1 == "0" ? "00" : command.RestTimeShanbe1; + command.RestTimeShanbe1Min = command.RestTimeShanbe1Min == "0" ? "00" : command.RestTimeShanbe1Min; + command.RestTimeYekShanbe1 = command.RestTimeYekShanbe1 == "0" ? "00" : command.RestTimeYekShanbe1; + command.RestTimeYekShanbe1Min = + command.RestTimeYekShanbe1Min == "0" ? "00" : command.RestTimeYekShanbe1Min; + command.RestTimeDoShanbe1 = command.RestTimeDoShanbe1 == "0" ? "00" : command.RestTimeDoShanbe1; + command.RestTimeDoShanbe1Min = + command.RestTimeDoShanbe1Min == "0" ? "00" : command.RestTimeDoShanbe1Min; + command.RestTimeSeShanbe1 = command.RestTimeSeShanbe1 == "0" ? "00" : command.RestTimeSeShanbe1; + command.RestTimeSeShanbe1Min = + command.RestTimeSeShanbe1Min == "0" ? "00" : command.RestTimeSeShanbe1Min; + command.RestTimeCheharShanbe1 = + command.RestTimeCheharShanbe1 == "0" ? "00" : command.RestTimeCheharShanbe1; + command.RestTimeCheharShanbe1Min = + command.RestTimeCheharShanbe1Min == "0" ? "00" : command.RestTimeCheharShanbe1Min; + command.RestTimePanjShanbe1 = command.RestTimePanjShanbe1 == "0" ? "00" : command.RestTimePanjShanbe1; + command.RestTimePanjShanbe1Min = + command.RestTimePanjShanbe1Min == "0" ? "00" : command.RestTimePanjShanbe1Min; + command.RestTimeJome1 = command.RestTimeJome1 == "0" ? "00" : command.RestTimeJome1; + command.RestTimeJome1Min = command.RestTimeJome1Min == "0" ? "00" : command.RestTimeJome1Min; + + //week2 + command.RestTimeShanbe2 = command.RestTimeShanbe2 == "0" ? "00" : command.RestTimeShanbe2; + command.RestTimeShanbe2Min = command.RestTimeShanbe2Min == "0" ? "00" : command.RestTimeShanbe2Min; + command.RestTimeYekShanbe2 = command.RestTimeYekShanbe2 == "0" ? "00" : command.RestTimeYekShanbe2; + command.RestTimeYekShanbe2Min = + command.RestTimeYekShanbe2Min == "0" ? "00" : command.RestTimeYekShanbe2Min; + command.RestTimeDoShanbe2 = command.RestTimeDoShanbe2 == "0" ? "00" : command.RestTimeDoShanbe2; + command.RestTimeDoShanbe2Min = + command.RestTimeDoShanbe2Min == "0" ? "00" : command.RestTimeDoShanbe2Min; + command.RestTimeSeShanbe2 = command.RestTimeSeShanbe2 == "0" ? "00" : command.RestTimeSeShanbe2; + command.RestTimeSeShanbe2Min = + command.RestTimeSeShanbe2Min == "0" ? "00" : command.RestTimeSeShanbe2Min; + command.RestTimeCheharShanbe2 = + command.RestTimeCheharShanbe2 == "0" ? "00" : command.RestTimeCheharShanbe2; + command.RestTimeCheharShanbe2Min = + command.RestTimeCheharShanbe2Min == "0" ? "00" : command.RestTimeCheharShanbe2Min; + command.RestTimePanjShanbe2 = command.RestTimePanjShanbe2 == "0" ? "00" : command.RestTimePanjShanbe2; + command.RestTimePanjShanbe2Min = + command.RestTimePanjShanbe2Min == "0" ? "00" : command.RestTimePanjShanbe2Min; + command.RestTimeJome2 = command.RestTimeJome2 == "0" ? "00" : command.RestTimeJome2; + command.RestTimeJome2Min = command.RestTimeJome2Min == "0" ? "00" : command.RestTimeJome2Min; + + //week3 + command.RestTimeShanbe3 = command.RestTimeShanbe3 == "0" ? "00" : command.RestTimeShanbe3; + command.RestTimeShanbe3Min = command.RestTimeShanbe3Min == "0" ? "00" : command.RestTimeShanbe3Min; + command.RestTimeYekShanbe3 = command.RestTimeYekShanbe3 == "0" ? "00" : command.RestTimeYekShanbe3; + command.RestTimeYekShanbe3Min = + command.RestTimeYekShanbe3Min == "0" ? "00" : command.RestTimeYekShanbe3Min; + command.RestTimeDoShanbe3 = command.RestTimeDoShanbe3 == "0" ? "00" : command.RestTimeDoShanbe3; + command.RestTimeDoShanbe3Min = + command.RestTimeDoShanbe3Min == "0" ? "00" : command.RestTimeDoShanbe3Min; + command.RestTimeSeShanbe3 = command.RestTimeSeShanbe3 == "0" ? "00" : command.RestTimeSeShanbe3; + command.RestTimeSeShanbe3Min = + command.RestTimeSeShanbe3Min == "0" ? "00" : command.RestTimeSeShanbe3Min; + command.RestTimeCheharShanbe3 = + command.RestTimeCheharShanbe3 == "0" ? "00" : command.RestTimeCheharShanbe3; + command.RestTimeCheharShanbe3Min = + command.RestTimeCheharShanbe3Min == "0" ? "00" : command.RestTimeCheharShanbe3Min; + command.RestTimePanjShanbe3 = command.RestTimePanjShanbe3 == "0" ? "00" : command.RestTimePanjShanbe3; + command.RestTimePanjShanbe3Min = + command.RestTimePanjShanbe3Min == "0" ? "00" : command.RestTimePanjShanbe3Min; + command.RestTimeJome3 = command.RestTimeJome3 == "0" ? "00" : command.RestTimeJome3; + command.RestTimeJome3Min = command.RestTimeJome3Min == "0" ? "00" : command.RestTimeJome3Min; + + //week4 + command.RestTimeShanbe4 = command.RestTimeShanbe4 == "0" ? "00" : command.RestTimeShanbe4; + command.RestTimeShanbe4Min = command.RestTimeShanbe4Min == "0" ? "00" : command.RestTimeShanbe4Min; + command.RestTimeYekShanbe4 = command.RestTimeYekShanbe4 == "0" ? "00" : command.RestTimeYekShanbe4; + command.RestTimeYekShanbe4Min = + command.RestTimeYekShanbe4Min == "0" ? "00" : command.RestTimeYekShanbe4Min; + command.RestTimeDoShanbe4 = command.RestTimeDoShanbe4 == "0" ? "00" : command.RestTimeDoShanbe4; + command.RestTimeDoShanbe4Min = + command.RestTimeDoShanbe4Min == "0" ? "00" : command.RestTimeDoShanbe4Min; + command.RestTimeSeShanbe4 = command.RestTimeSeShanbe4 == "0" ? "00" : command.RestTimeSeShanbe4; + command.RestTimeSeShanbe4Min = + command.RestTimeSeShanbe4Min == "0" ? "00" : command.RestTimeSeShanbe4Min; + command.RestTimeCheharShanbe4 = + command.RestTimeCheharShanbe4 == "0" ? "00" : command.RestTimeCheharShanbe4; + command.RestTimeCheharShanbe4Min = + command.RestTimeCheharShanbe4Min == "0" ? "00" : command.RestTimeCheharShanbe4Min; + command.RestTimePanjShanbe4 = command.RestTimePanjShanbe4 == "0" ? "00" : command.RestTimePanjShanbe4; + command.RestTimePanjShanbe4Min = + command.RestTimePanjShanbe4Min == "0" ? "00" : command.RestTimePanjShanbe4Min; + command.RestTimeJome4 = command.RestTimeJome4 == "0" ? "00" : command.RestTimeJome4; + command.RestTimeJome4Min = command.RestTimeJome4Min == "0" ? "00" : command.RestTimeJome4Min; + + // sumrest week1 + rest0w1 = TimeSpan.Parse($"{command.RestTimeShanbe1}:{command.RestTimeShanbe1Min}"); + rest1w1 = TimeSpan.Parse($"{command.RestTimeYekShanbe1}:{command.RestTimeYekShanbe1Min}"); + rest2w1 = TimeSpan.Parse($"{command.RestTimeDoShanbe1}:{command.RestTimeDoShanbe1Min}"); + rest3w1 = TimeSpan.Parse($"{command.RestTimeSeShanbe1}:{command.RestTimeSeShanbe1Min}"); + rest4w1 = TimeSpan.Parse($"{command.RestTimeCheharShanbe1}:{command.RestTimeCheharShanbe1Min}"); + rest5w1 = TimeSpan.Parse($"{command.RestTimePanjShanbe1}:{command.RestTimePanjShanbe1Min}"); + rest6w1 = TimeSpan.Parse($"{command.RestTimeJome1}:{command.RestTimeJome1Min}"); + + // sumrest week2 + rest0w2 = TimeSpan.Parse($"{command.RestTimeShanbe2}:{command.RestTimeShanbe2Min}"); + rest1w2 = TimeSpan.Parse($"{command.RestTimeYekShanbe2}:{command.RestTimeYekShanbe2Min}"); + rest2w2 = TimeSpan.Parse($"{command.RestTimeDoShanbe2}:{command.RestTimeDoShanbe2Min}"); + rest3w2 = TimeSpan.Parse($"{command.RestTimeSeShanbe2}:{command.RestTimeSeShanbe2Min}"); + rest4w2 = TimeSpan.Parse($"{command.RestTimeCheharShanbe2}:{command.RestTimeCheharShanbe2Min}"); + rest5w2 = TimeSpan.Parse($"{command.RestTimePanjShanbe2}:{command.RestTimePanjShanbe2Min}"); + rest6w2 = TimeSpan.Parse($"{command.RestTimeJome2}:{command.RestTimeJome2Min}"); + + // sumrest week3 + rest0w3 = TimeSpan.Parse($"{command.RestTimeShanbe3}:{command.RestTimeShanbe3Min}"); + rest1w3 = TimeSpan.Parse($"{command.RestTimeYekShanbe3}:{command.RestTimeYekShanbe3Min}"); + rest2w3 = TimeSpan.Parse($"{command.RestTimeDoShanbe3}:{command.RestTimeDoShanbe3Min}"); + rest3w3 = TimeSpan.Parse($"{command.RestTimeSeShanbe3}:{command.RestTimeSeShanbe3Min}"); + rest4w3 = TimeSpan.Parse($"{command.RestTimeCheharShanbe3}:{command.RestTimeCheharShanbe3Min}"); + rest5w3 = TimeSpan.Parse($"{command.RestTimePanjShanbe3}:{command.RestTimePanjShanbe3Min}"); + rest6w3 = TimeSpan.Parse($"{command.RestTimeJome3}:{command.RestTimeJome3Min}"); + + // sumrest week4 + rest0w4 = TimeSpan.Parse($"{command.RestTimeShanbe4}:{command.RestTimeShanbe4Min}"); + rest1w4 = TimeSpan.Parse($"{command.RestTimeYekShanbe4}:{command.RestTimeYekShanbe4Min}"); + rest2w4 = TimeSpan.Parse($"{command.RestTimeDoShanbe4}:{command.RestTimeDoShanbe4Min}"); + rest3w4 = TimeSpan.Parse($"{command.RestTimeSeShanbe4}:{command.RestTimeSeShanbe4Min}"); + rest4w4 = TimeSpan.Parse($"{command.RestTimeCheharShanbe4}:{command.RestTimeCheharShanbe4Min}"); + rest5w4 = TimeSpan.Parse($"{command.RestTimePanjShanbe4}:{command.RestTimePanjShanbe4Min}"); + rest6w4 = TimeSpan.Parse($"{command.RestTimeJome4}:{command.RestTimeJome4Min}"); + break; + } + + #endregion + + #region SumSingleAndTowShifts + + var StartShanbehSingle = Convert.ToDateTime(command.SingleShift1); + var EndShanbehSingle = Convert.ToDateTime(command.SingleShift2); + if (StartShanbehSingle > EndShanbehSingle) + EndShanbehSingle = EndShanbehSingle.AddDays(1); + var ShanbehSingle = EndShanbehSingle - StartShanbehSingle; + SumSingle = SumSingle.Add(ShanbehSingle); + + var StartYekShanbehSingle = Convert.ToDateTime(command.SingleShift1Yekshanbeh); + var EndYekShanbehSingle = Convert.ToDateTime(command.SingleShift2Yekshanbeh); + if (StartYekShanbehSingle > EndYekShanbehSingle) + EndYekShanbehSingle = EndYekShanbehSingle.AddDays(1); + var YekShanbehSingle = EndYekShanbehSingle - StartYekShanbehSingle; + SumSingle = SumSingle.Add(YekShanbehSingle); + + var StartDoShanbehSingle = Convert.ToDateTime(command.SingleShift1Doshanbeh); + var EndDoShanbehSingle = Convert.ToDateTime(command.SingleShift2Doshanbeh); + if (StartDoShanbehSingle > EndDoShanbehSingle) + EndDoShanbehSingle = EndDoShanbehSingle.AddDays(1); + var DoShanbehSingle = EndDoShanbehSingle - StartDoShanbehSingle; + SumSingle = SumSingle.Add(DoShanbehSingle); + + + var StartSehShanbehSingle = Convert.ToDateTime(command.SingleShift1Seshanbeh); + var EndSehShanbehSingle = Convert.ToDateTime(command.SingleShift2Seshanbeh); + if (StartSehShanbehSingle > EndSehShanbehSingle) + EndSehShanbehSingle = EndSehShanbehSingle.AddDays(1); + var SeShanbehSingle = EndSehShanbehSingle - StartSehShanbehSingle; + SumSingle = SumSingle.Add(SeShanbehSingle); + + var StartCheharShanbehSingle = Convert.ToDateTime(command.SingleShift1Cheharshanbeh); + var EndCheharShanbehSingle = Convert.ToDateTime(command.SingleShift2Cheharshanbeh); + if (StartCheharShanbehSingle > EndCheharShanbehSingle) + EndCheharShanbehSingle = EndCheharShanbehSingle.AddDays(1); + var CheharShanbehSingle = EndCheharShanbehSingle - StartCheharShanbehSingle; + SumSingle = SumSingle.Add(CheharShanbehSingle); + + var StartPanjShanbehSingle = Convert.ToDateTime(command.SingleShift1Panjshanbeh); + var EndPanjShanbehSingle = Convert.ToDateTime(command.SingleShift2Panjshanbeh); + if (StartPanjShanbehSingle > EndPanjShanbehSingle) + EndPanjShanbehSingle = EndPanjShanbehSingle.AddDays(1); + var PanjShanbehSingle = EndPanjShanbehSingle - StartPanjShanbehSingle; + SumSingle = SumSingle.Add(PanjShanbehSingle); + + var StartJomehSingle = Convert.ToDateTime(command.SingleShift1Jomeh); + var EndjomehSingle = Convert.ToDateTime(command.SingleShift2Jomeh); + if (StartJomehSingle > EndjomehSingle) + EndjomehSingle = EndjomehSingle.AddDays(1); + var JomehSingle = EndjomehSingle - StartJomehSingle; + SumSingle = SumSingle.Add(JomehSingle); + if (command.ShiftWork == "1") SumSingle = SumSingle.Subtract(sumRest); + //SumSingleHourses = (int)SumSingle.TotalHours; + + + var StartShanbehTow = Convert.ToDateTime(command.TowShifts1); + var EndShanbehTow = Convert.ToDateTime(command.TowShifts2); + if (StartShanbehTow > EndShanbehTow) + EndShanbehTow = EndShanbehTow.AddDays(1); + var ShanbehTow = EndShanbehTow - StartShanbehTow; + SumTow = SumTow.Add(ShanbehTow); + + var StartYekShanbehTow = Convert.ToDateTime(command.TowShifts1Yekshanbeh); + var EndYekShanbehTow = Convert.ToDateTime(command.TowShifts2Yekshanbeh); + if (StartYekShanbehTow > EndYekShanbehTow) + EndYekShanbehTow = EndYekShanbehTow.AddDays(1); + var YekShanbehTow = EndYekShanbehTow - StartYekShanbehTow; + SumTow = SumTow.Add(YekShanbehTow); + + var StartDoShanbehTow = Convert.ToDateTime(command.TowShifts1Doshanbeh); + var EndDoShanbehTow = Convert.ToDateTime(command.TowShifts2Doshanbeh); + if (StartDoShanbehTow > EndDoShanbehTow) + EndDoShanbehTow = EndDoShanbehTow.AddDays(1); + var DoShanbehTow = EndDoShanbehTow - StartDoShanbehTow; + SumTow = SumTow.Add(DoShanbehTow); + + + var StartSehShanbehTow = Convert.ToDateTime(command.TowShifts1Seshanbeh); + var EndSehShanbehTow = Convert.ToDateTime(command.TowShifts2Seshanbeh); + if (StartSehShanbehTow > EndSehShanbehTow) + EndSehShanbehTow = EndSehShanbehTow.AddDays(1); + var SeShanbehTow = EndSehShanbehTow - StartSehShanbehTow; + SumTow = SumTow.Add(SeShanbehTow); + + var StartCheharShanbehTow = Convert.ToDateTime(command.TowShifts1Cheharshanbeh); + var EndCheharShanbehTow = Convert.ToDateTime(command.TowShifts2Cheharshanbeh); + if (StartCheharShanbehTow > EndCheharShanbehTow) + EndCheharShanbehTow = EndCheharShanbehTow.AddDays(1); + var CheharShanbehTow = EndCheharShanbehTow - StartCheharShanbehTow; + SumTow = SumTow.Add(CheharShanbehTow); + + var StartPanjShanbehTow = Convert.ToDateTime(command.TowShifts1Panjshanbeh); + var EndPanjShanbehTow = Convert.ToDateTime(command.TowShifts2Panjshanbeh); + if (StartPanjShanbehTow > EndPanjShanbehTow) + EndPanjShanbehTow = EndPanjShanbehTow.AddDays(1); + var PanjShanbehTow = EndPanjShanbehTow - StartPanjShanbehTow; + SumTow = SumTow.Add(PanjShanbehTow); + + var StartJomehTow = Convert.ToDateTime(command.TowShifts1Jomeh); + var EndjomehTow = Convert.ToDateTime(command.TowShifts2Jomeh); + if (StartJomehTow > EndjomehTow) + EndjomehTow = EndjomehTow.AddDays(1); + var jomehTow = EndjomehTow - StartJomehTow; + SumTow = SumTow.Add(jomehTow); + + //SumTowHourses = (int)SumTow.TotalHours; + + #endregion + + #region ComplexSumWorkTime + + if (command.ShiftWork == "5") + SumWorkeTime = "24 - 12"; + else if (command.ShiftWork == "6") + SumWorkeTime = "24 - 24"; + else if (command.ShiftWork == "7") + SumWorkeTime = "36 - 12"; + else if (command.ShiftWork == "8") SumWorkeTime = "48 - 24"; + + #endregion + + #region OneAndTowShiftsCompute + + var dailyFix = TimeSpan.Parse("07:20"); + var notHolidays = new TimeSpan(); + var HolidaysAndNot = new TimeSpan(); + var jomeh = new TimeSpan(); + + var sdate = command.ContarctStart.ToEnglishNumber(); + var edate = command.ContractEnd.ToEnglishNumber(); + var syear = Convert.ToInt32(sdate.Substring(0, 4)); + var smonth = Convert.ToInt32(sdate.Substring(5, 2)); + var sday = Convert.ToInt32(sdate.Substring(8, 2)); + + var eyear = Convert.ToInt32(edate.Substring(0, 4)); + var emonth = Convert.ToInt32(edate.Substring(5, 2)); + var eday = Convert.ToInt32(edate.Substring(8, 2)); + + var d1 = new PersianDateTime(syear, smonth, sday); + var d2 = new PersianDateTime(eyear, emonth, eday); + int i = 0, i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; + var holidayList = _holidayItemRepository.GetHolidayItem(sdate.Substring(0, 4)); + + #region shiftWork 1&2 + + if (command.ShiftWork == "1" || command.ShiftWork == "2") + { + for (var da = d1; da <= d2; da.AddDays(1)) + if (command.ShiftWork == "1" || command.ShiftWork == "2") + { + if (command.shanbeh) + if (da.DayOfWeek == "شنبه") + { + var test = da.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + { + i += 1; + if (command.ShiftWork == "1") + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + var singleSpan1 = endTimeSingel2 - starTimeSingel1; + + singleSpan1 = singleSpan1.Subtract(rest0); + + notHolidays = notHolidays.Add(singleSpan1); + var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); + //Over22Compute = Over22Compute.Subtract(rest); + Over22 = Over22.Add(Over22Compute); + } + else if (command.ShiftWork == "2") + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + if (startTimeTowSh1 > endTimeTowSh2) + { + overNight = true; + endTimeTowSh2 = endTimeTowSh2.AddDays(1); + } + + var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; + var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; + notHolidays = notHolidays.Add(singleSpanTow1); + notHolidays = notHolidays.Add(singleSpanTow2); + + var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22ComputeTow1); + var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); + Over22 = Over22.Add(Over22ComputeTow2); + } + } + } + + if (command.yekshanbeh) + if (da.DayOfWeek == "یکشنبه") + { + var test = da.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + { + i1 += 1; + + if (command.ShiftWork == "1") + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Yekshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Yekshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + var singleSpan1 = endTimeSingel2 - starTimeSingel1; + + singleSpan1 = singleSpan1.Subtract(rest1); + + notHolidays = notHolidays.Add(singleSpan1); + + var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); + //Over22Compute = Over22Compute.Subtract(rest); + Over22 = Over22.Add(Over22Compute); + } + + else if (command.ShiftWork == "2") + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Yekshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Yekshanbeh); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Yekshanbeh); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Yekshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + if (startTimeTowSh1 > endTimeTowSh2) + { + overNight = true; + endTimeTowSh2 = endTimeTowSh2.AddDays(1); + } + + var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; + var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; + notHolidays = notHolidays.Add(singleSpanTow1); + notHolidays = notHolidays.Add(singleSpanTow2); + + var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22ComputeTow1); + var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); + Over22 = Over22.Add(Over22ComputeTow2); + } + } + } + + if (command.doshanbeh) + if (da.DayOfWeek == "دوشنبه") + { + var test = da.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + { + i2 += 1; + switch (command.ShiftWork) + { + case "1": + + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Doshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Doshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + var singleSpan1 = endTimeSingel2 - starTimeSingel1; + + singleSpan1 = singleSpan1.Subtract(rest2); + + notHolidays = notHolidays.Add(singleSpan1); + + var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); + + Over22 = Over22.Add(Over22Compute); + break; + + case "2": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Doshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Doshanbeh); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Doshanbeh); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Doshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + if (startTimeTowSh1 > endTimeTowSh2) + { + overNight = true; + endTimeTowSh2 = endTimeTowSh2.AddDays(1); + } + + var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; + var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; + notHolidays = notHolidays.Add(singleSpanTow1); + notHolidays = notHolidays.Add(singleSpanTow2); + + var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22ComputeTow1); + var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); + Over22 = Over22.Add(Over22ComputeTow2); + break; + } + } + } + + if (command.seshanbeh) + if (da.DayOfWeek == "سه شنبه") + { + var test = da.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + { + i3 += 1; + switch (command.ShiftWork) + { + case "1": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Seshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Seshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + var singleSpan1 = endTimeSingel2 - starTimeSingel1; + + singleSpan1 = singleSpan1.Subtract(rest3); + + notHolidays = notHolidays.Add(singleSpan1); + + var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22Compute); + break; + + case "2": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Seshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Seshanbeh); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Seshanbeh); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Seshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + if (startTimeTowSh1 > endTimeTowSh2) + { + overNight = true; + endTimeTowSh2 = endTimeTowSh2.AddDays(1); + } + + var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; + var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; + notHolidays = notHolidays.Add(singleSpanTow1); + notHolidays = notHolidays.Add(singleSpanTow2); + + var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22ComputeTow1); + var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); + Over22 = Over22.Add(Over22ComputeTow2); + break; + } + } + } + + if (command.cheharshanbeh) + if (da.DayOfWeek == "چهارشنبه") + { + var test = da.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + { + i4 += 1; + switch (command.ShiftWork) + { + case "1": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Cheharshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Cheharshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + var singleSpan1 = endTimeSingel2 - starTimeSingel1; + + singleSpan1 = singleSpan1.Subtract(rest4); + + notHolidays = notHolidays.Add(singleSpan1); + + var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22Compute); + break; + + case "2": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Cheharshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Cheharshanbeh); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Cheharshanbeh); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Cheharshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + if (startTimeTowSh1 > endTimeTowSh2) + { + overNight = true; + endTimeTowSh2 = endTimeTowSh2.AddDays(1); + } + + var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; + var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; + notHolidays = notHolidays.Add(singleSpanTow1); + notHolidays = notHolidays.Add(singleSpanTow2); + + var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22ComputeTow1); + var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); + Over22 = Over22.Add(Over22ComputeTow2); + break; + } + } + } + + if (command.pangshanbeh) + if (da.DayOfWeek == "پنج شنبه") + { + var test = da.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + { + i5 += 1; + switch (command.ShiftWork) + { + case "1": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Panjshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Panjshanbeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + singleOver24 = endTimeSingel2 - singleShiftOver24; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + var singleSpan1 = endTimeSingel2 - starTimeSingel1; + + singleSpan1 = singleSpan1.Subtract(rest5); + + singleSpan1 = singleSpan1.Subtract(singleOver24); + jomeh = jomeh.Add(singleOver24); + notHolidays = notHolidays.Add(singleSpan1); + + var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22Compute); + break; + + case "2": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Panjshanbeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Panjshanbeh); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Panjshanbeh); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Panjshanbeh); + var singleOver24Tow = new TimeSpan(); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + singleOver24 = endTimeSingel2 - singleShiftOver24; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + if (startTimeTowSh1 > endTimeTowSh2) + { + overNight = true; + singleOver24Tow = endTimeTowSh2 - singleShiftOver24; + endTimeTowSh2 = endTimeTowSh2.AddDays(1); + } + + var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; + var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; + + + singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); + singleSpanTow2 = singleSpanTow2.Subtract(singleOver24Tow); + + jomeh = jomeh.Add(singleOver24); + jomeh = jomeh.Add(singleOver24Tow); + + notHolidays = notHolidays.Add(singleSpanTow1); + notHolidays = notHolidays.Add(singleSpanTow2); + + var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22ComputeTow1); + var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); + Over22 = Over22.Add(Over22ComputeTow2); + break; + } + } + } + + if (command.jomeh) + { + if (da.DayOfWeek == "جمعه") + { + i6 += 1; + switch (command.ShiftWork) + { + case "1": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jomeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jomeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + var singleSpan1 = endTimeSingel2 - starTimeSingel1; + singleSpan1 = singleSpan1.Subtract(rest6); + + jomeh = jomeh.Add(singleSpan1); + + var Over22Compute = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22Compute); + break; + + case "2": + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jomeh); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jomeh); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jomeh); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jomeh); + if (starTimeSingel1 > endTimeSingel2) + { + overNight = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + } + + if (startTimeTowSh1 > endTimeTowSh2) + { + overNight = true; + endTimeTowSh2 = endTimeTowSh2.AddDays(1); + } + + var singleSpanTow1 = endTimeSingel2 - starTimeSingel1; + var singleSpanTow2 = endTimeTowSh2 - startTimeTowSh1; + jomeh = jomeh.Add(singleSpanTow1); + jomeh = jomeh.Add(singleSpanTow2); + + var Over22ComputeTow1 = Over22Check(starTimeSingel1, endTimeSingel2); + Over22 = Over22.Add(Over22ComputeTow1); + var Over22ComputeTow2 = Over22Check(startTimeTowSh1, endTimeTowSh2); + Over22 = Over22.Add(Over22ComputeTow2); + break; + } + } + } + else + { + i6 = 0; + } + } + } + + #endregion + + #endregion + + #region Rotating + + else if (command.ShiftWork == "4") + { + for (var da = d1; da <= d2; da.AddDays(1)) + { + var FirstDayOfMonth = new PersianDateTime(da.Year, da.Month, 1); + var w1 = 0; + var w2 = 0; + var w3 = 0; + var w4 = 0; + var w5 = 0; + var w6 = 0; + + switch (FirstDayOfMonth.DayOfWeek) + { + case "شنبه": + w1 = 7; + w2 = 14; + w3 = 28; + w4 = 31; + break; + case "یکشنبه": + w1 = 6; + w2 = 13; + w3 = 20; + w4 = 27; + w5 = 31; + break; + case "دوشنبه": + w1 = 5; + w2 = 12; + w3 = 19; + w4 = 26; + w5 = 31; + break; + case "سه شنبه": + w1 = 4; + w2 = 11; + w3 = 18; + w4 = 25; + w5 = 31; + break; + case "چهارشنبه": + w1 = 3; + w2 = 10; + w3 = 17; + w4 = 24; + w5 = 31; + break; + case "پنج شنبه": + w1 = 2; + w2 = 9; + w3 = 16; + w4 = 23; + w5 = 30; + w6 = 31; + break; + case "جمعه": + w1 = 1; + w2 = 8; + w3 = 15; + w4 = 22; + w5 = 29; + w6 = 31; + break; + } + + switch (da.DayOfWeek) + { + case "شنبه": + if (da.Day <= w1) + { + if (command.Shanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); + sumRest = sumRest.Add(rest0w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); + + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w1 && da.Day <= w2) + { + if (command.Shanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); + sumRest = sumRest.Add(rest0w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w2 && da.Day <= w3) + { + if (command.Shanbe3) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w3); + sumRest = sumRest.Add(rest0w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe3); + // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w3 && da.Day <= w4) + { + if (command.Shanbe4) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe4); + // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w4); + sumRest = sumRest.Add(rest0w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe4); + // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w4); + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w4 && da.Day <= w5) + { + if (command.Shanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); + sumRest = sumRest.Add(rest0w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w5 && da.Day <= w6) + { + if (command.Shanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); + sumRest = sumRest.Add(rest0w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Shanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Shanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Shanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Shanbe2); + // if (string.IsNullOrWhiteSpace(command.TowShifts1Shanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest0w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest0w2); + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + + break; + case "یکشنبه": + if (da.Day <= w1) + { + if (command.YekShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); + // if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); + sumRest = sumRest.Add(rest1w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w1 && da.Day <= w2) + { + if (command.YekShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); + sumRest = sumRest.Add(rest1w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w2 && da.Day <= w3) + { + if (command.YekShanbe3) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe3); + // if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w3); + sumRest = sumRest.Add(rest1w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w3 && da.Day <= w4) + { + if (command.YekShanbe4) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w4); + sumRest = sumRest.Add(rest1w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w4 && da.Day <= w5) + { + if (command.YekShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); + sumRest = sumRest.Add(rest1w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w5 && da.Day <= w6) + { + if (command.YekShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); + sumRest = sumRest.Add(rest1w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1YekShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2YekShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1YekShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2YekShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1YekShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest1w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest1w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + + break; + case "دوشنبه": + if (da.Day <= w1) + { + if (command.DoShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); + sumRest = sumRest.Add(rest2w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w1 && da.Day <= w2) + { + if (command.DoShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); + // if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); + sumRest = sumRest.Add(rest2w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w2 && da.Day <= w3) + { + if (command.DoShanbe3) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w3); + sumRest = sumRest.Add(rest2w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w3 && da.Day <= w4) + { + if (command.DoShanbe4) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w4); + sumRest = sumRest.Add(rest2w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe4); + // if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w4 && da.Day <= w5) + { + if (command.DoShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); + sumRest = sumRest.Add(rest2w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w5 && da.Day <= w6) + { + if (command.DoShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); + sumRest = sumRest.Add(rest2w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1DoShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2DoShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1DoShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2DoShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1DoShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest2w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest2w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + + break; + case "سه شنبه": + if (da.Day <= w1) + { + if (command.SeShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); + sumRest = sumRest.Add(rest3w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w1 && da.Day <= w2) + { + if (command.SeShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); + sumRest = sumRest.Add(rest3w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w2 && da.Day <= w3) + { + if (command.SeShanbe3) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w3); + sumRest = sumRest.Add(rest3w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w3 && da.Day <= w4) + { + if (command.SeShanbe4) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w4); + sumRest = sumRest.Add(rest3w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w4 && da.Day <= w5) + { + if (command.SeShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); + sumRest = sumRest.Add(rest3w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w5 && da.Day <= w6) + { + if (command.SeShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); + sumRest = sumRest.Add(rest3w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1SeShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2SeShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1SeShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2SeShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1SeShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest3w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest3w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + + break; + case "چهارشنبه": + if (da.Day <= w1) + { + if (command.CheharShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); + sumRest = sumRest.Add(rest4w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w1 && da.Day <= w2) + { + if (command.CheharShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); + sumRest = sumRest.Add(rest4w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w2 && da.Day <= w3) + { + if (command.CheharShanbe3) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w3); + sumRest = sumRest.Add(rest4w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe3); + // if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w3 && da.Day <= w4) + { + if (command.CheharShanbe4) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w4); + sumRest = sumRest.Add(rest4w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe4); + // if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w4 && da.Day <= w5) + { + if (command.CheharShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); + sumRest = sumRest.Add(rest4w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe1); + // if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w5 && da.Day <= w6) + { + if (command.CheharShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); + sumRest = sumRest.Add(rest4w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1CheharShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2CheharShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1CheharShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2CheharShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1CheharShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest4w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest4w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + + break; + case "پنج شنبه": + if (da.Day <= w1) + { + if (command.PanjShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); + sumRest = sumRest.Add(rest5w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); + // if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w1 && da.Day <= w2) + { + if (command.PanjShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); + // if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); + sumRest = sumRest.Add(rest5w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w2 && da.Day <= w3) + { + if (command.PanjShanbe3) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w3); + sumRest = sumRest.Add(rest5w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe3)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w3 && da.Day <= w4) + { + if (command.PanjShanbe4) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w4); + sumRest = sumRest.Add(rest5w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe4)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w4 && da.Day <= w5) + { + if (command.PanjShanbe1) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); + sumRest = sumRest.Add(rest5w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe1)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + else if (da.Day > w5 && da.Day <= w6) + { + if (command.PanjShanbe2) + { + var test = $"{da}"; + var checkHoliday = holidayList.Any(x => x == test); + if (checkHoliday == false) + { + i += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); + sumRest = sumRest.Add(rest5w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + notHolidays = notHolidays.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + else + { + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1PanjShanbe2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2PanjShanbe2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1PanjShanbe2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2PanjShanbe2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1PanjShanbe2)) + if (endTimeSingel2 - starTimeSingel1 >= rest5w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest5w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, + startTimeTowSh1, endTimeTowSh2); + HolidaysAndNot = HolidaysAndNot.Add(rotatingCheck.TotalWorkingTime); + } + } + } + + break; + case "جمعه": + if (da.Day <= w1) + { + if (command.Jome1) + { + var test = $"{da}"; + + + i6 += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome1); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome1)) + if (endTimeSingel2 - starTimeSingel1 >= rest6w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest6w1); + sumRest = sumRest.Add(rest6w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, + endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + } + else if (da.Day > w1 && da.Day <= w2) + { + if (command.Jome2) + { + var test = $"{da}"; + + i6 += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome2)) + if (endTimeSingel2 - starTimeSingel1 >= rest6w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest6w2); + sumRest = sumRest.Add(rest6w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, + endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + } + else if (da.Day > w2 && da.Day <= w3) + { + if (command.Jome3) + { + var test = $"{da}"; + + i6 += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome3); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome3); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome3); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome3); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome3)) + if (endTimeSingel2 - starTimeSingel1 >= rest6w3) + endTimeSingel2 = endTimeSingel2.Subtract(rest6w3); + sumRest = sumRest.Add(rest6w3); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, + endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + } + else if (da.Day > w3 && da.Day <= w4) + { + if (command.Jome4) + { + var test = $"{da}"; + + i6 += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome4); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome4); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome4); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome4); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome4)) + if (endTimeSingel2 - starTimeSingel1 >= rest6w4) + endTimeSingel2 = endTimeSingel2.Subtract(rest6w4); + sumRest = sumRest.Add(rest6w4); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, + endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + } + else if (da.Day > w4 && da.Day <= w5) + { + if (command.Jome1) + { + var test = $"{da}"; + + i6 += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome1); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome1); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome1); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome1); + // if (string.IsNullOrWhiteSpace(command.TowShifts1Jome1)) + if (endTimeSingel2 - starTimeSingel1 >= rest6w1) + endTimeSingel2 = endTimeSingel2.Subtract(rest6w1); + sumRest = sumRest.Add(rest6w1); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, + endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + } + else if (da.Day > w5 && da.Day <= w6) + { + if (command.Jome2) + { + var test = $"{da}"; + + i6 += 1; + SumComplexDays += 1; + starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jome2); + endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jome2); + startTimeTowSh1 = Convert.ToDateTime(command.TowShifts1Jome2); + endTimeTowSh2 = Convert.ToDateTime(command.TowShifts2Jome2); + //if (string.IsNullOrWhiteSpace(command.TowShifts1Jome2)) + if (endTimeSingel2 - starTimeSingel1 >= rest6w2) + endTimeSingel2 = endTimeSingel2.Subtract(rest6w2); + sumRest = sumRest.Add(rest6w2); + + var rotatingCheck = RotatingShiftCheck(starTimeSingel1, endTimeSingel2, startTimeTowSh1, + endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + jomeh = jomeh.Add(rotatingCheck.TotalWorkingTime); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + } + } + + break; + } + + + if (da.DayOfWeek != "جمعه") + { + var testDay = $"{da}"; + var IsHoliday = holidayList.Any(x => x == testDay); + if (IsHoliday) OfficialHoliday += 1; + } + else + { + FridayStartToEnd += 1; + } + } + + rotatingResultList = rotatingResultList.Where(x => + x.IsMorningShift || x.IsEveningShift || x.IsNightShift).ToList(); + } + + #endregion + + #region ComplexCompute + + else if (command.ShiftWork == "5") //12-24 + { + var now = DateTime.Now; + var sdate2 = command.ContarctStart.ToEnglishNumber(); + var edate2 = command.ContractEnd.ToEnglishNumber(); + var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); + var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); + var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); + + var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); + var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); + var eday2 = Convert.ToInt32(edate.Substring(8, 2)); + + var d1b = new PersianDateTime(syear2, smonth2, sday2); + var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); + + var start = Convert.ToDateTime(command.Start1224); + var end = Convert.ToDateTime(command.End1224); + if (string.IsNullOrWhiteSpace(command.Start1224)) + start = Convert.ToDateTime(command.StartComplex); + if (string.IsNullOrWhiteSpace(command.End1224)) + end = Convert.ToDateTime(command.EndComplex); + + var sh = start.Hour; + var sm = start.Minute; + var eh = end.Hour; + var em = end.Minute; + var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); + var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); + + end = endDateTime.ToGregorianDateTime(); + + + for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(36)) + { + var test = $"{da2}"; + if (da2.DayOfWeek == "جمعه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + + var singleSpanTow1 = new TimeSpan(); + + i6 += 1; + if (start.Date < end.Date) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + singleSpanTow1 = end - start; + singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleOver24); + jomeh = jomeh.Add(singleSpanTow1); + i += 1; + } + else + { + singleSpanTow1 = end - start; + jomeh = jomeh.Add(singleSpanTow1); + } + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + var endCal = end - start; + var NextStart = start.AddHours(36); + end = NextStart.Add(endCal); + } + else if (da2.DayOfWeek == "پنج شنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = new TimeSpan(); + i5 += 1; + if (start.Date < end.Date && start.Day != end.Day) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + + jomeh = jomeh.Add(singleOver24); + + i6 += 1; + + singleSpan1 = end - start; + singleSpan1 = singleSpan1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleSpan1); + } + else + { + singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + } + + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + var endCal = end - start; + var NextStart = start.AddHours(36); + end = NextStart.Add(endCal); + } + else if (da2.DayOfWeek == "شنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i += 1; + var NextStart = start.AddHours(36); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "یکشنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i1 += 1; + + var NextStart = start.AddHours(36); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "دوشنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i2 += 1; + + var NextStart = start.AddHours(36); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "سه شنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + i3 += 1; + var NextStart = start.AddHours(36); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "چهارشنبه") + { + start = da2.ToGregorianDateTime(); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i4 += 1; + var NextStart = start.AddHours(36); + end = NextStart.Add(singleSpan1); + } + } + + + for (var daa = d1b; daa <= d2b; daa.AddDays(1)) + if (daa.DayOfWeek != "جمعه") + { + var test = daa.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + SumComplexDays += 1; + else + OfficialHoliday += 1; + } + else + { + FridayStartToEnd += 1; + } + } + else if (command.ShiftWork == "6") //24-24 + { + var now = DateTime.Now; + var sdate2 = command.ContarctStart.ToEnglishNumber(); + var edate2 = command.ContractEnd.ToEnglishNumber(); + var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); + var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); + var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); + + var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); + var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); + var eday2 = Convert.ToInt32(edate.Substring(8, 2)); + + var d1b = new PersianDateTime(syear2, smonth2, sday2); + var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); + + var start = Convert.ToDateTime(command.Start2424); + var end = Convert.ToDateTime(command.End2424); + if (string.IsNullOrWhiteSpace(command.Start2424)) + start = Convert.ToDateTime(command.StartComplex); + if (string.IsNullOrWhiteSpace(command.End2424)) + end = Convert.ToDateTime(command.EndComplex); + + var sh = start.Hour; + var sm = start.Minute; + var eh = end.Hour; + var em = end.Minute; + var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); + var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); + //if (start > end) + //{ + + // endDateTime.AddDays(1); + //} + + endDateTime.AddDays(1); + end = endDateTime.ToGregorianDateTime(); + + + for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(48)) + { + var test = $"{da2}"; + if (da2.DayOfWeek == "جمعه") + { + start = da2.ToGregorianDateTime(); + + var singleSpanTow1 = new TimeSpan(); + var WorkHours = end - start; + i6 += 1; + if (start.Date < end.Date) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + singleSpanTow1 = end - start; + singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleOver24); + jomeh = jomeh.Add(singleSpanTow1); + i += 1; + } + else + { + singleSpanTow1 = end - start; + jomeh = jomeh.Add(singleSpanTow1); + } + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + var NextStart = start.AddHours(48); + end = NextStart.Add(WorkHours); + } + else if (da2.DayOfWeek == "پنج شنبه") + { + start = da2.ToGregorianDateTime(); + var singleSpan1 = new TimeSpan(); + var WorkHours = end - start; + i5 += 1; + if (start.Date < end.Date && start.Day != end.Day) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + + jomeh = jomeh.Add(singleOver24); + + i6 += 1; + + singleSpan1 = end - start; + singleSpan1 = singleSpan1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleSpan1); + } + else + { + singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + } + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + var NextStart = start.AddHours(48); + end = NextStart.Add(WorkHours); + } + else if (da2.DayOfWeek == "شنبه") + { + start = da2.ToGregorianDateTime(); + + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i += 1; + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "یکشنبه") + { + start = da2.ToGregorianDateTime(); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i1 += 1; + + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "دوشنبه") + { + start = da2.ToGregorianDateTime(); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i2 += 1; + + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "سه شنبه") + { + start = da2.ToGregorianDateTime(); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i3 += 1; + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "چهارشنبه") + { + start = da2.ToGregorianDateTime(); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i4 += 1; + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + } + + + for (var daa = d1b; daa <= d2b; daa.AddDays(1)) + if (daa.DayOfWeek != "جمعه") + { + var test = daa.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + SumComplexDays += 1; + else + OfficialHoliday += 1; + } + else + { + FridayStartToEnd += 1; + } + } + else if (command.ShiftWork == "7") //12-36 + { + var now = DateTime.Now; + var sdate2 = command.ContarctStart.ToEnglishNumber(); + var edate2 = command.ContractEnd.ToEnglishNumber(); + var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); + var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); + var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); + + var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); + var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); + var eday2 = Convert.ToInt32(edate.Substring(8, 2)); + + var d1b = new PersianDateTime(syear2, smonth2, sday2); + var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); + + var start = Convert.ToDateTime(command.Start1236); + var end = Convert.ToDateTime(command.End1236); + if (string.IsNullOrWhiteSpace(command.Start1236)) + start = Convert.ToDateTime(command.StartComplex); + if (string.IsNullOrWhiteSpace(command.End1236)) + end = Convert.ToDateTime(command.EndComplex); + + var sh = start.Hour; + var sm = start.Minute; + var eh = end.Hour; + var em = end.Minute; + var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); + var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); + //if (start > end) + //{ + + // endDateTime.AddDays(1); + //} + + //endDateTime.AddDays(1); + end = endDateTime.ToGregorianDateTime(); + + + for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(48)) + { + var test = $"{da2}"; + if (da2.DayOfWeek == "جمعه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + + var singleSpanTow1 = new TimeSpan(); + + i6 += 1; + if (start.Date < end.Date) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + singleSpanTow1 = end - start; + singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleOver24); + jomeh = jomeh.Add(singleSpanTow1); + i += 1; + } + else + { + singleSpanTow1 = end - start; + jomeh = jomeh.Add(singleSpanTow1); + } + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + var WorkHours = end - start; + var NextStart = start.AddHours(48); + end = NextStart.Add(WorkHours); + } + else if (da2.DayOfWeek == "پنج شنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = new TimeSpan(); + + i5 += 1; + if (start.Date < end.Date && start.Day != end.Day) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + + jomeh = jomeh.Add(singleOver24); + + i6 += 1; + + singleSpan1 = end - start; + singleSpan1 = singleSpan1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleSpan1); + } + else + { + singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + } + + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + var WorkHours = end - start; + var NextStart = start.AddHours(48); + end = NextStart.Add(WorkHours); + } + else if (da2.DayOfWeek == "شنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i += 1; + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "یکشنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i1 += 1; + + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "دوشنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i2 += 1; + + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "سه شنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + i3 += 1; + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "چهارشنبه") + { + start = da2.ToGregorianDateTime(); + if (start.Date == end.Date && start.TimeOfDay > end.TimeOfDay) + end = end.AddDays(1); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i4 += 1; + var NextStart = start.AddHours(48); + end = NextStart.Add(singleSpan1); + } + } + + + for (var daa = d1b; daa <= d2b; daa.AddDays(1)) + if (daa.DayOfWeek != "جمعه") + { + var test = daa.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + SumComplexDays += 1; + else + OfficialHoliday += 1; + } + else + { + FridayStartToEnd += 1; + } + } + else if (command.ShiftWork == "8") //24-48 + { + var now = DateTime.Now; + var sdate2 = command.ContarctStart.ToEnglishNumber(); + var edate2 = command.ContractEnd.ToEnglishNumber(); + var syear2 = Convert.ToInt32(sdate.Substring(0, 4)); + var smonth2 = Convert.ToInt32(sdate.Substring(5, 2)); + var sday2 = Convert.ToInt32(sdate.Substring(8, 2)); + + var eyear2 = Convert.ToInt32(edate.Substring(0, 4)); + var emonth2 = Convert.ToInt32(edate.Substring(5, 2)); + var eday2 = Convert.ToInt32(edate.Substring(8, 2)); + + var d1b = new PersianDateTime(syear2, smonth2, sday2); + var d2b = new PersianDateTime(eyear2, emonth2, eday2, 23, 59); + + var start = Convert.ToDateTime(command.Start2448); + var end = Convert.ToDateTime(command.End2448); + if (string.IsNullOrWhiteSpace(command.Start2448)) + start = Convert.ToDateTime(command.StartComplex); + if (string.IsNullOrWhiteSpace(command.End2448)) + end = Convert.ToDateTime(command.EndComplex); + + var sh = start.Hour; + var sm = start.Minute; + var eh = end.Hour; + var em = end.Minute; + var startDateAndTime = new PersianDateTime(syear2, smonth2, sday2, sh, sm); + var endDateTime = new PersianDateTime(syear2, smonth2, sday2, eh, em); + //if (start > end) + //{ + + // endDateTime.AddDays(1); + //} + + + end = endDateTime.ToGregorianDateTime(); + end = end.AddDays(1); + + + for (var da2 = startDateAndTime; da2 <= d2b; da2.AddHours(72)) + { + var test = $"{da2}"; + if (da2.DayOfWeek == "جمعه") + { + start = da2.ToGregorianDateTime(); + + var singleSpanTow1 = new TimeSpan(); + + i6 += 1; + if (start.Date < end.Date) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + singleSpanTow1 = end - start; + singleSpanTow1 = singleSpanTow1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleOver24); + jomeh = jomeh.Add(singleSpanTow1); + i += 1; + } + else + { + singleSpanTow1 = end - start; + jomeh = jomeh.Add(singleSpanTow1); + } + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + var WorkHours = end - start; + var NextStart = start.AddHours(72); + end = NextStart.Add(WorkHours); + } + else if (da2.DayOfWeek == "پنج شنبه") + { + start = da2.ToGregorianDateTime(); + var singleSpan1 = new TimeSpan(); + + i5 += 1; + if (start.Date < end.Date && start.Day != end.Day) + { + overNight = true; + var over24 = new DateTime(end.Year, end.Month, end.Day, 0, 0, 0); + singleOver24 = end - over24; + + + jomeh = jomeh.Add(singleOver24); + + i6 += 1; + + singleSpan1 = end - start; + singleSpan1 = singleSpan1.Subtract(singleOver24); + notHolidays = notHolidays.Add(singleSpan1); + } + else + { + singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + } + + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + var WorkHours = end - start; + var NextStart = start.AddHours(72); + end = NextStart.Add(WorkHours); + } + else if (da2.DayOfWeek == "شنبه") + { + start = da2.ToGregorianDateTime(); + + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i += 1; + var NextStart = start.AddHours(72); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "یکشنبه") + { + start = da2.ToGregorianDateTime(); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i1 += 1; + + var NextStart = start.AddHours(72); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "دوشنبه") + { + start = da2.ToGregorianDateTime(); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i2 += 1; + + var NextStart = start.AddHours(72); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "سه شنبه") + { + start = da2.ToGregorianDateTime(); + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + i3 += 1; + var NextStart = start.AddHours(72); + end = NextStart.Add(singleSpan1); + } + else if (da2.DayOfWeek == "چهارشنبه") + { + start = da2.ToGregorianDateTime(); + + var singleSpan1 = end - start; + notHolidays = notHolidays.Add(singleSpan1); + + var startComplex = new DateTime(now.Year, now.Month, now.Day, start.Hour, start.Minute, + start.Second); + var endComplex = new DateTime(now.Year, now.Month, now.Day, end.Hour, end.Minute, + end.Second); + var rotatingCheck = RotatingShiftCheck(startComplex, endComplex, startTimeTowSh1, endTimeTowSh2); + rotatingCheck.RotatingDate = test; + rotatingResultList.Add(rotatingCheck); + //var Over22Computing = Over22Complex2424(start, end); + Over22 = Over22.Add(rotatingCheck.NightWorkSpan); + + + i4 += 1; + var NextStart = start.AddHours(72); + end = NextStart.Add(singleSpan1); + } + } + + + for (var daa = d1b; daa <= d2b; daa.AddDays(1)) + if (daa.DayOfWeek != "جمعه") + { + var test = daa.ToGregorianDateTime(); + var checkHoliday = _holidayItemRepository.GetHoliday(test); + if (checkHoliday == false) + SumComplexDays += 1; + else + OfficialHoliday += 1; + } + else + { + FridayStartToEnd += 1; + } + } + + #endregion + + #region DayCounterAndDailyFix + + var sumDays = i + i1 + i2 + i3 + i4 + i5 + i6; + var holidaysCount = i6; + var notHolidaysCount = i + i1 + i2 + i3 + i4 + i5; + // ساعات موظفی + var ComplexFix = dailyFix.Multiply(SumComplexDays); + + dailyFix = dailyFix.Multiply(sumDays); + + Notholiday = notHolidaysCount.ToString(); + Holidays = holidaysCount.ToString(); + + var searchModel = new LeftWorkSearchModel + { + EmployeeId = command.EmployeeId, + WorkshopId = command.WorkshopId + }; + + var leftworkList = _leftWorkApplication.search(searchModel); + var lastLeftWork = leftworkList.FirstOrDefault(); + + var conStart = conStartGr; + var EndOfM = Convert.ToInt32(command.ContractEnd.Substring(8, 2)); + var conEnd = conEndGr; + if (lastLeftWork.LeftWorkDate != "1500/01/01" && lastLeftWork.LeftWorkDateGr < conEnd) + { + conEnd = lastLeftWork.LeftWorkDateGr.AddDays(-1); + } + else + { + if (EndOfM == 31) conEnd = conEnd.AddDays(-1); + } + + + var AllDaysCount = (conEnd - conStart).TotalDays + 1; + var endContract = command.ContractEnd.ToGeorgianDateTime(); + var allDays = (endContract - conStart).TotalDays + 1; + + + var jomeh2 = new TimeSpan(); + + var notHolidays2 = new TimeSpan(); + var Mandatory = new TimeSpan(); + + + notHolidays = notHolidays.Add(jomeh); + + var workingDaysH = (int)notHolidays.TotalHours; + var workingDaysM = notHolidays.TotalMinutes % 60; + + HolidaysAndNot = HolidaysAndNot.Add(notHolidays); + var totalHolidaysAndNotH = (int)HolidaysAndNot.TotalHours; + var totalHolidaysAndNotM = HolidaysAndNot.TotalMinutes % 60; + notHolidays2 = notHolidays2.Add(jomeh2); + + + var SumNotHolidays = notHolidays.Add(notHolidays2); + var SumNotHolidaysHours = (int)SumNotHolidays.TotalHours; + var SumNotHolidaysMinuts = SumNotHolidays.Minutes % 60; + + var SumHolidays = jomeh.Add(jomeh2); + var SumHolidaysHours = (int)SumHolidays.TotalHours; + var SumHolidaysMinuts = SumHolidays.Minutes % 60; + + var totalHoursShift1 = notHolidays; + var totalHoursShift1And2 = SumNotHolidays; + + #endregion + + #region DailyFeeCompute + + var basic = "0"; + + var GetWorkStartDate = command.GetWorkDateHide.ToEnglishNumber(); + var GetWorkEndDate = command.ContractEnd.ToEnglishNumber(); + var styear = Convert.ToInt32(GetWorkStartDate.Substring(0, 4)); + var stmonth = Convert.ToInt32(GetWorkStartDate.Substring(5, 2)); + var stday = Convert.ToInt32(GetWorkStartDate.Substring(8, 2)); + + var edyear = Convert.ToInt32(GetWorkEndDate.Substring(0, 4)); + var edmonth = Convert.ToInt32(GetWorkEndDate.Substring(5, 2)); + var edday = Convert.ToInt32(GetWorkEndDate.Substring(8, 2)); + var startDate = command.GetWorkDateHide.ToGeorgianDateTime(); + var endDate = command.ContractEnd.ToGeorgianDateTime(); + var dayliFee = "خطای تاریخ"; + var contractStartDate = command.ContarctStart.ToGeorgianDateTime(); + if (styear >= 1370) + { + if (leftworkList == null) + leftworkList = new List(); + + var dayliFeeResult = _yearlySalaryRepository.DayliFeeComputing(startDate, contractStartDate, + contractStartDate, command.EmployeeId, command.WorkshopId, leftworkList); + dayliFee = dayliFeeResult.DayliFee; + basic = dayliFeeResult.Basic; + } + + #endregion + + #region ConsumableItemsAndHousingAndFamily + + var ConsumableItems = _yearlySalaryRepository.ConsumableItems(contractStartDate); + var HousingAllowance = _yearlySalaryRepository.HousingAllowance(contractStartDate); + + var familyAllowance = _yearlySalaryRepository.FamilyAllowanceAutoExtention(command.EmployeeId, contractStartDate); + + #endregion + + #region Fix44Compute + + var dailyFixx = TimeSpan.Parse("07:20"); + var fix44 = dailyFixx.Multiply(6); + + var divideNum = TimeSpan.Parse("06:00"); + //ساعت موظفی برای یک ماه + + var TotalContractDays = (conEndGr - conStartGr).TotalDays + 1; + var totalDyasUnder30 = 0.0; + var startMonth = $"{command.ContarctStart.Substring(0, 8)}01"; + var startMonthGr = startMonth.ToGeorgianDateTime(); + var endOfMonth = command.ContarctStart.FindeEndOfMonth(); + var endOgMonthGr = endOfMonth.ToGeorgianDateTime(); + if (conEnd > endOgMonthGr) + { + if (startMonthGr == conStartGr) + totalDyasUnder30 = (endOgMonthGr - conStartGr).TotalDays + 1; + else + totalDyasUnder30 = (endOgMonthGr - conStartGr).TotalDays; + } + else if (conEnd <= endOgMonthGr) + { + if (startMonthGr == conStartGr) + totalDyasUnder30 = (conEndGr - conStartGr).TotalDays + 1; + else + totalDyasUnder30 = (conEndGr - conStartGr).TotalDays; + } + + + var totalWeek = (int)(TotalContractDays / 6); + var TotalDaysNoFriday = TotalContractDays - FridayStartToEnd; // مورد اول - تعطیلات رسمی به این فرمول اضافه شود + var FixHourses = TotalDaysNoFriday * 7.33; + if (command.ShiftWork == "1") + { + if (SumSingle < fix44) + { + // مجموع ساعت کار هفته تقسیم بر 6 ساعت + var dividTo6Days = SumSingle.Divide(divideNum); + + //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); + //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); + //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + var DailyFeeNumberType = dayliFee.MoneyToDouble(); + + //مزد روزانه تقسیم بر 7/33 + var dailyStep1 = DailyFeeNumberType / 7.33; + //نتیجه ضربدر جواب مجموع ساعت تقسیم بر 6 روز هفته + var dailyStep2 = dailyStep1 * dividTo6Days; + + dayliFee = dailyStep2.ToMoney(); + + //var HousingStep1 = HousingAllowonceNumberType / 30; + //var HousingStep2 = HousingStep1 / 7.33; + //var HousingStep3 = HousingStep2 * dividTo6Days; + //var HousingStep4 = HousingStep3 * AllDaysCount; + //HousingAllowance = HousingStep4.ToMoney(); + + //var consumableItemsStep1 = ConsumableItemsNumberType / 30; + //var consumableItemsStep2 = consumableItemsStep1 / 7.33; + //var consumableItemsStep3 = consumableItemsStep2 * dividTo6Days; + //var consumableItemsStep4 = consumableItemsStep3 * AllDaysCount; + //ConsumableItems = consumableItemsStep4.ToMoney(); + + //if (familyAllowance != "0") + //{ + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; + // var familyAllowanceStep3 = familyAllowanceStep2 * dividTo6Days; + // var familyAllowanceStep4 = familyAllowanceStep3 * AllDaysCount; + // familyAllowance = familyAllowanceStep4.ToMoney(); + //} + + var sumSingleRound = Math.Round(SumSingle.TotalHours, 2); + weeklyTime = SumSingle; + SumWorkeTime = $"{sumSingleRound}"; + } + else + { + //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); + //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); + //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + + //var HousingStep1 = HousingAllowonceNumberType / 30; + //var HousingStep4 = HousingStep1 * AllDaysCount; + //HousingAllowance = HousingStep4.ToMoney(); + + + //var consumableItemsStep1 = ConsumableItemsNumberType / 30; + //var consumableItemsStep4 = consumableItemsStep1 * AllDaysCount; + //ConsumableItems = consumableItemsStep4.ToMoney(); + + //if (familyAllowance != "0") + //{ + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyAllowanceStep4 = familyAllowanceStep1 * AllDaysCount; + // familyAllowance = familyAllowanceStep4.ToMoney(); + //} + + SumWorkeTime = $"{44}"; + } + } + else if (command.ShiftWork == "2") + { + var totalShift = SumSingle + SumTow; + if (totalShift < fix44) + { + var dividTo6Days = totalShift.Divide(divideNum); + var DailyFeeNumberType = dayliFee.MoneyToDouble(); + + //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); + //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); + //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + + var step1 = DailyFeeNumberType / 7.33; + var step2 = step1 * dividTo6Days; + + dayliFee = step2.ToMoney(); + + + //var HousingStep1 = HousingAllowonceNumberType / 30; + //var HousingStep2 = HousingStep1 / 7.33; + //var HousingStep3 = HousingStep2 * dividTo6Days; + //var HousingStep4 = HousingStep3 * AllDaysCount; + //HousingAllowance = HousingStep4.ToMoney(); + + //var consumableItemsStep1 = ConsumableItemsNumberType / 30; + //var consumableItemsStep2 = consumableItemsStep1 / 7.33; + //var consumableItemsStep3 = consumableItemsStep2 * dividTo6Days; + //var consumableItemsStep4 = consumableItemsStep3 * AllDaysCount; + //ConsumableItems = consumableItemsStep4.ToMoney(); + + //if (familyAllowance != "0") + //{ + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; + // var familyAllowanceStep3 = familyAllowanceStep2 * dividTo6Days; + // var familyAllowanceStep4 = familyAllowanceStep3 * AllDaysCount; + // familyAllowance = familyAllowanceStep4.ToMoney(); + //} + var totalShiftRound = Math.Round(totalShift.TotalHours, 2); + SumWorkeTime = $"{totalShiftRound}"; + weeklyTime = totalShift; + } + else + { + //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); + //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); + //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + + //var consumableItemsStep1 = ConsumableItemsNumberType / 30; + //var consumableItemsStep4 = consumableItemsStep1 * AllDaysCount; + //ConsumableItems = consumableItemsStep4.ToMoney(); + + //var HousingStep1 = HousingAllowonceNumberType / 30; + //var HousingStep4 = HousingStep1 * AllDaysCount; + //HousingAllowance = HousingStep4.ToMoney(); + + //if (familyAllowance != "0") + //{ + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyAllowanceStep4 = familyAllowanceStep1 * AllDaysCount; + // familyAllowance = familyAllowanceStep4.ToMoney(); + //} + SumWorkeTime = $"{44}"; + } + } + else if (command.ShiftWork == "4") + { + var totalHourses = HolidaysAndNot.TotalMinutes / 60; + //var totalHourses = (totalHoursShift1.TotalMinutes) / 60; + //var dividedForOneDay = totalHourses / notHolidaysCount; + if (totalHourses < FixHourses) + { + var DailyFeeNumberType = dayliFee.MoneyToDouble(); + var dailyStep1 = DailyFeeNumberType / 7.33; + var hoursesPerDay = totalHourses / TotalDaysNoFriday; + var result = hoursesPerDay * dailyStep1; + + dayliFee = result.ToMoney(); + + + var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); + var HousingStep1 = HousingAllowonceNumberType / 30; // کمک هزینه خام به ازای روز + var HousingStep2 = HousingStep1 / 7.33; // کمک هزینه خام به ازای یک ساعت + var HousingStep3 = + HousingStep2 * hoursesPerDay; // کمک هزینه یک ساعت ضربدر میانگین کارکرد یک روز برحسب ساعت + var HousingStep4 = + HousingStep3 * + totalDyasUnder30; // کمک هزینه کارکرد یک روز ضربدر تعداد روزهای قرارداد ماکسیمم یک ماه + HousingAllowance = HousingStep4.ToMoney(); + + var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); + var consumableItemsStep1 = ConsumableItemsNumberType / 30; + var consumableItemsStep2 = consumableItemsStep1 / 7.33; + var consumableItemsStep3 = consumableItemsStep2 * hoursesPerDay; + var consumableItemsStep4 = consumableItemsStep3 * totalDyasUnder30; + ConsumableItems = consumableItemsStep4.ToMoney(); + + if (familyAllowance != "0") + { + var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + var familyAllowanceStep1 = familyAllowanceNumberType / 30; + var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; + var familyAllowanceStep3 = familyAllowanceStep2 * hoursesPerDay; + var familyAllowanceStep4 = familyAllowanceStep3 * totalDyasUnder30; + familyAllowance = familyAllowanceStep4.ToMoney(); + } + + if (totalWeek > 1) + { + double weekAvrage = 0; + if (totalHourses < 44.00) + weekAvrage = totalHourses * 6 / TotalContractDays; + else + weekAvrage = totalHourses * 6 / TotalDaysNoFriday; + //var oneday = weekAvrage * 6; + var totalShiftRound = Math.Round(weekAvrage, 2); + SumWorkeTime = $"{totalShiftRound}"; + } + else if (totalWeek <= 1 && TotalDaysNoFriday <= 6) + { + var totalShiftRound = Math.Round(totalHourses, 2); + SumWorkeTime = $"{totalShiftRound}"; + } + else if (totalWeek <= 1 && TotalDaysNoFriday > 6) + + { + var perDyeWorked = totalHourses / TotalDaysNoFriday; + var weekAvrage = perDyeWorked * 6; + var totalShiftRound = Math.Round(weekAvrage, 2); + SumWorkeTime = $"{totalShiftRound}"; + } + + weeklyTime = totalHoursShift1; + } + else + { + //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); + //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); + //var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + + //var HousingStep1 = HousingAllowonceNumberType / 30; + //var HousingStep4 = HousingStep1 * AllDaysCount; + //HousingAllowance = HousingStep4.ToMoney(); + + + //var consumableItemsStep1 = ConsumableItemsNumberType / 30; + //var consumableItemsStep4 = consumableItemsStep1 * AllDaysCount; + //ConsumableItems = consumableItemsStep4.ToMoney(); + + //if (familyAllowance != "0") + //{ + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyAllowanceStep4 = familyAllowanceStep1 * AllDaysCount; + // familyAllowance = familyAllowanceStep4.ToMoney(); + //} + + SumWorkeTime = $"{44}"; + } + } + else + { + var totalHourses = totalHoursShift1.TotalMinutes / 60; + + if (totalHourses < FixHourses) + { + var dailyFeeNumberType = dayliFee.MoneyToDouble(); + var dailyStep1 = dailyFeeNumberType / 7.33; + var hoursesPerDay = totalHourses / TotalDaysNoFriday; + var result = hoursesPerDay * dailyStep1; + + dayliFee = result.ToMoney(); + + //var HousingAllowonceNumberType = HousingAllowance.MoneyToDouble(); + //var HousingStep1 = HousingAllowonceNumberType / 30; + //var HousingStep2 = HousingStep1 / 7.33; + //var HousingStep3 = HousingStep2 * hoursesPerDay; + //var HousingStep4 = HousingStep3 * AllDaysCount; + //HousingAllowance = HousingStep4.ToMoney(); + + //var ConsumableItemsNumberType = ConsumableItems.MoneyToDouble(); + //var consumableItemsStep1 = ConsumableItemsNumberType / 30; + //var consumableItemsStep2 = consumableItemsStep1 / 7.33; + //var consumableItemsStep3 = consumableItemsStep2 * hoursesPerDay; + //var consumableItemsStep4 = consumableItemsStep3 * AllDaysCount; + //ConsumableItems = consumableItemsStep4.ToMoney(); + + //if (familyAllowance != "0") + //{ + + // var familyAllowanceNumberType = familyAllowance.MoneyToDouble(); + // var familyAllowanceStep1 = familyAllowanceNumberType / 30; + // var familyAllowanceStep2 = familyAllowanceStep1 / 7.33; + // var familyAllowanceStep3 = familyAllowanceStep2 * hoursesPerDay; + // var familyAllowanceStep4 = familyAllowanceStep3 * AllDaysCount; + // familyAllowance = familyAllowanceStep4.ToMoney(); + //} + } + } + + #endregion + + #region MandatoryTimeCompute + + if (command.ShiftWork == "1" && totalHoursShift1 > dailyFix) Mandatory = totalHoursShift1.Subtract(dailyFix); + + if (command.ShiftWork == "2" && totalHoursShift1And2 > dailyFix) + Mandatory = totalHoursShift1And2.Subtract(dailyFix); + + if (command.ShiftWork == "4" && totalHoursShift1 > dailyFix) Mandatory = totalHoursShift1.Subtract(dailyFix); + if ((command.ShiftWork == "5" && totalHoursShift1 > ComplexFix) + || (command.ShiftWork == "6" && totalHoursShift1 > ComplexFix) + || (command.ShiftWork == "7" && totalHoursShift1 > ComplexFix) + || (command.ShiftWork == "8" && totalHoursShift1 > ComplexFix)) + Mandatory = totalHoursShift1.Subtract(ComplexFix); + var mandatoryHours = (int)Mandatory.TotalHours; + var mandatoryminuts = Mandatory.Minutes % 60; + + //Over22 = Over22.Multiply(sumDays); + var Over22hours = (int)Over22.TotalHours; + var Over22Minuts = Over22.TotalMinutes % 60; + + if (command.ShiftWork == "1" || command.ShiftWork == "4") + { + shift1Hourse = workingDaysH.ToString(); + shift1Minuts = workingDaysM.ToString(); + + + if (totalHoursShift1 > dailyFix) + { + overMandatoryHours = mandatoryHours.ToString(); + overMandatoryMinuts = mandatoryminuts.ToString(); + //line3 = "مجموع ساعات اضافه کاری " + " : " + $" {mandatoryHours} " + "ساعت و " + $" {mandatoryminuts} " + "دقیقه"; + } + + + shiftOver22Hours = Over22hours.ToString(); + shiftOver22Minuts = Over22Minuts.ToString(); + } + + if (command.ShiftWork == "2") + { + shift1Hourse = SumNotHolidaysHours.ToString(); + shift1Minuts = SumNotHolidaysMinuts.ToString(); + + + if (totalHoursShift1And2 > dailyFix) + { + overMandatoryHours = mandatoryHours.ToString(); + overMandatoryMinuts = mandatoryminuts.ToString(); + } + + shiftOver22Hours = Over22hours.ToString(); + shiftOver22Minuts = Over22Minuts.ToString(); + } + + if (command.ShiftWork == "5" || command.ShiftWork == "6" || command.ShiftWork == "7" || + command.ShiftWork == "8") + { + shift1Hourse = workingDaysH.ToString(); + shift1Minuts = workingDaysM.ToString(); + + + // اضافه کاری + if (totalHoursShift1 > ComplexFix) + { + overMandatoryHours = mandatoryHours.ToString(); + overMandatoryMinuts = mandatoryminuts.ToString(); + //line3 = "مجموع ساعات اضافه کاری " + " : " + $" {mandatoryHours} " + "ساعت و " + $" {mandatoryminuts} " + "دقیقه"; + } + //else if(totalHoursShift1 < ComplexFix) + //{ + // var totalHourses = (totalHoursShift1.TotalMinutes) / 60; + + // var DailyFeeNumberType = dayliFee.MoneyToDouble(); + // var dailyStep1 = DailyFeeNumberType / 7.33; + // var dailyStep2 = totalHourses / notHolidaysCount; + // var result = dailyStep2 * dailyStep1; + + // dayliFee = result.ToMoney(); + //} + + + shiftOver22Hours = Over22hours.ToString(); + shiftOver22Minuts = Over22Minuts.ToString(); + } + + var ComplexNotHolidays = string.Empty; + if (command.ShiftWork == "5" || command.ShiftWork == "6" || command.ShiftWork == "7" || + command.ShiftWork == "8") + { + ComplexNotHolidays = Notholiday; + Notholiday = "0"; + } + + #endregion + + #region RtatingStatus + + var moriningCount = rotatingResultList.Count(x => x.IsMorningShift); + var eveningCount = rotatingResultList.Count(x => x.IsEveningShift); + var nightCount = rotatingResultList.Count(x => x.IsNightShift); + + var RotatingfaName = new List(); + if (moriningCount > 0) + RotatingfaName.Add("صبح"); + if (eveningCount > 0) + RotatingfaName.Add("عصر"); + if (nightCount > 0) + RotatingfaName.Add("شب"); + var rotatingFaResult = ""; + if (RotatingfaName.Count > 1) + { + shiftOver22Hours = "0"; + shiftOver22Minuts = "0"; + for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++) + { + if (rotateNumber == 0) + rotatingFaResult = $"{RotatingfaName[rotateNumber]}"; + if (rotateNumber == 1) + rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; + if (rotateNumber == 2) + rotatingFaResult += $" و {RotatingfaName[rotateNumber]}"; + } + } + else if (RotatingfaName.Count <= 1) + { + rotatingFaResult = "نوبت کاری ندارد"; + } + + #endregion + + #region sendResult + + rotatingResultList = rotatingResultList.Take(28).ToList(); + var ress = new ComputingViewModel + { + NumberOfWorkingDays = Notholiday == "0" ? ComplexNotHolidays : Notholiday, + NumberOfFriday = Holidays, + TotalHoursesH = shift1Hourse, + TotalHoursesM = shift1Minuts, + E = shift1HolidayHours, + F = shift1HolidayMinuts, + Interference = InterferenceMessage, + OverTimeWorkH = overMandatoryHours, + OverTimeWorkM = overMandatoryMinuts, + OverNightWorkH = shiftOver22Hours, + OverNightWorkM = shiftOver22Minuts, + ComplexNumberOfWorkingDays = ComplexNotHolidays, + SalaryCompute = dayliFee, + SumTime44 = SumWorkeTime, + ConsumableItems = ConsumableItems, + HousingAllowance = HousingAllowance, + FamilyAllowance = familyAllowance, + OfficialHoliday = OfficialHoliday, + weeklyTime = weeklyTime, + RotatingResultList = rotatingResultList, + RotatingStatus = rotatingFaResult, + Basic = basic + }; + + + return ress; + + #endregion + } + + #endregion + + #region MandatoryDependingMetods + + public RotatingShiftViewModel RotatingShiftCheck(DateTime? singleShift1, DateTime? singleShift2, + DateTime? towShift1, DateTime? towShift2) + { + #region Entityes + + var nullDateTme = new DateTime(0001, 01, 01); + var midNight24 = Convert.ToDateTime("00:00"); + var morningWorkingTime1 = new TimeSpan(); + var eveningWorkingTime1 = new TimeSpan(); + var nightWorkingTime1 = new TimeSpan(); + var morningWorkingTime2 = new TimeSpan(); + var eveningWorkingTime2 = new TimeSpan(); + var nightWorkingTime2 = new TimeSpan(); + var morningStart = Convert.ToDateTime("06:00"); + var morningEnd = Convert.ToDateTime("14:00"); + var eveningStart = Convert.ToDateTime("14:00"); + var eveningEnd = Convert.ToDateTime("22:00"); + var nightStart = Convert.ToDateTime("22:00"); + var nightEnd = Convert.ToDateTime("6:00"); + var nightEndNextday = nightEnd.AddDays(1); + var morningEndNextday = morningEnd.AddDays(1); + + #endregion + + #region shift1 + + if (singleShift1 != nullDateTme && singleShift2 != nullDateTme) + { + if (singleShift2 < singleShift1) singleShift2 = singleShift2?.AddDays(1); + + if (singleShift1 == singleShift2) // example 22<---22 + { + nightWorkingTime1 = new TimeSpan(8, 0, 0); + morningWorkingTime1 = new TimeSpan(8, 0, 0); + eveningWorkingTime1 = new TimeSpan(8, 0, 0); + } + else + { + #region morning enter 14 <- 6 + + if (singleShift1 >= morningStart // 14<---<6 + && singleShift1 < morningEnd + && singleShift2 > morningStart + && singleShift2 <= morningEnd) + { + morningWorkingTime1 = (TimeSpan)(singleShift2 - singleShift1); + } + else if (singleShift1 >= morningStart // <---14---6 + && singleShift1 < morningEnd + && singleShift2 > morningStart + && singleShift2 <= nightEndNextday) + { + if (singleShift2 <= eveningEnd) // 22<---14---6 + { + morningWorkingTime1 = (TimeSpan)(morningEnd - singleShift1); + eveningWorkingTime1 = (TimeSpan)(singleShift2 - eveningStart); + } + else if (singleShift2 > eveningEnd) // 6<---22---14---6 + { + morningWorkingTime1 = (TimeSpan)(morningEnd - singleShift1); + eveningWorkingTime1 = new TimeSpan(8, 0, 0); + nightWorkingTime1 = (TimeSpan)(singleShift2 - eveningEnd); + } + } + else if (singleShift1 >= morningStart // 14<---<6 + && singleShift1 < morningEnd + && singleShift2 > morningStart + && singleShift2 > nightEndNextday) + { + eveningWorkingTime1 = new TimeSpan(8, 0, 0); + nightWorkingTime1 = new TimeSpan(8, 0, 0); + morningWorkingTime1 = (TimeSpan)(morningEnd - singleShift1); + morningWorkingTime1 += (TimeSpan)(singleShift2 - nightEndNextday); + } + + #endregion + + #region evening enter 22 <- 14 + + if (singleShift1 >= eveningStart // 22<---<14 + && singleShift1 < eveningEnd + && singleShift2 > eveningStart + && singleShift2 <= eveningEnd) + { + eveningWorkingTime1 = (TimeSpan)(singleShift2 - singleShift1); + } + else if (singleShift1 >= eveningStart // <14---6---22---14 + && singleShift1 < eveningEnd + && singleShift2 > eveningStart + && singleShift2 <= morningEndNextday) + { + if (singleShift2 <= nightEndNextday) // 6<---22---14 + { + eveningWorkingTime1 = (TimeSpan)(eveningEnd - singleShift1); + nightWorkingTime1 = (TimeSpan)(singleShift2 - eveningEnd); + } + else if (singleShift2 > nightEndNextday) // 14<---6---22---14 + { + eveningWorkingTime1 = (TimeSpan)(eveningEnd - singleShift1); + nightWorkingTime1 = new TimeSpan(8, 0, 0); + morningWorkingTime1 = (TimeSpan)(singleShift2 - nightEndNextday); + } + } + else if (singleShift1 >= eveningStart // <22---14---6---22---14 + && singleShift1 < eveningEnd + && singleShift2 > eveningStart + && singleShift2 > morningEndNextday) + { + nightWorkingTime1 = new TimeSpan(8, 0, 0); + morningWorkingTime1 = new TimeSpan(8, 0, 0); + eveningWorkingTime1 = (TimeSpan)(eveningEnd - singleShift1); + eveningWorkingTime1 += (TimeSpan)(singleShift2 - morningEndNextday); + } + + #endregion + + #region night enter 6 <- 22 + + if ((singleShift1 >= nightStart // 6<---<22 + && singleShift1 < nightEndNextday + && singleShift2 > nightStart + && singleShift2 <= nightEndNextday) + || (singleShift1 >= midNight24 + && singleShift1 < nightEnd + && singleShift2 > midNight24 + && singleShift2 <= nightEnd)) + { + nightWorkingTime1 = (TimeSpan)(singleShift2 - singleShift1); + } + else if (singleShift1 >= nightStart // <---6---22 + && singleShift1 < nightEndNextday + && singleShift2 > nightStart + && singleShift2 > nightEndNextday) + { + if (singleShift2 <= morningEndNextday) // 14<---6---22 + { + nightWorkingTime1 = (TimeSpan)(nightEndNextday - singleShift1); + morningWorkingTime1 = (TimeSpan)(singleShift2 - nightEndNextday); + } + else if (singleShift2 > morningEndNextday) // 22<---14---6---22 + { + nightWorkingTime1 = (TimeSpan)(nightEndNextday - singleShift1); + morningWorkingTime1 = new TimeSpan(8, 0, 0); + eveningWorkingTime1 = (TimeSpan)(singleShift2 - morningEndNextday); + } + } + else if (singleShift1 >= midNight24 // <---6---00 + && singleShift1 < nightEnd + && singleShift2 > midNight24 + && singleShift2 > nightEnd) + + { + if (singleShift2 <= morningEnd) // 14<---6---00 + { + nightWorkingTime1 = (TimeSpan)(nightEnd - singleShift1); + morningWorkingTime1 = (TimeSpan)(singleShift2 - nightEnd); + } + + else if (singleShift2 > morningEnd && singleShift1 >= midNight24) // 22<---14---6--00 + { + nightWorkingTime1 = (TimeSpan)(nightEnd - singleShift1); + morningWorkingTime1 = new TimeSpan(8, 0, 0); + eveningWorkingTime1 = (TimeSpan)(singleShift2 - morningEnd); + } + } + + #endregion + } + } + + #endregion + + #region shift2 + + if (towShift1 != nullDateTme && towShift2 != nullDateTme) + { + if (towShift2 < towShift1) towShift2 = towShift2?.AddDays(1); + + if (towShift1 == towShift2) // example 22<---22 + { + nightWorkingTime2 = new TimeSpan(8, 0, 0); + morningWorkingTime2 = new TimeSpan(8, 0, 0); + eveningWorkingTime2 = new TimeSpan(8, 0, 0); + } + else + { + #region morning enter 14 <- 6 + + if (towShift1 >= morningStart // 14<---<6 + && towShift1 < morningEnd + && towShift2 > morningStart + && towShift2 <= morningEnd) + { + morningWorkingTime2 = (TimeSpan)(towShift2 - towShift1); + } + else if (towShift1 >= morningStart // <---14---6 + && towShift1 < morningEnd + && towShift2 > morningStart + && towShift2 <= nightEndNextday) + { + if (towShift2 <= eveningEnd) // 22<---14---6 + { + morningWorkingTime2 = (TimeSpan)(morningEnd - towShift1); + eveningWorkingTime2 = (TimeSpan)(towShift2 - eveningStart); + } + else if (towShift2 > eveningEnd) // 6<---22---14---6 + { + morningWorkingTime2 = (TimeSpan)(morningEnd - towShift1); + eveningWorkingTime2 = new TimeSpan(8, 0, 0); + nightWorkingTime2 = (TimeSpan)(towShift2 - eveningEnd); + } + } + else if (towShift1 >= morningStart // 14<---<6 + && towShift1 < morningEnd + && towShift2 > morningStart + && towShift2 > nightEndNextday) + { + eveningWorkingTime2 = new TimeSpan(8, 0, 0); + nightWorkingTime2 = new TimeSpan(8, 0, 0); + morningWorkingTime2 = (TimeSpan)(morningEnd - towShift1); + morningWorkingTime2 += (TimeSpan)(towShift2 - nightEndNextday); + } + + #endregion + + #region evening enter 22 <- 14 + + if (towShift1 >= eveningStart // 22<---<14 + && towShift1 < eveningEnd + && towShift2 > eveningStart + && towShift2 <= eveningEnd) + { + eveningWorkingTime2 = (TimeSpan)(towShift2 - towShift1); + } + else if (towShift1 >= eveningStart // <14---6---22---14 + && towShift1 < eveningEnd + && towShift2 > eveningStart + && towShift2 <= morningEndNextday) + { + if (towShift2 <= nightEndNextday) // 6<---22---14 + { + eveningWorkingTime2 = (TimeSpan)(eveningEnd - towShift1); + nightWorkingTime2 = (TimeSpan)(towShift2 - eveningEnd); + } + else if (towShift2 > nightEndNextday) // 14<---6---22---14 + { + eveningWorkingTime2 = (TimeSpan)(eveningEnd - towShift1); + nightWorkingTime2 = new TimeSpan(8, 0, 0); + morningWorkingTime2 = (TimeSpan)(towShift2 - nightEndNextday); + } + } + else if (towShift1 >= eveningStart // <22---14---6---22---14 + && towShift1 < eveningEnd + && towShift2 > eveningStart + && towShift2 > morningEndNextday) + { + nightWorkingTime2 = new TimeSpan(8, 0, 0); + morningWorkingTime2 = new TimeSpan(8, 0, 0); + eveningWorkingTime2 = (TimeSpan)(eveningEnd - towShift1); + eveningWorkingTime2 += (TimeSpan)(towShift2 - morningEndNextday); + } + + #endregion + + #region night enter 6 <- 22 + + if ((towShift1 >= nightStart // 6<---<22 + && towShift1 < nightEndNextday + && towShift2 > nightStart + && towShift2 <= nightEndNextday) + || (towShift1 >= midNight24 + && towShift1 < nightEnd + && towShift2 > midNight24 + && towShift2 <= nightEnd)) + { + nightWorkingTime2 = (TimeSpan)(towShift2 - towShift1); + } + else if (towShift1 >= nightStart // <---6---22 + && towShift1 < nightEndNextday + && towShift2 > nightStart + && towShift2 > nightEndNextday) + { + if (towShift2 <= morningEndNextday) // 14<---6---22 + { + nightWorkingTime2 = (TimeSpan)(nightEndNextday - towShift1); + morningWorkingTime2 = (TimeSpan)(towShift2 - nightEndNextday); + } + else if (towShift2 > morningEndNextday) // 22<---14---6---22 + { + nightWorkingTime2 = (TimeSpan)(nightEndNextday - towShift1); + morningWorkingTime2 = new TimeSpan(8, 0, 0); + eveningWorkingTime2 = (TimeSpan)(towShift2 - morningEndNextday); + } + } + else if (towShift1 >= midNight24 // <---6---00 + && towShift1 < nightEnd + && towShift2 > midNight24 + && towShift2 > nightEnd) + + { + if (towShift2 <= morningEnd) // 14<---6---00 + { + nightWorkingTime2 = (TimeSpan)(nightEnd - towShift1); + morningWorkingTime2 = (TimeSpan)(towShift2 - nightEnd); + } + + else if (towShift2 > morningEnd && towShift1 >= midNight24) // 22<---14---6--00 + { + nightWorkingTime2 = (TimeSpan)(nightEnd - towShift1); + morningWorkingTime2 = new TimeSpan(8, 0, 0); + eveningWorkingTime2 = (TimeSpan)(towShift2 - morningEnd); + } + } + + #endregion + } + } + + #endregion + + #region FinalResult + + var result = new RotatingShiftViewModel(); + result.MorningWorkSpan = morningWorkingTime1.Add(morningWorkingTime2); + result.EveningWorkSpan = eveningWorkingTime1.Add(eveningWorkingTime2); + result.NightWorkSpan = nightWorkingTime1.Add(nightWorkingTime2); + var nullWorkspan = new TimeSpan(0, 0, 0); + var totalTime = result.TotalWorkingTime.Add(result.MorningWorkSpan); + totalTime = totalTime.Add(result.EveningWorkSpan); + totalTime = totalTime.Add(result.NightWorkSpan); + + result.TotalWorkingTime = totalTime; + + var morningH = (int)result.MorningWorkSpan.TotalHours; + var morningM = result.MorningWorkSpan.Minutes % 60; + var morningMS = "00"; + if (morningM < 10 && morningM > 0) + morningMS = $"0{morningM}"; + if (morningM > 10) + morningMS = $"{morningM}"; + result.MorningString = $"0{morningH}:{morningMS}"; + + var eveningH = (int)result.EveningWorkSpan.TotalHours; + var eveningM = result.EveningWorkSpan.Minutes % 60; + var eveningMS = "00"; + if (eveningM < 10 && eveningM > 0) + eveningMS = $"0{eveningM}"; + if (eveningM > 10) + eveningMS = $"{eveningM}"; + result.EveningString = $"0{eveningH}:{eveningMS}"; + + var nightH = (int)result.NightWorkSpan.TotalHours; + var nightM = result.NightWorkSpan.Minutes % 60; + var nightMS = "00"; + if (nightM < 10 && nightM > 0) + nightMS = $"0{nightM}"; + if (nightM > 10) + nightMS = $"{nightM}"; + result.NightString = $"0{nightH}:{nightMS}"; + + if (result.MorningWorkSpan > result.EveningWorkSpan + || result.MorningWorkSpan == result.EveningWorkSpan) // if morning bigerThan evening or equal + { + if (result.MorningWorkSpan != nullWorkspan) + { + result.IsMorningShift = true; + result.IsNightShift = false; + result.IsEveningShift = false; + result.RotatingShiftStatus = "صبح"; + } + + if (result.MorningWorkSpan < result.NightWorkSpan + || result.MorningWorkSpan == result.NightWorkSpan) // if night bigerThan morning or equal + if (result.NightWorkSpan != nullWorkspan) + { + result.IsMorningShift = false; + result.IsNightShift = true; + result.IsEveningShift = false; + result.RotatingShiftStatus = "شب"; + } + } + else if (result.MorningWorkSpan < result.EveningWorkSpan) // if evening bigerThan morning + { + if (result.EveningWorkSpan != nullWorkspan) + { + result.IsEveningShift = true; + result.IsMorningShift = false; + result.IsNightShift = false; + result.RotatingShiftStatus = "عصر"; + } + + if (result.EveningWorkSpan < result.NightWorkSpan + || result.EveningWorkSpan == result.NightWorkSpan) // if night bigerThan evening or equal + if (result.NightWorkSpan != nullWorkspan) + { + result.IsMorningShift = false; + result.IsEveningShift = false; + result.IsNightShift = true; + result.RotatingShiftStatus = "شب"; + } + } + + #endregion + + + return result; + } + + public TimeSpan Over22Check(DateTime date1, DateTime date2) + { + var Over22 = new TimeSpan(); + var singleShiftOver24 = Convert.ToDateTime("00:00"); + var nightWork22 = Convert.ToDateTime("22:00"); + var nightWork6 = Convert.ToDateTime("06:00"); + var starTimeSingel1 = date1; + var endTimeSingel2 = date2; + var check = false; + if ((endTimeSingel2 > nightWork22 || endTimeSingel2 == singleShiftOver24) && starTimeSingel1 < nightWork22 && + starTimeSingel1 > nightWork6) + { + var nightWork6NextDay = new DateTime(); + if (endTimeSingel2.Date > starTimeSingel1.Date) + // 15:00 - 00:00 + nightWork6NextDay = nightWork6.AddDays(1); + check = true; + if (endTimeSingel2 <= nightWork6NextDay) + { + check = true; + Over22 = endTimeSingel2 - nightWork22; + } + else + { + check = true; + Over22 = nightWork6NextDay - nightWork22; + } + } + + if (date2 > singleShiftOver24 && endTimeSingel2 <= nightWork6 && starTimeSingel1 < nightWork22 && + starTimeSingel1 > nightWork6) + { + check = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + Over22 = endTimeSingel2 - nightWork22; + } + + if (endTimeSingel2 > singleShiftOver24 && endTimeSingel2 <= nightWork6 && starTimeSingel1 >= nightWork22) + { + check = true; + endTimeSingel2 = endTimeSingel2.AddDays(1); + Over22 = endTimeSingel2 - starTimeSingel1; + } + + if (endTimeSingel2 > singleShiftOver24 && endTimeSingel2 <= nightWork6 && + starTimeSingel1 >= singleShiftOver24 && starTimeSingel1 <= nightWork6) + { + check = true; + Over22 = endTimeSingel2 - starTimeSingel1; + } + + if (starTimeSingel1 >= nightWork22 && endTimeSingel2 > nightWork22) + { + check = true; + + var nightWork6NextDay = new DateTime(); + if (endTimeSingel2.Date > starTimeSingel1.Date) + { + nightWork6NextDay = nightWork6.AddDays(1); + if (endTimeSingel2 <= nightWork6NextDay) + { + check = true; + Over22 = endTimeSingel2 - starTimeSingel1; + } + else + { + check = true; + Over22 = nightWork6NextDay - starTimeSingel1; + } + } + } + + if (endTimeSingel2.Date == starTimeSingel1.Date) + { + if (endTimeSingel2 <= nightWork6 && starTimeSingel1 >= singleShiftOver24) + { + check = true; + Over22 = endTimeSingel2 - starTimeSingel1; + } + else if (endTimeSingel2 >= nightWork6 && starTimeSingel1 >= singleShiftOver24 && + endTimeSingel2 <= nightWork22) + + { + if (starTimeSingel1 >= nightWork6 && endTimeSingel2 <= nightWork22) + Over22 = TimeSpan.Zero; + else + Over22 = nightWork6 - starTimeSingel1; + } + else if (starTimeSingel1 >= singleShiftOver24 && endTimeSingel2 > nightWork22) + { + if (starTimeSingel1 >= nightWork22) + { + Over22 = endTimeSingel2 - starTimeSingel1; + } + else if (starTimeSingel1 < nightWork22 && endTimeSingel2 > nightWork22) + { + if (starTimeSingel1 < nightWork6) + { + var step1 = nightWork6 - starTimeSingel1; + var step2 = endTimeSingel2 - nightWork22; + var step3 = step1 + step2; + Over22 = step3; + } + else + { + Over22 = endTimeSingel2 - nightWork22; + } + } + } + else if (starTimeSingel1 > nightWork22 && endTimeSingel2 > nightWork22) + { + Over22 = endTimeSingel2 - starTimeSingel1; + } + } + + return Over22; + } + + public TimeSpan Over22Complex(DateTime date1, DateTime date2) + { + var Over22Result = new TimeSpan(); + var Over24 = new DateTime(date2.Year, date2.Month, date2.Day, 0, 0, 0); + var nightWork22 = new DateTime(date1.Year, date1.Month, date1.Day, 22, 0, 0); + var nightWork22b = new DateTime(date2.Year, date2.Month, date2.Day, 22, 0, 0); + var nightWork6 = new DateTime(date2.Year, date2.Month, date2.Day, 6, 0, 0); + var nightWork6a = new DateTime(date1.Year, date1.Month, date1.Day, 6, 0, 0); + var starTime = date1; + var endTime = date2; + if (endTime > nightWork22 && starTime < nightWork22) + { + if (starTime.Date == endTime.Date) nightWork6 = nightWork6.AddDays(1); + + if (endTime <= nightWork6) + Over22Result = endTime - nightWork22; + else if (endTime > nightWork6) Over22Result = nightWork6 - nightWork22; + } + + if (endTime > nightWork22 && starTime >= nightWork22) + { + if (endTime <= nightWork6) + Over22Result = endTime - starTime; + else if (endTime > nightWork6) Over22Result = nightWork6 - starTime; + } + + if (starTime.Hour >= 0 && starTime.Minute >= 0 && starTime < nightWork6 && starTime.Date == nightWork6.Date) + { + if (endTime > nightWork6) + Over22Result = nightWork6 - starTime; + else if (endTime <= nightWork6) Over22Result = endTime - starTime; + //nightWork22 = nightWork22.Subtract(new TimeSpan(1, 0, 0, 0)); + } + + return Over22Result; + } + + public TimeSpan Over22Complex2424(DateTime date1, DateTime date2) + { + var Over22Result = new TimeSpan(); + var Over24a = new DateTime(date1.Year, date1.Month, date1.Day, 0, 0, 0); + var Over24b = new DateTime(date2.Year, date2.Month, date2.Day, 0, 0, 0); + var nightWork22a = new DateTime(date1.Year, date1.Month, date1.Day, 22, 0, 0); + var nightWork22b = new DateTime(date2.Year, date2.Month, date2.Day, 22, 0, 0); + + var nightWork6a = new DateTime(date1.Year, date1.Month, date1.Day, 6, 0, 0); + var nightWork6b = new DateTime(date2.Year, date2.Month, date2.Day, 6, 0, 0); + var starTime = date1; + var endTime = date2; + + if (starTime >= Over24a && starTime <= nightWork6a) + { + if (endTime > nightWork22a && endTime <= nightWork6b) + { + var night1 = nightWork6a - starTime; + var night2 = endTime - nightWork22a; + Over22Result = night1.Add(night2); + } + + if (endTime > nightWork6a && endTime < nightWork22a) Over22Result = nightWork6a - starTime; + } + + if (starTime >= nightWork6a && starTime < nightWork22a) + { + if (endTime > nightWork22a && endTime <= nightWork6b) Over22Result = endTime - nightWork22a; + + if (endTime > nightWork6b) Over22Result = nightWork6b - nightWork22a; + } + + if (starTime >= nightWork22a && starTime < Over24b) + { + if (endTime <= nightWork22b) Over22Result = nightWork6b - starTime; + + + if (endTime > nightWork22b) + { + var night1 = nightWork6b - starTime; + var night2 = endTime - nightWork22b; + Over22Result = night1.Add(night2); + } + } + + + return Over22Result; + } + + #endregion + + #endregion } \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml index 3ce1844d..64dd66bc 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Workshops/CreateWorkshop.cshtml @@ -1,458 +1,9 @@ @page +@using _0_Framework.Application @model ServiceHost.Areas.Admin.Pages.Company.Workshops.CreateWorkshopModel @{ - - - - @*select2 css start*@ - + string adminVersion = _0_Framework.Application.Version.AdminVersion; + }
@@ -466,540 +17,613 @@
- +
- -
-
- - -
- -
-
-
- - -
- -
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
- -
-
- - - -
-
-
-
- - - -
-
-
-
- @*
- - - - -
*@ -
- - - - -
- -
-
-
-
- - -
-
- -
- - -