Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ public class SessionEnrolOnRoleProfile
public int? SelfAssessmentID { get; set; }
public DateTime? CompleteByDate { get; set; }
public int? SelfAssessmentSupervisorRoleId { get; set; }
public bool ActionConfirmed { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ public IActionResult ReviewDelegateSelfAssessment(int supervisorDelegateId, int
foreach (var competency in competencies)
{
competency.CompetencyFlags = flags.Where(f => f.CompetencyId == competency.Id);
};
}

if (superviseDelegate.DelegateUserID != null)
{
Expand Down Expand Up @@ -784,48 +784,69 @@ public IActionResult EnrolSetRoleProfile(int supervisorDelegateId, int selfAsses
};
return View("EnrolDelegateOnProfileAssessment", model);
}
var retirementDate = selfAssessmentService.GetSelfAssessmentById(selfAssessmentID).RetirementDate;
if (retirementDate?.Date is DateTime date && date >= DateTime.Today &&
date <= DateTime.Today.AddDays(14))
{
var model = new RetiringSelfAssessmentViewModel()
{
SelfAssessmentID = selfAssessmentID,
SupervisorDelegateID = supervisorDelegateId,
RetirementDate = retirementDate
};
return View("ConfirmRetiringSelfAssessment", model);
}

sessionEnrolOnRoleProfile.SelfAssessmentID = selfAssessmentID;
multiPageFormService.SetMultiPageFormData(
sessionEnrolOnRoleProfile,
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
);

var retirementDate = selfAssessmentService.GetSelfAssessmentById(selfAssessmentID).RetirementDate;
if (CheckRetirementDate(retirementDate))
{
return RedirectToAction("ConfirmRetiringSelfAssessment", "Supervisor", new { supervisorDelegateId });
}

return RedirectToAction(
"EnrolDelegateCompleteBy",
"Supervisor",
new { supervisorDelegateId = supervisorDelegateId }
);
}

[HttpPost]
public IActionResult RetiringSelfAssessmentConfirmed(RetiringSelfAssessmentViewModel retiringSelfAssessment)
[Route("/Supervisor/Staff/{supervisorDelegateId}/ProfileAssessment/Enrol/Confirm")]
public IActionResult ConfirmRetiringSelfAssessment(int supervisorDelegateId)
{
if (ModelState.IsValid && retiringSelfAssessment.ActionConfirmed)
var sessionEnrolOnRoleProfile = multiPageFormService.GetMultiPageFormData<SessionEnrolOnRoleProfile>(
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
).GetAwaiter().GetResult();

var retirementDate = selfAssessmentService.GetSelfAssessmentById((int)sessionEnrolOnRoleProfile.SelfAssessmentID).RetirementDate;
if (!CheckRetirementDate((retirementDate)))
{
var sessionEnrolOnRoleProfile = multiPageFormService.GetMultiPageFormData<SessionEnrolOnRoleProfile>(
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 410 });
}
var model = new RetiringSelfAssessmentViewModel()
{
SelfAssessmentID = (int)sessionEnrolOnRoleProfile.SelfAssessmentID,
SupervisorDelegateID = supervisorDelegateId,
RetirementDate = retirementDate,
ActionConfirmed = sessionEnrolOnRoleProfile.ActionConfirmed
};
return View("ConfirmRetiringSelfAssessment", model);
}

