Skip to content

Commit 245c38b

Browse files
feat(feature:loan): migrated to cmp (#2404)
Co-authored-by: revanthkumarJ <jrevanth101@gmail.com>
1 parent 9441d68 commit 245c38b

100 files changed

Lines changed: 1178 additions & 1008 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cmp-android/dependencies/demoDebugRuntimeClasspath.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,9 @@ org.jetbrains.compose.ui:ui-backhandler:1.8.0-alpha03
290290
org.jetbrains.compose.ui:ui-geometry:1.8.0
291291
org.jetbrains.compose.ui:ui-graphics:1.8.0
292292
org.jetbrains.compose.ui:ui-text:1.8.0
293+
org.jetbrains.compose.ui:ui-tooling-data:1.7.0-rc01
294+
org.jetbrains.compose.ui:ui-tooling-preview:1.7.0-rc01
295+
org.jetbrains.compose.ui:ui-tooling:1.7.0-rc01
293296
org.jetbrains.compose.ui:ui-unit:1.8.0
294297
org.jetbrains.compose.ui:ui-util:1.8.0
295298
org.jetbrains.compose.ui:ui:1.8.0

cmp-android/dependencies/prodDebugRuntimeClasspath.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,9 @@ org.jetbrains.compose.ui:ui-backhandler:1.8.0-alpha03
290290
org.jetbrains.compose.ui:ui-geometry:1.8.0
291291
org.jetbrains.compose.ui:ui-graphics:1.8.0
292292
org.jetbrains.compose.ui:ui-text:1.8.0
293+
org.jetbrains.compose.ui:ui-tooling-data:1.7.0-rc01
294+
org.jetbrains.compose.ui:ui-tooling-preview:1.7.0-rc01
295+
org.jetbrains.compose.ui:ui-tooling:1.7.0-rc01
293296
org.jetbrains.compose.ui:ui-unit:1.8.0
294297
org.jetbrains.compose.ui:ui-util:1.8.0
295298
org.jetbrains.compose.ui:ui:1.8.0

cmp-navigation/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ kotlin {
4040
implementation(projects.feature.dataTable)
4141
implementation(projects.feature.groups)
4242
implementation(projects.feature.document)
43-
// implementation(projects.feature.loan)
43+
implementation(projects.feature.loan)
4444
implementation(projects.feature.note)
4545
implementation(projects.feature.offline)
4646
implementation(projects.feature.pathTracking)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import com.mifos.feature.dataTable.di.DataTableModule
2424
import com.mifos.feature.document.di.DocumentModule
2525
import com.mifos.feature.groups.di.GroupsModule
2626
import com.mifos.feature.individualCollectionSheet.di.CollectionSheetModule
27+
import com.mifos.feature.loan.di.LoanModule
2728
import com.mifos.feature.note.di.NoteModule
2829
import com.mifos.feature.offline.di.OfflineModule
2930
import com.mifos.feature.pathTracking.di.PathTrackingModule
@@ -71,7 +72,7 @@ object KoinModules {
7172
DataTableModule,
7273
GroupsModule,
7374
DocumentModule,
74-
// LoanModule,
75+
LoanModule,
7576
NoteModule,
7677
OfflineModule,
7778
PathTrackingModule,

cmp-navigation/src/commonMain/kotlin/cmp/navigation/navigation/FeatureNavHost.kt

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,15 @@ import com.mifos.feature.checker.inbox.task.navigation.checkerInboxTaskNavGraph
2424
import com.mifos.feature.dataTable.navigation.dataTableNavGraph
2525
import com.mifos.feature.dataTable.navigation.navigateToDataTable
2626
import com.mifos.feature.document.navigation.documentListScreen
27+
import com.mifos.feature.document.navigation.navigateToDocumentListScreen
2728
import com.mifos.feature.groups.navigation.groupNavGraph
2829
import com.mifos.feature.groups.navigation.navigateToCreateNewGroupScreen
2930
import com.mifos.feature.individualCollectionSheet.navigation.individualCollectionSheetNavGraph
31+
import com.mifos.feature.loan.navigation.addLoanAccountScreen
32+
import com.mifos.feature.loan.navigation.groupLoanScreen
33+
import com.mifos.feature.loan.navigation.loanNavGraph
34+
import com.mifos.feature.loan.navigation.navigateToGroupLoanScreen
35+
import com.mifos.feature.loan.navigation.navigateToLoanAccountSummaryScreen
3036
import com.mifos.feature.note.navigation.navigateToNoteScreen
3137
import com.mifos.feature.note.navigation.noteNavGraph
3238
import com.mifos.feature.offline.navigation.offlineNavGraph
@@ -66,15 +72,15 @@ internal fun FeatureNavHost(
6672
onClient = { id -> println("Client clicked: $id") },
6773
onCenter = { id -> println("Center clicked: $id") },
6874
onGroup = { id -> println("Group clicked: $id") },
69-
onLoan = { id -> println("Loan clicked: $id") },
75+
onLoan = appState.navController::navigateToLoanAccountSummaryScreen,
7076
onSavings = { id -> println("Savings clicked: $id") },
7177
)
7278

7379
savingsNavGraph(
7480
navController = appState.navController,
7581
onBackPressed = appState.navController::popBackStack,
76-
loadDocuments = { _, _ -> },
77-
loadMoreSavingsAccountInfo = { _, _ -> },
82+
loadMoreSavingsAccountInfo = appState.navController::navigateToDataTable,
83+
loadDocuments = appState.navController::navigateToDocumentListScreen,
7884
)
7985

8086
aboutNavGraph(onBackPressed = appState.navController::popBackStack)
@@ -97,14 +103,14 @@ internal fun FeatureNavHost(
97103
groupNavGraph(
98104
navController = appState.navController,
99105
paddingValues = padding,
100-
addGroupLoanAccount = {},
106+
addGroupLoanAccount = appState.navController::navigateToGroupLoanScreen,
101107
addSavingsAccount = appState.navController::navigateToAddSavingsAccount,
102-
loadDocumentList = { _, _ -> },
108+
loadDocumentList = appState.navController::navigateToDocumentListScreen,
103109
clientListFragment = {},
104110
loadSavingsAccountSummary = appState.navController::navigateToSavingsAccountSummaryScreen,
105111
loadGroupDataTables = appState.navController::navigateToDataTable,
106112
loadNotes = appState.navController::navigateToNoteScreen,
107-
loadLoanAccountSummary = { _ -> },
113+
loadLoanAccountSummary = appState.navController::navigateToLoanAccountSummaryScreen,
108114
activateGroup = appState.navController::navigateToActivateScreen,
109115
)
110116

@@ -120,5 +126,21 @@ internal fun FeatureNavHost(
120126
)
121127

122128
pathTrackingNavGraph(appState.navController)
129+
130+
loanNavGraph(
131+
navController = appState.navController,
132+
onMoreInfoClicked = appState.navController::navigateToDataTable,
133+
onDocumentsClicked = appState.navController::navigateToDocumentListScreen,
134+
)
135+
136+
groupLoanScreen { appState.navController.popBackStack() }
137+
138+
addLoanAccountScreen(
139+
onBackPressed = appState.navController::popBackStack,
140+
dataTable = { _, _ ->
141+
// navController.navigateDataTableList(dataTable, payload, Constants.CLIENT_LOAN)
142+
// TODO()
143+
},
144+
)
123145
}
124146
}

core/database/src/commonMain/kotlin/com/mifos/room/entities/accounts/loans/Loan.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ import com.mifos.core.model.objects.account.loan.InterestRateFrequencyType
1515
import com.mifos.core.model.objects.account.loan.InterestType
1616
import com.mifos.core.model.objects.account.loan.RepaymentFrequencyType
1717
import com.mifos.core.model.objects.account.loan.TermPeriodFrequencyType
18+
import kotlinx.serialization.Serializable
1819

20+
@Serializable
1921
data class Loan(
2022
val id: Int? = null,
2123

@@ -97,7 +99,7 @@ data class Loan(
9799

98100
val isNPA: Boolean? = null,
99101

100-
val overdueCharges: List<Any> = emptyList(),
101-
102-
val additionalProperties: MutableMap<String, Any> = mutableMapOf(),
102+
// val overdueCharges: List<Any> = emptyList(),
103+
//
104+
// val additionalProperties: MutableMap<String, Any> = mutableMapOf(),
103105
)

core/database/src/commonMain/kotlin/com/mifos/room/entities/accounts/loans/LoanRepaymentRequestEntity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ package com.mifos.room.entities.accounts.loans
1111

1212
import com.mifos.room.utils.Entity
1313
import com.mifos.room.utils.PrimaryKey
14+
import kotlinx.serialization.Serializable
1415

16+
@Serializable
1517
@Entity(
1618
tableName = "LoanRepaymentRequestEntity",
1719
indices = [],

core/database/src/commonMain/kotlin/com/mifos/room/entities/accounts/loans/LoanRepaymentResponseEntity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ import com.mifos.core.model.utils.Parcelable
1515
import com.mifos.core.model.utils.Parcelize
1616
import com.mifos.room.utils.Entity
1717
import com.mifos.room.utils.PrimaryKey
18+
import kotlinx.serialization.Serializable
1819

20+
@Serializable
1921
@Entity(
2022
tableName = "LoanRepaymentResponse",
2123
indices = [],

core/database/src/commonMain/kotlin/com/mifos/room/entities/client/ChargesEntity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.mifos.room.utils.PrimaryKey
2020
import com.mifos.room.utils.UNDEFINED
2121
import com.mifos.room.utils.UNSPECIFIED
2222
import com.mifos.room.utils.VALUE_UNSPECIFIED
23+
import kotlinx.serialization.Serializable
2324
import kotlinx.serialization.json.Json
2425

2526
/**
@@ -67,6 +68,7 @@ import kotlinx.serialization.json.Json
6768
),
6869
],
6970
)
71+
@Serializable
7072
data class ChargesEntity(
7173
@PrimaryKey(autoGenerate = true)
7274
@ColumnInfo(index = true, name = INHERIT_FIELD_NAME, typeAffinity = UNDEFINED, collate = UNSPECIFIED, defaultValue = VALUE_UNSPECIFIED)

core/database/src/commonMain/kotlin/com/mifos/room/entities/client/ClientChargeCurrencyEntity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ import com.mifos.room.utils.PrimaryKey
1818
import com.mifos.room.utils.UNDEFINED
1919
import com.mifos.room.utils.UNSPECIFIED
2020
import com.mifos.room.utils.VALUE_UNSPECIFIED
21+
import kotlinx.serialization.Serializable
2122

23+
@Serializable
2224
@Parcelize
2325
@Entity(
2426
indices = [],

0 commit comments

Comments
 (0)