using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using _0_Framework.Application; using Company.Domain.ContractAgg; using Company.Domain.empolyerAgg; using Company.Domain.HolidayItemAgg; using Company.Domain.LeftWorkAgg; using Company.Domain.PersonnelCodeAgg; 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; using CompanyManagment.App.Contracts.WorkingHours; using CompanyManagment.App.Contracts.WorkingHoursItems; using CompanyManagment.App.Contracts.WorkingHoursTemp; using CompanyManagment.App.Contracts.Workshop; using PersianTools.Core; namespace CompanyManagment.Application; public class ContractApplication : IContractApplication { private readonly IContractRepository _contractRepository; private readonly IEmployeeApplication _employeeApplication; private readonly IEmployerApplication _employerApplication; private readonly IWorkshopApplication _workshopApplication; private readonly IEmployerRepository _employerRepository; private readonly IHolidayItemRepository _holidayItemRepository; private readonly IYearlySalaryRepository _yearlySalaryRepository; private readonly IYearlySalaryItemRepository _yearlySalaryItemRepository; private readonly IWorkingHoursApplication _workingHoursApplication; private readonly IWorkingHoursItemsApplication _workingHoursItemsApplication; private readonly ILeftWorkRepository _leftWorkRepository; private readonly IPersonnelCodeRepository _personnelCodeRepository; private readonly IWorkingHoursTempApplication _workingHoursTempApplication; private readonly IPersonalContractingPartyApp _contractingPartyApp; private readonly IEmployeeComputeOptionsApplication _employeeComputeOptionsApplication; public List EmpList; //List holiday = new List(); private string InterferenceMessage = string.Empty; string line2 = string.Empty; string line3 = string.Empty; string line4 = string.Empty; public ContractApplication(IContractRepository contractRepository, IHolidayItemRepository holidayItemRepository, IYearlySalaryRepository yearlySalaryRepository, IYearlySalaryItemRepository yearlySalaryItemRepository , IEmployeeApplication employeeApplication, IEmployerApplication employerApplication, IWorkshopApplication workshopApplication, IEmployerRepository employerRepository, IWorkingHoursApplication workingHoursApplication, IWorkingHoursItemsApplication workingHoursItemsApplication, ILeftWorkRepository leftWorkRepository, IPersonnelCodeRepository personnelCodeRepository, IWorkingHoursTempApplication workingHoursTempApplication, IPersonalContractingPartyApp contractingPartyApp, IEmployeeComputeOptionsApplication employeeComputeOptionsApplication) { _contractRepository = contractRepository; _holidayItemRepository = holidayItemRepository; _yearlySalaryRepository = yearlySalaryRepository; _yearlySalaryItemRepository = yearlySalaryItemRepository; _employeeApplication = employeeApplication; _employerApplication = employerApplication; _workshopApplication = workshopApplication; _employerRepository = employerRepository; _workingHoursApplication = workingHoursApplication; _workingHoursItemsApplication = workingHoursItemsApplication; _leftWorkRepository = leftWorkRepository; _personnelCodeRepository = personnelCodeRepository; _workingHoursTempApplication = workingHoursTempApplication; _contractingPartyApp = contractingPartyApp; _employeeComputeOptionsApplication = employeeComputeOptionsApplication; //_leftWorkApplication = leftWorkApplication; } public OperationResult Create(CreateContract command) { var yearlysalaryList = _yearlySalaryRepository.GetYearlySalary(); var yearlySalarId = yearlysalaryList.FirstOrDefault().Id; var operation = new OperationResult(); //var personnelCode = _contractRepository.FindPersonnelCode(command.WorkshopIds, command.EmployeeId); //if (command.EmployeeId == 0) // return operation.Failed("لطفا پرسنل را وارد کنید"); if (command.ArchiveCode == null) return operation.Failed("لطفا کارگاه را انتخاب کنید"); if (command.ContarctStart == null) return operation.Failed("لطفا تاریخ شروع قرارداد را مشخص کنید"); if (command.ContractEnd == null) return operation.Failed("لطفا تاریخ پایان قرارداد را مشخص کنید"); if (command.SetContractDate == null) return operation.Failed("لطفا تاریخ انعقاد قرارداد را مشخص کنید"); if (command.GetWorkDate == null) return operation.Failed("لطفا تاریخ شروع به کار را مشخص کنید"); var start = command.ContarctStart.ToGeorgianDateTime(); var end = command.ContractEnd.ToGeorgianDateTime(); var getWorkdate = command.GetWorkDate.ToGeorgianDateTime(); var setContractDate = command.SetContractDate.ToGeorgianDateTime(); //var familyAllowance = _yearlySalaryRepository.FamilyAllowance(command.EmployeeId, end); var message = _contractRepository.ContractStartCheck(start,end, command.EmployeeId,command.WorkshopIds); if (!string.IsNullOrWhiteSpace(message)) { return operation.Failed(message); } if(_contractRepository.Exists(x => x.PersonnelCode == command.PersonnelCode && x.WorkshopIds == command.WorkshopIds && x.EmployeeId != command.EmployeeId && x.IsActiveString =="true")) { return operation.Failed("کد پرسنلی وارد شده برای شخص دیگری ثبت شده است"); } if (_contractRepository.Exists(x => x.ContarctStart == start && x.WorkshopIds == command.WorkshopIds && x.EmployeeId == command.EmployeeId && x.IsActiveString =="true")) return operation.Failed("تکراراری است"); if (start > end) return operation.Failed("تاریخ شروع از تاریخ پایان بزرگتر است"); if (start == end) return operation.Failed("تاریخ شروع و تاریخ پایان برابر وارد شده اند"); if (command.ConsumableItems == null || command.HousingAllowance == null || command.DayliWage == null || command.WorkingHoursWeekly == null) return operation.Failed("لطفا محاسبات بخش ساعت کار را کامل کنید"); var leftSearch = new LeftWorkSearchModel() { WorkshopId = command.WorkshopIds, EmployeeId = command.EmployeeId}; var leftSearchResult = _leftWorkRepository.search(leftSearch); if (leftSearchResult != null || leftSearchResult.Count > 0) command.JobTypeId = leftSearchResult.FirstOrDefault()!.JobId; if(command.JobTypeId == 0) return operation.Failed("سمت پرسنل در بخش شروع بکار/ترک کار مشخص نشده است"); command.PersonnelCode = _personnelCodeRepository.GetPSCodeByWorkshopIdAndEmployeeId(command.WorkshopIds, command.EmployeeId); var makeContract = new Contract(command.PersonnelCode, command.EmployeeId, command.EmployerId, command.WorkshopIds, yearlySalarId, start, end, command.DayliWage, command.ArchiveCode, getWorkdate, setContractDate, command.JobType, command.ContractType, command.WorkshopAddress1, command.WorkshopAddress2, command.ConsumableItems, command.JobTypeId, command.HousingAllowance, command.AgreementSalary, command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod); _contractRepository.Create(makeContract); _contractRepository.SaveChanges(); var createWorkingHours = new CreateWorkingHours { ContractId = makeContract.id, ShiftWork = command.ShiftWork, ContractNo = makeContract.ContractNo, NumberOfWorkingDays = command.NumberOfWorkingDays, NumberOfFriday = command.NumberOfFriday, TotalHoursesH = command.TotalHoursesH, TotalHoursesM = command.TotalHoursesM, OverTimeWorkH = command.OverTimeWorkH, OverTimeWorkM = command.OverTimeWorkM, OverNightWorkH = command.OverNightWorkH, OverNightWorkM = command.OverNightWorkM, WeeklyWorkingTime = command.WeeklyWorkingTime, }; var a = _workingHoursApplication.Create(createWorkingHours); var workingHoursID = Convert.ToInt64(a.Message); if (command.ShiftWork == "1" || command.ShiftWork == "2") { if (command.shanbeh == true) { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "0", Start1 = command.SingleShift1, End1 = command.SingleShift2, RestTime = command.RestTime, Start2 = command.TowShifts1, End2 = command.TowShifts2, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.yekshanbeh == true) { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "1", Start1 = command.SingleShift1Yekshanbeh, End1 = command.SingleShift2Yekshanbeh, RestTime = command.RestTimeYekshanbeh, Start2 = command.TowShifts1Yekshanbeh, End2 = command.TowShifts2Yekshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.doshanbeh == true) { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "2", Start1 = command.SingleShift1Doshanbeh, End1 = command.SingleShift2Doshanbeh, RestTime = command.RestTimeDoshanbeh, Start2 = command.TowShifts1Doshanbeh, End2 = command.TowShifts2Doshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.seshanbeh == true) { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "3", Start1 = command.SingleShift1Seshanbeh, End1 = command.SingleShift2Seshanbeh, RestTime = command.RestTimeSeshanbeh, Start2 = command.TowShifts1Seshanbeh, End2 = command.TowShifts2Seshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.cheharshanbeh == true) { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "4", Start1 = command.SingleShift1Cheharshanbeh, End1 = command.SingleShift2Cheharshanbeh, RestTime = command.RestTimeCheharshanbeh, Start2 = command.TowShifts1Cheharshanbeh, End2 = command.TowShifts2Cheharshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.pangshanbeh == true) { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "5", Start1 = command.SingleShift1Panjshanbeh, End1 = command.SingleShift2Panjshanbeh, RestTime = command.RestTimePanjshanbeh, Start2 = command.TowShifts1Panjshanbeh, End2 = command.TowShifts2Panjshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.jomeh == true) { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "6", Start1 = command.SingleShift1Jomeh, End1 = command.SingleShift2Jomeh, RestTime = command.RestTimeJomeh, Start2 = command.TowShifts1Jomeh, End2 = command.TowShifts2Jomeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } } else if (command.ShiftWork == "5") { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "7", ComplexStart = command.Start1224, ComplexEnd = command.End1224, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } else if (command.ShiftWork == "6") { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "7", ComplexStart = command.Start2424, ComplexEnd = command.End2424, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } else if (command.ShiftWork == "7") { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "7", ComplexStart = command.Start1236, ComplexEnd = command.End1236, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } else if (command.ShiftWork == "8") { var create = new CreateWorkingHoursItems { WeekNumber = "0", DayOfWork = "7", ComplexStart = command.Start2448, ComplexEnd = command.End2448, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } return operation.Succcedded(); } public OperationResult CreateNew(createContractModel command) { var operation = new OperationResult(); var start = command.ContractStart.ToGeorgianDateTime(); var end = command.ContractEnd.ToGeorgianDateTime(); var getWorkdate = command.GetWorkDate.ToGeorgianDateTime(); var setContractDate = start; var getWorkingHoursTemp = _workingHoursTempApplication.GetByWorkshopIdAndEmployeeId(command.WorkshopId, command.EmployeeId); var makeContract = new Contract(command.PersonnelCode, command.EmployeeId, command.EmployerId, command.WorkshopId, command.YearlySalaryId, start, end, command.DayliWage, command.ArchiveCode, getWorkdate, setContractDate, command.JobName, command.ContractType, command.WorkshopAddress1, command.WorkshopAddress2, command.ConsumableItems, command.JobId, command.HousingAllowance, "0", command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod); _contractRepository.Create(makeContract); _contractRepository.SaveChanges(); getWorkingHoursTemp.ContractId = makeContract.id; getWorkingHoursTemp.ContractNo = makeContract.ContractNo; getWorkingHoursTemp.NumberOfWorkingDays = command.NumberOfWorkingDays; getWorkingHoursTemp.NumberOfFriday = command.NumberOfFriday; getWorkingHoursTemp.TotalHoursesH = command.TotalHoursesH; getWorkingHoursTemp.TotalHoursesM = command.TotalHoursesM; getWorkingHoursTemp.OverTimeWorkH = command.OverTimeWorkH; getWorkingHoursTemp.OverTimeWorkM = command.OverTimeWorkM; getWorkingHoursTemp.OverNightWorkH = command.OverNightWorkH; getWorkingHoursTemp.OverNightWorkM = command.OverNightWorkM; getWorkingHoursTemp.WeeklyWorkingTime = command.WorkingHoursWeekly; _workingHoursApplication.CreateNew(getWorkingHoursTemp); return operation.Succcedded(); } public OperationResult Edit(EditContract command) { var operation = new OperationResult(); var contractEdit = _contractRepository.Get(command.Id); var personnelCode = _personnelCodeRepository.GetPSCodeByWorkshopIdAndEmployeeId(command.WorkshopIds, command.EmployeeId); if (contractEdit == null) return operation.Failed("رکورد مورد نظر یافت نشد"); if (command.ContarctStart == null) return operation.Failed("لطفا تاریخ شروع قرارداد را مشخص کنید"); if (command.ContractEnd == null) return operation.Failed("لطفا تاریخ پایان قرارداد را مشخص کنید"); if (command.SetContractDate == null) return operation.Failed("لطفا تاریخ انعقاد قرارداد را مشخص کنید"); if (command.GetWorkDate == null) return operation.Failed("لطفا تاریخ شروع به کار را مشخص کنید"); var start = command.ContarctStart.ToGeorgianDateTime(); var end = command.ContractEnd.ToGeorgianDateTime(); var getWorkdate = command.GetWorkDate.ToGeorgianDateTime(); var setContractDate = command.SetContractDate.ToGeorgianDateTime(); //var familyAllowance = _yearlySalaryRepository.FamilyAllowance(command.EmployeeId, end); if (_contractRepository.Exists(x => x.WorkshopIds == command.WorkshopIds && x.EmployeeId == command.EmployeeId && (x.ContarctStart <= start && x.ContractEnd >= start && x.IsActiveString == "true" && x.id != command.Id))) { var message = _contractRepository.ContractStartCheck(start, end,command.EmployeeId,command.WorkshopIds); return operation.Failed(message); } if (_contractRepository.Exists(x => x.WorkshopIds == command.WorkshopIds && x.EmployeeId == command.EmployeeId && (x.ContarctStart <= end && x.ContractEnd >= end && x.IsActiveString == "true" && x.id != command.Id))) { var message = _contractRepository.ContractStartCheck(start, end, command.EmployeeId, command.WorkshopIds); return operation.Failed(message); } if (_contractRepository.Exists(x => x.ContarctStart == start && x.WorkshopIds == command.WorkshopIds && x.EmployeeId == command.EmployeeId && x.IsActiveString == "true" && x.id != command.Id)) return operation.Failed("تکراراری است"); if (start > end) return operation.Failed("تاریخ شروع از تاریخ پایان بزرگتر است"); if (start == end) return operation.Failed("تاریخ شروع و تاریخ پایان برابر وارد شده اند"); if (command.ConsumableItems == null || command.HousingAllowance == null || command.DayliWage == null || command.WorkingHoursWeekly == null) return operation.Failed("لطفا محاسبات بخش ساعت کار را کامل کنید"); contractEdit.Edit(personnelCode,command.EmployeeId,command.EmployerId,command.WorkshopIds, contractEdit.YearlySalaryId, start, end, command.DayliWage, contractEdit.ArchiveCode, getWorkdate, setContractDate, command.JobType, command.ContractType, command.WorkshopAddress1, command.WorkshopAddress2, command.ConsumableItems, command.JobTypeId, command.HousingAllowance, command.AgreementSalary, command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod); _workingHoursApplication.removeWorkingHours(contractEdit.id); _contractRepository.SaveChanges(); var createWorkingHours = new CreateWorkingHours { ContractId = contractEdit.id, ShiftWork = command.ShiftWork, ContractNo = contractEdit.ContractNo, NumberOfWorkingDays = command.NumberOfWorkingDays, NumberOfFriday = command.NumberOfFriday, TotalHoursesH = command.TotalHoursesH, TotalHoursesM = command.TotalHoursesM, OverTimeWorkH = command.OverTimeWorkH, OverTimeWorkM = command.OverTimeWorkM, OverNightWorkH = command.OverNightWorkH, OverNightWorkM = command.OverNightWorkM, WeeklyWorkingTime = command.WeeklyWorkingTime, }; var a = _workingHoursApplication.Create(createWorkingHours); var workingHoursID = Convert.ToInt64(a.Message); if (command.ShiftWork == "1" || command.ShiftWork == "2") { if (command.shanbeh == true) { var create = new CreateWorkingHoursItems { DayOfWork = "0", Start1 = command.SingleShift1, End1 = command.SingleShift2, RestTime = command.RestTime, Start2 = command.TowShifts1, End2 = command.TowShifts2, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.yekshanbeh == true) { var create = new CreateWorkingHoursItems { DayOfWork = "1", Start1 = command.SingleShift1Yekshanbeh, End1 = command.SingleShift2Yekshanbeh, RestTime = command.RestTimeYekshanbeh, Start2 = command.TowShifts1Yekshanbeh, End2 = command.TowShifts2Yekshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.doshanbeh == true) { var create = new CreateWorkingHoursItems { DayOfWork = "2", Start1 = command.SingleShift1Doshanbeh, End1 = command.SingleShift2Doshanbeh, RestTime = command.RestTimeDoshanbeh, Start2 = command.TowShifts1Doshanbeh, End2 = command.TowShifts2Doshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.seshanbeh == true) { var create = new CreateWorkingHoursItems { DayOfWork = "3", Start1 = command.SingleShift1Seshanbeh, End1 = command.SingleShift2Seshanbeh, RestTime = command.RestTimeSeshanbeh, Start2 = command.TowShifts1Seshanbeh, End2 = command.TowShifts2Seshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.cheharshanbeh == true) { var create = new CreateWorkingHoursItems { DayOfWork = "4", Start1 = command.SingleShift1Cheharshanbeh, End1 = command.SingleShift2Cheharshanbeh, RestTime = command.RestTimeCheharshanbeh, Start2 = command.TowShifts1Cheharshanbeh, End2 = command.TowShifts2Cheharshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.pangshanbeh == true) { var create = new CreateWorkingHoursItems { DayOfWork = "5", Start1 = command.SingleShift1Panjshanbeh, End1 = command.SingleShift2Panjshanbeh, RestTime = command.RestTimePanjshanbeh, Start2 = command.TowShifts1Panjshanbeh, End2 = command.TowShifts2Panjshanbeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } if (command.jomeh == true) { var create = new CreateWorkingHoursItems { DayOfWork = "6", Start1 = command.SingleShift1Jomeh, End1 = command.SingleShift2Jomeh, RestTime = command.RestTimeJomeh, Start2 = command.TowShifts1Jomeh, End2 = command.TowShifts2Jomeh, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } } else if (command.ShiftWork == "5") { var create = new CreateWorkingHoursItems { DayOfWork = "7", ComplexStart = command.Start1224, ComplexEnd = command.End1224, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } else if (command.ShiftWork == "6") { var create = new CreateWorkingHoursItems { DayOfWork = "7", ComplexStart = command.Start2424, ComplexEnd = command.End2424, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } else if (command.ShiftWork == "7") { var create = new CreateWorkingHoursItems { DayOfWork = "7", ComplexStart = command.Start1236, ComplexEnd = command.End1236, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } else if (command.ShiftWork == "8") { var create = new CreateWorkingHoursItems { DayOfWork = "7", ComplexStart = command.Start2448, ComplexEnd = command.End2448, WorkingHoursId = workingHoursID }; _workingHoursItemsApplication.Create(create); } return operation.Succcedded(); } public OperationResult EditCompute(EditContract command) { var operation = new OperationResult(); var contractEdit = _contractRepository.Get(command.Id); contractEdit.EditCompute( command.DayliWage, command.ConsumableItems, command.HousingAllowance, command.AgreementSalary, command.WorkingHoursWeekly, command.FamilyAllowance); _contractRepository.SaveChanges(); return operation.Succcedded(); } public void EditAgreement(long id) { var contractEdit = _contractRepository.Get(id); contractEdit.EditAgreement(); } public async Task EditComputeAsync(EditContract command) { var operation = new OperationResult(); var contractEdit = _contractRepository.Get(command.Id); contractEdit.EditCompute(command.DayliWage, command.ConsumableItems, command.HousingAllowance, command.AgreementSalary, command.WorkingHoursWeekly, command.FamilyAllowance); _contractRepository.SaveChanges(); return operation.Succcedded(); } public ComputingViewModel MandatoryHours(CreateContract command) { string Notholiday = String.Empty; string Holidays = string.Empty; string SingleShiftResult = String.Empty; string shift1Hourse = "0"; string shift1Minuts = "0"; string shift1HolidayHours = "0"; string shift1HolidayMinuts = "0"; string overMandatoryHours = "0"; string overMandatoryMinuts = "0"; string shiftOver22Hours = "0"; string shiftOver22Minuts = "0"; string SumWorkeTime = string.Empty; var weeklyTime = new TimeSpan(); 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(); singleShiftOver24 = Convert.ToDateTime("00:00"); nightWork22 = Convert.ToDateTime("22:00"); nightWork6 = Convert.ToDateTime("06:00"); var SumSingle = new TimeSpan(); var SumTow = new TimeSpan(); var SumSingleHourses = 0; var SumTowHourses = 0; var sumRest = new TimeSpan(); if (command.RestTime != null) { var rest0 = TimeSpan.Parse($"{command.RestTime}:{00}"); sumRest = sumRest.Add(rest0); } if (command.RestTimeYekshanbeh != null) { var rest1 = TimeSpan.Parse($"{command.RestTimeYekshanbeh}:{00}"); sumRest = sumRest.Add(rest1); } if (command.RestTimeDoshanbeh != null) { var rest2 = TimeSpan.Parse($"{command.RestTimeDoshanbeh}:{00}"); sumRest = sumRest.Add(rest2); } if (command.RestTimeSeshanbeh != null) { var rest3 = TimeSpan.Parse($"{command.RestTimeSeshanbeh}:{00}"); sumRest = sumRest.Add(rest3); } if (command.RestTimeCheharshanbeh != null) { var rest4 = TimeSpan.Parse($"{command.RestTimeCheharshanbeh}:{00}"); sumRest = sumRest.Add(rest4); } if (command.RestTimePanjshanbeh != null) { var rest5 = TimeSpan.Parse($"{command.RestTimePanjshanbeh}:{00}"); sumRest = sumRest.Add(rest5); } if (command.RestTimeJomeh != null) { var rest6 = TimeSpan.Parse($"{command.RestTimeJomeh}:{00}"); sumRest = sumRest.Add(rest6); } 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; 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"; } var dailyFix = TimeSpan.Parse("07:20"); var notHolidays = 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; for (var da = d1; da <= d2; da.AddDays(1)) { if (command.ShiftWork == "1" || command.ShiftWork == "2" || command.ShiftWork == "3" || command.ShiftWork == "4") { if (command.shanbeh == true) { if (da.DayOfWeek == "شنبه") { var test = da.ToGregorianDateTime(); var checkHoliday = _holidayItemRepository.GetHoliday(test); if (checkHoliday == false) { i += 1; if (command.ShiftWork == "1") { if (command.RestTime != null) { rest = TimeSpan.Parse($"{command.RestTime}:{00}"); } starTimeSingel1 = Convert.ToDateTime(command.SingleShift1); endTimeSingel2 = Convert.ToDateTime(command.SingleShift2); if (starTimeSingel1 > endTimeSingel2) { overNight = true; endTimeSingel2 = endTimeSingel2.AddDays(1); } var singleSpan1 = (endTimeSingel2 - starTimeSingel1); if (command.RestTime != "0") singleSpan1 = singleSpan1.Subtract(rest); 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 == true) { if (da.DayOfWeek == "یکشنبه") { var test = da.ToGregorianDateTime(); var checkHoliday = _holidayItemRepository.GetHoliday(test); if (checkHoliday == false) { i1 += 1; if (command.ShiftWork == "1") { if (command.RestTimeYekshanbeh != null) { rest = TimeSpan.Parse($"{command.RestTimeYekshanbeh}:{00}"); } starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Yekshanbeh); endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Yekshanbeh); if (starTimeSingel1 > endTimeSingel2) { overNight = true; endTimeSingel2 = endTimeSingel2.AddDays(1); } var singleSpan1 = (endTimeSingel2 - starTimeSingel1); if (command.RestTimeYekshanbeh != "0") singleSpan1 = singleSpan1.Subtract(rest); 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 == true) { if (da.DayOfWeek == "دوشنبه") { var test = da.ToGregorianDateTime(); var checkHoliday = _holidayItemRepository.GetHoliday(test); if (checkHoliday == false) { i2 += 1; switch (command.ShiftWork) { case "1": if (command.RestTimeDoshanbeh != null) { rest = TimeSpan.Parse($"{command.RestTimeDoshanbeh}:{00}"); } starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Doshanbeh); endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Doshanbeh); if (starTimeSingel1 > endTimeSingel2) { overNight = true; endTimeSingel2 = endTimeSingel2.AddDays(1); } var singleSpan1 = (endTimeSingel2 - starTimeSingel1); if (command.RestTimeDoshanbeh != "0") singleSpan1 = singleSpan1.Subtract(rest); 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 == true) { if (da.DayOfWeek == "سه شنبه") { var test = da.ToGregorianDateTime(); var checkHoliday = _holidayItemRepository.GetHoliday(test); if (checkHoliday == false) { i3 += 1; switch (command.ShiftWork) { case "1": if (command.RestTimeSeshanbeh != null) { rest = TimeSpan.Parse($"{command.RestTimeSeshanbeh}:{00}"); } starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Seshanbeh); endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Seshanbeh); if (starTimeSingel1 > endTimeSingel2) { overNight = true; endTimeSingel2 = endTimeSingel2.AddDays(1); } var singleSpan1 = (endTimeSingel2 - starTimeSingel1); if (command.RestTimeSeshanbeh != "0") singleSpan1 = singleSpan1.Subtract(rest); 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 == true) { if (da.DayOfWeek == "چهارشنبه") { var test = da.ToGregorianDateTime(); var checkHoliday = _holidayItemRepository.GetHoliday(test); if (checkHoliday == false) { i4 += 1; switch (command.ShiftWork) { case "1": if (command.RestTimeCheharshanbeh != null) { rest = TimeSpan.Parse($"{command.RestTimeCheharshanbeh}:{00}"); } starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Cheharshanbeh); endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Cheharshanbeh); if (starTimeSingel1 > endTimeSingel2) { overNight = true; endTimeSingel2 = endTimeSingel2.AddDays(1); } var singleSpan1 = (endTimeSingel2 - starTimeSingel1); if (command.RestTimeCheharshanbeh != "0") singleSpan1 = singleSpan1.Subtract(rest); 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 == true) { if (da.DayOfWeek == "پنج شنبه") { var test = da.ToGregorianDateTime(); var checkHoliday = _holidayItemRepository.GetHoliday(test); if (checkHoliday == false) { i5 += 1; switch (command.ShiftWork) { case "1": if (command.RestTimePanjshanbeh != null) { rest = TimeSpan.Parse($"{command.RestTimePanjshanbeh}:{00}"); } 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); if (command.RestTimePanjshanbeh != "0") singleSpan1 = singleSpan1.Subtract(rest); 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 == true) { if (da.DayOfWeek == "جمعه") { i6 += 1; switch (command.ShiftWork) { case "1": if (command.RestTimeJomeh != null) { rest = TimeSpan.Parse($"{command.RestTimeJomeh}:{00}"); } starTimeSingel1 = Convert.ToDateTime(command.SingleShift1Jomeh); endTimeSingel2 = Convert.ToDateTime(command.SingleShift2Jomeh); if (starTimeSingel1 > endTimeSingel2) { overNight = true; endTimeSingel2 = endTimeSingel2.AddDays(1); } var singleSpan1 = (endTimeSingel2 - starTimeSingel1); if (command.RestTimeJomeh != "0") singleSpan1 = singleSpan1.Subtract(rest); 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; } } } var SumComplexDays = 0; var OfficialHoliday = 0; if (command.ShiftWork == "5") { 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); 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)) { 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 Over22Computer = Over22Complex(start, end); Over22 = Over22.Add(Over22Computer); 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 Over22Computer2 = Over22Complex(start, end); Over22 = Over22.Add(Over22Computer2); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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; } } } } if (command.ShiftWork == "6") { 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); 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)) { 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 Over22Computer = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computer); 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 Over22Computer2 = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computer2); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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; } } } } if (command.ShiftWork == "7") { 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); 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)) { 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 Over22Computer = Over22Complex(start, end); Over22 = Over22.Add(Over22Computer); 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 Over22Computer2 = Over22Complex(start, end); Over22 = Over22.Add(Over22Computer2); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex(start, end); Over22 = Over22.Add(Over22Computing); 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; } } } } if (command.ShiftWork == "8") { 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); 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)) { 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 Over22Computer = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computer); 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 Over22Computer2 = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computer2); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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 Over22Computing = Over22Complex2424(start, end); Over22 = Over22.Add(Over22Computing); 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; } } } } 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(notHolidaysCount); Notholiday = notHolidaysCount.ToString(); Holidays = holidaysCount.ToString(); var searchModel = new LeftWorkSearchModel() { EmployeeId = command.EmployeeId, WorkshopId = command.WorkshopIds, }; var leftworkList = _leftWorkRepository.search(searchModel); var lastLeftWork = leftworkList.FirstOrDefault(); var conStart = command.ContarctStart.ToGeorgianDateTime(); var EndOfM = Convert.ToInt32(command.ContractEnd.Substring(8, 2)); var conEnd = command.ContractEnd.ToGeorgianDateTime(); 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 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; 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; 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 = "خطای تاریخ"; if (styear >= 1370) { if (leftworkList == null) leftworkList = new List(); var ContractStart = command.ContarctStart.ToGeorgianDateTime(); dayliFee = "yearlySalaryRepository.DayliFeeComputing(startDate,ContractStart, endDate, command.EmployeeId, command.WorkshopIds, leftworkList);"; } var ConsumableItems = _yearlySalaryRepository.ConsumableItems(endDate); var HousingAllowance = _yearlySalaryRepository.HousingAllowance(endDate); var familyAllowance = _yearlySalaryRepository.FamilyAllowance(command.EmployeeId, conStart, endDate); var dailyFixx = TimeSpan.Parse("07:20"); var fix44 = dailyFixx.Multiply(6); var divideNum = TimeSpan.Parse("06:00"); //if (sday == 1) //{ // var start = command.ContarctStart.ToEnglishNumber(); // var end = command.ContractEnd.ToEnglishNumber(); // var FindeEnd = start.FindeEndOfMonth(); // if (FindeEnd == end) // { // AllDaysCount = 30; // } //} if (command.ShiftWork == "1") { if (SumSingle < fix44) { // مجموع ساعت کار هفته تقسیم بر 6 ساعت var dividTo6Days = SumSingle.Divide(divideNum); var DailyFeeStrNumber = dayliFee.ToDoubleMoney(); var DailyFeeNumberType = Convert.ToDouble(DailyFeeStrNumber); var HousingAllowonceStrNumber = HousingAllowance.ToDoubleMoney(); var HousingAllowonceNumberType = Convert.ToDouble(HousingAllowonceStrNumber); var ConsumableItemsStrNumber = ConsumableItems.ToDoubleMoney(); var ConsumableItemsNumberType = Convert.ToDouble(ConsumableItemsStrNumber); var familyAllowanceStrNumber = familyAllowance.ToDoubleMoney(); var familyAllowanceNumberType = Convert.ToDouble(familyAllowanceStrNumber); //مزد روزانه تقسیم بر 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 HousingAllowonceStrNumber = HousingAllowance.ToDoubleMoney(); var HousingAllowonceNumberType = Convert.ToDouble(HousingAllowonceStrNumber); var ConsumableItemsStrNumber = ConsumableItems.ToDoubleMoney(); var ConsumableItemsNumberType = Convert.ToDouble(ConsumableItemsStrNumber); var familyAllowanceStrNumber = familyAllowance.ToDoubleMoney(); var familyAllowanceNumberType = Convert.ToDouble(familyAllowanceStrNumber); 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 DailyFeeStrNumber = dayliFee.ToDoubleMoney(); var DailyFeeNumberType = Convert.ToDouble(DailyFeeStrNumber); var HousingAllowonceStrNumber = HousingAllowance.ToDoubleMoney(); var HousingAllowonceNumberType = Convert.ToDouble(HousingAllowonceStrNumber); var ConsumableItemsStrNumber = ConsumableItems.ToDoubleMoney(); var ConsumableItemsNumberType = Convert.ToDouble(ConsumableItemsStrNumber); var familyAllowanceStrNumber = familyAllowance.ToDoubleMoney(); var familyAllowanceNumberType = Convert.ToDouble(familyAllowanceStrNumber); 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 HousingAllowonceStrNumber = HousingAllowance.ToDoubleMoney(); var HousingAllowonceNumberType = Convert.ToDouble(HousingAllowonceStrNumber); var ConsumableItemsStrNumber = ConsumableItems.ToDoubleMoney(); var ConsumableItemsNumberType = Convert.ToDouble(ConsumableItemsStrNumber); var familyAllowanceStrNumber = familyAllowance.ToDoubleMoney(); var familyAllowanceNumberType = Convert.ToDouble(familyAllowanceStrNumber); 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}"; } } if (command.ShiftWork == "1" && totalHoursShift1 > dailyFix) { Mandatory = totalHoursShift1.Subtract(dailyFix); } if (command.ShiftWork == "2" && totalHoursShift1And2 > dailyFix) { Mandatory = totalHoursShift1And2.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") { 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} " + "دقیقه"; } 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"; } var ress = new ComputingViewModel() { NumberOfWorkingDays = 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, }; return ress; } public ContractSeparationViewModel contractSeparation(string year, string month,DateTime contractStart, DateTime ContractEnd, long employeeId, long workshopId) { return _contractRepository.contractSeparation(year, month,contractStart, ContractEnd, employeeId, workshopId); } public EditContract GetDetails(long id) { var workshops = new List(); var employees = new List(); //var emplyee = _employeeApplication.GetEmployee(); //var workshop = _workshopApplication.GetWorkshop(); var workshopEmpList = _contractRepository.GetWorkshopEmployer(); var res = _contractRepository.GetDetails(id); var emp = workshopEmpList.Where(x => x.WorkshopId == res.WorkshopIds) .Select(x => x.EmployerId).ToList(); res.Employers = _employerRepository.GetEmployers(emp); var workshopSelect = _workshopApplication.GetDetails(res.WorkshopIds); var workshop = new WorkshopViewModel() { WorkshopName = workshopSelect.WorkshopName, InsuranceCode = workshopSelect.InsuranceCode, ArchiveCode = workshopSelect.ArchiveCode, Address = $"{workshopSelect.State} - {workshopSelect.City} - {workshopSelect.Address}", }; workshops.Add(workshop); res.Workshops = workshops; var employeeSelect = _employeeApplication.GetDetails(res.EmployeeId); var employee = new EmployeeViewModel() { EmployeeFullName = employeeSelect.EmployeeFullName, NationalCode = employeeSelect.NationalCode, IdNumber = employeeSelect.IdNumber, DateOfBirth = employeeSelect.DateOfBirth, LevelOfEducation = employeeSelect.LevelOfEducation, FatherName = employeeSelect.FatherName, Address = $"{employeeSelect.State} - {employeeSelect.City} - {employeeSelect.Address}", }; employees.Add(employee); var LeftWorkSerchModel = new LeftWorkSearchModel() { WorkshopId = res.WorkshopIds, EmployeeId = res.EmployeeId }; var LeftWorkList = _leftWorkRepository.search(LeftWorkSerchModel); if (LeftWorkList.Count > 0) { res.JobType = LeftWorkList.FirstOrDefault()?.JobName; } res.Employees = employees; return res; } public OperationResult Active(long id) { var opration = new OperationResult(); var contract = _contractRepository.Get(id); if (contract == null) return opration.Failed("رکورد مورد نظر یافت نشد"); contract.Active(); _contractRepository.SaveChanges(); return opration.Succcedded(); } public OperationResult DeActive(long id) { var opration = new OperationResult(); var contract = _contractRepository.Get(id); if (contract == null) return opration.Failed("رکورد مورد نظر یافت نشد"); contract.DeActive(); _contractRepository.SaveChanges(); return opration.Succcedded(); } public List Search(ContractSearchModel searchModel) { return _contractRepository.Search(searchModel); } public List SearchForextension(ContractSearchModel searchModel) { return _contractRepository.SearchForextension(searchModel); } public List SearchForCheckout(ContractSearchModel searchModel) { return _contractRepository.SearchForCheckout(searchModel); } public bool CheckNextContractExist(long employeeId, DateTime startContract, DateTime endContract, long WorkshopId) { return _contractRepository.CheckNextContractExist(employeeId, startContract, endContract, WorkshopId); } public bool CkeckBetween(long employeeId, DateTime EndOfContract, DateTime StartOfExtension, long WorkshopId) { return _contractRepository.CkeckBetween(employeeId, EndOfContract, StartOfExtension, WorkshopId); } public List PrintAll(List id) { return _contractRepository.PrintAll(id); } public TimeSpan Over22Check(DateTime date1, DateTime date2) { TimeSpan Over22 = new TimeSpan(); DateTime singleShiftOver24 = Convert.ToDateTime("00:00"); DateTime nightWork22 = Convert.ToDateTime("22:00"); DateTime nightWork6 = Convert.ToDateTime("06:00"); DateTime starTimeSingel1 = date1; DateTime endTimeSingel2 = date2; bool 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) { TimeSpan Over22Result = new TimeSpan(); DateTime Over24 = new DateTime(date2.Year, date2.Month, date2.Day, 0, 0, 0); DateTime nightWork22 = new DateTime(date1.Year, date1.Month, date1.Day, 22, 0, 0); DateTime nightWork22b = new DateTime(date2.Year, date2.Month, date2.Day, 22, 0, 0); DateTime nightWork6 = new DateTime(date2.Year, date2.Month, date2.Day, 6, 0, 0); DateTime nightWork6a = new DateTime(date1.Year, date1.Month, date1.Day, 6, 0, 0); DateTime starTime = date1; DateTime 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) { TimeSpan Over22Result = new TimeSpan(); DateTime Over24a = new DateTime(date1.Year, date1.Month, date1.Day, 0, 0, 0); DateTime Over24b = new DateTime(date2.Year, date2.Month, date2.Day, 0, 0, 0); DateTime nightWork22a = new DateTime(date1.Year, date1.Month, date1.Day, 22, 0, 0); DateTime nightWork22b = new DateTime(date2.Year, date2.Month, date2.Day, 22, 0, 0); DateTime nightWork6a = new DateTime(date1.Year, date1.Month, date1.Day, 6, 0, 0); DateTime nightWork6b = new DateTime(date2.Year, date2.Month, date2.Day, 6, 0, 0); DateTime starTime = date1; DateTime endTime = date2; if (starTime >= Over24a && starTime <= nightWork6a) { if (endTime > nightWork22a && endTime <= nightWork6b) { TimeSpan night1 = (nightWork6a - starTime); TimeSpan 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) { TimeSpan night1 = (nightWork6b - starTime); TimeSpan night2 = (endTime - nightWork22b); Over22Result = night1.Add(night2); } } return Over22Result; } public OperationResult Sign(long id) { var opration = new OperationResult(); var contract = _contractRepository.Get(id); if (contract == null) return opration.Failed("رکورد مورد نظر یافت نشد"); contract.Sign(); _contractRepository.SaveChanges(); opration.IsSuccedded = true; return opration.Succcedded(); } public OperationResult UnSign(long id) { var opration = new OperationResult(); var contract = _contractRepository.Get(id); if (contract == null) return opration.Failed("رکورد مورد نظر یافت نشد"); contract.UnSign(); _contractRepository.SaveChanges(); opration.IsSuccedded = true; return opration.Succcedded(); } #region Client public OperationResult Remove(long id) { var opration = new OperationResult(); bool result = _contractRepository.Remove(id); if (result) { opration.Message = "حذف با موفقیت انجام شد"; opration.IsSuccedded = true; } else return opration.Failed("حذف با خطا مواجه نشد"); return opration; } public List SearchForClient(ContractSearchModel searchModel) { return _contractRepository.SearchForClient(searchModel); } #endregion #region NewChangeByHeydari public OperationResult DeleteAllContarcts(List ids) { return _contractRepository.DeleteAllContarcts(ids); } public OperationResult DeleteContarcts(long id) { var opration = new OperationResult(); return _contractRepository.DeleteContarcts(id); } public List CheckHasCheckout(List ids) { return _contractRepository.CheckHasCheckout(ids); } public List CheckHasSignature(List ids) { return _contractRepository.CheckHasSignature(ids); } public List SearchForMainContract(ContractSearchModel searchModel) { var res = _contractRepository.SearchForMainContract(searchModel); res = res.Select(x => new ContractViweModel() { Id = x.Id, PersonnelCode = x.PersonnelCode, EmployerId = x.EmployerId, EmployeeId = x.EmployeeId, WorkshopIds = x.WorkshopIds, YearlySalaryId = x.YearlySalaryId, DayliWage = x.DayliWage, ContarctStart = x.ContarctStart, ContractEnd = x.ContractEnd, ContractStartGr = x.ContractStartGr, ContractEndGr = x.ContractEndGr, ContractNo = x.ContractNo, ArchiveCode = x.ArchiveCode, IsActiveString = x.IsActiveString, GetWorkDate = x.GetWorkDate, SetContractDate = x.SetContractDate, JobType = x.JobType, ContractType = x.ContractType, WorkshopAddress1 = x.WorkshopAddress1, WorkshopAddress2 = x.WorkshopAddress2, JobTypeId = x.JobTypeId, ConsumableItems = x.ConsumableItems, FamilyAllowance = x.FamilyAllowance, ContractPeriod = x.ContractPeriod, Signature = x.Signature, EmployerName = x.EmployerName, EmployeeName = x.EmployeeName, WorkshopName = x.WorkshopName, EmployeeFName = x.EmployeeFName, EmployeeLName = x.EmployeeLName, IsBlockCantracingParty = _contractingPartyApp.IsBlockByEmployerId(x.EmployerId), HasSignContract = _employeeComputeOptionsApplication.GetEmployeeOptions(x.WorkshopIds,x.EmployeeId).SignContract }).ToList(); return res; } #endregion }