[HttpPost]
[Route("/Supervisor/Staff/{supervisorDelegateId}/ProfileAssessment/Enrol/Confirm")]
public IActionResult ConfirmRetiringSelfAssessment(RetiringSelfAssessmentViewModel retiringSelfAssessment)
{
var sessionEnrolOnRoleProfile = multiPageFormService.GetMultiPageFormData<SessionEnrolOnRoleProfile>(
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
).GetAwaiter().GetResult();

sessionEnrolOnRoleProfile.SelfAssessmentID = retiringSelfAssessment.SelfAssessmentID;
multiPageFormService.SetMultiPageFormData(
sessionEnrolOnRoleProfile,
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
);
sessionEnrolOnRoleProfile.SelfAssessmentID = retiringSelfAssessment.SelfAssessmentID;
sessionEnrolOnRoleProfile.ActionConfirmed = retiringSelfAssessment.ActionConfirmed;
multiPageFormService.SetMultiPageFormData(
sessionEnrolOnRoleProfile,
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
);

if (ModelState.IsValid && retiringSelfAssessment.ActionConfirmed)
{
return RedirectToAction(
"EnrolDelegateCompleteBy",
"Supervisor",
Expand All @@ -850,19 +871,21 @@ public IActionResult EnrolDelegateCompleteBy(int supervisorDelegateId, int? day,
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
).GetAwaiter().GetResult();
multiPageFormService.SetMultiPageFormData(
sessionEnrolOnRoleProfile,
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
);

var retirementDate = selfAssessmentService.GetSelfAssessmentById((int)sessionEnrolOnRoleProfile.SelfAssessmentID).RetirementDate;
if (CheckRetirementDate(retirementDate) && !sessionEnrolOnRoleProfile.ActionConfirmed)
{
return RedirectToAction("ConfirmRetiringSelfAssessment", "Supervisor", new { supervisorDelegateId });
}
var supervisorDelegate =
supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, GetAdminId(), 0);
var roleProfile = supervisorService.GetRoleProfileById((int)sessionEnrolOnRoleProfile.SelfAssessmentID);
var model = new EnrolDelegateSetCompletByDateViewModel()
{
SupervisorDelegateDetail = supervisorDelegate,
RoleProfile = roleProfile,
CompleteByDate = sessionEnrolOnRoleProfile.CompleteByDate
CompleteByDate = sessionEnrolOnRoleProfile.CompleteByDate,
ActionConfirmed = sessionEnrolOnRoleProfile.ActionConfirmed
};
if (day != null && month != null && year != null)
{
Expand Down Expand Up @@ -1008,6 +1031,13 @@ public IActionResult EnrolDelegateSummary(int supervisorDelegateId)
MultiPageFormDataFeature.EnrolDelegateOnProfileAssessment,
TempData
);

var retirementDate = selfAssessmentService.GetSelfAssessmentById((int)sessionEnrolOnRoleProfile.SelfAssessmentID).RetirementDate;
if (CheckRetirementDate(retirementDate) && !sessionEnrolOnRoleProfile.ActionConfirmed)
{
return RedirectToAction("ConfirmRetiringSelfAssessment", "Supervisor", new { supervisorDelegateId });
}

var supervisorDelegate =
supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, GetAdminId(), 0);
var roleProfile = supervisorService.GetRoleProfileById((int)sessionEnrolOnRoleProfile.SelfAssessmentID);
Expand Down Expand Up @@ -1035,6 +1065,7 @@ public IActionResult EnrolDelegateSummary(int supervisorDelegateId)
ViewBag.completeByMonth = TempData["completeByMonth"];
ViewBag.completeByYear = TempData["completeByYear"];
ViewBag.navigatedFrom = TempData["navigatedFrom"];
ViewBag.actionConfirmed = sessionEnrolOnRoleProfile.ActionConfirmed;
return View("EnrolDelegateSummary", model);
}

Expand Down Expand Up @@ -1558,5 +1589,15 @@ private static string RenderRazorViewToString(Controller controller, string view
return sw.GetStringBuilder().ToString();
}
}

private bool CheckRetirementDate(DateTime? date)
{
if (date == null)
return false;

DateTime retirementOffsetDate = DateTime.Today.AddDays(14);
DateTime today = DateTime.Today;
return (date >= today && date <= retirementOffsetDate);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ public class EnrolDelegateSetCompletByDateViewModel
public RoleProfile RoleProfile { get; set; }
public DateTime? CompleteByDate { get; set; }
public OldDateValidator.ValidationResult? CompleteByValidationResult { get; set; }
public bool ActionConfirmed { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
label=" I understand this self-assessment is being retired and I still want to enrol learners."
hint-text="" />
</div>
<button type="submit" class="nhsuk-button nhsuk-button nhsuk-u-margin-top-4" asp-action="RetiringSelfAssessmentConfirmed">
<button type="submit" class="nhsuk-button nhsuk-button nhsuk-u-margin-top-4" asp-action="ConfirmRetiringSelfAssessment">
Continue
</button>
@Html.HiddenFor(m => m.SelfAssessmentID)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
</div>
</fieldset>
<div class=" nhsuk-u-margin-top-5">
<a class="nhsuk-button nhsuk-button--secondary" role="button" asp-action="EnrolDelegateOnProfileAssessment" asp-route-supervisorDelegateId="@Model.SupervisorDelegateDetail.ID">
<a class="nhsuk-button nhsuk-button--secondary" role="button" asp-action="@(Model.ActionConfirmed ? "ConfirmRetiringSelfAssessment" : "EnrolDelegateOnProfileAssessment")" asp-route-supervisorDelegateId="@Model.SupervisorDelegateDetail.ID">
Back
</a>
<button class="nhsuk-button" id="save-button" type="submit">Next</button>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,20 @@
</dd>

</div>
@if (ViewBag.actionConfirmed)
{
<div class="nhsuk-summary-list__row">
<dt class="nhsuk-summary-list__key">
Retiring confirmed
</dt>
<dd class="nhsuk-summary-list__value">
Yes
</dd>
<dd class="nhsuk-summary-list__actions">
</dd>

</div>
}

<div class="nhsuk-summary-list__row">
<dt class="nhsuk-summary-list__key">
Expand Down
Loading