fix(application): preserve exact payment guidance amounts

This commit is contained in:
2026-03-24 01:49:04 +04:00
parent cbcd1a90ce
commit cd4cebf2d9

View File

@@ -37,20 +37,6 @@ function adjustmentApplies(
return (policy === 'utilities' && kind === 'utilities') || (policy === 'rent' && kind === 'rent') return (policy === 'utilities' && kind === 'utilities') || (policy === 'rent' && kind === 'rent')
} }
function roundSuggestedPayment(kind: 'rent' | 'utilities', amount: Money): Money {
if (kind !== 'rent' || amount.amountMinor <= 0n) {
return amount
}
const wholeMinor = amount.amountMinor / 100n
const remainderMinor = amount.amountMinor % 100n
return Money.fromMinor(
(remainderMinor >= 50n ? wholeMinor + 1n : wholeMinor) * 100n,
amount.currency
)
}
export function buildMemberPaymentGuidance(input: { export function buildMemberPaymentGuidance(input: {
kind: 'rent' | 'utilities' kind: 'rent' | 'utilities'
period: string period: string
@@ -62,10 +48,9 @@ export function buildMemberPaymentGuidance(input: {
const baseAmount = const baseAmount =
input.kind === 'rent' ? input.memberLine.rentShare : input.memberLine.utilityShare input.kind === 'rent' ? input.memberLine.rentShare : input.memberLine.utilityShare
const purchaseOffset = input.memberLine.purchaseOffset const purchaseOffset = input.memberLine.purchaseOffset
const proposalAmount = roundSuggestedPayment( const proposalAmount = adjustmentApplies(policy, input.kind)
input.kind, ? baseAmount.add(purchaseOffset)
adjustmentApplies(policy, input.kind) ? baseAmount.add(purchaseOffset) : baseAmount : baseAmount
)
const reminderDay = const reminderDay =
input.kind === 'rent' ? input.settings.rentWarningDay : input.settings.utilitiesReminderDay input.kind === 'rent' ? input.settings.rentWarningDay : input.settings.utilitiesReminderDay