diff --git a/DigitalLearningSolutions.Data.Migrations/202410231405_Alter_GetActivitiesForDelegateEnrolment.cs b/DigitalLearningSolutions.Data.Migrations/202410231405_Alter_GetActivitiesForDelegateEnrolment.cs
new file mode 100644
index 0000000000..13840992ba
--- /dev/null
+++ b/DigitalLearningSolutions.Data.Migrations/202410231405_Alter_GetActivitiesForDelegateEnrolment.cs
@@ -0,0 +1,19 @@
+
+
+namespace DigitalLearningSolutions.Data.Migrations
+{
+ using FluentMigrator;
+
+ [Migration(202410231405)]
+ public class Alter_GetActivitiesForDelegateEnrolment : Migration
+ {
+ public override void Up()
+ {
+ Execute.Sql(Properties.Resources.TD_4878_Alter_GetActivitiesForDelegateEnrolment_Up);
+ }
+ public override void Down()
+ {
+ Execute.Sql(Properties.Resources.TD_4878_Alter_GetActivitiesForDelegateEnrolment_Down);
+ }
+ }
+}
diff --git a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs
index 79d378b42e..de9e603cc4 100644
--- a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs
+++ b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs
@@ -2237,6 +2237,46 @@ internal static string TD_4634_Alter_GetCompletedCoursesForCandidate_UP {
}
}
+ ///
+ /// Looks up a localized string similar to /****** Object: StoredProcedure [dbo].[GetActivitiesForDelegateEnrolment] Script Date: 22/10/2024 16:55:08 ******/
+ ///SET ANSI_NULLS ON
+ ///GO
+ ///
+ ///SET QUOTED_IDENTIFIER ON
+ ///GO
+ ///
+ ///-- =============================================
+ ///-- Author: Kevin Whittaker
+ ///-- Create date: 24/01/2023
+ ///-- Description: Returns active available for delegate enrolment based on original GetActiveAvailableCustomisationsForCentreFiltered_V6 sproc but adjusted for user account refactor and filters properly for category.
+ ///-- ========= [rest of string was truncated]";.
+ ///
+ internal static string TD_4878_Alter_GetActivitiesForDelegateEnrolment_Down {
+ get {
+ return ResourceManager.GetString("TD_4878_Alter_GetActivitiesForDelegateEnrolment_Down", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to /****** Object: StoredProcedure [dbo].[GetActivitiesForDelegateEnrolment] Script Date: 22/10/2024 16:55:08 ******/
+ ///SET ANSI_NULLS ON
+ ///GO
+ ///
+ ///SET QUOTED_IDENTIFIER ON
+ ///GO
+ ///
+ ///-- =============================================
+ ///-- Author: Kevin Whittaker
+ ///-- Create date: 24/01/2023
+ ///-- Description: Returns active available for delegate enrolment based on original GetActiveAvailableCustomisationsForCentreFiltered_V6 sproc but adjusted for user account refactor and filters properly for category.
+ ///-- ========= [rest of string was truncated]";.
+ ///
+ internal static string TD_4878_Alter_GetActivitiesForDelegateEnrolment_Up {
+ get {
+ return ResourceManager.GetString("TD_4878_Alter_GetActivitiesForDelegateEnrolment_Up", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to /****** Object: StoredProcedure [dbo].[GetActiveAvailableCustomisationsForCentreFiltered_V6] Script Date: 29/09/2022 19:11:04 ******/
///SET ANSI_NULLS ON
diff --git a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx
index cf95b25f1e..e18fe9787e 100644
--- a/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx
+++ b/DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx
@@ -448,4 +448,10 @@
..\Scripts\TD_4634_Alter_GetCompletedCoursesForCandidate_UP.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16
+
+ ..\Scripts\TD-4878-Alter_GetActivitiesForDelegateEnrolment_Down.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16
+
+
+ ..\Scripts\TD-4878-Alter_GetActivitiesForDelegateEnrolment_Up.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16
+
\ No newline at end of file
diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-4878-Alter_GetActivitiesForDelegateEnrolment_Down.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-4878-Alter_GetActivitiesForDelegateEnrolment_Down.sql
new file mode 100644
index 0000000000..b1711f67e6
Binary files /dev/null and b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-4878-Alter_GetActivitiesForDelegateEnrolment_Down.sql differ
diff --git a/DigitalLearningSolutions.Data.Migrations/Scripts/TD-4878-Alter_GetActivitiesForDelegateEnrolment_Up.sql b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-4878-Alter_GetActivitiesForDelegateEnrolment_Up.sql
new file mode 100644
index 0000000000..59f5f1b3ec
Binary files /dev/null and b/DigitalLearningSolutions.Data.Migrations/Scripts/TD-4878-Alter_GetActivitiesForDelegateEnrolment_Up.sql differ
diff --git a/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs b/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs
index da369d6b42..8b88a05642 100644
--- a/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs
+++ b/DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs
@@ -35,7 +35,7 @@ public interface ISupervisorDataService
CandidateAssessmentSupervisor? GetCandidateAssessmentSupervisor(int candidateAssessmentID, int supervisorDelegateId, int selfAssessmentSupervisorRoleId);
SelfAssessmentResultSummary? GetSelfAssessmentResultSummary(int candidateAssessmentId, int supervisorDelegateId);
IEnumerable GetCandidateAssessmentSupervisorVerificationSummaries(int candidateAssessmentId);
- IEnumerable GetSupervisorForEnrolDelegate(int CustomisationID, int CentreID);
+ IEnumerable GetSupervisorForEnrolDelegate(int CentreID, int CategoryID);
//UPDATE DATA
bool ConfirmSupervisorDelegateById(int supervisorDelegateId, int candidateId, int adminId);
bool RemoveSupervisorDelegateById(int supervisorDelegateId, int delegateUserId, int adminId);
@@ -380,7 +380,7 @@ LEFT JOIN UserCentreDetails ucd
}
}
- public IEnumerable GetSupervisorForEnrolDelegate(int CustomisationID, int CentreID)
+ public IEnumerable GetSupervisorForEnrolDelegate(int CentreID, int CategoryID)
{
return connection.Query(
$@"SELECT aa.ID AS AdminID,
@@ -391,14 +391,11 @@ FROM AdminAccounts AS aa INNER JOIN
Centres AS c ON aa.CentreID = c.CentreID LEFT OUTER JOIN
UserCentreDetails AS ucd ON u.ID = ucd.UserID AND c.CentreID = ucd.CentreID
WHERE (aa.IsSupervisor = 1) AND (c.CentreID = @CentreID) AND
- (ISNULL(aa.CategoryID, 0) = 0 OR CategoryID =
- (SELECT aa.CategoryID FROM Applications AS a INNER JOIN
- Customisations AS c ON a.ApplicationID = c.ApplicationID
- WHERE (c.CustomisationID = @CustomisationID))) AND
+ (ISNULL(aa.CategoryID, 0) = 0 OR aa.CategoryID = @CategoryID) AND
(aa.Active = 1)
GROUP BY aa.ID, u.LastName, u.FirstName, COALESCE(ucd.Email, u.PrimaryEmail), CentreName
ORDER BY u.FirstName, u.LastName",
- new { CentreID, CustomisationID });
+ new { CentreID, CategoryID });
}
public bool ConfirmSupervisorDelegateById(int supervisorDelegateId, int delegateUserId, int adminId)
diff --git a/DigitalLearningSolutions.Data/Models/Courses/AvailableCourse.cs b/DigitalLearningSolutions.Data/Models/Courses/AvailableCourse.cs
index e3fb915ad0..94ce609017 100644
--- a/DigitalLearningSolutions.Data/Models/Courses/AvailableCourse.cs
+++ b/DigitalLearningSolutions.Data/Models/Courses/AvailableCourse.cs
@@ -17,6 +17,7 @@ public string? Topic
}
public int DelegateStatus { get; set; }
public bool HideInLearnerPortal { get; set; }
+ public int CategoryID { get; set; }
private string? category;
private string? topic;
diff --git a/DigitalLearningSolutions.Data/Models/SessionData/Tracking/Delegate/Enrol/SessionEnrolDelegate.cs b/DigitalLearningSolutions.Data/Models/SessionData/Tracking/Delegate/Enrol/SessionEnrolDelegate.cs
index c63ec525d8..6f53abf300 100644
--- a/DigitalLearningSolutions.Data/Models/SessionData/Tracking/Delegate/Enrol/SessionEnrolDelegate.cs
+++ b/DigitalLearningSolutions.Data/Models/SessionData/Tracking/Delegate/Enrol/SessionEnrolDelegate.cs
@@ -16,5 +16,6 @@ public class SessionEnrolDelegate
public string? SupervisorEmail { get; set; }
public bool IsSelfAssessment { get; set; }
public int AssessmentVersion { get; set; }
+ public int? AssessmentCategoryID { get; set; }
}
}
diff --git a/DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/EnrolController.cs b/DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/EnrolController.cs
index 9307e300b5..146aebe824 100644
--- a/DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/EnrolController.cs
+++ b/DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/EnrolController.cs
@@ -122,6 +122,7 @@ public IActionResult Index(int delegateId, EnrolCurrentLearningViewModel enrolCu
sessionEnrol.IsSelfAssessment = selectedCourse.IsSelfAssessment;
sessionEnrol.AssessmentVersion = selectedCourse.CurrentVersion.GetValueOrDefault();
sessionEnrol.AssessmentName = selectedCourse.Name;
+ sessionEnrol.AssessmentCategoryID = selectedCourse.CategoryID;
multiPageFormService.SetMultiPageFormData(
sessionEnrol,
@@ -201,7 +202,7 @@ public IActionResult EnrolDelegateSupervisor(int delegateId)
var sessionEnrol = multiPageFormService.GetMultiPageFormData(
MultiPageFormDataFeature.EnrolDelegateInActivity,
TempData).GetAwaiter().GetResult();
- var supervisorList = supervisorService.GetSupervisorForEnrolDelegate(sessionEnrol.AssessmentID.GetValueOrDefault(), centreId.Value);
+ var supervisorList = supervisorService.GetSupervisorForEnrolDelegate(centreId.Value, sessionEnrol.AssessmentCategoryID.Value);
if (!sessionEnrol.IsSelfAssessment)
{
var model = new EnrolSupervisorViewModel(
@@ -233,7 +234,7 @@ public IActionResult EnrolDelegateSupervisor(int delegateId, EnrolSupervisorView
{
var centreId = GetCentreId();
var sessionEnrol = multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.EnrolDelegateInActivity, TempData).GetAwaiter().GetResult();
- var supervisorList = supervisorService.GetSupervisorForEnrolDelegate(sessionEnrol.AssessmentID.Value, centreId.Value);
+ var supervisorList = supervisorService.GetSupervisorForEnrolDelegate(centreId.Value, sessionEnrol.AssessmentCategoryID.Value);
var roles = supervisorService.GetSupervisorRolesBySelfAssessmentIdForSupervisor(sessionEnrol.AssessmentID.GetValueOrDefault()).ToArray();
if (!ModelState.IsValid)
diff --git a/DigitalLearningSolutions.Web/Services/SupervisorService.cs b/DigitalLearningSolutions.Web/Services/SupervisorService.cs
index 7e75f19316..599881caff 100644
--- a/DigitalLearningSolutions.Web/Services/SupervisorService.cs
+++ b/DigitalLearningSolutions.Web/Services/SupervisorService.cs
@@ -32,7 +32,7 @@ public interface ISupervisorService
CandidateAssessmentSupervisor? GetCandidateAssessmentSupervisor(int candidateAssessmentID, int supervisorDelegateId, int selfAssessmentSupervisorRoleId);
SelfAssessmentResultSummary? GetSelfAssessmentResultSummary(int candidateAssessmentId, int supervisorDelegateId);
IEnumerable GetCandidateAssessmentSupervisorVerificationSummaries(int candidateAssessmentId);
- IEnumerable GetSupervisorForEnrolDelegate(int CustomisationID, int CentreID);
+ IEnumerable GetSupervisorForEnrolDelegate(int CentreID, int CategoryID);
//UPDATE DATA
bool ConfirmSupervisorDelegateById(int supervisorDelegateId, int candidateId, int adminId);
bool RemoveSupervisorDelegateById(int supervisorDelegateId, int delegateUserId, int adminId);
@@ -172,9 +172,9 @@ public IEnumerable GetSupervisorDelegateDetailsForAdmi
return supervisorDataService.GetSupervisorDelegateDetailsForAdminId(adminId);
}
- public IEnumerable GetSupervisorForEnrolDelegate(int CustomisationID, int CentreID)
+ public IEnumerable GetSupervisorForEnrolDelegate(int CentreID, int CategoryID)
{
- return supervisorDataService.GetSupervisorForEnrolDelegate(CustomisationID, CentreID);
+ return supervisorDataService.GetSupervisorForEnrolDelegate(CentreID, CategoryID);
}
public SelfAssessmentSupervisorRole? GetSupervisorRoleById(int id)