Skip to content

Commit d85322d

Browse files
authored
Merge pull request #2937 from TechnologyEnhancedLearning/release-v1.0.0
Release v1.0.0 to UAT
2 parents 39a01f3 + caa3510 commit d85322d

10 files changed

+212
-108
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+

2+
3+
namespace DigitalLearningSolutions.Data.Migrations
4+
{
5+
using FluentMigrator;
6+
7+
[Migration(202411120903)]
8+
public class CreateOrAlterGetOtherCentresForSelfAssessmentFunction : ForwardOnlyMigration
9+
{
10+
public override void Up()
11+
{
12+
Execute.Sql(Properties.Resources.TD_4950_dboGetOtherCentresForSelfAssessmentCreateOrAlter);
13+
}
14+
}
15+
}

DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx

Lines changed: 75 additions & 72 deletions
Large diffs are not rendered by default.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/****** Object: UserDefinedFunction [dbo].[GetOtherCentresForSelfAssessment] Script Date: 12/11/2024 08:47:08 ******/
2+
SET ANSI_NULLS ON
3+
GO
4+
5+
SET QUOTED_IDENTIFIER ON
6+
GO
7+
8+
-- =============================================
9+
-- Author: Kevin Whittaker
10+
-- Create date: 22/01/2024
11+
-- Description: Gets a comma separated list of other centres for a user self assessment
12+
-- =============================================
13+
CREATE OR ALTER FUNCTION [dbo].[GetOtherCentresForSelfAssessment]
14+
(
15+
-- Add the parameters for the function here
16+
@userId int,
17+
@selfAssessmentId int,
18+
@excludeCentreId int
19+
)
20+
RETURNS nvarchar(MAX)
21+
AS
22+
BEGIN
23+
-- Declare the return variable here
24+
DECLARE @ResultVar nvarchar(MAX);
25+
-- Add the T-SQL statements to compute the return value here
26+
SELECT @ResultVar = COALESCE(@ResultVar + ', ','')+ Q1.CentreName
27+
FROM (SELECT DISTINCT c.CentreName
28+
FROM Users AS u INNER JOIN
29+
DelegateAccounts AS da ON u.ID = da.UserID INNER JOIN
30+
Centres AS c ON da.CentreID = c.CentreID INNER JOIN
31+
CentreSelfAssessments AS csa ON c.CentreID = csa.CentreID
32+
WHERE (u.ID = @userId) AND (da.Active = 1) AND (da.Approved = 1) AND (csa.SelfAssessmentID = @selfAssessmentId) AND (c.CentreID <> @excludeCentreId)) AS Q1
33+
-- Return the result of the function
34+
RETURN @ResultVar
35+
36+
END
37+
GO
38+
39+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/****** Object: UserDefinedFunction [dbo].[GetOtherCentresForSelfAssessment] Script Date: 12/11/2024 08:47:08 ******/
2+
SET ANSI_NULLS ON
3+
GO
4+
5+
SET QUOTED_IDENTIFIER ON
6+
GO
7+
8+
-- =============================================
9+
-- Author: Kevin Whittaker
10+
-- Create date: 22/01/2024
11+
-- Description: Gets a comma separated list of other centres for a user self assessment
12+
-- =============================================
13+
CREATE OR ALTER FUNCTION [dbo].[GetOtherCentresForSelfAssessment]
14+
(
15+
-- Add the parameters for the function here
16+
@userId int,
17+
@selfAssessmentId int,
18+
@excludeCentreId int
19+
)
20+
RETURNS nvarchar(MAX)
21+
AS
22+
BEGIN
23+
-- Declare the return variable here
24+
DECLARE @ResultVar nvarchar(MAX);
25+
-- Add the T-SQL statements to compute the return value here
26+
SELECT @ResultVar = COALESCE(@ResultVar + ', ','')+ Q1.CentreName
27+
FROM (SELECT DISTINCT c.CentreName
28+
FROM Users AS u INNER JOIN
29+
DelegateAccounts AS da ON u.ID = da.UserID INNER JOIN
30+
Centres AS c ON da.CentreID = c.CentreID INNER JOIN
31+
CentreSelfAssessments AS csa ON c.CentreID = csa.CentreID
32+
WHERE (u.ID = @userId) AND (da.Active = 1) AND (da.Approved = 1) AND (csa.SelfAssessmentID = @selfAssessmentId) AND (c.CentreID <> @excludeCentreId)) AS Q1
33+
-- Return the result of the function
34+
RETURN @ResultVar
35+
36+
END
37+
GO
38+
39+

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentExportDataService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ FROM SelfAssessmentStructure AS sas INNER JOIN
2020
FROM SelfAssessmentStructure AS sas1 INNER JOIN
2121
CandidateAssessments AS ca1 ON sas1.SelfAssessmentID = ca1.SelfAssessmentID INNER JOIN
2222
CompetencyAssessmentQuestions AS caq1 ON sas1.CompetencyID = caq1.CompetencyID LEFT OUTER JOIN
23-
SelfAssessmentResults AS sar1 ON sar1.SelfAssessmentID =sas1.SelfAssessmentID and sar1.CompetencyID=sas1.CompetencyID AND sar1.AssessmentQuestionID = caq1.AssessmentQuestionID AND sar1.DelegateUserID = ca1.DelegateUserID LEFT OUTER JOIN
23+
SelfAssessmentResults AS sar1 ON sar1.CompetencyID=sas1.CompetencyID AND sar1.AssessmentQuestionID = caq1.AssessmentQuestionID AND sar1.DelegateUserID = ca1.DelegateUserID LEFT OUTER JOIN
2424
CandidateAssessmentOptionalCompetencies AS caoc1 ON sas1.CompetencyID = caoc1.CompetencyID AND sas1.CompetencyGroupID = caoc1.CompetencyGroupID AND ca1.ID = caoc1.CandidateAssessmentID
2525
WHERE (ca1.ID = ca.ID) AND (sas1.Optional = 0) AND (NOT (sar1.Result IS NULL)) OR
2626
(ca1.ID = ca.ID) AND (NOT (sar1.Result IS NULL)) AND (caoc1.IncludedInSelfAssessment = 1) OR
@@ -128,7 +128,7 @@ public List<CandidateAssessmentExportDetail> GetCandidateAssessmentExportDetails
128128
COALESCE (rr.LevelRAG, 0) AS ResultRAG
129129
FROM CandidateAssessments ca
130130
INNER JOIN SelfAssessmentResults s
131-
ON s.DelegateUserID = ca.DelegateUserID AND s.SelfAssessmentID = ca.SelfAssessmentID
131+
ON s.DelegateUserID = ca.DelegateUserID INNER JOIN SelfAssessmentStructure AS sas ON s.CompetencyID = sas.CompetencyID AND sas.SelfAssessmentID = @candidateAssessmentId
132132
LEFT OUTER JOIN SelfAssessmentResultSupervisorVerifications AS sv
133133
ON s.ID = sv.SelfAssessmentResultId AND sv.Superceded = 0
134134
LEFT OUTER JOIN CandidateAssessmentSupervisors AS cas

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ FROM SelfAssessmentStructure AS sas1 INNER JOIN
439439
FROM SelfAssessmentStructure AS sas1 INNER JOIN
440440
CandidateAssessments AS ca1 ON sas1.SelfAssessmentID = ca1.SelfAssessmentID INNER JOIN
441441
CompetencyAssessmentQuestions AS caq1 ON sas1.CompetencyID = caq1.CompetencyID LEFT OUTER JOIN
442-
SelfAssessmentResults AS sar1 ON sar1.SelfAssessmentID =sas1.SelfAssessmentID and sar1.CompetencyID=sas1.CompetencyID AND sar1.AssessmentQuestionID = caq1.AssessmentQuestionID AND sar1.DelegateUserID = ca1.DelegateUserID
442+
SelfAssessmentResults AS sar1 ON sar1.CompetencyID=sas1.CompetencyID AND sar1.AssessmentQuestionID = caq1.AssessmentQuestionID AND sar1.DelegateUserID = ca1.DelegateUserID
443443
LEFT OUTER JOIN CandidateAssessmentOptionalCompetencies AS caoc1 ON sas1.CompetencyID = caoc1.CompetencyID AND sas1.CompetencyGroupID = caoc1.CompetencyGroupID AND ca1.ID = caoc1.CandidateAssessmentID
444444
WHERE (ca1.ID = ca.ID) AND (sas1.Optional = 0) AND (NOT (sar1.Result IS NULL)) OR
445445
(ca1.ID = ca.ID) AND (NOT (sar1.Result IS NULL)) AND (caoc1.IncludedInSelfAssessment = 1) OR

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CompetencyDataService.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public partial class SelfAssessmentDataService
3232
0 AS UserIsVerifier,
3333
COALESCE (rr.LevelRAG, 0) AS ResultRAG
3434
FROM SelfAssessmentResults s
35+
INNER JOIN SelfAssessmentStructure AS sas ON s.CompetencyID = sas.CompetencyID AND sas.SelfAssessmentID = @selfAssessmentId
3536
LEFT OUTER JOIN DelegateAccounts AS da ON s.DelegateUserID = da.UserID
3637
LEFT OUTER JOIN SelfAssessmentResultSupervisorVerifications AS sv
3738
ON s.ID = sv.SelfAssessmentResultId AND sv.Superceded = 0
@@ -43,9 +44,8 @@ LEFT OUTER JOIN AdminUsers AS adu
4344
ON sd.SupervisorAdminID = adu.AdminID
4445
LEFT OUTER JOIN CompetencyAssessmentQuestionRoleRequirements rr
4546
ON s.CompetencyID = rr.CompetencyID AND s.AssessmentQuestionID = rr.AssessmentQuestionID
46-
AND s.SelfAssessmentID = rr.SelfAssessmentID AND s.Result = rr.LevelValue
47+
AND rr.SelfAssessmentID = @selfAssessmentId AND s.Result = rr.LevelValue
4748
WHERE da.ID = @delegateId
48-
AND s.SelfAssessmentID = @selfAssessmentId
4949
)";
5050

