diff --git a/src/app/products/saving-products/saving-product-stepper/saving-product-accounting-step/saving-product-accounting-step.component.ts b/src/app/products/saving-products/saving-product-stepper/saving-product-accounting-step/saving-product-accounting-step.component.ts index 29c600230..9f45429ff 100644 --- a/src/app/products/saving-products/saving-product-stepper/saving-product-accounting-step/saving-product-accounting-step.component.ts +++ b/src/app/products/saving-products/saving-product-stepper/saving-product-accounting-step/saving-product-accounting-step.component.ts @@ -193,7 +193,8 @@ export class SavingProductAccountingStepComponent implements OnInit { penaltiesReceivableAccountId: mappings.penaltyReceivableAccount?.id || '', interestPayableAccountId: mappings.interestPayableAccount?.id || '', interestReceivableAccountId: mappings.interestReceivableAccount?.id || '', - escheatLiabilityId: mappings.escheatLiabilityAccount?.id || '' + escheatLiabilityId: mappings.escheatLiabilityAccount?.id || '', + roundingAdjustmentAccountId: mappings.roundingAdjustmentAccount?.id || '' }); 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. addControl('savingsInterestPayableAccountId', 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 // 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. @@ -427,6 +431,7 @@ export class SavingProductAccountingStepComponent implements OnInit { removeControl('escheatLiabilityId'); removeControl('savingsInterestPayableAccountId'); removeControl('savingsInterestPaidAccountId'); + removeControl('roundingAdjustmentAccountId'); this.clearOtherGlMappings(); } } @@ -563,6 +568,15 @@ export class SavingProductAccountingStepComponent implements OnInit { inputLabel: 'Savings interest paid', controlName: 'savingsInterestPaidAccountId', 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', diff --git a/src/environments/.env.ts b/src/environments/.env.ts index 84cda5934..ea6c18341 100644 --- a/src/environments/.env.ts +++ b/src/environments/.env.ts @@ -9,8 +9,8 @@ /* tslint:disable */ export default { 'mifos_x': { - 'version': '260910', - 'hash': 'f0c06988' + 'version': '260911', + 'hash': 'fd5fe6e3' }, 'allow_switching_backend_instance': true };