Skip to content

Commit 85d4cc0

Browse files
committed
simplify quote schedules
1 parent dc3ea27 commit 85d4cc0

File tree

6 files changed

+64
-120
lines changed

6 files changed

+64
-120
lines changed

io/out/GeneratedDate.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<p>Generated: <i>2025-05-22 18:35:34 +01:00</i> using library version: <i>2.5.0</i></p>
1+
<p>Generated: <i>2025-05-27 12:34:29 +01:00</i> using library version: <i>2.5.0</i></p>

src/Quotes.fs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,14 @@ module Quotes =
3434
type Quote = {
3535
// the quote result
3636
QuoteResult: QuoteResult
37-
// a statement showing the schedule at the time the quote was generated
38-
CurrentSchedules: GenerationResult
3937
// the revised schedule showing the settlement, if applicable
40-
RevisedSchedules: GenerationResult
38+
Schedules: GenerationResult
4139
}
4240

4341
/// calculates a revised schedule showing the generated payment for the given quote type
4442
let getQuote (p: Parameters) (actualPayments: Map<int<OffsetDay>, ActualPayment array>) =
45-
// generate a statement showing the current state of the amortisation schedule - this will only be used in the return value in case the caller requires a comparison
46-
let currentSchedules = amortise p actualPayments
4743
// generate a revised statement showing a generated settlement figure on the relevant date
48-
let revisedSchedules =
44+
let schedules =
4945
amortise
5046
{
5147
p with
@@ -55,7 +51,7 @@ module Quotes =
5551
actualPayments
5652
// try to get the schedule item containing the generated value
5753
let si =
58-
revisedSchedules.AmortisationSchedule.ScheduleItems
54+
schedules.AmortisationSchedule.ScheduleItems
5955
|> Map.values
6056
|> Seq.tryFind (fun si ->
6157
match si.GeneratedPayment, si.PaymentStatus with
@@ -67,7 +63,7 @@ module Quotes =
6763
|> Option.defaultWith (fun () -> failwith "Unable to find relevant schedule item")
6864
// get an array of payments pending anywhere in the revised amortisation schedule
6965
let pendingPayments =
70-
revisedSchedules.AmortisationSchedule.ScheduleItems
66+
schedules.AmortisationSchedule.ScheduleItems
7167
|> Map.values
7268
|> Seq.sumBy (_.ActualPayments >> Array.sumBy ActualPayment.totalPending)
7369
// produce a quote result
@@ -135,6 +131,5 @@ module Quotes =
135131
// return the quote result
136132
{
137133
QuoteResult = quoteResult
138-
CurrentSchedules = currentSchedules
139-
RevisedSchedules = revisedSchedules
134+
Schedules = schedules
140135
}

src/Refinancing.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ module Refinancing =
179179

180180
// append the new schedule to the old schedule up to the point of settlement
181181
let oldPaymentSchedule =
182-
quote.RevisedSchedules.AmortisationSchedule.ScheduleItems
182+
quote.Schedules.AmortisationSchedule.ScheduleItems
183183
|> Map.filter (fun _ si -> ScheduledPayment.isSome si.ScheduledPayment)
184184
|> Map.map (fun _ si -> si.ScheduledPayment)
185185
|> Map.toArray
@@ -210,7 +210,7 @@ module Refinancing =
210210

211211
// return the results
212212
{|
213-
OldSchedules = quote.RevisedSchedules
213+
OldSchedules = quote.Schedules
214214
NewSchedules = rescheduledSchedules
215215
|}
216216

@@ -308,6 +308,6 @@ module Refinancing =
308308

309309
// return the results
310310
{|
311-
OldSchedules = quote.RevisedSchedules
311+
OldSchedules = quote.Schedules
312312
NewSchedules = rolledOverSchedules
313313
|}

tests/EdgeCaseTests.fs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ module EdgeCaseTests =
8181
let actual =
8282
let quote = getQuote parameters1 actualPayments
8383

84-
quote.RevisedSchedules
84+
quote.Schedules
8585
|> Schedule.outputHtmlToFile folder title description parameters1 ""
8686

8787
quote.QuoteResult
@@ -125,8 +125,7 @@ module EdgeCaseTests =
125125
let actual =
126126
let quote = getQuote p actualPayments
127127

128-
quote.RevisedSchedules
129-
|> Schedule.outputHtmlToFile folder title description p ""
128+
quote.Schedules |> Schedule.outputHtmlToFile folder title description p ""
130129

131130
quote.QuoteResult
132131

@@ -169,8 +168,7 @@ module EdgeCaseTests =
169168
let actual =
170169
let quote = getQuote p actualPayments
171170

172-
quote.RevisedSchedules
173-
|> Schedule.outputHtmlToFile folder title description p ""
171+
quote.Schedules |> Schedule.outputHtmlToFile folder title description p ""
174172

175173
quote.QuoteResult
176174

@@ -287,8 +285,7 @@ module EdgeCaseTests =
287285
let actual =
288286
let quote = getQuote p actualPayments
289287

290-
quote.RevisedSchedules
291-
|> Schedule.outputHtmlToFile folder title description p ""
288+
quote.Schedules |> Schedule.outputHtmlToFile folder title description p ""
292289

293290
quote.QuoteResult
294291

@@ -426,8 +423,7 @@ module EdgeCaseTests =
426423
let actual =
427424
let quote = getQuote p actualPayments
428425

429-
quote.RevisedSchedules
430-
|> Schedule.outputHtmlToFile folder title description p ""
426+
quote.Schedules |> Schedule.outputHtmlToFile folder title description p ""
431427

432428
quote.QuoteResult
433429

@@ -560,7 +556,7 @@ module EdgeCaseTests =
560556
let actual =
561557
let quote = getQuote parameters2 actualPayments
562558

563-
quote.RevisedSchedules
559+
quote.Schedules
564560
|> Schedule.outputHtmlToFile folder title description parameters2 ""
565561

566562
quote.QuoteResult
@@ -619,8 +615,7 @@ module EdgeCaseTests =
619615
let actual =
620616
let quote = getQuote p actualPayments
621617

622-
quote.RevisedSchedules
623-
|> Schedule.outputHtmlToFile folder title description p ""
618+
quote.Schedules |> Schedule.outputHtmlToFile folder title description p ""
624619

625620
quote.QuoteResult
626621

0 commit comments

Comments
 (0)