5151
private const string SpecificAssessmentResults =
@@ -68,7 +68,8 @@ LEFT OUTER JOIN CompetencyAssessmentQuestionRoleRequirements rr
6868
COALESCE (rr.LevelRAG, 0) AS ResultRAG
6969
FROM CandidateAssessments ca
7070
INNER JOIN SelfAssessmentResults s
71-
ON s.DelegateUserID = ca.DelegateUserID AND s.SelfAssessmentID = ca.SelfAssessmentID
71+
ON s.DelegateUserID = ca.DelegateUserID
72+
INNER JOIN SelfAssessmentStructure AS sas ON s.CompetencyID = sas.CompetencyID AND sas.SelfAssessmentID = ca.SelfAssessmentID
7273
LEFT OUTER JOIN SelfAssessmentResultSupervisorVerifications AS sv
7374
ON s.ID = sv.SelfAssessmentResultId AND sv.Superceded = 0
7475
LEFT OUTER JOIN CandidateAssessmentSupervisors AS cas
@@ -79,7 +80,7 @@ LEFT OUTER JOIN AdminUsers AS adu
7980
ON sd.SupervisorAdminID = adu.AdminID
8081
LEFT OUTER JOIN CompetencyAssessmentQuestionRoleRequirements rr
8182
ON s.CompetencyID = rr.CompetencyID AND s.AssessmentQuestionID = rr.AssessmentQuestionID
82-
AND s.SelfAssessmentID = rr.SelfAssessmentID AND s.Result = rr.LevelValue
83+
AND rr.SelfAssessmentID = ca.SelfAssessmentID AND s.Result = rr.LevelValue
8384
WHERE ca.ID = @candidateAssessmentId
8485
)";
8586

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentSupervisorDataService.cs

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -187,33 +187,17 @@ int candidateAssessmentSupervisorVerificationId
187187
public SupervisorComment? GetSupervisorComments(int delegateUserId, int resultId)
188188
{
189189
return connection.Query<SupervisorComment>(
190-
@"SELECT
191-
sar.AssessmentQuestionID,
192-
sea.Name,
193-
au.Forename + ' ' + au.Surname As SupervisorName,
194-
sasr.RoleName,
195-
sasv.Comments,
196-
sar.DelegateUserID,
197-
sar.CompetencyID,
198-
com.Name AS CompetencyName,
199-
sar.SelfAssessmentID,
200-
sasv.CandidateAssessmentSupervisorID,
201-
sasv.SelfAssessmentResultId,
202-
sasv.Verified,
203-
sar.ID,
204-
sstrc.CompetencyGroupID,
205-
sea.Vocabulary,
206-
sasv.SignedOff,
207-
sea.ReviewerCommentsLabel
190+
@"SELECT TOP (1) sar.AssessmentQuestionID, sea.Name, au.Forename + ' ' + au.Surname AS SupervisorName, sasr.RoleName, sasv.Comments, sar.DelegateUserID, sar.CompetencyID, com.Name AS CompetencyName, sar.SelfAssessmentID, sasv.CandidateAssessmentSupervisorID,
191+
sasv.SelfAssessmentResultId, sasv.Verified, sar.ID, sstrc.CompetencyGroupID, sea.Vocabulary, sasv.SignedOff, sea.ReviewerCommentsLabel
208192
FROM SelfAssessmentResultSupervisorVerifications AS sasv INNER JOIN
209-
SelfAssessmentResults AS sar ON sasv.SelfAssessmentResultId = sar.ID AND sasv.Superceded = 0 INNER JOIN
210-
SelfAssessments AS sea ON sar.SelfAssessmentID = sea.ID INNER JOIN
211-
SelfAssessmentStructure AS sstrc ON sar.CompetencyID = sstrc.CompetencyID INNER JOIN
212-
Competencies AS com ON sar.CompetencyID = com.ID INNER JOIN
213-
CandidateAssessmentSupervisors AS cas ON sasv.CandidateAssessmentSupervisorID = cas.ID INNER JOIN
214-
SupervisorDelegates AS sd ON cas.SupervisorDelegateId = sd.ID INNER JOIN
215-
AdminUsers AS au ON sd.SupervisorAdminID = au.AdminID INNER JOIN
216-
SelfAssessmentSupervisorRoles AS sasr ON cas.SelfAssessmentSupervisorRoleID = sasr.ID
193+
SelfAssessmentResults AS sar ON sasv.SelfAssessmentResultId = sar.ID AND sasv.Superceded = 0 INNER JOIN
194+
SelfAssessmentStructure AS sstrc ON sar.CompetencyID = sstrc.CompetencyID INNER JOIN
195+
Competencies AS com ON sar.CompetencyID = com.ID INNER JOIN
196+
CandidateAssessmentSupervisors AS cas ON sasv.CandidateAssessmentSupervisorID = cas.ID INNER JOIN
197+
SupervisorDelegates AS sd ON cas.SupervisorDelegateId = sd.ID INNER JOIN
198+
AdminUsers AS au ON sd.SupervisorAdminID = au.AdminID INNER JOIN
199+
SelfAssessmentSupervisorRoles AS sasr ON cas.SelfAssessmentSupervisorRoleID = sasr.ID INNER JOIN
200+
SelfAssessments AS sea ON sstrc.SelfAssessmentID = sea.ID
217201
WHERE (sar.DelegateUserID = @delegateUserId) AND (sasv.SelfAssessmentResultId = @resultId)",
218202
new { delegateUserId, resultId }
219203
).FirstOrDefault();

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAsssessmentReportDataService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ SELECT s.DelegateUserID
5252
, CASE WHEN sv.Verified IS NOT NULL AND sv.SignedOff = 1 AND COALESCE (rr.LevelRAG, 0) = 3 THEN s.ID ELSE NULL END AS Confirmed
5353
, CASE WHEN sas.Optional = 1 THEN s.CompetencyID ELSE NULL END AS Optional
5454
FROM SelfAssessmentResults AS s LEFT OUTER JOIN
55-
SelfAssessmentStructure AS sas ON s.SelfAssessmentID = sas.SelfAssessmentID AND s.CompetencyID = sas.CompetencyID LEFT OUTER JOIN
55+
SelfAssessmentStructure AS sas ON sas.SelfAssessmentID = @selfAssessmentId AND s.CompetencyID = sas.CompetencyID LEFT OUTER JOIN
5656
SelfAssessmentResultSupervisorVerifications AS sv ON s.ID = sv.SelfAssessmentResultId AND sv.Superceded = 0 LEFT OUTER JOIN
57-
CompetencyAssessmentQuestionRoleRequirements AS rr ON s.CompetencyID = rr.CompetencyID AND s.AssessmentQuestionID = rr.AssessmentQuestionID AND s.SelfAssessmentID = rr.SelfAssessmentID AND s.Result = rr.LevelValue
58-
WHERE (s.SelfAssessmentID = @selfAssessmentId)
57+
CompetencyAssessmentQuestionRoleRequirements AS rr ON s.CompetencyID = rr.CompetencyID AND s.AssessmentQuestionID = rr.AssessmentQuestionID AND sas.SelfAssessmentID = rr.SelfAssessmentID AND s.Result = rr.LevelValue
58+
WHERE (sas.SelfAssessmentID = @selfAssessmentId)
5959
)
6060
SELECT
6161
sa.Name AS SelfAssessment

0 commit comments

Comments
 (0)