Skip to content

Commit 49bc962

Browse files
authored
feature(savingsAccount): new savings account, terms step impl (#2503)
1 parent 20136d8 commit 49bc962

File tree

6 files changed

+730
-12
lines changed

6 files changed

+730
-12
lines changed

core/domain/src/commonMain/kotlin/com/mifos/core/domain/di/UseCaseModule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import com.mifos.core.domain.useCases.GetRunReportOfficesUseCase
6565
import com.mifos.core.domain.useCases.GetRunReportProductUseCase
6666
import com.mifos.core.domain.useCases.GetRunReportWithQueryUseCase
6767
import com.mifos.core.domain.useCases.GetSavingsAccountAndTemplateUseCase
68+
import com.mifos.core.domain.useCases.GetSavingsProductTemplateUseCase
6869
import com.mifos.core.domain.useCases.GetStaffInOfficeUseCase
6970
import com.mifos.core.domain.useCases.GetUserPathTrackingUseCase
7071
import com.mifos.core.domain.useCases.GroupsListPagingDataSource
@@ -105,6 +106,7 @@ val UseCaseModule = module {
105106
factoryOf(::CreateLoanAccountUseCase)
106107
factoryOf(::CreateLoanChargesUseCase)
107108
factoryOf(::CreateSavingsAccountUseCase)
109+
factoryOf(::GetSavingsProductTemplateUseCase)
108110
factoryOf(::GetClientTemplateUseCase)
109111
factoryOf(::DeleteCheckerUseCase)
110112
factoryOf(::DeleteClientAddressPinpointUseCase)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Copyright 2025 Mifos Initiative
3+
*
4+
* This Source Code Form is subject to the terms of the Mozilla Public
5+
* License, v. 2.0. If a copy of the MPL was not distributed with this
6+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
7+
*
8+
* See https://github.com/openMF/android-client/blob/master/LICENSE.md
9+
*/
10+
package com.mifos.core.domain.useCases
11+
12+
import com.mifos.core.common.utils.DataState
13+
import com.mifos.core.data.repository.SavingsAccountRepository
14+
import com.mifos.room.entities.templates.savings.SavingProductsTemplate
15+
import kotlinx.coroutines.flow.Flow
16+
17+
class GetSavingsProductTemplateUseCase(
18+
private val repository: SavingsAccountRepository,
19+
) {
20+
operator fun invoke(): Flow<DataState<SavingProductsTemplate>> {
21+
return repository.getSavingsAccountTemplate()
22+
}
23+
}

feature/savings/src/commonMain/composeResources/values/feature_savings_strings.xml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,37 @@
100100
<string name="feature_savings_savings_account_id">Savings Account Id</string>
101101
<string name="feature_savings_transaction_view_receipt">View Receipt</string>
102102

103+
103104
<string name="step_details">Details</string>
104105
<string name="step_terms">Terms</string>
105106
<string name="step_charges">Charges</string>
106107
<string name="step_preview">Preview</string>
108+
109+
<!-- TermsPage -->
110+
<string name="step_terms_min_monthly_balance_error">Minimum balance must be a positive number</string>
111+
<string name="step_terms_min_balance_required">Minimum balance is required</string>
112+
<string name="step_terms_lock_in_type_required">Lock-in period type is required</string>
113+
<string name="step_terms_lock_in_period_freq_error">Lock-in period frequency must be a positive number</string>
114+
<string name="step_terms_min_opening_balance_error">Minimum opening balance must be a positive number</string>
115+
<string name="step_terms_days_in_year_required">Days in year is required</string>
116+
<string name="step_terms_interest_calc_required">Interest calculation method is required</string>
117+
<string name="step_terms_interest_posting_period_required">Interest posting period is required</string>
118+
<string name="step_terms_interest_comp_period_required">Interest compounding period is required</string>
119+
<string name="step_terms_decimal_places_error">Decimal places must be between 0 and 6</string>
120+
<string name="step_terms_currency_required">Currency is required</string>
121+
122+
<string name="step_terms_minimum_balance">Minimum Balance</string>
123+
<string name="step_terms_enforce_min_balance">Enforce Minimum Balance</string>
124+
<string name="step_terms_monthly_min_balance">Monthly Minimum Balance</string>
125+
<string name="step_terms_is_allowed_overdraft">is Overdraft Allowed</string>
126+
<string name="step_terms_overdraft">Overdraft</string>
127+
<string name="step_terms_decimal_places">Decimal Places</string>
128+
<string name="step_terms_type">Type</string>
129+
<string name="step_terms_frequency">Frequency</string>
130+
<string name="step_terms_lock_in_period">Lock-in Period</string>
131+
<string name="step_terms_apply_withdrawal_fee">Apply Withdrawal Fee for Transfers</string>
132+
<string name="step_terms_min_opening_balance">Minimum Opening Balance</string>
133+
107134
</resources>
108135

109136

feature/savings/src/commonMain/kotlin/com/mifos/feature/savings/savingsAccountv2/SavingsAccountScreen.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,10 @@ private fun SavingsAccountScaffold(
8585
)
8686
},
8787
Step(stringResource(Res.string.step_terms)) {
88-
TermsPage {
89-
onAction(SavingsAccountAction.NextStep)
90-
}
88+
TermsPage(
89+
state = state,
90+
onAction = onAction,
91+
)
9192
},
9293
Step(stringResource(Res.string.step_charges)) {
9394
ChargesPage {

0 commit comments

Comments
 (0)