feat(savings): add rounding adjustment account mapping in savings product accounting
Tests / testRigor (push) Canceled after 0s
build-run / Run Lint, Build and Deploy (push) Canceled after 0s
Publish Image in Docker Hub / build (push) Canceled after 0s
Playwright E2E Tests / Run Playwright Tests (push) Canceled after 0s

This commit is contained in:
2026-09-11 10:48:32 +05:30
parent fd5fe6e3b2
commit d8a2deec3f
2 changed files with 17 additions and 3 deletions
@@ -193,7 +193,8 @@ export class SavingProductAccountingStepComponent implements OnInit {
penaltiesReceivableAccountId: mappings.penaltyReceivableAccount?.id || '', penaltiesReceivableAccountId: mappings.penaltyReceivableAccount?.id || '',
interestPayableAccountId: mappings.interestPayableAccount?.id || '', interestPayableAccountId: mappings.interestPayableAccount?.id || '',
interestReceivableAccountId: mappings.interestReceivableAccount?.id || '', interestReceivableAccountId: mappings.interestReceivableAccount?.id || '',
escheatLiabilityId: mappings.escheatLiabilityAccount?.id || '' escheatLiabilityId: mappings.escheatLiabilityAccount?.id || '',
roundingAdjustmentAccountId: mappings.roundingAdjustmentAccount?.id || ''
}); });
if (this.isCashOrAccrualAccounting()) { if (this.isCashOrAccrualAccounting()) {
@@ -385,6 +386,9 @@ export class SavingProductAccountingStepComponent implements OnInit {
// rather than as named accounting params, which would be silently dropped. Optional by design. // rather than as named accounting params, which would be silently dropped. Optional by design.
addControl('savingsInterestPayableAccountId', false); addControl('savingsInterestPayableAccountId', false);
addControl('savingsInterestPaidAccountId', false); addControl('savingsInterestPaidAccountId', false);
// A real accounting param, unlike the two above, so it rides out as itself rather than
// inside otherGlMappings. Optional: a product saved without one still closes.
addControl('roundingAdjustmentAccountId', false);
// Transfers In Suspense / Income From Interest / Write Off / Overdraft Portfolio Control are // Transfers In Suspense / Income From Interest / Write Off / Overdraft Portfolio Control are
// intentionally not offered on this screen, so their controls are never added — leaving them in // intentionally not offered on this screen, so their controls are never added — leaving them in
// with required validators would keep the form invalid with no visible field to fix. // with required validators would keep the form invalid with no visible field to fix.
@@ -427,6 +431,7 @@ export class SavingProductAccountingStepComponent implements OnInit {
removeControl('escheatLiabilityId'); removeControl('escheatLiabilityId');
removeControl('savingsInterestPayableAccountId'); removeControl('savingsInterestPayableAccountId');
removeControl('savingsInterestPaidAccountId'); removeControl('savingsInterestPaidAccountId');
removeControl('roundingAdjustmentAccountId');
this.clearOtherGlMappings(); this.clearOtherGlMappings();
} }
} }
@@ -563,6 +568,15 @@ export class SavingProductAccountingStepComponent implements OnInit {
inputLabel: 'Savings interest paid', inputLabel: 'Savings interest paid',
controlName: 'savingsInterestPaidAccountId', controlName: 'savingsInterestPaidAccountId',
options: this.expenseAccountOptions options: this.expenseAccountOptions
},
{
// Cash has no paise, so a closing balance of 9,883.79 is handed over as 9,883 and the
// 79 paise land here rather than on the member's own ledger.
key: 'roundingAdjustmentAccountId',
label: 'Rounding Adjustment Account',
inputLabel: 'Rounding adjustment account',
controlName: 'roundingAdjustmentAccountId',
options: this.expenseAccountOptions
} }
], ],
otherMappingsControlName: 'expensesOtherGlMappings', otherMappingsControlName: 'expensesOtherGlMappings',
+2 -2
View File
@@ -9,8 +9,8 @@
/* tslint:disable */ /* tslint:disable */
export default { export default {
'mifos_x': { 'mifos_x': {
'version': '260910', 'version': '260911',
'hash': 'f0c06988' 'hash': 'fd5fe6e3'
}, },
'allow_switching_backend_instance': true 'allow_switching_backend_instance': true
}; };