Skip to content

Commit 87acaa5

Browse files
MIFOSAC-552 Implement Settings Step for New Recurring Deposits Account Flow (#2528)
Co-authored-by: Biplab Dutta <biplabdutta27@gmail.com>
1 parent db683c6 commit 87acaa5

File tree

18 files changed

+1051
-218
lines changed

18 files changed

+1051
-218
lines changed

cmp-navigation/src/commonMain/kotlin/cmp/navigation/di/KoinModules.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import com.mifos.feature.loan.di.LoanModule
3131
import com.mifos.feature.note.di.NoteModule
3232
import com.mifos.feature.offline.di.OfflineModule
3333
import com.mifos.feature.path.tracking.di.PathTrackingModule
34-
import com.mifos.feature.recurringDeposit.newRecurringDepositAccount.di.RecurringDepositModule
34+
import com.mifos.feature.recurringDeposit.di.RecurringDepositModule
3535
import com.mifos.feature.report.di.ReportModule
3636
import com.mifos.feature.savings.di.SavingsModule
3737
import com.mifos.feature.search.di.SearchModule

core/data/src/commonMain/kotlin/com/mifos/core/data/repository/RecurringAccountRepository.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,9 @@ import kotlinx.coroutines.flow.Flow
1717

1818
interface RecurringAccountRepository {
1919

20-
fun getRecuttingAccountRepository(): Flow<DataState<RecurringDepositAccountTemplate>>
21-
22-
fun getRecuttingAccountRepositoryBtProduct(
20+
fun getRecurringAccountTemplate(
2321
clientId: Int,
24-
productId: Int,
22+
productId: Int? = null,
2523
): Flow<DataState<RecurringDepositAccountTemplate>>
2624

2725
fun createRecurringDepositAccount(

core/data/src/commonMain/kotlin/com/mifos/core/data/repositoryImp/RecurringAccountRepositoryImp.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,12 @@ import kotlinx.coroutines.flow.Flow
2121
class RecurringAccountRepositoryImp(
2222
val dataManagerRecurringAccount: DataManagerRecurringAccount,
2323
) : RecurringAccountRepository {
24-
override fun getRecuttingAccountRepository(): Flow<DataState<RecurringDepositAccountTemplate>> {
25-
return dataManagerRecurringAccount.getRecurringDepositAccountTemplate
26-
.asDataStateFlow()
27-
}
2824

29-
override fun getRecuttingAccountRepositoryBtProduct(
25+
override fun getRecurringAccountTemplate(
3026
clientId: Int,
31-
productId: Int,
27+
productId: Int?,
3228
): Flow<DataState<RecurringDepositAccountTemplate>> {
33-
return dataManagerRecurringAccount.getRecurringDepositAccountTemplateByProduct(
29+
return dataManagerRecurringAccount.getRecurringDepositAccountTemplate(
3430
clientId,
3531
productId,
3632
).asDataStateFlow()

core/designsystem/src/commonMain/kotlin/com/mifos/core/designsystem/component/MifosOutlinedTextField.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,13 @@ fun MifosOutlinedTextField(
436436
shape = shape,
437437
colors = colors,
438438
value = value,
439-
label = { Text(text = label) },
439+
label = {
440+
Text(
441+
text = label,
442+
maxLines = 1,
443+
softWrap = true,
444+
)
445+
},
440446
onValueChange = onValueChange,
441447
textStyle = textStyle,
442448
modifier = modifier.fillMaxWidth(),
@@ -448,6 +454,7 @@ fun MifosOutlinedTextField(
448454
interactionSource = interactionSource,
449455
singleLine = config.singleLine,
450456
maxLines = config.maxLines,
457+
prefix = config.prefix,
451458
minLines = config.minLines,
452459
leadingIcon = config.leadingIcon,
453460
isError = config.isError,
@@ -494,6 +501,7 @@ data class MifosTextFieldConfig(
494501
val keyboardOptions: KeyboardOptions = KeyboardOptions(imeAction = ImeAction.Next),
495502
val trailingIcon: @Composable (() -> Unit)? = null,
496503
val leadingIcon: @Composable (() -> Unit)? = null,
504+
val prefix: @Composable (() -> Unit)? = null,
497505
)
498506

499507
@Preview

core/model/src/commonMain/kotlin/com/mifos/core/model/objects/payloads/RecurringDepositAccountPayload.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import kotlinx.serialization.Serializable
1313

1414
@Serializable
1515
data class RecurringDepositAccountPayload(
16+
// val charges: List<Any>? = null,
1617
val adjustAdvanceTowardsFuturePayments: Boolean? = null,
1718
val allowWithdrawal: Boolean? = null,
18-
// val charges: List<Any>? = null,
1919
val clientId: Int? = null,
2020
val dateFormat: String? = null,
2121
val depositPeriod: Int? = null,

core/network/src/commonMain/kotlin/com/mifos/core/network/datamanager/DataManagerRecurringAccount.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import kotlinx.coroutines.flow.Flow
1818
class DataManagerRecurringAccount(
1919
val mBaseApiManager: BaseApiManager,
2020
) {
21-
2221
fun createRecurringDepositAccount(
2322
recurringDepositAccountPayload: RecurringDepositAccountPayload?,
2423
): Flow<RecurringDeposit> {
@@ -27,14 +26,11 @@ class DataManagerRecurringAccount(
2726
)
2827
}
2928

30-
val getRecurringDepositAccountTemplate: Flow<RecurringDepositAccountTemplate>
31-
get() = mBaseApiManager.recurringSavingsAccountService.getRecurringDepositAccountTemplate()
32-
33-
fun getRecurringDepositAccountTemplateByProduct(
29+
fun getRecurringDepositAccountTemplate(
3430
clientId: Int,
35-
productId: Int,
31+
productId: Int?,
3632
): Flow<RecurringDepositAccountTemplate> {
37-
return mBaseApiManager.recurringSavingsAccountService.getRecurringDepositAccountTemplateByProduct(
33+
return mBaseApiManager.recurringSavingsAccountService.getRecurringDepositAccountTemplate(
3834
clientId,
3935
productId,
4036
)

core/network/src/commonMain/kotlin/com/mifos/core/network/services/RecurringAccountService.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,8 @@ interface RecurringAccountService {
2727
): Flow<RecurringDeposit>
2828

2929
@GET(APIEndPoint.CREATE_RECURRING_DEPOSIT_ACCOUNTS + "/template")
30-
fun getRecurringDepositAccountTemplate(): Flow<RecurringDepositAccountTemplate>
31-
32-
@GET(APIEndPoint.CREATE_RECURRING_DEPOSIT_ACCOUNTS + "/template")
33-
fun getRecurringDepositAccountTemplateByProduct(
30+
fun getRecurringDepositAccountTemplate(
3431
@Query("clientId") clientId: Int,
35-
@Query("productId") productId: Int,
32+
@Query("productId") productId: Int?,
3633
): Flow<RecurringDepositAccountTemplate>
3734
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
Copyright 2024 Mifos Initiative
4+
5+
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
6+
If a copy of the MPL was not distributed with this file,
7+
You can obtain one at https://mozilla.org/MPL/2.0/.
8+
9+
See https://github.com/openMF/android-client/blob/master/LICENSE.md
10+
-->
11+
<resources>
12+
<string name="feature_recurring_deposit_step_details">Details</string>
13+
<string name="feature_recurring_deposit_step_terms">Terms</string>
14+
<string name="feature_recurring_deposit_step_settings">Settings</string>
15+
<string name="feature_recurring_deposit_step_interest">Interest</string>
16+
<string name="feature_recurring_deposit_step_charges">Charges</string>
17+
<string name="feature_recurring_deposit_create_recurring_deposit_account">Create Recurring Deposit Account</string>
18+
<string name="feature_recurring_deposit_is_mandatory_deposit">Is Mandatory Deposit?</string>
19+
<string name="feature_recurring_deposit_adjust_advance_payments">Adjust advance payments toward future installments?</string>
20+
<string name="feature_recurring_deposit_allow_withdrawals">Allow Withdrawals?</string>
21+
<string name="feature_recurring_deposit_lock_in_period">Lock-in Period</string>
22+
<string name="feature_recurring_deposit_frequency">Frequency</string>
23+
<string name="feature_recurring_deposit_type">Type</string>
24+
<string name="feature_recurring_deposit_recurring_deposit_details">Recurring Deposit Details</string>
25+
<string name="feature_recurring_deposit_recurring_deposit_amount">Recurring Deposit Amount</string>
26+
<string name="feature_recurring_deposit_deposit_period">Deposit Period</string>
27+
<string name="feature_recurring_deposit_deposit_frequency_same_as_meeting">Deposit Frequency Same as Group/Center meeting</string>
28+
<string name="feature_recurring_deposit_minimum_deposit_term">Minimum Deposit Term</string>
29+
<string name="feature_recurring_deposit_in_multiples_of">And thereafter, in Multiples of</string>
30+
<string name="feature_recurring_deposit_maximum_deposit_term">Maximum Deposit Term</string>
31+
<string name="feature_recurring_deposit_for_pre_mature_closure">For Pre-mature closure</string>
32+
<string name="feature_recurring_deposit_apply_penal_interest">Apply Penal Interest (less)</string>
33+
<string name="feature_recurring_deposit_penal_interest_percentage">Penal Interest (%)</string>
34+
<string name="feature_recurring_deposit_period">Period</string>
35+
<string name="feature_recurring_deposit_minimum_balance_for_interest">Minimum Balance For Interest Calculation</string>
36+
<string name="feature_recurring_deposit_back">Back</string>
37+
<string name="feature_recurring_deposit_next">Next</string>
38+
<string name="feature_recurring_deposit_no_internet_connection">No Internet Connection</string>
39+
<string name="feature_recurring_deposit_select">Select</string>
40+
<string name="feature_recurring_deposit_cancel">Cancel</string>
41+
<string name="feature_recurring_deposit_product_name">Product Name</string>
42+
<string name="feature_recurring_deposit_submitted_on">Submitted On</string>
43+
<string name="feature_recurring_deposit_field_officer">Field Officer</string>
44+
<string name="feature_recurring_deposit_external_id">External Id</string>
45+
<string name="feature_recurring_deposit_deposit_amount_is_required">Deposit amount is required</string>
46+
<string name="feature_recurring_deposit_lock_in_period_frequency_is_required">Lock-in period frequency is required</string>
47+
<string name="feature_recurring_deposit_recurring_frequency_is_required">Recurring frequency is required</string>
48+
<string name="feature_recurring_deposit_terms_page">Terms Page</string>
49+
<string name="feature_recurring_deposit_next_button">Next Button</string>
50+
<string name="feature_recurring_deposit_interest_page">Interest Page</string>
51+
<string name="feature_recurring_deposit_charges_page">Charges Page</string>
52+
</resources>

feature/recurringDeposit/src/commonMain/composeResources/values/string.xml

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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.feature.recurringDeposit.di
11+
12+
import com.mifos.feature.recurringDeposit.newRecurringDepositAccount.RecurringAccountViewModel
13+
import org.koin.core.module.dsl.viewModelOf
14+
import org.koin.dsl.module
15+
16+
val RecurringDepositModule = module {
17+
viewModelOf(::RecurringAccountViewModel)
18+
}

0 commit comments

Comments
 (0)