From d03f19a51e9f80eaa49029baa833625406706093 Mon Sep 17 00:00:00 2001 From: MahanCh Date: Wed, 9 Apr 2025 18:38:05 +0330 Subject: [PATCH 1/4] add new header --- .../Employees/ContractCheckoutStatus.cshtml | 10 + .../Company/RollCall/CameraAccounts.cshtml | 4 + .../Pages/Company/RollCall/CaseHistory.cshtml | 12 +- .../Pages/Company/RollCall/CurrentDay.cshtml | 639 ++++++++++-------- .../RollCall/EmployeeUploadPicture.cshtml | 3 + .../Pages/Company/RollCall/Grouping.cshtml | 4 + .../Pages/Company/RollCall/Index.cshtml | 22 +- .../Pages/Company/RollCall/Index.cshtml.cs | 46 +- .../RollCall/ModalSettingWorkTime.cshtml | 2 +- .../ContractCheckoutYearlyStatus.cshtml | 11 + ServiceHost/Areas/Client/Pages/Index.cshtml | 64 +- .../Client/Pages/Shared/_ClientLayout.cshtml | 148 +++- .../Areas/Client/Pages/Shared/_Menu.cshtml | 439 +++++++----- .../wwwroot/AssetsClient/css/responsive.css | 187 ----- .../wwwroot/AssetsClient/css/style.css | 170 +---- .../RollCall/css/ModalSettingWorkTime.css | 10 + .../pages/RollCall/js/CameraAccounts.js | 14 +- .../pages/RollCall/js/CaseHistory.js | 188 +++++- .../pages/RollCall/js/CurrentDay.js | 14 +- .../RollCall/js/EmployeeUploadPicture.js | 13 +- .../pages/RollCall/js/Grouping.js | 14 +- .../AssetsClient/pages/RollCall/js/Index.js | 34 +- 22 files changed, 1122 insertions(+), 926 deletions(-) diff --git a/ServiceHost/Areas/Client/Pages/Company/Employees/ContractCheckoutStatus.cshtml b/ServiceHost/Areas/Client/Pages/Company/Employees/ContractCheckoutStatus.cshtml index f7732cef..00d958e1 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Employees/ContractCheckoutStatus.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Employees/ContractCheckoutStatus.cshtml @@ -442,6 +442,16 @@ top: -3px; z-index: 4; } + + .modal-dialog { + max-width: 1140px; + margin: 2rem auto; + } + + .modal-xxl { + max-width: 1140px; + --bs-modal-width: 1140px; + } @@ -328,8 +328,8 @@ @@ -407,6 +407,10 @@ // var dateIndex = 0; var deleteRollCallData = `@Url.Page("./CaseHistory", "RemoveEmployeeRollCallsInDate")`; + + // check and show modal Camera Account And Workshop Setting + var statusCameraAccountAndWorkshopSettingUrl = `@Url.Page("./Index", "StatusCameraAccountAndWorkshopSetting")`; + var saveCameraAccountUrl = `@Url.Page("./Index", "SaveCameraAccountAndWorkshopSetting")`; } \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/CurrentDay.cshtml b/ServiceHost/Areas/Client/Pages/Company/RollCall/CurrentDay.cshtml index 1aa2cc64..156858ff 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/CurrentDay.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/CurrentDay.cshtml @@ -4,6 +4,8 @@ @{ ViewData["Title"] = " - " + "لیست حضور و غیاب جاری"; + + string clientVersion = _0_Framework.Application.Version.StyleVersion; int index = 1; int indexAbsent = 1; int indexLeave = 1; @@ -11,15 +13,15 @@ } @section Styles { - - - - - + + + + + - + - + } @@ -45,22 +47,22 @@ -
-
-
- + + + + @section Script { - + + - + } diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml b/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml index 5be0c2ba..d4506d9e 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/EmployeeUploadPicture.cshtml @@ -200,6 +200,9 @@ var deActivePersonnelAjax = `@Url.Page("./EmployeeUploadPicture", "DeActivePersonnel")`; var activePersonnelAjax = `@Url.Page("./EmployeeUploadPicture", "ActivePersonnel")`; + // check and show modal Camera Account And Workshop Setting + var statusCameraAccountAndWorkshopSettingUrl = `@Url.Page("./Index", "StatusCameraAccountAndWorkshopSetting")`; + var saveCameraAccountUrl = `@Url.Page("./Index", "SaveCameraAccountAndWorkshopSetting")`; } \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml b/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml index ca5a2afd..0a53a295 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/Grouping.cshtml @@ -161,6 +161,10 @@ var workshopSettingId = Number((@Model.RollCallWorkshopSettings.Id)); var isShiftChangedGlobal = false; var titleOfGroup = ""; + + // check and show modal Camera Account And Workshop Setting + var statusCameraAccountAndWorkshopSettingUrl = `@Url.Page("./Index", "StatusCameraAccountAndWorkshopSetting")`; + var saveCameraAccountUrl = `@Url.Page("./Index", "SaveCameraAccountAndWorkshopSetting")`; } \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml b/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml index 7f40f891..6f2d83ee 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml @@ -307,16 +307,16 @@
- - @section Script { - - + + + + } \ No newline at end of file diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml.cs b/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml.cs index 3f7b549f..65c2f5cd 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml.cs @@ -60,10 +60,9 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall var rollCallWorkshopSetting = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(workshopId, account); HasRollCallWorkshopSetting = rollCallWorkshopSetting.ArePropertiesEqual(new CustomizeWorkshopSettingsViewModel()) ? "false" : "true"; - var workshopInfo = _workshopApplication.GetWorkshopInfo(workshopId); - WorkshopFullName = _authHelper.GetWorkshopName(); + WorkshopFullName =_authHelper.GetWorkshopName(); - HasRollCallCustomizeWorkshopSetting = _customizeWorkshopSettingsApplication.GetWorkshopSettingsDetails(workshopId).Id == 0 ? "false" : "true"; + HasRollCallCustomizeWorkshopSetting = _customizeWorkshopSettingsApplication.GetWorkshopSettingsDetails(workshopId).Id == 0 ? "false" : "true"; var hasBeforeService = _rollCallServiceApplication.GetAllServiceByWorkshopId(workshopId).Any(); var rollCall = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId); @@ -90,7 +89,46 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall return Page(); } - public IActionResult OnGetSaveCameraAccountAndWorkshopSetting() + public IActionResult OnGetStatusCameraAccountAndWorkshopSetting() + { + var account = _authHelper.CurrentAccountInfo(); + var workshopSlug = User.FindFirstValue("WorkshopSlug"); + var workshopId = _passwordHasher.SlugDecrypt(workshopSlug); + + if (workshopId < 0) + return BadRequest(); + + var workshopSettings = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(workshopId, account); + var hasRollCallWorkshopSetting = !workshopSettings.ArePropertiesEqual(new CustomizeWorkshopSettingsViewModel()); + + var allServices = _rollCallServiceApplication.GetAllServiceByWorkshopId(workshopId); + var hasPreviousService = allServices.Any(); + + var activeService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId); + var hasRollCallService = activeService != null; + + bool hasCameraAccount; + if (hasRollCallService) + { + var accountId = _authHelper.CurrentAccountId(); + var cameraAccountExists = _cameraAccountApplication.HasCameraAccount(workshopId, accountId); + + hasCameraAccount = cameraAccountExists && hasPreviousService; + } + else + { + hasCameraAccount = !hasPreviousService; + } + + return new JsonResult(new + { + hasRollCallWorkshopSetting, + hasCameraAccount, + hasRollCallService + }); + } + + public IActionResult OnGetSaveCameraAccountAndWorkshopSetting() { var account = _authHelper.CurrentAccountInfo(); diff --git a/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalSettingWorkTime.cshtml b/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalSettingWorkTime.cshtml index 48daf878..08a631b9 100644 --- a/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalSettingWorkTime.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/RollCall/ModalSettingWorkTime.cshtml @@ -200,7 +200,7 @@
- +
@* *@ diff --git a/ServiceHost/Areas/Client/Pages/Company/Workshop/ContractCheckoutYearlyStatus.cshtml b/ServiceHost/Areas/Client/Pages/Company/Workshop/ContractCheckoutYearlyStatus.cshtml index 5ae558c1..5650eceb 100644 --- a/ServiceHost/Areas/Client/Pages/Company/Workshop/ContractCheckoutYearlyStatus.cshtml +++ b/ServiceHost/Areas/Client/Pages/Company/Workshop/ContractCheckoutYearlyStatus.cshtml @@ -13,6 +13,17 @@ + + } diff --git a/ServiceHost/Areas/Client/Pages/Index.cshtml b/ServiceHost/Areas/Client/Pages/Index.cshtml index 5ecb9f72..a495b020 100644 --- a/ServiceHost/Areas/Client/Pages/Index.cshtml +++ b/ServiceHost/Areas/Client/Pages/Index.cshtml @@ -5,6 +5,7 @@ string clientVersion = _0_Framework.Application.Version.StyleVersion; + }
diff --git a/ServiceHost/Areas/Client/Pages/Index.cshtml.cs b/ServiceHost/Areas/Client/Pages/Index.cshtml.cs index c014b11c..e15c42c1 100644 --- a/ServiceHost/Areas/Client/Pages/Index.cshtml.cs +++ b/ServiceHost/Areas/Client/Pages/Index.cshtml.cs @@ -15,6 +15,7 @@ using PersianTools.Core; using System.Security.Claims; using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using _0_Framework.Infrastructure; +using AccountManagement.Application.Contracts.CameraAccount; using CompanyManagment.App.Contracts.Bank; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; using CompanyManagment.App.Contracts.Job; @@ -45,6 +46,7 @@ namespace ServiceHost.Areas.Client.Pages private readonly IJobApplication _jobApplication; private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopEmployee; private readonly IRollCallEmployeeStatusApplication _rollCallEmployeeStatusApplication; + private readonly ICameraAccountApplication _cameraAccountApplication; public string profilePicture { get; set; } public string AccountFullName { get; set; } @@ -65,7 +67,7 @@ namespace ServiceHost.Areas.Client.Pages public bool HasApkToDownload { get; set; } #endregion - public IndexModel(IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ILeaveApplication leaveApplication, IEmployeeApplication employeeApplication, IPaymentToEmployeeItemApplication paymentToEmployeeItemApplication, IPaymentToEmployeeApplication paymentToEmployeeApplication, IHolidayItemApplication holidayItemApplication, IInsuranceListApplication insuranceListApplication, IAndroidApkVersionApplication androidApkVersionApplication, IRollCallServiceApplication rollCallServiceApplication, IPersonnelCodeApplication personnelCodeApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IBankApplication bankApplication, ILeftWorkTempApplication leftWorkTempApplication, IJobApplication jobApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopEmployee, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication) + public IndexModel(IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ILeaveApplication leaveApplication, IEmployeeApplication employeeApplication, IPaymentToEmployeeItemApplication paymentToEmployeeItemApplication, IPaymentToEmployeeApplication paymentToEmployeeApplication, IHolidayItemApplication holidayItemApplication, IInsuranceListApplication insuranceListApplication, IAndroidApkVersionApplication androidApkVersionApplication, IRollCallServiceApplication rollCallServiceApplication, IPersonnelCodeApplication personnelCodeApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IBankApplication bankApplication, ILeftWorkTempApplication leftWorkTempApplication, IJobApplication jobApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopEmployee, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication, ICameraAccountApplication cameraAccountApplication) { _workshopApplication = workshopApplication; _employeeApplication = employeeApplication; @@ -82,6 +84,7 @@ namespace ServiceHost.Areas.Client.Pages _jobApplication = jobApplication; _customizeWorkshopEmployee = customizeWorkshopEmployee; _rollCallEmployeeStatusApplication = rollCallEmployeeStatusApplication; + _cameraAccountApplication = cameraAccountApplication; _leaveApplication = leaveApplication; _authHelper = authHelper; _passwordHasher = passwordHasher; @@ -635,5 +638,48 @@ namespace ServiceHost.Areas.Client.Pages } #endregion + + #region CameraAccountAndWorkshopSetting + + public IActionResult OnGetStatusCameraAccountAndWorkshopSetting() + { + var account = _authHelper.CurrentAccountInfo(); + var workshopSlug = User.FindFirstValue("WorkshopSlug"); + var workshopId = _passwordHasher.SlugDecrypt(workshopSlug); + + if (workshopId < 0) + return BadRequest(); + + var workshopSettings = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(workshopId, account); + var hasRollCallWorkshopSetting = !workshopSettings.ArePropertiesEqual(new CustomizeWorkshopSettingsViewModel()); + + var allServices = _rollCallServiceApplication.GetAllServiceByWorkshopId(workshopId); + var hasPreviousService = allServices.Any(); + + var activeService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId); + var hasRollCallService = activeService != null; + + bool hasCameraAccount; + if (hasRollCallService) + { + var accountId = _authHelper.CurrentAccountId(); + var cameraAccountExists = _cameraAccountApplication.HasCameraAccount(workshopId, accountId); + + hasCameraAccount = cameraAccountExists && hasPreviousService; + } + else + { + hasCameraAccount = !hasPreviousService; + } + + return new JsonResult(new + { + hasRollCallWorkshopSetting, + hasCameraAccount, + hasRollCallService + }); + } + + #endregion } } diff --git a/ServiceHost/Areas/Client/Pages/Shared/_ClientLayout.cshtml b/ServiceHost/Areas/Client/Pages/Shared/_ClientLayout.cshtml index aab7877c..760a9895 100644 --- a/ServiceHost/Areas/Client/Pages/Shared/_ClientLayout.cshtml +++ b/ServiceHost/Areas/Client/Pages/Shared/_ClientLayout.cshtml @@ -92,22 +92,58 @@ -