static buildHowYouWantToRespondSection (draft: DraftClaimantResponse, claim: Claim, mediationDraft: MediationDraft): TaskList {
if (StatesPaidHelper.isResponseAlreadyPaid(claim)) {
return this.buildStatesPaidHowYouWantToRespondSection(draft, claim, mediationDraft)
}
const externalId: string = claim.externalId
const tasks: TaskListItem[] = []
if (claim.response.responseType === ResponseType.FULL_DEFENCE
&& claim.response.freeMediation === YesNoOption.NO) {
tasks.push(
new TaskListItem(
'Accept or reject their response',
Paths.notImplementedYetPage.evaluateUri({ externalId: externalId }),
false
)
)
}
if (claim.response.responseType === ResponseType.PART_ADMISSION
&& claim.response.paymentIntention !== undefined) {
tasks.push(
new TaskListItem(
'Accept or reject the ' + NumberFormatter.formatMoney(claim.response.amount),
Paths.settleAdmittedPage.evaluateUri({ externalId: externalId }),
SettleAdmittedTask.isCompleted(draft.settleAdmitted)
)
)
if (draft.settleAdmitted
&& draft.settleAdmitted.admitted.option === YesNoOption.YES
&& claim.response.paymentIntention.paymentOption !== PaymentOption.IMMEDIATELY) {
tasks.push(
new TaskListItem(
'Accept or reject their repayment plan',
Paths.acceptPaymentMethodPage.evaluateUri({ externalId: externalId }),
AcceptPaymentMethodTask.isCompleted(draft.acceptPaymentMethod)
)
)
}
this.buildProposeAlternateRepaymentPlanTask(draft, tasks, externalId)
if (!claim.claimData.defendant.isBusiness() || (draft.acceptPaymentMethod && draft.acceptPaymentMethod.accept.option === YesNoOption.YES)) {
this.buildFormaliseRepaymentPlan(draft, tasks, externalId)
}
this.buildSignSettlementAgreement(draft, tasks, externalId)
this.buildRequestCountyCourtJudgment(draft, tasks, externalId)
if (claim.response.freeMediation === YesNoOption.YES
&& draft.settleAdmitted
&& draft.settleAdmitted.admitted.option === YesNoOption.NO) {
if (FeatureToggles.isEnabled('mediation')) {
const path = MediationPaths.freeMediationPage.evaluateUri({ externalId: claim.externalId })
tasks.push(
new TaskListItem(
'Free telephone mediation',
path,
FreeMediationTask.isCompleted(draft, mediationDraft)
))
} else {
const path = Paths.freeMediationPage.evaluateUri({ externalId: claim.externalId })
tasks.push(
new TaskListItem(
'Consider free mediation',
path,
FreeMediationTask.isCompleted(draft, mediationDraft)
))
}
}
}
if (claim.response.responseType === ResponseType.FULL_ADMISSION
&& claim.response.paymentIntention.paymentOption !== PaymentOption.IMMEDIATELY
) {
tasks.push(
new TaskListItem(
'Accept or reject their repayment plan',
Paths.acceptPaymentMethodPage.evaluateUri({ externalId: externalId }),
AcceptPaymentMethodTask.isCompleted(draft.acceptPaymentMethod)
)
)
this.buildProposeAlternateRepaymentPlanTask(draft, tasks, externalId)
if (!claim.claimData.defendant.isBusiness() || (draft.acceptPaymentMethod && draft.acceptPaymentMethod.accept.option === YesNoOption.YES)) {
this.buildFormaliseRepaymentPlan(draft, tasks, externalId)
}
this.buildSignSettlementAgreement(draft, tasks, externalId)
this.buildRequestCountyCourtJudgment(draft, tasks, externalId)
}
return new TaskList('How do you want to respond?', tasks)
}
请发表评论