Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIV-16485 - Part remission - caseworker HwF display not updated following Fee payment outcome event #1654

Merged
merged 26 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
0a18e3b
added code changes and unit tests.
neeta-hmcts Sep 19, 2024
825b837
Merge remote-tracking branch 'origin/master'
neeta-hmcts Sep 19, 2024
78b0fb9
Merge remote-tracking branch 'refs/remotes/origin/master'
neeta-hmcts Sep 25, 2024
44a2c0e
Merge remote-tracking branch 'refs/remotes/origin/master'
neeta-hmcts Sep 30, 2024
65ff100
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Oct 18, 2024
472a035
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Nov 5, 2024
cba5f49
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Nov 13, 2024
b0f9414
added a fix.
neeta-hmcts Nov 18, 2024
77f8b8f
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Nov 27, 2024
3577396
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Nov 27, 2024
beafc68
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Dec 4, 2024
5932574
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Dec 6, 2024
67f6907
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Dec 10, 2024
7432b98
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Dec 10, 2024
e7383f0
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Dec 11, 2024
8d62058
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Dec 18, 2024
6dc91b7
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Jan 9, 2025
5d86f85
Merge branch 'master' of https://github.com/hmcts/civil-general-appli…
neeta-hmcts Jan 13, 2025
ca889f8
added a fix.
neeta-hmcts Jan 22, 2025
b9f8446
fixed the filed name and bug.
neeta-hmcts Jan 22, 2025
0bd61d0
fixed test.
neeta-hmcts Jan 22, 2025
2546b48
fixed test.
neeta-hmcts Jan 22, 2025
5c003ff
refactored setData method.
neeta-hmcts Jan 23, 2025
793c1ed
Merge branch 'master' into bug/civ_16485
neeta-hmcts Jan 23, 2025
1f0bc37
removed unused import.
neeta-hmcts Jan 23, 2025
e2c5a6a
Merge branch 'bug/civ_16485' of https://github.com/hmcts/civil-genera…
neeta-hmcts Jan 23, 2025
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 @@ -13,15 +13,12 @@
import uk.gov.hmcts.reform.civil.callback.Callback;
import uk.gov.hmcts.reform.civil.callback.CallbackParams;
import uk.gov.hmcts.reform.civil.callback.CaseEvent;
import uk.gov.hmcts.reform.civil.enums.CaseState;
import uk.gov.hmcts.reform.civil.enums.FeeType;
import uk.gov.hmcts.reform.civil.enums.YesOrNo;
import uk.gov.hmcts.reform.civil.enums.dq.GeneralApplicationTypes;
import uk.gov.hmcts.reform.civil.launchdarkly.FeatureToggleService;
import uk.gov.hmcts.reform.civil.model.BusinessProcess;
import uk.gov.hmcts.reform.civil.model.CaseData;
import uk.gov.hmcts.reform.civil.model.genapplication.FeePaymentOutcomeDetails;
import uk.gov.hmcts.reform.civil.model.genapplication.HelpWithFeesDetails;
import uk.gov.hmcts.reform.civil.service.HwfNotificationService;
import uk.gov.hmcts.reform.civil.service.PaymentRequestUpdateCallbackService;
import uk.gov.hmcts.reform.civil.utils.HwFFeeTypeService;
Expand Down Expand Up @@ -68,31 +65,10 @@ private CallbackResponse setData(CallbackParams callbackParams) {
CaseData.CaseDataBuilder caseDataBuilder = caseData.toBuilder();
FeePaymentOutcomeDetails.FeePaymentOutcomeDetailsBuilder feeDetailBuilder = FeePaymentOutcomeDetails.builder();
feeDetailBuilder.hwfNumberAvailable(YesOrNo.NO);
if (caseData.getCcdState().equals(CaseState.APPLICATION_ADD_PAYMENT)) {
caseDataBuilder.hwfFeeType(FeeType.ADDITIONAL);
if (Objects.isNull(caseData.getAdditionalHwfDetails())) {
caseDataBuilder.additionalHwfDetails(HelpWithFeesDetails.builder()
.hwfFeeType(FeeType.ADDITIONAL).build());
}
if (Objects.nonNull(caseData.getGaAdditionalHelpWithFees())
&& Objects.nonNull(caseData.getGaAdditionalHelpWithFees().getHelpWithFeesReferenceNumber())) {
feeDetailBuilder.hwfNumberAvailable(YesOrNo.YES)
.hwfNumberForFeePaymentOutcome(caseData.getGaAdditionalHelpWithFees()
.getHelpWithFeesReferenceNumber());
}
} else {
caseDataBuilder.hwfFeeType(FeeType.APPLICATION);
if (Objects.isNull(caseData.getGaHwfDetails())) {
caseDataBuilder.gaHwfDetails(HelpWithFeesDetails.builder()
.hwfFeeType(FeeType.APPLICATION).build());

}
if (Objects.nonNull(caseData.getGeneralAppHelpWithFees())
&& Objects.nonNull(caseData.getGeneralAppHelpWithFees().getHelpWithFeesReferenceNumber())) {
feeDetailBuilder.hwfNumberAvailable(YesOrNo.YES)
.hwfNumberForFeePaymentOutcome(caseData.getGeneralAppHelpWithFees()
.getHelpWithFeesReferenceNumber());
}
if (Objects.nonNull(caseData.getGeneralAppHelpWithFees())
&& Objects.nonNull(caseData.getGeneralAppHelpWithFees().getHelpWithFeesReferenceNumber())) {
feeDetailBuilder.hwfNumberAvailable(YesOrNo.YES)
.hwfNumberForFeePaymentOutcome(caseData.getGeneralAppHelpWithFees().getHelpWithFeesReferenceNumber());
}
caseDataBuilder.feePaymentOutcomeDetails(feeDetailBuilder.build());
return AboutToStartOrSubmitCallbackResponse.builder()
Expand All @@ -107,13 +83,13 @@ private CallbackResponse validateSelectedRemissionType(CallbackParams callbackPa
if ((caseData.isHWFTypeApplication()
&& caseData.getFeePaymentOutcomeDetails().getHwfFullRemissionGrantedForGa() == YesOrNo.YES
&& Objects.nonNull(caseData.getGaHwfDetails())
&& Objects.nonNull(caseData.getGaHwfDetails().getOutstandingFeeInPounds())
&& !Objects.equals(caseData.getGaHwfDetails().getOutstandingFeeInPounds(), BigDecimal.ZERO))
&& Objects.nonNull(caseData.getGaHwfDetails().getOutstandingFee())
&& !Objects.equals(caseData.getGaHwfDetails().getOutstandingFee(), BigDecimal.ZERO))
|| (caseData.isHWFTypeAdditional()
&& caseData.getFeePaymentOutcomeDetails().getHwfFullRemissionGrantedForAdditionalFee() == YesOrNo.YES
&& Objects.nonNull(caseData.getAdditionalHwfDetails())
&& Objects.nonNull(caseData.getAdditionalHwfDetails().getOutstandingFeeInPounds())
&& !Objects.equals(caseData.getAdditionalHwfDetails().getOutstandingFeeInPounds(), BigDecimal.ZERO))) {
&& Objects.nonNull(caseData.getAdditionalHwfDetails().getOutstandingFee())
&& !Objects.equals(caseData.getAdditionalHwfDetails().getOutstandingFee(), BigDecimal.ZERO))) {
errors.add(WRONG_REMISSION_TYPE_SELECTED);
}
return AboutToStartOrSubmitCallbackResponse.builder()
Expand Down Expand Up @@ -154,15 +130,17 @@ private CallbackResponse submitFeePaymentOutcome(CallbackParams callbackParams)
.fee(caseData.getGeneralAppPBADetails().getFee())
.hwfReferenceNumber(caseData
.getGeneralAppHelpWithFees()
.getHelpWithFeesReferenceNumber()).build())
.getHelpWithFeesReferenceNumber())
.outstandingFee(BigDecimal.ZERO).build())
.businessProcess(BusinessProcess.ready(caseEvent)).build();
} else if (processedCaseData.isHWFTypeAdditional()) {
caseData = processedCaseData.toBuilder()
.additionalHwfDetails(caseData.getAdditionalHwfDetails().toBuilder()
.fee(caseData.getGeneralAppPBADetails().getFee())
.hwfReferenceNumber(caseData
.getGeneralAppHelpWithFees()
.getHelpWithFeesReferenceNumber()).build())
.getHelpWithFeesReferenceNumber())
.outstandingFee(BigDecimal.ZERO).build())
.businessProcess(BusinessProcess.ready(UPDATE_GA_ADD_HWF))
.build();
log.info("Start business process UPDATE_GA_ADD_HWF for caseId: {}", callbackParams.getCaseData().getCcdCaseReference());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,14 @@ private CallbackResponse fullRemissionHWF(CallbackParams callbackParams) {
.ifPresentOrElse(
gaHwfDetails -> updatedData.gaHwfDetails(
gaHwfDetails.toBuilder().remissionAmount(feeAmount)
.outstandingFeeInPounds(BigDecimal.ZERO)
.outstandingFee(BigDecimal.ZERO)
.hwfFeeType(FeeType.APPLICATION)
.hwfCaseEvent(FULL_REMISSION_HWF_GA)
.build()
),
() -> updatedData.gaHwfDetails(
HelpWithFeesDetails.builder().remissionAmount(feeAmount)
.outstandingFeeInPounds(BigDecimal.ZERO)
.outstandingFee(BigDecimal.ZERO)
.hwfFeeType(FeeType.APPLICATION)
.hwfCaseEvent(FULL_REMISSION_HWF_GA)
.build()
Expand All @@ -79,15 +79,16 @@ private CallbackResponse fullRemissionHWF(CallbackParams callbackParams) {
log.info("HWF fee type is additional for caseId: {}", callbackParams.getCaseData().getCcdCaseReference());
Optional.ofNullable(caseData.getAdditionalHwfDetails())
.ifPresentOrElse(
hearingHwfDetails -> updatedData.additionalHwfDetails(
HelpWithFeesDetails.builder().remissionAmount(feeAmount)
.outstandingFeeInPounds(BigDecimal.ZERO)
additionalHwfDetails -> updatedData.additionalHwfDetails(
additionalHwfDetails.toBuilder().remissionAmount(feeAmount)
.outstandingFee(BigDecimal.ZERO)
.hwfCaseEvent(FULL_REMISSION_HWF_GA)
.hwfFeeType(FeeType.ADDITIONAL)
.build()
),
() -> updatedData.additionalHwfDetails(
HelpWithFeesDetails.builder().remissionAmount(feeAmount)
.outstandingFee(BigDecimal.ZERO)
.hwfCaseEvent(FULL_REMISSION_HWF_GA)
.hwfFeeType(FeeType.ADDITIONAL)
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class HelpWithFeesDetails {
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal remissionAmount;
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal outstandingFeeInPounds;
private BigDecimal outstandingFee;
private String noRemissionDetails;
private NoRemissionDetailsSummary noRemissionDetailsSummary;
private String hwfReferenceNumber;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,17 @@ public HashMap<String, Object> mapCaseDataToParams(CaseData caseData) {
if (caseData.getGaHwfDetails().getHwfCaseEvent() != null
&& caseData.getGaHwfDetails().getHwfCaseEvent().equals(CaseEvent.PARTIAL_REMISSION_HWF_GA)) {
params.put("remissionAmount", "£" + MonetaryConversions.penniesToPounds(caseData.getGaHwfDetails().getRemissionAmount()));
params.put("outstandingFeeInPounds", "£" + caseData.getGaHwfDetails().getOutstandingFeeInPounds());
params.put("outstandingFeeInPounds", "£" + MonetaryConversions
.penniesToPounds(caseData.getGaHwfDetails().getOutstandingFee()));
}
} else if (caseData.getAdditionalHwfDetails() != null && (caseData.getHwfFeeType() != null
&& FeeType.ADDITIONAL == caseData.getHwfFeeType())) {
if (caseData.getAdditionalHwfDetails().getHwfCaseEvent() != null
&& caseData.getAdditionalHwfDetails().getHwfCaseEvent().equals(CaseEvent.PARTIAL_REMISSION_HWF_GA)) {
params.put("remissionAmount", "£" + MonetaryConversions.penniesToPounds(caseData.getAdditionalHwfDetails()
.getRemissionAmount()));
params.put("outstandingFeeInPounds", "£" + caseData.getAdditionalHwfDetails().getOutstandingFeeInPounds());
params.put("outstandingFeeInPounds", "£" + MonetaryConversions
.penniesToPounds(caseData.getAdditionalHwfDetails().getOutstandingFee()));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,13 @@ private Map<String, String> getPartialRemissionProperties(CaseData caseData) {
if (caseData.isHWFTypeApplication()) {
remission = MonetaryConversions
.penniesToPounds(HwFFeeTypeService.getGaRemissionAmount(caseData));
outstanding = caseData.getGaHwfDetails().getOutstandingFeeInPounds();
outstanding = MonetaryConversions
.penniesToPounds(caseData.getGaHwfDetails().getOutstandingFee());
} else {
remission = MonetaryConversions
.penniesToPounds(HwFFeeTypeService.getAdditionalRemissionAmount(caseData));
outstanding = caseData.getAdditionalHwfDetails().getOutstandingFeeInPounds();
outstanding = MonetaryConversions
.penniesToPounds(caseData.getAdditionalHwfDetails().getOutstandingFee());
}
return Map.of(
PART_AMOUNT, remission.toString(),
Expand All @@ -125,10 +127,12 @@ private Map<String, String> getNoRemissionProperties(CaseData caseData) {
BigDecimal outstanding;
if (caseData.isHWFTypeApplication()) {
remission = caseData.getGaHwfDetails().getNoRemissionDetailsSummary().getLabel();
outstanding = caseData.getGaHwfDetails().getOutstandingFeeInPounds();
outstanding = MonetaryConversions
.penniesToPounds(caseData.getGaHwfDetails().getOutstandingFee());
} else {
remission = caseData.getAdditionalHwfDetails().getNoRemissionDetailsSummary().getLabel();
outstanding = caseData.getAdditionalHwfDetails().getOutstandingFeeInPounds();
outstanding = MonetaryConversions
.penniesToPounds(caseData.getAdditionalHwfDetails().getOutstandingFee());
}
return Map.of(
FEE_AMOUNT, outstanding.toString(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,15 @@ public static CaseData updateOutstandingFee(CaseData caseData, String caseEventI
updatedData.gaHwfDetails(
caseData.getGaHwfDetails().toBuilder()
.remissionAmount(gaRemissionAmount)
.outstandingFeeInPounds(MonetaryConversions.penniesToPounds(outstandingFeeAmount))
.outstandingFee(outstandingFeeAmount)
.build()
);
} else if (caseData.isHWFTypeAdditional() && BigDecimal.ZERO.compareTo(feeAmount) != 0) {
outstandingFeeAmount = feeAmount.subtract(hearingRemissionAmount);
updatedData.additionalHwfDetails(
caseData.getAdditionalHwfDetails().toBuilder()
.remissionAmount(hearingRemissionAmount)
.outstandingFeeInPounds(MonetaryConversions.penniesToPounds(outstandingFeeAmount))
.outstandingFee(outstandingFeeAmount)
.build()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ void updateFeeType_shouldSetAdditionalFeeTypeWithEmptyRef_whenCaseStateIsApplica
CaseData caseData = CaseData.builder()
.ccdState(CaseState.APPLICATION_ADD_PAYMENT)
.generalAppHelpWithFees(HelpWithFees.builder().build())
.hwfFeeType(FeeType.ADDITIONAL)
.generalAppPBADetails(GAPbaDetails.builder().fee(
Fee.builder()
.calculatedAmountInPence(BigDecimal.valueOf(180))
Expand All @@ -103,7 +104,8 @@ void updateFeeType_shouldSetAdditionalFeeTypeWithRef_whenCaseStateIsApplicationA
// Arrange
CaseData caseData = CaseData.builder()
.ccdState(CaseState.APPLICATION_ADD_PAYMENT)
.gaAdditionalHelpWithFees(HelpWithFees.builder().helpWithFeesReferenceNumber("123").build())
.hwfFeeType(FeeType.ADDITIONAL)
.generalAppHelpWithFees(HelpWithFees.builder().helpWithFeesReferenceNumber("123").build())
.build();

// Act
Expand All @@ -121,6 +123,7 @@ void updateFeeType_shouldSetApplicationFeeTypeWithEmptyRef_whenCaseStateIsNotApp
// Arrange
CaseData caseData = CaseData.builder()
.ccdState(CaseState.AWAITING_RESPONDENT_RESPONSE)
.hwfFeeType(FeeType.APPLICATION)
.generalAppHelpWithFees(HelpWithFees.builder().build())
.generalAppPBADetails(GAPbaDetails.builder().fee(
Fee.builder()
Expand All @@ -143,6 +146,7 @@ void updateFeeType_shouldSetApplicationFeeTypeWithRef_whenCaseStateIsNotApplicat
// Arrange
CaseData caseData = CaseData.builder()
.ccdState(CaseState.AWAITING_RESPONDENT_RESPONSE)
.hwfFeeType(FeeType.APPLICATION)
.generalAppHelpWithFees(HelpWithFees.builder().helpWithFeesReferenceNumber("123").build())
.build();

Expand Down Expand Up @@ -170,7 +174,7 @@ void shouldValidationFeePaymentOutcomeGa_withInvalidOutstandingFee() {
.hwfFullRemissionGrantedForGa(YesOrNo.YES).build())
.hwfFeeType(FeeType.APPLICATION)
.gaHwfDetails(HelpWithFeesDetails.builder()
.outstandingFeeInPounds(BigDecimal.valueOf(100.00))
.outstandingFee(BigDecimal.valueOf(100.00))
.build())
.build();
//When
Expand All @@ -189,7 +193,7 @@ void shouldValidationFeePaymentOutcomeAdditional_withInvalidOutstandingFee() {
.hwfFullRemissionGrantedForAdditionalFee(YesOrNo.YES).build())
.hwfFeeType(FeeType.ADDITIONAL)
.additionalHwfDetails(HelpWithFeesDetails.builder()
.outstandingFeeInPounds(BigDecimal.valueOf(100.00))
.outstandingFee(BigDecimal.valueOf(100.00))
.build())
.build();
//When
Expand Down
Loading
Loading