From 789b0fbc24c424f3b79f6c44d133142899de148a Mon Sep 17 00:00:00 2001 From: SamSys Date: Sat, 17 May 2025 18:18:22 +0330 Subject: [PATCH 01/11] started --- .../Pages/Company/Checkouts/Index.cshtml.cs | 1093 +++-------------- 1 file changed, 201 insertions(+), 892 deletions(-) diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs index 458d8f13..91e37fe6 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs @@ -124,7 +124,12 @@ public class IndexModel : PageModel public string Message { get; set; } public bool falseCheck { get; set; } - + /// + /// در زمان لود صفحه اصلی فیش حقوقی + /// + /// + /// + #region OnGet public async Task OnGet(CheckoutSearchModel searchModel) { if (searchModel.WorkshopId != 0 || searchModel.EmployeeId != 0) WorkshopSearch = "true"; @@ -145,15 +150,36 @@ public class IndexModel : PageModel //chekoutlist = await _checkoutApplication.Search(searchModel); } - /// - /// گزارش نوبت کاری - /// - /// - /// - #region RotatngShiftReport + public async Task OnGetSearch(CheckoutSearchModel searchModel) + { + var accountId = _authHelper.CurrentAccountId(); - public async Task OnGetRotatngShiftReportDesktop(long id) + var searchResult = await _checkoutApplication.Search(searchModel); + var result = new MainViewModel(); + result.IsSysManager = accountId is 2 or 3; + result.MainList = searchResult; + if (searchModel.WorkshopId != 0 || searchModel.EmployeeId != 0) + result.WorkshopSearch = "true"; + else + result.WorkshopSearch = "false"; + + if (searchModel.EmployeeId > 0) + employeeFullName = searchResult.Select(x => x.EmployeeFullName).FirstOrDefault(); + else + employeeFullName = searchModel.EmployeeName; + return Partial("./MainSearch", result); + } + #endregion + + /// + /// گزارش نوبت کاری + /// + /// + /// + #region RotatngShiftReport + + public async Task OnGetRotatngShiftReportDesktop(long id) { var result = new ComputingViewModel(); var checkout = _checkoutApplication.GetDetails(id); @@ -237,27 +263,13 @@ public class IndexModel : PageModel #endregion - public async Task OnGetSearch(CheckoutSearchModel searchModel) - { - var accountId = _authHelper.CurrentAccountId(); - - var searchResult = await _checkoutApplication.Search(searchModel); - var result = new MainViewModel(); - result.IsSysManager = accountId is 2 or 3; - result.MainList = searchResult; - if (searchModel.WorkshopId != 0 || searchModel.EmployeeId != 0) - result.WorkshopSearch = "true"; - else - result.WorkshopSearch = "false"; - - if (searchModel.EmployeeId > 0) - employeeFullName = searchResult.Select(x => x.EmployeeFullName).FirstOrDefault(); - else - employeeFullName = searchModel.EmployeeName; - return Partial("./MainSearch", result); - } + /// + /// سلکت تو - کارگاه صفحه اصلی + /// index + /// + /// public IActionResult OnGetWorkshopMainList() { var workshop = _workshopApplication.GetWorkshopAccount(); @@ -274,6 +286,12 @@ public class IndexModel : PageModel }); } + /// + /// سلکت تو - پرسنل صفحه اصلی + /// index + /// + /// + /// public async Task OnGetPersonelMainList(string searchEmployee) { PersonnelList = await _employeeApplication.GetEmployeeToList(); @@ -288,7 +306,14 @@ public class IndexModel : PageModel }); } - public IActionResult OnGetEmployerMainList() + + /// + /// سلکت تو - کارفرما صفحه اصلی + /// index + /// + /// + /// + public IActionResult OnGetEmployerMainList() { var employers = _employerApplication.GetEmployers(); @@ -300,6 +325,14 @@ public class IndexModel : PageModel }); } + /// + ///مودال ایجاد + /// - + /// لود پرسنل بعد از انتخاب کارگاه + /// Create + /// + /// + /// public IActionResult OnPostLoadWorkshops(long id) { var result = _workshopApplication.GetWorkshopInfo(id); @@ -317,6 +350,11 @@ public class IndexModel : PageModel }); } + + /// + /// لود مودال ایجاد تصفیه + /// + /// public IActionResult OnGetCreate() { var command = new CreateCheckout @@ -481,16 +519,144 @@ public class IndexModel : PageModel return RedirectToPage("./Index"); } - public IActionResult OnGetProgress() - { - string progress = HttpContext.Response.Headers["X-Progress"]; - if (string.IsNullOrEmpty(progress)) return new JsonResult(300); + /// + /// لیست قرداد هایی که قابلیت صدور تصفیه حساب دارند + /// + /// + /// + /// + /// + /// + /// + /// + public async Task OnGetLoadContracts(long WorkshopId, string Year, string Month, + string ContractStart, string ContractEnd, long EmployeeId) + { + var today = DateTime.Now; + var GrogorianEnd = new DateTime(); + var GrogorianStart = new DateTime(); + //var GrogorianThisMonthStart2 = new DateTime(); + //var GrogorianPreviusMonthStart2 = new DateTime(); + //var ConvertContractStartGr = new DateTime(); + //var ConvertContractEndGr = new DateTime(); + //var ConvertStartFarsi = string.Empty; + //var nextmonthEndfarsi = string.Empty; + var faToday = string.Empty; + var faToday2 = string.Empty; + var syear = 0; + var smonth = 0; + var eyear = 0; + var emonth = 0; + var ConvertStart = new DateTime(); + var ConvertEnd = new DateTime(); + if (string.IsNullOrWhiteSpace(ContractStart) && string.IsNullOrWhiteSpace(ContractEnd)) + { + if (Month == "0" && Year == "0") + faToday = today.ToFarsi(); + else + faToday = $"{Year}/{Month}/01"; - return new JsonResult(int.Parse(progress)); - } + syear = Convert.ToInt32(faToday.Substring(0, 4)); + smonth = Convert.ToInt32(faToday.Substring(5, 2)); - public IActionResult OnPostCreate(List ContractsId, string ConvertYear, string ConvertMonth) + var PersianStart = new PersianDateTime(syear, smonth, 01); + GrogorianStart = PersianStart.ToGregorianDateTime(); + var PersianEndFinde = new PersianDateTime(syear, smonth, 01); + PersianEndFinde = PersianEndFinde.AddMonths(1); + PersianEndFinde = PersianEndFinde.AddDays(-1); + GrogorianEnd = PersianEndFinde.ToGregorianDateTime(); + + ContractStart = GrogorianStart.ToFarsi(); + ContractEnd = GrogorianEnd.ToFarsi(); + + + //nextMonthStartFarsi = GrogorianThisMonthStart.ToFarsi(); + //nextmonthEndfarsi = nextMonthStartFarsi.FindeEndOfMonth(); + } + + var a = new ContractSearchModel + { + WorkshopIds = WorkshopId, + + ContarctStart = ContractStart, + ContractEnd = ContractEnd, + EmployeeId = EmployeeId + }; + + + var ContractSearch = _contractApplication.SearchForCheckout(a); + var ContractListNew = new List(); + foreach (var item in ContractSearch) + { + var separation = _contractApplication.contractSeparation(Year, Month, + item.ContractStartGr, item.ContractEndGr, item.EmployeeId, item.WorkshopIds); + //if (EmployeeId == 41256) //نوشین عینی فرد + //{ + // separation.ContarctStart = item.ContarctStart; + // separation.ContractEnd = item.ContractEnd; + //} + + var search = new CheckoutSearchModel + { + ContractNo = item.ContractNo, + ContractId = item.Id, + ContractStart = separation.ContarctStart, + ContractEnd = separation.ContractEnd + }; + var checkedCHeckout = await _checkoutApplication.Search(search); + + if (checkedCHeckout.Count > 0) + { + item.RedColor = true; + item.Extension = false; + //x.ContractStartGr <= start && x.ContractEndGr >= endd || start <= x.ContractStartGr && endd > x.ContractStartGr || endd >= x.ContractEndGr && start < x.ContractEndGr + if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) + item.LaterThanEnd = true; + + item.MoreThanOneMonth = true; + } + else + { + if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) + { + item.LaterThanEnd = true; + item.Extension = true; + item.RedColor = false; + } + else + { + item.RedColor = false; + item.Extension = true; + } + } + + + if (!separation.checker) + { + item.RedColor = true; + item.Extension = false; + + } + + ContractListNew.Add(item); + } + + var command2 = new CreateCheckout + { + Contracts = ContractListNew + }; + return Partial("./alert", command2); + } + + /// + /// ایجاد تصفیه + /// + /// + /// + /// + /// + public IActionResult OnPostCreate(List ContractsId, string ConvertYear, string ConvertMonth) { var currntAcc = _authHelper.CurrentAccountId(); @@ -823,854 +989,6 @@ public class IndexModel : PageModel return new JsonResult(opration); } - public async Task OnGetLoadContracts(long WorkshopId, string Year, string Month, - string ContractStart, string ContractEnd, long EmployeeId) - { - var today = DateTime.Now; - var GrogorianEnd = new DateTime(); - var GrogorianStart = new DateTime(); - //var GrogorianThisMonthStart2 = new DateTime(); - //var GrogorianPreviusMonthStart2 = new DateTime(); - //var ConvertContractStartGr = new DateTime(); - //var ConvertContractEndGr = new DateTime(); - //var ConvertStartFarsi = string.Empty; - //var nextmonthEndfarsi = string.Empty; - var faToday = string.Empty; - var faToday2 = string.Empty; - var syear = 0; - var smonth = 0; - var eyear = 0; - var emonth = 0; - var ConvertStart = new DateTime(); - var ConvertEnd = new DateTime(); - if (string.IsNullOrWhiteSpace(ContractStart) && string.IsNullOrWhiteSpace(ContractEnd)) - { - if (Month == "0" && Year == "0") - faToday = today.ToFarsi(); - else - faToday = $"{Year}/{Month}/01"; - - syear = Convert.ToInt32(faToday.Substring(0, 4)); - smonth = Convert.ToInt32(faToday.Substring(5, 2)); - - var PersianStart = new PersianDateTime(syear, smonth, 01); - GrogorianStart = PersianStart.ToGregorianDateTime(); - var PersianEndFinde = new PersianDateTime(syear, smonth, 01); - PersianEndFinde = PersianEndFinde.AddMonths(1); - PersianEndFinde = PersianEndFinde.AddDays(-1); - GrogorianEnd = PersianEndFinde.ToGregorianDateTime(); - - ContractStart = GrogorianStart.ToFarsi(); - ContractEnd = GrogorianEnd.ToFarsi(); - - - //nextMonthStartFarsi = GrogorianThisMonthStart.ToFarsi(); - //nextmonthEndfarsi = nextMonthStartFarsi.FindeEndOfMonth(); - } - - var a = new ContractSearchModel - { - WorkshopIds = WorkshopId, - - ContarctStart = ContractStart, - ContractEnd = ContractEnd, - EmployeeId = EmployeeId - }; - - - var ContractSearch = _contractApplication.SearchForCheckout(a); - var ContractListNew = new List(); - foreach (var item in ContractSearch) - { - var separation = _contractApplication.contractSeparation(Year, Month, - item.ContractStartGr, item.ContractEndGr, item.EmployeeId, item.WorkshopIds); - //if (EmployeeId == 41256) //نوشین عینی فرد - //{ - // separation.ContarctStart = item.ContarctStart; - // separation.ContractEnd = item.ContractEnd; - //} - - var search = new CheckoutSearchModel - { - ContractNo = item.ContractNo, - ContractId = item.Id, - ContractStart = separation.ContarctStart, - ContractEnd = separation.ContractEnd - }; - var checkedCHeckout = await _checkoutApplication.Search(search); - - if (checkedCHeckout.Count > 0) - { - item.RedColor = true; - item.Extension = false; - //x.ContractStartGr <= start && x.ContractEndGr >= endd || start <= x.ContractStartGr && endd > x.ContractStartGr || endd >= x.ContractEndGr && start < x.ContractEndGr - if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) - item.LaterThanEnd = true; - - item.MoreThanOneMonth = true; - } - else - { - if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) - { - item.LaterThanEnd = true; - item.Extension = true; - item.RedColor = false; - } - else - { - item.RedColor = false; - item.Extension = true; - } - } - - - if (!separation.checker) - { - item.RedColor = true; - item.Extension = false; - - } - - ContractListNew.Add(item); - } - - var command2 = new CreateCheckout - { - Contracts = ContractListNew - }; - return Partial("./alert", command2); - } - - public IActionResult OnGetExtension() - { - var today = DateTime.Now; - var faToday = string.Empty; - - - faToday = today.ToFarsi(); - var syear = Convert.ToInt32(faToday.Substring(0, 4)); - var smonth = Convert.ToInt32(faToday.Substring(5, 2)); - var PersianStartMonth = new PersianDateTime(syear, smonth, 01); - var year = PersianStartMonth.Year.ToString(); - var Getmonth = PersianStartMonth.ToString(); - var month = Getmonth.Substring(5, 2); - - var ConvertStartPersian = PersianStartMonth.AddMonths(1); - var convertYear = ConvertStartPersian.Year.ToString(); - var GetConvertMonth = ConvertStartPersian.ToString(); - var convertMonth = GetConvertMonth.Substring(5, 2); - - - var command = new ExtensionViewModel - { - Workshops = _workshopApplication.GetWorkshopAccount(), - - Employees = _employeeApplication.GetEmployee(), - - Employers = _employerApplication.GetEmployers(), - - Yearlist = _yearlySalaryApplication.GetYears(), - - Year = year, - Month = month, - ConvertYear = convertYear, - ConvertMonth = convertMonth - }; - return Partial("./Extension", command); - } - - - public IActionResult OnPostExtension3(string ConvertMonth, string ConvertYear, string ContarctStart, - string ContractEnd, List ContractsId, - string ConvertContractStart, string ConvertContractEnd) - { - var today = DateTime.Now; - var faToday2 = string.Empty; - var CStart = string.Empty; - var CEnd = string.Empty; - var GrogorianThisMonthStart2 = new DateTime(); - - - var syear2 = 0; - var smonth2 = 0; - if (string.IsNullOrWhiteSpace(ConvertContractStart) && string.IsNullOrWhiteSpace(ConvertContractEnd)) - { - if (ConvertMonth == "0" && ConvertYear == "0") - { - today = today.AddMonths(1); - faToday2 = today.ToFarsi(); - } - else - { - faToday2 = $"{ConvertYear}/{ConvertMonth}/01"; - } - - syear2 = Convert.ToInt32(faToday2.Substring(0, 4)); - smonth2 = Convert.ToInt32(faToday2.Substring(5, 2)); - var PersianStartMonth2 = new PersianDateTime(syear2, smonth2, 01); - - GrogorianThisMonthStart2 = PersianStartMonth2.ToGregorianDateTime(); - - - CStart = GrogorianThisMonthStart2.ToFarsi(); - CEnd = CStart.FindeEndOfMonth(); - } - else - { - CStart = ConvertContractStart; - CEnd = ConvertContractEnd; - } - - - var step3 = _workingHoursItemsApplication.GetWorkingHoursItems(); - - - var op = new OperationResult(); - var contList = new List(); - var ContractIdList = ContractsId; - ContractIdList = ContractIdList.Where(x => x != 0).ToList(); - if (ContractIdList.Count > 0) - { - foreach (var item in ContractIdList) - { - var step1 = _contractApplication.GetDetails(item); - var step2 = _workingHoursApplication.GetByContractId(item); - - var step4 = step3.Where(x => x.WorkingHoursId == step2.Id).ToList(); - var RestTime = step4.Where(x => x.DayOfWork == "0").Select(x => x.RestTime).SingleOrDefault(); - var RestTimeYekshanbeh = - step4.Where(x => x.DayOfWork == "1").Select(x => x.RestTime).SingleOrDefault(); - var RestTimeDoshanbeh = - step4.Where(x => x.DayOfWork == "2").Select(x => x.RestTime).SingleOrDefault(); - var RestTimeSeshanbeh = - step4.Where(x => x.DayOfWork == "3").Select(x => x.RestTime).SingleOrDefault(); - var RestTimeCheharshanbeh = - step4.Where(x => x.DayOfWork == "4").Select(x => x.RestTime).SingleOrDefault(); - var RestTimePanjshanbeh = - step4.Where(x => x.DayOfWork == "5").Select(x => x.RestTime).SingleOrDefault(); - var RestTimeJomeh = step4.Where(x => x.DayOfWork == "6").Select(x => x.RestTime).SingleOrDefault(); - - var SingleShift1 = step4.Where(x => x.DayOfWork == "0").Select(x => x.Start1).SingleOrDefault(); - var SingleShift2 = step4.Where(x => x.DayOfWork == "0").Select(x => x.End1).SingleOrDefault(); - var SingleShift1Yekshanbeh = - step4.Where(x => x.DayOfWork == "1").Select(x => x.Start1).SingleOrDefault(); - var SingleShift2Yekshanbeh = step4.Where(x => x.DayOfWork == "1").Select(x => x.End1).SingleOrDefault(); - var SingleShift1Doshanbeh = - step4.Where(x => x.DayOfWork == "2").Select(x => x.Start1).SingleOrDefault(); - var SingleShift2Doshanbeh = step4.Where(x => x.DayOfWork == "2").Select(x => x.End1).SingleOrDefault(); - var SingleShift1Seshanbeh = - step4.Where(x => x.DayOfWork == "3").Select(x => x.Start1).SingleOrDefault(); - var SingleShift2Seshanbeh = step4.Where(x => x.DayOfWork == "3").Select(x => x.End1).SingleOrDefault(); - var SingleShift1Cheharshanbeh = - step4.Where(x => x.DayOfWork == "4").Select(x => x.Start1).SingleOrDefault(); - var SingleShift2Cheharshanbeh = - step4.Where(x => x.DayOfWork == "4").Select(x => x.End1).SingleOrDefault(); - var SingleShift1Panjshanbeh = - step4.Where(x => x.DayOfWork == "5").Select(x => x.Start1).SingleOrDefault(); - var SingleShift2Panjshanbeh = - step4.Where(x => x.DayOfWork == "5").Select(x => x.End1).SingleOrDefault(); - var SingleShift1Jomeh = step4.Where(x => x.DayOfWork == "6").Select(x => x.Start1).SingleOrDefault(); - var SingleShift2Jomeh = step4.Where(x => x.DayOfWork == "6").Select(x => x.End1).SingleOrDefault(); - - - var TowShifts1 = step4.Where(x => x.DayOfWork == "0").Select(x => x.Start2).SingleOrDefault(); - var TowShifts2 = step4.Where(x => x.DayOfWork == "0").Select(x => x.End2).SingleOrDefault(); - var TowShifts1Yekshanbeh = step4.Where(x => x.DayOfWork == "1").Select(x => x.Start2).SingleOrDefault(); - var TowShifts2Yekshanbeh = step4.Where(x => x.DayOfWork == "1").Select(x => x.End2).SingleOrDefault(); - var TowShifts1Doshanbeh = step4.Where(x => x.DayOfWork == "2").Select(x => x.Start2).SingleOrDefault(); - var TowShifts2Doshanbeh = step4.Where(x => x.DayOfWork == "2").Select(x => x.End2).SingleOrDefault(); - var TowShifts1Seshanbeh = step4.Where(x => x.DayOfWork == "3").Select(x => x.Start2).SingleOrDefault(); - var TowShifts2Seshanbeh = step4.Where(x => x.DayOfWork == "3").Select(x => x.End2).SingleOrDefault(); - var TowShifts1Cheharshanbeh = - step4.Where(x => x.DayOfWork == "4").Select(x => x.Start1).SingleOrDefault(); - var TowShifts2Cheharshanbeh = - step4.Where(x => x.DayOfWork == "4").Select(x => x.End2).SingleOrDefault(); - var TowShifts1Panjshanbeh = - step4.Where(x => x.DayOfWork == "5").Select(x => x.Start2).SingleOrDefault(); - var TowShifts2Panjshanbeh = step4.Where(x => x.DayOfWork == "5").Select(x => x.End2).SingleOrDefault(); - var TowShifts1Jomeh = step4.Where(x => x.DayOfWork == "6").Select(x => x.Start2).SingleOrDefault(); - var TowShifts2Jomeh = step4.Where(x => x.DayOfWork == "6").Select(x => x.End2).SingleOrDefault(); - - var Start1224 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexStart).SingleOrDefault(); - var End1224 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexEnd).SingleOrDefault(); - var Start1236 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexStart).SingleOrDefault(); - var End1236 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexEnd).SingleOrDefault(); - var Start2424 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexStart).SingleOrDefault(); - var End2424 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexEnd).SingleOrDefault(); - var Start2448 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexStart).SingleOrDefault(); - var End2448 = step4.Where(x => x.DayOfWork == "7").Select(x => x.ComplexEnd).SingleOrDefault(); - - var computing = new CreateContract - { - ShiftWork = step2.ShiftWork, - RestTime = RestTime, - RestTimeYekshanbeh = RestTimeYekshanbeh, - RestTimeDoshanbeh = RestTimeDoshanbeh, - RestTimeSeshanbeh = RestTimeSeshanbeh, - RestTimeCheharshanbeh = RestTimeCheharshanbeh, - RestTimePanjshanbeh = RestTimePanjshanbeh, - RestTimeJomeh = RestTimeJomeh, - - SingleShift1 = SingleShift1, - SingleShift2 = SingleShift2, - SingleShift1Yekshanbeh = SingleShift1Yekshanbeh, - SingleShift2Yekshanbeh = SingleShift2Yekshanbeh, - SingleShift1Doshanbeh = SingleShift1Doshanbeh, - SingleShift2Doshanbeh = SingleShift2Doshanbeh, - SingleShift1Seshanbeh = SingleShift1Seshanbeh, - SingleShift2Seshanbeh = SingleShift2Seshanbeh, - SingleShift1Cheharshanbeh = SingleShift1Cheharshanbeh, - SingleShift2Cheharshanbeh = SingleShift2Cheharshanbeh, - SingleShift1Panjshanbeh = SingleShift1Panjshanbeh, - SingleShift2Panjshanbeh = SingleShift2Panjshanbeh, - SingleShift1Jomeh = SingleShift1Jomeh, - SingleShift2Jomeh = SingleShift2Jomeh, - - - TowShifts1 = TowShifts1, - TowShifts2 = TowShifts2, - TowShifts1Yekshanbeh = TowShifts1Yekshanbeh, - TowShifts2Yekshanbeh = TowShifts2Yekshanbeh, - TowShifts1Doshanbeh = TowShifts1Doshanbeh, - TowShifts2Doshanbeh = TowShifts2Doshanbeh, - TowShifts1Seshanbeh = TowShifts1Seshanbeh, - TowShifts2Seshanbeh = TowShifts2Seshanbeh, - TowShifts1Cheharshanbeh = TowShifts1Cheharshanbeh, - TowShifts2Cheharshanbeh = TowShifts2Cheharshanbeh, - TowShifts1Panjshanbeh = TowShifts1Panjshanbeh, - TowShifts2Panjshanbeh = TowShifts2Panjshanbeh, - TowShifts1Jomeh = TowShifts1Jomeh, - TowShifts2Jomeh = TowShifts2Jomeh, - - Start1224 = Start1224, - End1224 = End1224, - Start1236 = Start1236, - End1236 = End1236, - Start2424 = Start2424, - End2424 = End2424, - Start2448 = Start2448, - End2448 = End2448, - EmployeeId = step1.EmployeeId, - ContarctStart = CStart, - ContractEnd = CEnd, - GetWorkDateHide = step1.GetWorkDate - }; - var step5 = _contractApplication.MandatoryHours(computing); - var workingDays = string.Empty; - if (step5.NumberOfWorkingDays == "0") - workingDays = step5.ComplexNumberOfWorkingDays; - else - workingDays = step5.NumberOfWorkingDays; - - - var createNew = new CreateContract - { - EmployeeId = step1.EmployeeId, - EmployerId = step1.EmployerId, - WorkshopIds = step1.WorkshopIds, - GetWorkDate = step1.GetWorkDate, - SetContractDate = CStart, - ArchiveCode = step1.ArchiveCode, - ContarctStart = CStart, - ContractEnd = CEnd, - YearlySalaryId = step1.YearlySalaryId, - ConsumableItems = step5.ConsumableItems, - HousingAllowance = step5.HousingAllowance, - DayliWage = step5.SalaryCompute, - FamilyAllowance = step5.FamilyAllowance, - WeeklyWorkingTime = step5.SumTime44, - WorkingHoursWeekly = step5.SumTime44, - JobType = step1.JobType, - JobTypeId = step1.JobTypeId, - ContractType = step1.ContractType, - WorkshopAddress1 = step1.WorkshopAddress1, - WorkshopAddress2 = step1.WorkshopAddress2, - AgreementSalary = step1.AgreementSalary, - ContractPeriod = step1.ContractPeriod, - - ShiftWork = step2.ShiftWork, - RestTime = RestTime, - RestTimeYekshanbeh = RestTimeYekshanbeh, - RestTimeDoshanbeh = RestTimeDoshanbeh, - RestTimeSeshanbeh = RestTimeSeshanbeh, - RestTimeCheharshanbeh = RestTimeCheharshanbeh, - RestTimePanjshanbeh = RestTimePanjshanbeh, - RestTimeJomeh = RestTimeJomeh, - - SingleShift1 = SingleShift1, - SingleShift2 = SingleShift2, - SingleShift1Yekshanbeh = SingleShift1Yekshanbeh, - SingleShift2Yekshanbeh = SingleShift2Yekshanbeh, - SingleShift1Doshanbeh = SingleShift1Doshanbeh, - SingleShift2Doshanbeh = SingleShift2Doshanbeh, - SingleShift1Seshanbeh = SingleShift1Seshanbeh, - SingleShift2Seshanbeh = SingleShift2Seshanbeh, - SingleShift1Cheharshanbeh = SingleShift1Cheharshanbeh, - SingleShift2Cheharshanbeh = SingleShift2Cheharshanbeh, - SingleShift1Panjshanbeh = SingleShift1Panjshanbeh, - SingleShift2Panjshanbeh = SingleShift2Panjshanbeh, - SingleShift1Jomeh = SingleShift1Jomeh, - SingleShift2Jomeh = SingleShift2Jomeh, - - - TowShifts1 = TowShifts1, - TowShifts2 = TowShifts2, - TowShifts1Yekshanbeh = TowShifts1Yekshanbeh, - TowShifts2Yekshanbeh = TowShifts2Yekshanbeh, - TowShifts1Doshanbeh = TowShifts1Doshanbeh, - TowShifts2Doshanbeh = TowShifts2Doshanbeh, - TowShifts1Seshanbeh = TowShifts1Seshanbeh, - TowShifts2Seshanbeh = TowShifts2Seshanbeh, - TowShifts1Cheharshanbeh = TowShifts1Cheharshanbeh, - TowShifts2Cheharshanbeh = TowShifts2Cheharshanbeh, - TowShifts1Panjshanbeh = TowShifts1Panjshanbeh, - TowShifts2Panjshanbeh = TowShifts2Panjshanbeh, - TowShifts1Jomeh = TowShifts1Jomeh, - TowShifts2Jomeh = TowShifts2Jomeh, - - Start1224 = Start1224, - End1224 = End1224, - Start1236 = Start1236, - End1236 = End1236, - Start2424 = Start2424, - End2424 = End2424, - Start2448 = Start2448, - End2448 = End2448, - - NumberOfWorkingDays = workingDays, - NumberOfFriday = step5.NumberOfFriday, - TotalHoursesH = step5.TotalHoursesH == "0" ? "" : step5.TotalHoursesH, - TotalHoursesM = step5.TotalHoursesM == "0" ? "" : step5.TotalHoursesM, - OverTimeWorkH = step5.OverTimeWorkH == "0" ? "" : step5.OverTimeWorkH, - OverTimeWorkM = step5.OverTimeWorkM == "0" ? "" : step5.OverTimeWorkM, - OverNightWorkH = step5.OverNightWorkH == "0" ? "" : step5.OverNightWorkH, - OverNightWorkM = step5.OverNightWorkM == "0" ? "" : step5.OverNightWorkM - }; - var resss = _contractApplication.Create(createNew); - } - - - var res = op.Succcedded(); - return new JsonResult(res); - } - - op = op.Failed("هیچ قراردادی برای تمدید انتخاب نشده است"); - - return new JsonResult(op); - } - - public IActionResult OnPostCheck(ExtensionViewModel command) - { - var a = command.ConvertYear; - var b = command.ConvertMonth; - - - var op = new OperationResult(); - if (command.ContractsId == null) - { - op = op.Failed("هیچ قراردادی برای تمدید انتخاب نشده است"); - - return new JsonResult(op); - } - - op = op.Succcedded(); - return new JsonResult(op); - } - - public IActionResult OnGetComputing() - { - return Partial("./Create"); - } - - public IActionResult OnPostComputing(CreateContract command) - { - var result = _contractApplication.MandatoryHours(command); - - - return new JsonResult(result); - } - - - public IActionResult OnGetEdit(long id) - { - var res = _contractApplication.GetDetails(id); - var workshoplist = new List(); - var wrk = _workshopApplication.GetDetails(res.WorkshopIds); - var workshop = new WorkshopViewModel - { - Id = wrk.Id, - WorkshopName = wrk.WorkshopName, - ArchiveCode = wrk.ArchiveCode - }; - workshoplist.Add(workshop); - - var employeeLists = new List(); - var employees = _employeeApplication.GetDetails(res.EmployeeId); - var emp = new EmployeeViewModel - { - Id = employees.Id, - EmployeeFullName = employees.FName + " " + employees.LName - }; - employeeLists.Add(emp); - - var workingHours = _workingHoursApplication.GetByContractId(id); - res.ShiftWork = workingHours.ShiftWork; - - switch (workingHours.ShiftWork) - { - case "1": - var checkShanbeh = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "0"); - if (checkShanbeh) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "0"); - res.shanbeh = true; - res.SingleShift1 = item.Start1; - res.SingleShift2 = item.End1; - res.RestTime = item.RestTime; - } - - var check1Shanbeh = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "1"); - if (check1Shanbeh) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "1"); - res.yekshanbeh = true; - res.SingleShift1Yekshanbeh = item.Start1; - res.SingleShift2Yekshanbeh = item.End1; - res.RestTimeYekshanbeh = item.RestTime; - } - - var check2Shanbeh = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "2"); - if (check2Shanbeh) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "2"); - res.doshanbeh = true; - res.SingleShift1Doshanbeh = item.Start1; - res.SingleShift2Doshanbeh = item.End1; - res.RestTimeDoshanbeh = item.RestTime; - } - - var check3Shanbeh = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "3"); - if (check3Shanbeh) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "3"); - res.seshanbeh = true; - res.SingleShift1Seshanbeh = item.Start1; - res.SingleShift2Seshanbeh = item.End1; - res.RestTimeSeshanbeh = item.RestTime; - } - - var check4Shanbeh = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "4"); - if (check4Shanbeh) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "4"); - res.cheharshanbeh = true; - res.SingleShift1Cheharshanbeh = item.Start1; - res.SingleShift2Cheharshanbeh = item.End1; - res.RestTimeCheharshanbeh = item.RestTime; - } - - var check5Shanbeh = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "5"); - if (check5Shanbeh) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "5"); - res.pangshanbeh = true; - res.SingleShift1Panjshanbeh = item.Start1; - res.SingleShift2Panjshanbeh = item.End1; - res.RestTimePanjshanbeh = item.RestTime; - } - - var jomeh = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "6"); - if (jomeh) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "6"); - res.jomeh = true; - res.SingleShift1Jomeh = item.Start1; - res.SingleShift2Jomeh = item.End1; - res.RestTimeJomeh = item.RestTime; - } - - break; - - case "2": - var checkShanbeh2 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "0"); - if (checkShanbeh2) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "0"); - res.shanbeh = true; - res.SingleShift1 = item.Start1; - res.SingleShift2 = item.End1; - res.TowShifts1 = item.Start2; - res.TowShifts2 = item.End2; - } - - var check1Shanbeh2 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "1"); - if (check1Shanbeh2) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "1"); - res.yekshanbeh = true; - res.SingleShift1Yekshanbeh = item.Start1; - res.SingleShift2Yekshanbeh = item.End1; - res.TowShifts1Yekshanbeh = item.Start2; - res.TowShifts2Yekshanbeh = item.End2; - } - - var check2Shanbeh2 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "2"); - if (check2Shanbeh2) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "2"); - res.doshanbeh = true; - res.SingleShift1Doshanbeh = item.Start1; - res.SingleShift2Doshanbeh = item.End1; - res.TowShifts1Doshanbeh = item.Start2; - res.TowShifts2Doshanbeh = item.End2; - } - - var check3Shanbeh2 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "3"); - if (check3Shanbeh2) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "3"); - res.seshanbeh = true; - res.SingleShift1Seshanbeh = item.Start1; - res.SingleShift2Seshanbeh = item.End1; - res.TowShifts1Seshanbeh = item.Start2; - res.TowShifts2Seshanbeh = item.End2; - } - - var check4Shanbeh2 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "4"); - if (check4Shanbeh2) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "4"); - res.cheharshanbeh = true; - res.SingleShift1Cheharshanbeh = item.Start1; - res.SingleShift2Cheharshanbeh = item.End1; - res.TowShifts1Cheharshanbeh = item.Start2; - res.TowShifts2Cheharshanbeh = item.End2; - } - - var check5Shanbeh2 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "5"); - if (check5Shanbeh2) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "5"); - res.pangshanbeh = true; - res.SingleShift1Panjshanbeh = item.Start1; - res.SingleShift2Panjshanbeh = item.End1; - res.TowShifts1Panjshanbeh = item.Start2; - res.TowShifts2Panjshanbeh = item.End2; - } - - var jomeh2 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "6"); - if (jomeh2) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "6"); - res.jomeh = true; - res.SingleShift1Jomeh = item.Start1; - res.SingleShift2Jomeh = item.End1; - res.TowShifts1Jomeh = item.Start2; - res.TowShifts2Jomeh = item.End2; - } - - break; - - case "3": - var checkShanbeh3 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "0"); - if (checkShanbeh3) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "0"); - res.shanbeh = true; - res.SingleShift1 = item.Start1; - res.SingleShift2 = item.End1; - res.TowShifts1 = item.Start2; - res.TowShifts2 = item.End2; - res.ThreeShift1 = item.Start3; - res.ThreeShift2 = item.End3; - } - - var check1Shanbeh3 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "1"); - if (check1Shanbeh3) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "1"); - res.yekshanbeh = true; - res.SingleShift1Yekshanbeh = item.Start1; - res.SingleShift2Yekshanbeh = item.End1; - res.TowShifts1Yekshanbeh = item.Start2; - res.TowShifts2Yekshanbeh = item.End2; - res.ThreeShift1Yekshanbeh = item.Start3; - res.ThreeShift2Yekshanbeh = item.End3; - } - - var check2Shanbeh3 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "2"); - if (check2Shanbeh3) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "2"); - res.doshanbeh = true; - res.SingleShift1Doshanbeh = item.Start1; - res.SingleShift2Doshanbeh = item.End1; - res.TowShifts1Doshanbeh = item.Start2; - res.TowShifts2Doshanbeh = item.End2; - res.ThreeShift1Doshanbeh = item.Start3; - res.ThreeShift2Doshanbeh = item.End3; - } - - var check3Shanbeh3 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "3"); - if (check3Shanbeh3) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "3"); - res.seshanbeh = true; - res.SingleShift1Seshanbeh = item.Start1; - res.SingleShift2Seshanbeh = item.End1; - res.TowShifts1Seshanbeh = item.Start2; - res.TowShifts2Seshanbeh = item.End2; - res.ThreeShift1Seshanbeh = item.Start3; - res.ThreeShift2Seshanbeh = item.End3; - } - - var check4Shanbeh3 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "4"); - if (check4Shanbeh3) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "4"); - res.cheharshanbeh = true; - res.SingleShift1Cheharshanbeh = item.Start1; - res.SingleShift2Cheharshanbeh = item.End1; - res.TowShifts1Cheharshanbeh = item.Start2; - res.TowShifts2Cheharshanbeh = item.End2; - res.ThreeShift1Cheharshanbeh = item.Start3; - res.ThreeShift2Cheharshanbeh = item.End3; - } - - var check5Shanbeh3 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "5"); - if (check5Shanbeh3) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "5"); - res.pangshanbeh = true; - res.SingleShift1Panjshanbeh = item.Start1; - res.SingleShift2Panjshanbeh = item.End1; - res.TowShifts1Panjshanbeh = item.Start2; - res.TowShifts2Panjshanbeh = item.End2; - res.ThreeShift1Panjshanbeh = item.Start3; - res.ThreeShift2Panjshanbeh = item.End3; - } - - var jomeh3 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "6"); - if (jomeh3) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "6"); - res.jomeh = true; - res.SingleShift1Jomeh = item.Start1; - res.SingleShift2Jomeh = item.End1; - res.TowShifts1Jomeh = item.Start2; - res.TowShifts2Jomeh = item.End2; - res.ThreeShift1Jomeh = item.Start3; - res.ThreeShift2Jomeh = item.End3; - } - - break; - - case "4": - break; - - case "5": //12-24 - var check1224 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "7"); - if (check1224) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "7"); - - res.Start1224 = item.ComplexStart; - res.End1224 = item.ComplexEnd; - } - - break; - - case "6": //24-24 - var check2424 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "7"); - if (check2424) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "7"); - - res.Start2424 = item.ComplexStart; - res.End2424 = item.ComplexEnd; - } - - break; - - case "7": //12-36 - var check1236 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "7"); - if (check1236) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "7"); - - res.Start1236 = item.ComplexStart; - res.End1236 = item.ComplexEnd; - } - - break; - - case "8": //24-48 - var check2448 = workingHours.WorkingHoursItemsList - .Any(x => x.DayOfWork == "7"); - if (check2448) - { - var item = workingHours.WorkingHoursItemsList.FirstOrDefault(x => x.DayOfWork == "7"); - - res.Start2448 = item.ComplexStart; - res.End2448 = item.ComplexEnd; - } - - break; - } - //res.WorkshopEmployerList = _contractRepository.GetWorkshopEmployer(); - //res.EmployeeSelectList = new SelectList(_employeeApplication.GetEmployee(), "Id", "EmployeeFullName"); - //res.Employees = _employeeApplication.GetEmployee(); - //res.Workshops = _workshopApplication.GetWorkshopAccount(); - //res.YearlySalaries = _yearlySalaryApplication.GetYearlySalary(); - //res.Employers = _employerApplication.GetEmployers(); - - res.ConsumableItems = ""; - res.AgreementSalary = ""; - res.FamilyAllowance = ""; - res.WorkshopNameSelectList = - new SelectList(workshoplist, "Id", "WorkshopFullName"); - res.WorkshopCodeSelectList = new SelectList(workshoplist, "Id", "ArchiveCode"); - res.EmployeeSelectList = new SelectList(employeeLists, "Id", "EmployeeFullName"); - return Partial("./Edit", res); - } - - - public JsonResult OnPostEdit(EditContract command) - { - if (ModelState.IsValid) - { - } - - - var result = _contractApplication.Edit(command); - return new JsonResult(result); - } - public IActionResult OnGetDetails(long id) { @@ -1683,15 +1001,6 @@ public class IndexModel : PageModel } - public IActionResult OnGetPrintOne(long id) - { - var res = _checkoutApplication.PrintOne(id); - - //var res = _contractApplication.PrintAll(ids); - if (res.HasRollCall) return Partial("PrintDetailsRollCall", res); - - return Partial("Details", res); - } public IActionResult OnGetPrintLeave(long id) { From 3e3eccf0f09dc967b05464b1d059fe8610d10017 Mon Sep 17 00:00:00 2001 From: SamSys Date: Sat, 24 May 2025 16:33:02 +0330 Subject: [PATCH 02/11] add new metod to rcheckoutRepository --- Company.Domain/CheckoutAgg/ICheckoutRepository.cs | 4 ++++ .../Checkout/ICheckoutApplication.cs | 13 ++++++++++++- CompanyManagment.Application/CheckoutApplication.cs | 7 +++++++ .../Repository/CheckoutRepository.cs | 6 ++++++ .../Admin/Pages/Company/Checkouts/Index.cshtml.cs | 10 +++++++++- 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs index 1d67c406..8be04067 100644 --- a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs +++ b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs @@ -22,8 +22,12 @@ public interface ICheckoutRepository : IRepository string year, string month); EditCheckout GetDetails(long id); + Task GetContractResultToCreateCheckout(long workshopId, string year, string month, + string contractStart, string contractEnd, long employeeId); void CreateCkeckout(Checkout command); + + Task> Search(CheckoutSearchModel searchModel); List SimpleSearch(CheckoutSearchModel searchModel); diff --git a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs index 5d8c3277..61f62226 100644 --- a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs +++ b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs @@ -13,7 +13,18 @@ public interface ICheckoutApplication OperationResult Edit(EditCheckout command); EditCheckout GetDetails(long id); - + /// + /// دریافت قرداد های کارگاه و پرسنل وآنالیز آنها جهت صدور فیش حقوقی + /// + /// + /// + /// + /// + /// + /// + /// + Task GetContractResultToCreateCheckout(long workshopId, string year, string month, + string contractStart, string contractEnd, long employeeId); Task> Search(CheckoutSearchModel searchModel); List SimpleSearch(CheckoutSearchModel searchModel); List PrintAll(List id); diff --git a/CompanyManagment.Application/CheckoutApplication.cs b/CompanyManagment.Application/CheckoutApplication.cs index 7ae53f91..863d26de 100644 --- a/CompanyManagment.Application/CheckoutApplication.cs +++ b/CompanyManagment.Application/CheckoutApplication.cs @@ -207,6 +207,13 @@ public class CheckoutApplication : ICheckoutApplication return _checkoutRepository.GetDetails(id); } + public async Task GetContractResultToCreateCheckout(long workshopId, string year, string month, + string contractStart, string contractEnd, long employeeId) + { + return await _checkoutRepository.GetContractResultToCreateCheckout(workshopId, year, month, contractStart, + contractEnd, employeeId); + + } public async Task> Search(CheckoutSearchModel searchModel) { var result = new List(); diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index fd3414b0..f71c2196 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -116,6 +116,12 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos .FirstOrDefault(x => x.Id == id); } + public Task GetContractResultToCreateCheckout(long workshopId, string year, string month, string contractStart, + string contractEnd, long employeeId) + { + throw new NotImplementedException(); + } + public void CreateCkeckout(Checkout command) { diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs index 91e37fe6..ec688986 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs @@ -1000,9 +1000,17 @@ public class IndexModel : PageModel return Partial("Details", res); } + public IActionResult OnGetPrintOne(long id) + { + var res = _checkoutApplication.PrintOne(id); + //var res = _contractApplication.PrintAll(ids); + if (res.HasRollCall) return Partial("PrintDetailsRollCall", res); - public IActionResult OnGetPrintLeave(long id) + return Partial("Details", res); + } + + public IActionResult OnGetPrintLeave(long id) { var res = _checkoutApplication.LeavePrint(id); return Partial("PrintLeave", res); From 9311d68a91cbf0813e79f741db41f7292de720b7 Mon Sep 17 00:00:00 2001 From: SamSys Date: Sun, 25 May 2025 15:33:42 +0330 Subject: [PATCH 03/11] create change --- Company.Domain/CheckoutAgg/ICheckoutRepository.cs | 2 +- CompanyManagment.EFCore/Repository/CheckoutRepository.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs index 618cb792..eb541857 100644 --- a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs +++ b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs @@ -25,7 +25,7 @@ public interface ICheckoutRepository : IRepository Task CreateCkeckout(Checkout command); Task GetContractResultToCreateCheckout(long workshopId, string year, string month, string contractStart, string contractEnd, long employeeId); - void CreateCkeckout(Checkout command); + //void CreateCkeckout(Checkout command); diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index 4b7b45f6..6a0394bb 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -123,14 +123,14 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos .FirstOrDefault(x => x.Id == id); } - public async Task CreateCkeckout(Checkout command) + public Task GetContractResultToCreateCheckout(long workshopId, string year, string month, string contractStart, string contractEnd, long employeeId) { throw new NotImplementedException(); } - public void CreateCkeckout(Checkout command) + public async Task CreateCkeckout(Checkout command) { var creationDates = DateTime.Now; From 03e4f7e8c16fc26b4e1e5b13319faed9126dc2b0 Mon Sep 17 00:00:00 2001 From: SamSys Date: Sun, 25 May 2025 18:29:18 +0330 Subject: [PATCH 04/11] metod Extend --- Company.Domain/CheckoutAgg/ICheckoutRepository.cs | 2 +- .../Checkout/ICheckoutApplication.cs | 2 +- CompanyManagment.Application/CheckoutApplication.cs | 4 ++-- CompanyManagment.EFCore/Repository/CheckoutRepository.cs | 4 +++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs index eb541857..229e1651 100644 --- a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs +++ b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs @@ -24,7 +24,7 @@ public interface ICheckoutRepository : IRepository Task CreateCkeckout(Checkout command); Task GetContractResultToCreateCheckout(long workshopId, string year, string month, - string contractStart, string contractEnd, long employeeId); + string contractStart, string contractEnd); //void CreateCkeckout(Checkout command); diff --git a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs index 61f62226..f35e408a 100644 --- a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs +++ b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs @@ -24,7 +24,7 @@ public interface ICheckoutApplication /// /// Task GetContractResultToCreateCheckout(long workshopId, string year, string month, - string contractStart, string contractEnd, long employeeId); + string contractStart, string contractEnd); Task> Search(CheckoutSearchModel searchModel); List SimpleSearch(CheckoutSearchModel searchModel); List PrintAll(List id); diff --git a/CompanyManagment.Application/CheckoutApplication.cs b/CompanyManagment.Application/CheckoutApplication.cs index 722a6839..208e808d 100644 --- a/CompanyManagment.Application/CheckoutApplication.cs +++ b/CompanyManagment.Application/CheckoutApplication.cs @@ -240,10 +240,10 @@ public class CheckoutApplication : ICheckoutApplication } public async Task GetContractResultToCreateCheckout(long workshopId, string year, string month, - string contractStart, string contractEnd, long employeeId) + string contractStart, string contractEnd) { return await _checkoutRepository.GetContractResultToCreateCheckout(workshopId, year, month, contractStart, - contractEnd, employeeId); + contractEnd); } public async Task> Search(CheckoutSearchModel searchModel) diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index 6a0394bb..c9bb58e3 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -125,8 +125,10 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos public Task GetContractResultToCreateCheckout(long workshopId, string year, string month, string contractStart, - string contractEnd, long employeeId) + string contractEnd) { + + var contracts = _context.Contracts.Where(x => x.WorkshopIds == workshopId); throw new NotImplementedException(); } From 88a9a62dd355490e43a5635da5639f7f2ed44b55 Mon Sep 17 00:00:00 2001 From: SamSys Date: Sun, 25 May 2025 21:20:26 +0330 Subject: [PATCH 05/11] Add new View model : CreateCheckoutListViewModel --- .../CheckoutAgg/ICheckoutRepository.cs | 2 +- .../Checkout/CreateCheckoutListViewModel.cs | 39 +++++++++++++++++++ .../Checkout/ICheckoutApplication.cs | 2 +- .../CheckoutApplication.cs | 4 +- .../Repository/CheckoutRepository.cs | 36 ++++++++++++++++- 5 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs diff --git a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs index 229e1651..24f1d014 100644 --- a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs +++ b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs @@ -23,7 +23,7 @@ public interface ICheckoutRepository : IRepository EditCheckout GetDetails(long id); Task CreateCkeckout(Checkout command); - Task GetContractResultToCreateCheckout(long workshopId, string year, string month, + Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart, string contractEnd); //void CreateCkeckout(Checkout command); diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs new file mode 100644 index 00000000..863fea68 --- /dev/null +++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs @@ -0,0 +1,39 @@ +using System.Collections.Generic; + +namespace CompanyManagment.App.Contracts.Checkout; + +public class CreateCheckoutListViewModel +{ + public long Id { get; set; } + + public long PersonnelCode { get; set; } + + public string ContractNo { get; set; } + + public string EmployerName { get; set; } + + public string WorkshopName { get; set; } + public string EmployeeName { get; set; } + + public string ContarctStart { get; set; } + + public string ContractEnd { get; set; } + + //public string NextMonthStart { get; set; } + + //public bool RedColor { get; set; } + + public bool LaterThanEnd { get; set; } + + public bool Extension { get; set; } + + //public bool MoreThanOneMonth { get; set; } + + //public bool Waiting { get; set; } + + + public string Description { 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 f35e408a..f88c56fa 100644 --- a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs +++ b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs @@ -23,7 +23,7 @@ public interface ICheckoutApplication /// /// /// - Task GetContractResultToCreateCheckout(long workshopId, string year, string month, + Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart, string contractEnd); Task> Search(CheckoutSearchModel searchModel); List SimpleSearch(CheckoutSearchModel searchModel); diff --git a/CompanyManagment.Application/CheckoutApplication.cs b/CompanyManagment.Application/CheckoutApplication.cs index 208e808d..7ed38d67 100644 --- a/CompanyManagment.Application/CheckoutApplication.cs +++ b/CompanyManagment.Application/CheckoutApplication.cs @@ -239,10 +239,10 @@ public class CheckoutApplication : ICheckoutApplication return _checkoutRepository.GetDetails(id); } - public async Task GetContractResultToCreateCheckout(long workshopId, string year, string month, + public async Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart, string contractEnd) { - return await _checkoutRepository.GetContractResultToCreateCheckout(workshopId, year, month, contractStart, + return await _checkoutRepository.GetContractResultToCreateCheckout(workshopId, employeeId, year, month, contractStart, contractEnd); } diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index b0115534..b6e29bcb 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -124,11 +124,43 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos } - public Task GetContractResultToCreateCheckout(long workshopId, string year, string month, string contractStart, + public Task GetContractResultToCreateCheckout(long workshopId,long employeeId, string year, string month, string contractStart, string contractEnd) { + DateTime startSreach; + DateTime endSearch; + + if (!string.IsNullOrWhiteSpace(contractStart) && !string.IsNullOrWhiteSpace(contractEnd)) + { + startSreach = contractStart.ToGeorgianDateTime(); + endSearch = contractEnd.ToGeorgianDateTime(); + } + else + { + + if (month == "0" && year == "0") + { + DateTime now = DateTime.Now; + startSreach = now; + endSearch = (now.ToFarsi().FindeEndOfMonth()).ToGeorgianDateTime(); + } + else + { + string startStr = $"{year}/{month}/01"; + startSreach = startStr.ToGeorgianDateTime(); + endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime(); + } + + } + var contracts = _context.Contracts + .Where(x => x.WorkshopIds == workshopId && x.IsActiveString == "true" && startSreach < x.ContractEnd && endSearch > x.ContarctStart); + if (employeeId > 0) + contracts = contracts.Where(x => x.EmployeeId == employeeId); + + + + - var contracts = _context.Contracts.Where(x => x.WorkshopIds == workshopId); throw new NotImplementedException(); } From 22f13aea0bc0c7ca5bfc55896ed09c33925fd62b Mon Sep 17 00:00:00 2001 From: SamSys Date: Tue, 27 May 2025 16:18:39 +0330 Subject: [PATCH 06/11] metode change --- .../CheckoutAgg/ICheckoutRepository.cs | 14 +++++++++++++- .../Checkout/CreateCheckoutListViewModel.cs | 2 +- .../Checkout/ICheckoutApplication.cs | 8 +++++--- .../CheckoutApplication.cs | 2 +- .../Repository/CheckoutRepository.cs | 19 +++++++++++++++++-- 5 files changed, 37 insertions(+), 8 deletions(-) diff --git a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs index 24f1d014..6828fe80 100644 --- a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs +++ b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs @@ -23,7 +23,19 @@ public interface ICheckoutRepository : IRepository EditCheckout GetDetails(long id); Task CreateCkeckout(Checkout command); - Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, + /// + /// لود لیست اولیه جهت ایجاد فیش حقوقی + /// + /// + /// + /// + /// + /// + /// + /// + /// + Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, + string month, string contractStart, string contractEnd); //void CreateCkeckout(Checkout command); diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs index 863fea68..2cad9045 100644 --- a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs +++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs @@ -15,7 +15,7 @@ public class CreateCheckoutListViewModel public string WorkshopName { get; set; } public string EmployeeName { get; set; } - public string ContarctStart { get; set; } + public string ContractStart { get; set; } public string ContractEnd { get; set; } diff --git a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs index f88c56fa..40321f83 100644 --- a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs +++ b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs @@ -14,16 +14,18 @@ public interface ICheckoutApplication EditCheckout GetDetails(long id); /// - /// دریافت قرداد های کارگاه و پرسنل وآنالیز آنها جهت صدور فیش حقوقی + /// لود لیست اولیه جهت ایجاد فیش حقوقی /// /// + /// /// /// /// /// - /// /// - Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, + /// + Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, + string month, string contractStart, string contractEnd); Task> Search(CheckoutSearchModel searchModel); List SimpleSearch(CheckoutSearchModel searchModel); diff --git a/CompanyManagment.Application/CheckoutApplication.cs b/CompanyManagment.Application/CheckoutApplication.cs index 7ed38d67..b7778cf3 100644 --- a/CompanyManagment.Application/CheckoutApplication.cs +++ b/CompanyManagment.Application/CheckoutApplication.cs @@ -239,7 +239,7 @@ public class CheckoutApplication : ICheckoutApplication return _checkoutRepository.GetDetails(id); } - public async Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, + 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, diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index b6e29bcb..9af0fd60 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -123,8 +123,18 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos .FirstOrDefault(x => x.Id == id); } - - public Task GetContractResultToCreateCheckout(long workshopId,long employeeId, string year, string month, string contractStart, + /// + /// لود لیست اولیه جهت ایجاد فیش حقوقی + /// + /// + /// + /// + /// + /// + /// + /// + /// + public Task GetContractResultToCreateCheckout(long workshopId,long employeeId, string year, string month, string contractStart, string contractEnd) { DateTime startSreach; @@ -139,6 +149,11 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos { if (month == "0" && year == "0") + { + DateTime now = DateTime.Now; + startSreach = now; + endSearch = (now.ToFarsi().FindeEndOfMonth()).ToGeorgianDateTime(); + } else if (month == "0" && year != "0") { DateTime now = DateTime.Now; startSreach = now; From e486f20a5a412d7bd445aabe09a9d9701efc8846 Mon Sep 17 00:00:00 2001 From: SamSys Date: Tue, 27 May 2025 19:21:49 +0330 Subject: [PATCH 07/11] chekcoutRepository GetContractResultToCreateCheckout changes NOT FINISHED --- .../IRollCallEmployeeRepository.cs | 4 +- .../Checkout/CreateCheckoutListViewModel.cs | 2 + .../RollCallEmployeeStatusApplication.cs | 57 +------- .../Repository/CheckoutRepository.cs | 128 ++++++++++++++++-- .../Repository/RollCallEmployeeRepository.cs | 65 ++++++++- 5 files changed, 189 insertions(+), 67 deletions(-) diff --git a/Company.Domain/RollCallEmployeeAgg/IRollCallEmployeeRepository.cs b/Company.Domain/RollCallEmployeeAgg/IRollCallEmployeeRepository.cs index d04be761..3c164b50 100644 --- a/Company.Domain/RollCallEmployeeAgg/IRollCallEmployeeRepository.cs +++ b/Company.Domain/RollCallEmployeeAgg/IRollCallEmployeeRepository.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using _0_Framework.Domain; using CompanyManagment.App.Contracts.RollCallEmployee; @@ -6,6 +7,7 @@ namespace Company.Domain.RollCallEmployeeAgg; public interface IRollCallEmployeeRepository : IRepository { + bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd); List GetByWorkshopId(long workshopId); EditRollCallEmployee GetDetails(long id); RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId); diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs index 2cad9045..76184b0c 100644 --- a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs +++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs @@ -8,6 +8,8 @@ public class CreateCheckoutListViewModel public long PersonnelCode { get; set; } + public long EmployeeId { get; set; } + public string ContractNo { get; set; } public string EmployerName { get; set; } diff --git a/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs b/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs index ede4a1e5..a27afe0b 100644 --- a/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs +++ b/CompanyManagment.Application/RollCallEmployeeStatusApplication.cs @@ -89,60 +89,9 @@ namespace CompanyManagment.Application } public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd) - { - //موقت - // دادمهرگستر 11 * - //585 کاشی گالری سرامیس (بابک ابراهیمی ) - //آموزشگاه ملل 604 * - //کاریابی ملل 605 * - //368 پیتزا امیر آماده سازی - //367 پیتزا امیر رستوران - //286 مرکز توان بخشی رسالت * - //610 بیمارستان پارس - رازقی طعام - DateTime start1404 = new DateTime(2025, 03, 21); - bool skipRollCallByWorkshopId = false; - if (contractStart < start1404) - { - skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367 or 286; - } - else - { - skipRollCallByWorkshopId = workshopId is 368 or 367 or 585 or 610; - } - - - - - //#if DEBUG - // skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367; - //#endif - if (skipRollCallByWorkshopId) - return false; - - - // 42550 مصطفی مقدس نژاد فومنی - bool skipRollCallByEmployeeId = employeeId is 42550; - if (skipRollCallByEmployeeId) - return false; - - //9211 محسا تازه - if (employeeId == 9211 && contractStart >= start1404) - return false; - - var service = _rollCallServiceRepository.GetAllServiceByWorkshopId(workshopId); - - if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date)) - return false; - var rollCallEmployee = - _rollCallEmployeeRepository.GetByEmployeeIdAndWorkshopId(employeeId, workshopId); - - if (rollCallEmployee == null) - return false; - - return _employeeRollCallStatusRepository.Exists(x => x.RollCallEmployeeId == rollCallEmployee.Id && - x.StartDate.Date <= contractStart.Date && - x.EndDate.Date >= contractEnd.Date); - } + { + return _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd); + } public List GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr) { diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index 9af0fd60..f63b297f 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -3,16 +3,19 @@ using System.Collections.Generic; using System.Data; using System.Globalization; using System.Linq; +using System.Reflection.Metadata.Ecma335; using System.Threading.Tasks; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.CheckoutAgg; using Company.Domain.LeftWorkAgg; using Company.Domain.RollCallAgg; +using Company.Domain.RollCallEmployeeAgg; using CompanyManagment.App.Contracts.Checkout; using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.Employee; using CompanyManagment.App.Contracts.HolidayItem; +using CompanyManagment.App.Contracts.InsuranceList; using CompanyManagment.App.Contracts.Leave; using CompanyManagment.App.Contracts.LeftWork; using CompanyManagment.App.Contracts.Loan; @@ -21,6 +24,7 @@ using CompanyManagment.App.Contracts.SalaryAid; using CompanyManagment.App.Contracts.WorkingHours; using CompanyManagment.App.Contracts.WorkingHoursTemp; using CompanyManagment.App.Contracts.Workshop; +using CompanyManagment.EFCore.Migrations; using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; @@ -41,8 +45,9 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos private readonly ILeftWorkRepository _leftWorkRepository; private readonly IRollCallRepository _rollCallRepository; private readonly IRollCallMandatoryRepository _rollCallMandatoryRepository; + private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository; - public CheckoutRepository(IAuthHelper authHelper, CompanyContext context, IConfiguration configuration, ILeftWorkRepository leftWorkRepository, IWorkingHoursTempApplication workingHoursTempApplication, IRollCallRepository rollCallRepository, IRollCallMandatoryRepository rollCallMandatoryRepository) : base(context) + public CheckoutRepository(IAuthHelper authHelper, CompanyContext context, IConfiguration configuration, ILeftWorkRepository leftWorkRepository, IWorkingHoursTempApplication workingHoursTempApplication, IRollCallRepository rollCallRepository, IRollCallMandatoryRepository rollCallMandatoryRepository, IRollCallEmployeeRepository rollCallEmployeeRepository) : base(context) { _authHelper = authHelper; @@ -52,6 +57,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos _workingHoursTempApplication = workingHoursTempApplication; _rollCallRepository = rollCallRepository; _rollCallMandatoryRepository = rollCallMandatoryRepository; + _rollCallEmployeeRepository = rollCallEmployeeRepository; } /// @@ -134,7 +140,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos /// /// /// - public Task GetContractResultToCreateCheckout(long workshopId,long employeeId, string year, string month, string contractStart, + public Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart, string contractEnd) { DateTime startSreach; @@ -147,17 +153,28 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos } else { - + if (month == "0" && year == "0") { DateTime now = DateTime.Now; startSreach = now; endSearch = (now.ToFarsi().FindeEndOfMonth()).ToGeorgianDateTime(); - } else if (month == "0" && year != "0") + } + else if (month == "0" && year != "0") { DateTime now = DateTime.Now; - startSreach = now; - endSearch = (now.ToFarsi().FindeEndOfMonth()).ToGeorgianDateTime(); + + string startStr = $"{year}/{now.ToFarsi().Substring(5, 2)}/01"; + startSreach = startStr.ToGeorgianDateTime(); + endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime(); + } + else if (month != "0" && year == "0") + { + DateTime now = DateTime.Now; + + string startStr = $"{now.ToFarsi().Substring(0, 4)}/{month}/01"; + startSreach = startStr.ToGeorgianDateTime(); + endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime(); } else { @@ -165,10 +182,99 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos startSreach = startStr.ToGeorgianDateTime(); endSearch = (startStr.FindeEndOfMonth()).ToGeorgianDateTime(); } - + } + var contracts = _context.Contracts - .Where(x => x.WorkshopIds == workshopId && x.IsActiveString == "true" && startSreach < x.ContractEnd && endSearch > x.ContarctStart); + .Where(x => x.WorkshopIds == workshopId && x.IsActiveString == "true" && startSreach < x.ContractEnd && + endSearch > x.ContarctStart) + .Join(_context.Workshops, + contract => contract.WorkshopIds, + workshop => workshop.id, + (contract, workshop) => new { contract, workshop }) + .Join(_context.Employees, + contractWorkshop => contractWorkshop.contract.EmployeeId, + employee => employee.id, + (contractWorkshop, employee) => new { contractWorkshop, employee }) + .Join(_context.LeftWorkList.Where(l => l.WorkshopId == workshopId), + contractWorkshopEmployee => contractWorkshopEmployee.contractWorkshop.contract.EmployeeId, + leftwork => leftwork.EmployeeId, + (contractWorkshopEmployee, leftwork) => new { contractWorkshopEmployee, leftwork }) + .Join(_context.PersonnelCodeSet.Where(p => p.WorkshopId == workshopId), + contractWorkshopEmployeeleftWork => contractWorkshopEmployeeleftWork.contractWorkshopEmployee + .contractWorkshop.contract.EmployerId, + personnelCode => personnelCode.EmployeeId, + (contractWorkshopEmployeeleftWork, personnelCode) => + new { contractWorkshopEmployeeleftWork, personnelCode }) + + .GroupJoin(_context.CheckoutSet, + contractWorkshopEmployeeleftWorkPersonnelCode => contractWorkshopEmployeeleftWorkPersonnelCode + .contractWorkshopEmployeeleftWork.contractWorkshopEmployee.contractWorkshop.contract.id, + checkout => checkout.ContractId, + (contractWorkshopEmployeeleftWorkPersonnelCode, checkout) => + new { contractWorkshopEmployeeleftWorkPersonnelCode, checkout }).ToList(); + + var finalResult = contracts.Select(result => + { + var hasChekout = result.checkout.FirstOrDefault(x => x.ContractStart < endSearch && x.ContractEnd > startSreach && x.IsActiveString == "true"); + + if (hasChekout != null) + { + var checkout + return new CreateCheckoutListViewModel + { + Id = result.checkout., + + EmployeeId = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.employee.id, + ContractNo = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.contract.ContractNo, + //EmployerName = result.contract.EmployerName, + WorkshopName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.workshop.WorkshopFullName, + EmployeeName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.employee.FullName, + + PersonnelCode = result.contractWorkshopEmployeeleftWorkPersonnelCode.personnelCode.PersonnelCode, + //PersonnelCodeInt = Convert.ToInt32(result.contract.PersonnelCode), + LaterThanEnd = false, + Extension = false, + Description = "", + }; + } + var employeeIjoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.employee.id; + + bool hasRollCall = + _rollCallEmployeeRepository.HasRollCallRecord(employeeIjoin, workshopId, startSreach, endSearch); + + var leftWork = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .leftwork; + + return new CreateCheckoutListViewModel + { + Id = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.contract.id, + + EmployeeId = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.employee.id, + ContractNo = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.contract.ContractNo, + //EmployerName = result.contract.EmployerName, + WorkshopName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.workshop.WorkshopFullName, + EmployeeName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.employee.FullName, + + PersonnelCode = result.contractWorkshopEmployeeleftWorkPersonnelCode.personnelCode.PersonnelCode, + //PersonnelCodeInt = Convert.ToInt32(result.contract.PersonnelCode), + LaterThanEnd = false, + Extension = false, + Description = "", + }; + + }).ToList(); + if (employeeId > 0) contracts = contracts.Where(x => x.EmployeeId == employeeId); @@ -1209,13 +1315,13 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos firstRCEndDate = firstRollCall.ShiftEndWithoutRest ?? firstRollCall.EndDate; if (secondRollCall != null) secondRCEndDate = secondRollCall.ShiftEndWithoutRest ?? secondRollCall.EndDate; - - + + return new CheckoutDailyRollCallViewModel() { StartDate1 = firstRollCall?.StartDate?.ToString("HH:mm") ?? "", - EndDate1 =firstRCEndDate?.ToString("HH:mm") ?? "", + EndDate1 = firstRCEndDate?.ToString("HH:mm") ?? "", StartDate2 = secondRollCall?.StartDate?.ToString("HH:mm") ?? "", EndDate2 = secondRCEndDate?.ToString("HH:mm") ?? "", diff --git a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs index 37e836f4..a084bdc3 100644 --- a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs @@ -6,6 +6,8 @@ using System.Linq; using _0_Framework.Application; using _0_Framework.InfraStructure; using Company.Domain.RollCallEmployeeAgg; +using Company.Domain.RollCallEmployeeStatusAgg; +using Company.Domain.RollCallServiceAgg; using CompanyManagment.App.Contracts.LeftWorkTemp; using CompanyManagment.App.Contracts.RollCallEmployee; using CompanyManagment.App.Contracts.RollCallEmployeeStatus; @@ -20,16 +22,77 @@ public class RollCallEmployeeRepository : RepositoryBase private readonly CompanyContext _context; private readonly IPasswordHasher _passwordHasher; private readonly IWebHostEnvironment _webHostEnvironment; + + private IRollCallServiceRepository _rollCallServiceRepository; + + private IRollCallEmployeeStatusRepository _employeeRollCallStatusRepository; // private IRollCallEmployeeRepository _rollCallEmployeeRepositoryImplementation; public RollCallEmployeeRepository(CompanyContext context, IPasswordHasher passwordHasher, - IWebHostEnvironment webHostEnvironment) : base(context) + IWebHostEnvironment webHostEnvironment, IRollCallServiceRepository rollCallServiceRepository, IRollCallEmployeeStatusRepository employeeRollCallStatusRepository) : base(context) { _context = context; _passwordHasher = passwordHasher; _webHostEnvironment = webHostEnvironment; + _rollCallServiceRepository = rollCallServiceRepository; + _employeeRollCallStatusRepository = employeeRollCallStatusRepository; } + + public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd) + { + //موقت + // دادمهرگستر 11 * + //585 کاشی گالری سرامیس (بابک ابراهیمی ) + //آموزشگاه ملل 604 * + //کاریابی ملل 605 * + //368 پیتزا امیر آماده سازی + //367 پیتزا امیر رستوران + //286 مرکز توان بخشی رسالت * + //610 بیمارستان پارس - رازقی طعام + DateTime start1404 = new DateTime(2025, 03, 21); + bool skipRollCallByWorkshopId = false; + if (contractStart < start1404) + { + skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367 or 286; + } + else + { + skipRollCallByWorkshopId = workshopId is 368 or 367 or 585 or 610; + } + + + + + //#if DEBUG + // skipRollCallByWorkshopId = workshopId is 11 or 585 or 604 or 605 or 368 or 367; + //#endif + if (skipRollCallByWorkshopId) + return false; + + + // 42550 مصطفی مقدس نژاد فومنی + bool skipRollCallByEmployeeId = employeeId is 42550; + if (skipRollCallByEmployeeId) + return false; + + //9211 محسا تازه + if (employeeId == 9211 && contractStart >= start1404) + return false; + + var service = _rollCallServiceRepository.GetAllServiceByWorkshopId(workshopId); + + if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date)) + return false; + var rollCallEmployee = GetByEmployeeIdAndWorkshopId(employeeId, workshopId); + + if (rollCallEmployee == null) + return false; + + return _employeeRollCallStatusRepository.Exists(x => x.RollCallEmployeeId == rollCallEmployee.Id && + x.StartDate.Date <= contractStart.Date && + x.EndDate.Date >= contractEnd.Date); + } public List GetByWorkshopId(long workshopId) { var query = _context.RollCallEmployees.Select(x => new RollCallEmployeeViewModel() From 66ada45d29389e63b5fb522ecfdc07a7ea792f44 Mon Sep 17 00:00:00 2001 From: SamSys Date: Tue, 27 May 2025 20:44:25 +0330 Subject: [PATCH 08/11] change metod --- .../Checkout/CreateCheckoutListViewModel.cs | 2 + .../Repository/CheckoutRepository.cs | 116 +++++++++++++++--- 2 files changed, 98 insertions(+), 20 deletions(-) diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs index 76184b0c..83bd76f3 100644 --- a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs +++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs @@ -21,6 +21,8 @@ public class CreateCheckoutListViewModel public string ContractEnd { get; set; } + public string LeftWorkDate { get; set; } + //public string NextMonthStart { get; set; } //public bool RedColor { get; set; } diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index f63b297f..196bb8ea 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -196,7 +196,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos contractWorkshop => contractWorkshop.contract.EmployeeId, employee => employee.id, (contractWorkshop, employee) => new { contractWorkshop, employee }) - .Join(_context.LeftWorkList.Where(l => l.WorkshopId == workshopId), + .Join(_context.LeftWorkList.Where(l => l.WorkshopId == workshopId && l.StartWorkDate < endSearch && l.LeftWorkDate > startSreach), contractWorkshopEmployee => contractWorkshopEmployee.contractWorkshop.contract.EmployeeId, leftwork => leftwork.EmployeeId, (contractWorkshopEmployee, leftwork) => new { contractWorkshopEmployee, leftwork }) @@ -216,41 +216,117 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos var finalResult = contracts.Select(result => { - var hasChekout = result.checkout.FirstOrDefault(x => x.ContractStart < endSearch && x.ContractEnd > startSreach && x.IsActiveString == "true"); + var now = DateTime.Now; + DateTime currentStart = ($"{DateTime.Now.ToFarsi().Substring(0, 8)}01").ToGeorgianDateTime(); + DateTime currentEnd = ($"{DateTime.Now.ToFarsi().FindeEndOfMonth()}").ToGeorgianDateTime(); + var chekoutCreated = result.checkout.FirstOrDefault(x => x.ContractStart < endSearch && x.ContractEnd > startSreach && x.IsActiveString == "true"); - if (hasChekout != null) + if (chekoutCreated != null) { - var checkout + return new CreateCheckoutListViewModel { - Id = result.checkout., + Id = chekoutCreated.ContractId, - EmployeeId = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork - .contractWorkshopEmployee.employee.id, - ContractNo = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork - .contractWorkshopEmployee.contractWorkshop.contract.ContractNo, - //EmployerName = result.contract.EmployerName, - WorkshopName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork - .contractWorkshopEmployee.contractWorkshop.workshop.WorkshopFullName, - EmployeeName = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork - .contractWorkshopEmployee.employee.FullName, - - PersonnelCode = result.contractWorkshopEmployeeleftWorkPersonnelCode.personnelCode.PersonnelCode, - //PersonnelCodeInt = Convert.ToInt32(result.contract.PersonnelCode), + EmployeeId = chekoutCreated.EmployeeId, + ContractNo = chekoutCreated.ContractNo, + WorkshopName = chekoutCreated.WorkshopName, + EmployeeName = chekoutCreated.EmployeeFullName, + ContractStart = chekoutCreated.ContractStart.ToFarsi(), + ContractEnd = chekoutCreated.ContractEnd.ToFarsi(), + PersonnelCode = Convert.ToInt64(chekoutCreated.PersonnelCode), LaterThanEnd = false, Extension = false, - Description = "", + Description = "دارای فیش حقوقی", }; } - var employeeIjoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + var employeeJoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork .contractWorkshopEmployee.employee.id; bool hasRollCall = - _rollCallEmployeeRepository.HasRollCallRecord(employeeIjoin, workshopId, startSreach, endSearch); + _rollCallEmployeeRepository.HasRollCallRecord(employeeJoin, workshopId, startSreach, endSearch); var leftWork = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork .leftwork; + bool extension = false; + bool laterThanEnd = false; + string description = ""; + string leftWorkDate; + string contractStart = ""; + string contractEnd = ""; + + //اگر حضورعیاب داشت + // اگر ترک کار کرده بود + // اگر ترک کارش در بازه انتخاب شده بود + if (hasRollCall && leftWork.HasLeft && leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) + { + //اگر بازه انتخاب شده در تاریخ جاری بود + if (startSreach == currentStart && endSearch == currentEnd) + { + //اگر ترک کارش قبل یا مساوی تاریخ جاری بود + if (leftWork.LeftWorkDate <= now) + { + //مجاز به ایجاد تصفیه + extension = true; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + + } + else + { + // مجاز نیست + extension = false; + description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید"; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + + } + } + else if(endSearch < currentStart) + { + extension = true; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + } + else if (startSreach > currentEnd) + { + // مجاز نیست + extension = false; + description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید"; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + } + + } + else if(hasRollCall && leftWork.HasLeft && leftWork.LeftWorkDate <= startSreach) + { + // مجاز نیست + extension = false; + description = "به دلیل ترک کار پرسنل مجاز به ایجاد فیش نمی باشید"; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + + } + else if(hasRollCall && !leftWork.HasLeft && startSreach == currentStart) + { + // مجاز نیست + extension = false; + description = "به دلیل داشتن حضورغیاب تا پایان ماه مجاز به ایجاد فیش نمی باشید"; + + } + return new CreateCheckoutListViewModel { Id = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork From 175158a3d7ede9e5b8f5ec273e90d15a8af8f1ab Mon Sep 17 00:00:00 2001 From: SamSys Date: Thu, 29 May 2025 01:31:28 +0330 Subject: [PATCH 09/11] Completed 1 --- .../Checkout/CreateCheckoutListViewModel.cs | 2 + .../Repository/CheckoutRepository.cs | 212 +++++++++++----- .../Repository/RollCallEmployeeRepository.cs | 19 +- .../Pages/Company/Checkouts/Create.cshtml | 11 +- .../{alert.cshtml => CreateLoadList.cshtml} | 52 ++-- .../Pages/Company/Checkouts/Index.cshtml.cs | 237 +++++++++--------- 6 files changed, 320 insertions(+), 213 deletions(-) rename ServiceHost/Areas/Admin/Pages/Company/Checkouts/{alert.cshtml => CreateLoadList.cshtml} (87%) diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs index 83bd76f3..c0daaa97 100644 --- a/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs +++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckoutListViewModel.cs @@ -31,6 +31,8 @@ public class CreateCheckoutListViewModel public bool Extension { get; set; } + public bool HasCheckout { get; set; } + //public bool MoreThanOneMonth { get; set; } //public bool Waiting { get; set; } diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index 196bb8ea..afbf3e48 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Data; +using System.Diagnostics; using System.Globalization; using System.Linq; using System.Reflection.Metadata.Ecma335; @@ -140,7 +141,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos /// /// /// - public Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart, + public async Task GetContractResultToCreateCheckout(long workshopId, long employeeId, string year, string month, string contractStart, string contractEnd) { DateTime startSreach; @@ -184,36 +185,45 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos } } + var timer = new Stopwatch(); + timer.Start(); - var contracts = _context.Contracts + var contracts = _context.Contracts.AsSplitQuery() .Where(x => x.WorkshopIds == workshopId && x.IsActiveString == "true" && startSreach < x.ContractEnd && endSearch > x.ContarctStart) - .Join(_context.Workshops, + .Join(_context.Workshops.AsSplitQuery(), contract => contract.WorkshopIds, workshop => workshop.id, (contract, workshop) => new { contract, workshop }) - .Join(_context.Employees, + .Join(_context.Employees.AsSplitQuery(), contractWorkshop => contractWorkshop.contract.EmployeeId, employee => employee.id, (contractWorkshop, employee) => new { contractWorkshop, employee }) - .Join(_context.LeftWorkList.Where(l => l.WorkshopId == workshopId && l.StartWorkDate < endSearch && l.LeftWorkDate > startSreach), + .Join(_context.LeftWorkList.AsSplitQuery().Where(l => l.WorkshopId == workshopId && l.StartWorkDate < endSearch && l.LeftWorkDate > startSreach), contractWorkshopEmployee => contractWorkshopEmployee.contractWorkshop.contract.EmployeeId, leftwork => leftwork.EmployeeId, (contractWorkshopEmployee, leftwork) => new { contractWorkshopEmployee, leftwork }) - .Join(_context.PersonnelCodeSet.Where(p => p.WorkshopId == workshopId), + .Join(_context.PersonnelCodeSet.AsSplitQuery().Where(p => p.WorkshopId == workshopId), contractWorkshopEmployeeleftWork => contractWorkshopEmployeeleftWork.contractWorkshopEmployee - .contractWorkshop.contract.EmployerId, + .contractWorkshop.contract.EmployeeId, personnelCode => personnelCode.EmployeeId, (contractWorkshopEmployeeleftWork, personnelCode) => new { contractWorkshopEmployeeleftWork, personnelCode }) - .GroupJoin(_context.CheckoutSet, + .GroupJoin(_context.CheckoutSet.AsSplitQuery(), contractWorkshopEmployeeleftWorkPersonnelCode => contractWorkshopEmployeeleftWorkPersonnelCode .contractWorkshopEmployeeleftWork.contractWorkshopEmployee.contractWorkshop.contract.id, checkout => checkout.ContractId, (contractWorkshopEmployeeleftWorkPersonnelCode, checkout) => - new { contractWorkshopEmployeeleftWorkPersonnelCode, checkout }).ToList(); - + new { contractWorkshopEmployeeleftWorkPersonnelCode, checkout }) + .ToList(); + Console.WriteLine("query : " + timer.Elapsed); + timer.Reset(); + timer.Start(); + if (employeeId > 0) + contracts = contracts.Where(x => + x.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.contract.EmployeeId == employeeId).ToList(); var finalResult = contracts.Select(result => { var now = DateTime.Now; @@ -238,6 +248,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos LaterThanEnd = false, Extension = false, Description = "دارای فیش حقوقی", + HasCheckout = true }; } var employeeJoin = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork @@ -249,34 +260,64 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos var leftWork = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork .leftwork; - bool extension = false; + bool extension = true; bool laterThanEnd = false; string description = ""; - string leftWorkDate; + string leftWorkDate=""; string contractStart = ""; string contractEnd = ""; - //اگر حضورعیاب داشت - // اگر ترک کار کرده بود - // اگر ترک کارش در بازه انتخاب شده بود - if (hasRollCall && leftWork.HasLeft && leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) + var contractStartGr = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.contract.ContarctStart; + var contractEndGr = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork + .contractWorkshopEmployee.contractWorkshop.contract.ContractEnd; + #region HasRollCall + + if (hasRollCall) { - //اگر بازه انتخاب شده در تاریخ جاری بود - if (startSreach == currentStart && endSearch == currentEnd) + + // اگر ترک کار کرده بود + // اگر ترک کارش در بازه انتخاب شده بود + if (leftWork.HasLeft && leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) { - //اگر ترک کارش قبل یا مساوی تاریخ جاری بود - if (leftWork.LeftWorkDate <= now) + //اگر بازه انتخاب شده در تاریخ جاری بود + if (startSreach == currentStart && endSearch == currentEnd) + { + //اگر ترک کارش قبل یا مساوی تاریخ جاری بود + if (leftWork.LeftWorkDate <= now) + { + //مجاز به ایجاد تصفیه + extension = true; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + + } + else + { + // مجاز نیست + extension = false; + description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید"; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + + } + } + else if (endSearch < currentStart) { - //مجاز به ایجاد تصفیه extension = true; leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); contractStart = leftWork.StartWorkDate > startSreach ? leftWork.StartWorkDate.ToFarsi() : startSreach.ToFarsi(); contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); - } - else + else if (startSreach > currentEnd) { // مجاز نیست extension = false; @@ -286,47 +327,98 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos ? leftWork.StartWorkDate.ToFarsi() : startSreach.ToFarsi(); contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); - } + } - else if(endSearch < currentStart) - { - extension = true; - leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); - contractStart = leftWork.StartWorkDate > startSreach - ? leftWork.StartWorkDate.ToFarsi() - : startSreach.ToFarsi(); - contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); - } - else if (startSreach > currentEnd) + else if (leftWork.HasLeft && leftWork.LeftWorkDate <= startSreach) { // مجاز نیست extension = false; - description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید"; + description = "به دلیل ترک کار پیش از تاریخ انتخاب شده مجاز به ایجاد فیش نمی باشید"; leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + + } + else if (!leftWork.HasLeft && startSreach == currentStart) + { + // مجاز نیست + extension = false; + description = "به دلیل داشتن حضورغیاب تا پایان ماه مجاز به ایجاد فیش نمی باشید"; + + } + else if (!leftWork.HasLeft && startSreach < currentStart) + { + + + + if (contractStartGr <= startSreach && contractStartGr > endSearch) + { + laterThanEnd = true; + extension = true; + contractStart = startSreach.ToFarsi(); + contractEnd = endSearch.ToFarsi(); + } + else + { + laterThanEnd = false; + extension = true; + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = (leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) ? leftWork.LeftWorkDate.AddDays(-1).ToFarsi() : endSearch.ToFarsi(); + + } + + } + + } + + #endregion + + #region Static + + if (leftWork.HasLeft && !hasRollCall) + { + if (leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) + { + extension = true; contractStart = leftWork.StartWorkDate > startSreach ? leftWork.StartWorkDate.ToFarsi() : startSreach.ToFarsi(); contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + } + else if(leftWork.LeftWorkDate <= startSreach) + { + // مجاز نیست + extension = false; + description = "به دلیل ترک کار پیش از تاریخ انتخاب شده مجاز به ایجاد فیش نمی باشید"; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + } + else + { + extension = true; + + if (contractStartGr <= startSreach && contractStartGr > endSearch) + { + laterThanEnd = true; + + contractStart = startSreach.ToFarsi(); + contractEnd = endSearch.ToFarsi(); + } + else + { + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = endSearch.ToFarsi(); + } } - - } - else if(hasRollCall && leftWork.HasLeft && leftWork.LeftWorkDate <= startSreach) - { - // مجاز نیست - extension = false; - description = "به دلیل ترک کار پرسنل مجاز به ایجاد فیش نمی باشید"; - leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); - - } - else if(hasRollCall && !leftWork.HasLeft && startSreach == currentStart) - { - // مجاز نیست - extension = false; - description = "به دلیل داشتن حضورغیاب تا پایان ماه مجاز به ایجاد فیش نمی باشید"; - } + #endregion + + + return new CreateCheckoutListViewModel { Id = result.contractWorkshopEmployeeleftWorkPersonnelCode.contractWorkshopEmployeeleftWork @@ -344,21 +436,25 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos PersonnelCode = result.contractWorkshopEmployeeleftWorkPersonnelCode.personnelCode.PersonnelCode, //PersonnelCodeInt = Convert.ToInt32(result.contract.PersonnelCode), - LaterThanEnd = false, - Extension = false, - Description = "", + LaterThanEnd = laterThanEnd, + Extension = extension, + Description = description, + ContractStart = contractStart, + ContractEnd = contractEnd, + LeftWorkDate = leftWorkDate }; }).ToList(); - if (employeeId > 0) - contracts = contracts.Where(x => x.EmployeeId == employeeId); + Console.WriteLine("process : " + timer.Elapsed); - - throw new NotImplementedException(); + return new CreateCheckoutListViewModel() + { + CreateCheckoutList = finalResult + }; } public async Task CreateCkeckout(Checkout command) diff --git a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs index a084bdc3..864f3c96 100644 --- a/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs +++ b/CompanyManagment.EFCore/Repository/RollCallEmployeeRepository.cs @@ -84,14 +84,23 @@ public class RollCallEmployeeRepository : RepositoryBase if (!service.Any(x => x.StartService.Date <= contractStart.Date && x.EndService.Date >= contractEnd.Date)) return false; - var rollCallEmployee = GetByEmployeeIdAndWorkshopId(employeeId, workshopId); + //var rollCallEmployee = GetByEmployeeIdAndWorkshopId(employeeId, workshopId); - if (rollCallEmployee == null) + //if (rollCallEmployee == null) + // return false; + var rollCallEmployee = _context.RollCallEmployees + .Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId) + .Include(x => x.EmployeesStatus); + if (!rollCallEmployee.Any()) return false; - return _employeeRollCallStatusRepository.Exists(x => x.RollCallEmployeeId == rollCallEmployee.Id && - x.StartDate.Date <= contractStart.Date && - x.EndDate.Date >= contractEnd.Date); + var a = rollCallEmployee.Any(x => x.EmployeesStatus.Any(s => + (s.StartDate <= contractStart.Date && s.EndDate.Date >= contractEnd.Date) || + (s.StartDate.Date <= contractStart.Date && s.EndDate.Date > contractStart.Date))); + //var result = _employeeRollCallStatusRepository.w(x => x.RollCallEmployeeId == rollCallEmployee.Id && + // (x.StartDate.Date <= contractStart.Date && x.EndDate.Date >= contractEnd.Date) || + // (x.StartDate.Date <= contractStart.Date && x.EndDate.Date > contractStart.Date)); + return a; } public List GetByWorkshopId(long workshopId) { diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml index 6c77c1e6..7edbf7fa 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml @@ -221,6 +221,13 @@ border-radius: 10px !important; } + + .hasCheckoutSet { + background-color: #8fdfad !important; + } + .noExtention{ + background-color: #ffc8c8 !important; + } } @@ -424,12 +431,12 @@ شماره پرسنلی شماره قرارداد - کارفرما + توضیحات کارگاه پرسنل آغاز قرارداد پایان قرارداد - - + ترک کار - diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/alert.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CreateLoadList.cshtml similarity index 87% rename from ServiceHost/Areas/Admin/Pages/Company/Checkouts/alert.cshtml rename to ServiceHost/Areas/Admin/Pages/Company/Checkouts/CreateLoadList.cshtml index 8acbc285..39ea0494 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/alert.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CreateLoadList.cshtml @@ -1,4 +1,4 @@ -@model CompanyManagment.App.Contracts.Checkout.CreateCheckout +@model CompanyManagment.App.Contracts.Checkout.CreateCheckoutListViewModel @{ var i = 1; var b = 0; @@ -14,12 +14,12 @@ -@if (Model.Contracts != null) +@if (Model.CreateCheckoutList.Count > 0) { - @foreach (var item in Model.Contracts) + @foreach (var item in Model.CreateCheckoutList) { - - @if (item.RedColor) + + @* @if (item.RedColor) { } @@ -34,7 +34,7 @@ else if (item.Waiting && item.MoreThanOneMonth) { - } + } *@ @i @@ -42,23 +42,18 @@ - @if (item.Extension) + @if (!item.Extension) { - + - - b++; + + } else { - @if (item.RedColor) - { - - } - else - { - - } + + b++; + } @@ -88,7 +83,7 @@ } }*@ - @item.EmployerName + @item.Description @@ -105,7 +100,7 @@ - @item.ContarctStart + @item.ContractStart @@ -127,22 +122,9 @@ - @if (item.RedColor == false) - { - - - @item.NextMonthStart - - - - } - - @if (item.NextMonthStart == null) - { - ####/##/## - } - + + @item.LeftWorkDate diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs index ec688986..ae4b501d 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml.cs @@ -1,4 +1,5 @@ -using _0_Framework.Application; +using System.Diagnostics; +using _0_Framework.Application; using Company.Domain.ContractAgg; using Company.Domain.HolidayItemAgg; using Company.Domain.YearlySalaryAgg; @@ -533,120 +534,130 @@ public class IndexModel : PageModel public async Task OnGetLoadContracts(long WorkshopId, string Year, string Month, string ContractStart, string ContractEnd, long EmployeeId) { - var today = DateTime.Now; - var GrogorianEnd = new DateTime(); - var GrogorianStart = new DateTime(); - //var GrogorianThisMonthStart2 = new DateTime(); - //var GrogorianPreviusMonthStart2 = new DateTime(); - //var ConvertContractStartGr = new DateTime(); - //var ConvertContractEndGr = new DateTime(); - //var ConvertStartFarsi = string.Empty; - //var nextmonthEndfarsi = string.Empty; - var faToday = string.Empty; - var faToday2 = string.Empty; - var syear = 0; - var smonth = 0; - var eyear = 0; - var emonth = 0; - var ConvertStart = new DateTime(); - var ConvertEnd = new DateTime(); - if (string.IsNullOrWhiteSpace(ContractStart) && string.IsNullOrWhiteSpace(ContractEnd)) + + var result = await _checkoutApplication.GetContractResultToCreateCheckout(WorkshopId, EmployeeId, Year, Month, ContractStart, + ContractEnd ); + + + #region Old + //var today = DateTime.Now; + // var GrogorianEnd = new DateTime(); + // var GrogorianStart = new DateTime(); + // //var GrogorianThisMonthStart2 = new DateTime(); + // //var GrogorianPreviusMonthStart2 = new DateTime(); + // //var ConvertContractStartGr = new DateTime(); + // //var ConvertContractEndGr = new DateTime(); + // //var ConvertStartFarsi = string.Empty; + // //var nextmonthEndfarsi = string.Empty; + // var faToday = string.Empty; + // var faToday2 = string.Empty; + // var syear = 0; + // var smonth = 0; + // var eyear = 0; + // var emonth = 0; + // var ConvertStart = new DateTime(); + // var ConvertEnd = new DateTime(); + // if (string.IsNullOrWhiteSpace(ContractStart) && string.IsNullOrWhiteSpace(ContractEnd)) + // { + // if (Month == "0" && Year == "0") + // faToday = today.ToFarsi(); + // else + // faToday = $"{Year}/{Month}/01"; + + // syear = Convert.ToInt32(faToday.Substring(0, 4)); + // smonth = Convert.ToInt32(faToday.Substring(5, 2)); + + // var PersianStart = new PersianDateTime(syear, smonth, 01); + // GrogorianStart = PersianStart.ToGregorianDateTime(); + // var PersianEndFinde = new PersianDateTime(syear, smonth, 01); + // PersianEndFinde = PersianEndFinde.AddMonths(1); + // PersianEndFinde = PersianEndFinde.AddDays(-1); + // GrogorianEnd = PersianEndFinde.ToGregorianDateTime(); + + // ContractStart = GrogorianStart.ToFarsi(); + // ContractEnd = GrogorianEnd.ToFarsi(); + + + // //nextMonthStartFarsi = GrogorianThisMonthStart.ToFarsi(); + // //nextmonthEndfarsi = nextMonthStartFarsi.FindeEndOfMonth(); + // } + + // var a = new ContractSearchModel + // { + // WorkshopIds = WorkshopId, + + // ContarctStart = ContractStart, + // ContractEnd = ContractEnd, + // EmployeeId = EmployeeId + // }; + + + // var ContractSearch = _contractApplication.SearchForCheckout(a); + // var ContractListNew = new List(); + // foreach (var item in ContractSearch) + // { + // var separation = _contractApplication.contractSeparation(Year, Month, + // item.ContractStartGr, item.ContractEndGr, item.EmployeeId, item.WorkshopIds); + // //if (EmployeeId == 41256) //نوشین عینی فرد + // //{ + // // separation.ContarctStart = item.ContarctStart; + // // separation.ContractEnd = item.ContractEnd; + // //} + + // var search = new CheckoutSearchModel + // { + // ContractNo = item.ContractNo, + // ContractId = item.Id, + // ContractStart = separation.ContarctStart, + // ContractEnd = separation.ContractEnd + // }; + // var checkedCHeckout = await _checkoutApplication.Search(search); + + // if (checkedCHeckout.Count > 0) + // { + // item.RedColor = true; + // item.Extension = false; + // //x.ContractStartGr <= start && x.ContractEndGr >= endd || start <= x.ContractStartGr && endd > x.ContractStartGr || endd >= x.ContractEndGr && start < x.ContractEndGr + // if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) + // item.LaterThanEnd = true; + + // item.MoreThanOneMonth = true; + // } + // else + // { + // if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) + // { + // item.LaterThanEnd = true; + // item.Extension = true; + // item.RedColor = false; + // } + // else + // { + // item.RedColor = false; + // item.Extension = true; + // } + // } + + + // if (!separation.checker) + // { + // item.RedColor = true; + // item.Extension = false; + + // } + + // ContractListNew.Add(item); + // } + + + #endregion + + + var command = new CreateCheckoutListViewModel { - if (Month == "0" && Year == "0") - faToday = today.ToFarsi(); - else - faToday = $"{Year}/{Month}/01"; - - syear = Convert.ToInt32(faToday.Substring(0, 4)); - smonth = Convert.ToInt32(faToday.Substring(5, 2)); - - var PersianStart = new PersianDateTime(syear, smonth, 01); - GrogorianStart = PersianStart.ToGregorianDateTime(); - var PersianEndFinde = new PersianDateTime(syear, smonth, 01); - PersianEndFinde = PersianEndFinde.AddMonths(1); - PersianEndFinde = PersianEndFinde.AddDays(-1); - GrogorianEnd = PersianEndFinde.ToGregorianDateTime(); - - ContractStart = GrogorianStart.ToFarsi(); - ContractEnd = GrogorianEnd.ToFarsi(); - - - //nextMonthStartFarsi = GrogorianThisMonthStart.ToFarsi(); - //nextmonthEndfarsi = nextMonthStartFarsi.FindeEndOfMonth(); - } - - var a = new ContractSearchModel - { - WorkshopIds = WorkshopId, - - ContarctStart = ContractStart, - ContractEnd = ContractEnd, - EmployeeId = EmployeeId + CreateCheckoutList = result.CreateCheckoutList }; - - - var ContractSearch = _contractApplication.SearchForCheckout(a); - var ContractListNew = new List(); - foreach (var item in ContractSearch) - { - var separation = _contractApplication.contractSeparation(Year, Month, - item.ContractStartGr, item.ContractEndGr, item.EmployeeId, item.WorkshopIds); - //if (EmployeeId == 41256) //نوشین عینی فرد - //{ - // separation.ContarctStart = item.ContarctStart; - // separation.ContractEnd = item.ContractEnd; - //} - - var search = new CheckoutSearchModel - { - ContractNo = item.ContractNo, - ContractId = item.Id, - ContractStart = separation.ContarctStart, - ContractEnd = separation.ContractEnd - }; - var checkedCHeckout = await _checkoutApplication.Search(search); - - if (checkedCHeckout.Count > 0) - { - item.RedColor = true; - item.Extension = false; - //x.ContractStartGr <= start && x.ContractEndGr >= endd || start <= x.ContractStartGr && endd > x.ContractStartGr || endd >= x.ContractEndGr && start < x.ContractEndGr - if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) - item.LaterThanEnd = true; - - item.MoreThanOneMonth = true; - } - else - { - if (item.ContractStartGr < GrogorianStart || item.ContractEndGr > GrogorianEnd) - { - item.LaterThanEnd = true; - item.Extension = true; - item.RedColor = false; - } - else - { - item.RedColor = false; - item.Extension = true; - } - } - - - if (!separation.checker) - { - item.RedColor = true; - item.Extension = false; - - } - - ContractListNew.Add(item); - } - - var command2 = new CreateCheckout - { - Contracts = ContractListNew - }; - return Partial("./alert", command2); + return Partial("./CreateLoadList", command); } /// From 3142a80b443c120bfdc7d8025e71ae9f4e4f4fa2 Mon Sep 17 00:00:00 2001 From: SamSys Date: Thu, 29 May 2025 05:04:57 +0330 Subject: [PATCH 10/11] completed 2 --- .../Repository/CheckoutRepository.cs | 67 +++++++++++++------ .../Pages/Company/Checkouts/Create.cshtml | 12 ++-- .../Pages/Company/Checkouts/Index.cshtml | 2 +- 3 files changed, 55 insertions(+), 26 deletions(-) diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs index afbf3e48..7c12bee5 100644 --- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs +++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs @@ -299,7 +299,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos { // مجاز نیست extension = false; - description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید"; + description = "بعد از تاریخ ترک کار می توانید فیش صادر کنید"; leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); contractStart = leftWork.StartWorkDate > startSreach ? leftWork.StartWorkDate.ToFarsi() @@ -321,7 +321,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos { // مجاز نیست extension = false; - description = "بعد از تاریخ ترک کار میتواند فیش صادر کنید"; + description = "بعد از تاریخ ترک کار می توانید فیش صادر کنید"; leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); contractStart = leftWork.StartWorkDate > startSreach ? leftWork.StartWorkDate.ToFarsi() @@ -343,6 +343,10 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos // مجاز نیست extension = false; description = "به دلیل داشتن حضورغیاب تا پایان ماه مجاز به ایجاد فیش نمی باشید"; + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = endSearch.ToFarsi(); } else if (!leftWork.HasLeft && startSreach < currentStart) @@ -376,32 +380,54 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos #region Static - if (leftWork.HasLeft && !hasRollCall) + if (!hasRollCall) { - if (leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) + if (leftWork.HasLeft) { - extension = true; - contractStart = leftWork.StartWorkDate > startSreach - ? leftWork.StartWorkDate.ToFarsi() - : startSreach.ToFarsi(); - contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); - leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); - } - else if(leftWork.LeftWorkDate <= startSreach) - { - // مجاز نیست - extension = false; - description = "به دلیل ترک کار پیش از تاریخ انتخاب شده مجاز به ایجاد فیش نمی باشید"; - leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + if (leftWork.LeftWorkDate > startSreach && leftWork.LeftWorkDate <= endSearch) + { + extension = true; + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = leftWork.LeftWorkDate.AddDays(-1).ToFarsi(); + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + } + else if (leftWork.LeftWorkDate <= startSreach) + { + // مجاز نیست + extension = false; + description = "به دلیل ترک کار پیش از تاریخ انتخاب شده مجاز به ایجاد فیش نمی باشید"; + leftWorkDate = leftWork.LeftWorkDate.ToFarsi(); + } + else if(leftWork.LeftWorkDate > endSearch) + { + extension = true; + + if (contractStartGr <= startSreach && contractStartGr > endSearch) + { + laterThanEnd = true; + + contractStart = startSreach.ToFarsi(); + contractEnd = endSearch.ToFarsi(); + } + else + { + contractStart = leftWork.StartWorkDate > startSreach + ? leftWork.StartWorkDate.ToFarsi() + : startSreach.ToFarsi(); + contractEnd = endSearch.ToFarsi(); + } + } } else { extension = true; - + if (contractStartGr <= startSreach && contractStartGr > endSearch) { laterThanEnd = true; - + contractStart = startSreach.ToFarsi(); contractEnd = endSearch.ToFarsi(); } @@ -413,6 +439,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos contractEnd = endSearch.ToFarsi(); } } + } #endregion @@ -444,7 +471,7 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos LeftWorkDate = leftWorkDate }; - }).ToList(); + }).OrderByDescending(x=>x.Extension).ToList(); diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml index 7edbf7fa..16f6e9b9 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml @@ -362,12 +362,14 @@
- -
+ + +
- + +
@@ -482,11 +484,11 @@ @* *@ - + - + diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml index da8cc149..e416cff2 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Index.cshtml @@ -202,7 +202,7 @@ @section Script { - + From baeeec183b90c6a1034e53a9aaca591da7494790 Mon Sep 17 00:00:00 2001 From: SamSys Date: Thu, 29 May 2025 14:55:50 +0330 Subject: [PATCH 11/11] Color change --- ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml index 16f6e9b9..bdf53fd9 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/Create.cshtml @@ -223,7 +223,7 @@ } .hasCheckoutSet { - background-color: #8fdfad !important; + background-color: #ffb715 !important; } .noExtention{ background-color: #ffc8c8 !important;