Skip to content

Commit

Permalink
Merge branch 'master' into testPR_automation
Browse files Browse the repository at this point in the history
  • Loading branch information
rajakm authored Jan 28, 2025
2 parents c24a110 + 9e2cf8f commit 0191fcf
Show file tree
Hide file tree
Showing 23 changed files with 390 additions and 147 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
public interface NotificationData {

String CASE_REFERENCE = "claimReferenceNumber";
String GENAPP_REFERENCE = "GenAppclaimReferenceNumber";
String PARTY_REFERENCE = "partyReferences";
String APPLICANT_REFERENCE = "claimantOrDefendant";
String GA_NOTIFICATION_DEADLINE = "notificationDeadLine";
String GA_APPLICATION_TYPE = "generalAppType";
Expand Down
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 @@ -365,6 +365,7 @@ public class CaseData implements MappableObject {
private YesOrNo respondentBilingualLanguagePreference;
//WA claim track description
private final String gaWaTrackLabel;
private final String emailPartyReference;

@Builder.Default
private final List<Value<Document>> caseDocuments = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ public class GeneralApplication implements MappableObject {
private String caseNameGaInternal;
//WA claim track description
private final String gaWaTrackLabel;
private final String emailPartyReference;

@JsonCreator
GeneralApplication(@JsonProperty("generalAppType") GAApplicationType generalAppType,
Expand Down Expand Up @@ -138,7 +139,8 @@ public class GeneralApplication implements MappableObject {
@JsonProperty("generalAppHelpWithFees") HelpWithFees generalAppHelpWithFees,
@JsonProperty("certOfSC") CertOfSC certOfSC,
@JsonProperty("caseNameGaInternal") String caseNameGaInternal,
@JsonProperty("gaWaTrackLabel") String gaWaTrackLabel) {
@JsonProperty("gaWaTrackLabel") String gaWaTrackLabel,
@JsonProperty("emailPartyReference") String emailPartyReference) {
this.generalAppType = generalAppType;
this.generalAppRespondentAgreement = generalAppRespondentAgreement;
this.generalAppConsentOrder = generalAppConsentOrder;
Expand Down Expand Up @@ -191,6 +193,7 @@ public class GeneralApplication implements MappableObject {
this.certOfSC = certOfSC;
this.caseNameGaInternal = caseNameGaInternal;
this.gaWaTrackLabel = gaWaTrackLabel;
this.emailPartyReference = emailPartyReference;
}

@JsonIgnore
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 @@ -25,6 +25,7 @@ public class DocUploadNotificationService implements NotificationData {
private final NotificationService notificationService;
private final NotificationsProperties notificationProperties;
private static final String REFERENCE_TEMPLATE_DOC_UPLOAD = "general-apps-notice-of-document-upload-%s";
private static final String EMPTY_SOLICITOR_REFERENCES_1V1 = "Claimant Reference: Not provided - Defendant Reference: Not provided";
private final GaForLipService gaForLipService;
private final Map<String, String> customProps = new HashMap<>();
private final CoreCaseDataService coreCaseDataService;
Expand Down Expand Up @@ -113,6 +114,9 @@ public Map<String, String> addProperties(CaseData caseData) {
}

customProps.put(CASE_REFERENCE, caseData.getCcdCaseReference().toString());
customProps.put(PARTY_REFERENCE,
Objects.requireNonNull(getSolicitorReferences(caseData.getEmailPartyReference())));
customProps.put(GENAPP_REFERENCE, String.valueOf(Objects.requireNonNull(caseData.getCcdCaseReference())));
return customProps;
}

Expand All @@ -126,6 +130,14 @@ public static String getAllPartyNames(CaseData caseData) {
? ", " + caseData.getDefendant2PartyName() : "");
}

private String getSolicitorReferences(String emailPartyReference) {
if (emailPartyReference != null) {
return emailPartyReference;
} else {
return EMPTY_SOLICITOR_REFERENCES_1V1;
}
}

public String getSurname(CaseData caseData) {
String surname = "";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ public class GeneralApplicationCreationNotificationService implements Notificat

private static final String REFERENCE_TEMPLATE = "general-application-respondent-notification-%s";

private static final String EMPTY_SOLICITOR_REFERENCES_1V1 = "Claimant Reference: Not provided - Defendant Reference: Not provided";

private final ObjectMapper objectMapper;
private final NotificationService notificationService;
private final NotificationsProperties notificationProperties;
Expand Down Expand Up @@ -117,6 +119,14 @@ private String getLiPTemplate(CaseData civilCaseData, CaseData caseData) {
: notificationProperties.getLipGeneralAppRespondentEmailTemplate();
}

private String getSolicitorReferences(String emailPartyReference) {
if (emailPartyReference != null) {
return emailPartyReference;
} else {
return EMPTY_SOLICITOR_REFERENCES_1V1;
}
}

private void sendNotificationToGeneralAppRespondent(CaseData caseData, String recipient, String emailTemplate)
throws NotificationException {
var caseReference = caseData.getCcdCaseReference();
Expand Down Expand Up @@ -148,9 +158,12 @@ public Map<String, String> addProperties(CaseData caseData) {
return Map.of(
APPLICANT_REFERENCE, YES.equals(caseData.getParentClaimantIsApplicant()) ? "claimant" : "respondent",
CASE_REFERENCE, caseData.getGeneralAppParentCaseLink().getCaseReference(),
GENAPP_REFERENCE, String.valueOf(Objects.requireNonNull(caseData.getCcdCaseReference())),
GA_NOTIFICATION_DEADLINE, DateFormatHelper
.formatLocalDateTime(caseData
.getGeneralAppNotificationDeadlineDate(), DATE),
PARTY_REFERENCE,
Objects.requireNonNull(getSolicitorReferences(caseData.getEmailPartyReference())),
GA_LIP_RESP_NAME, lipRespName,

CASE_TITLE, Objects.requireNonNull(caseTitle)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public class HearingScheduledNotificationService implements NotificationData {
private final Map<String, String> customProps = new HashMap<>();
private final GaForLipService gaForLipService;
private static final String REFERENCE_TEMPLATE_HEARING = "general-apps-notice-of-hearing-%s";
private static final String EMPTY_SOLICITOR_REFERENCES_1V1 = "Claimant Reference: Not provided - Defendant Reference: Not provided";
private static final String RESPONDENT = "respondent";
private static final String APPLICANT = "applicant";

Expand All @@ -46,9 +47,12 @@ public Map<String, String> addProperties(CaseData caseData) {
LocalTime hearingTime = LocalTime.of(hours, minutes, 0);

customProps.put(CASE_REFERENCE, caseData.getGeneralAppParentCaseLink().getCaseReference());
customProps.put(GENAPP_REFERENCE, String.valueOf(Objects.requireNonNull(caseData.getCcdCaseReference())));
customProps.put(GA_HEARING_DATE, DateFormatHelper
.formatLocalDate(caseData.getGaHearingNoticeDetail().getHearingDate(), DATE));
customProps.put(GA_HEARING_TIME, hearingTime.toString());
customProps.put(PARTY_REFERENCE,
Objects.requireNonNull(getSolicitorReferences(caseData.getEmailPartyReference())));
if (gaForLipService.isGaForLip(caseData)) {
customProps.put(CASE_TITLE, Objects.requireNonNull(JudicialFinalDecisionHandler
.getAllPartyNames(caseData)));
Expand Down Expand Up @@ -115,6 +119,14 @@ private String getLiPApplicantTemplates(CaseData caseData) {
: notificationProperties.getLipGeneralAppApplicantEmailTemplate();
}

private String getSolicitorReferences(String emailPartyReference) {
if (emailPartyReference != null) {
return emailPartyReference;
} else {
return EMPTY_SOLICITOR_REFERENCES_1V1;
}
}

public CaseData sendNotificationForDefendant(CaseData caseData) throws NotificationException {

CaseData civilCaseData = caseDetailsConverter
Expand Down
Loading

0 comments on commit 0191fcf

Please sign in to comment.