Skip to content

feat(feature:loan): migrated to cmp #2404

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jun 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions cmp-android/dependencies/demoDebugRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,9 @@ org.jetbrains.compose.ui:ui-backhandler:1.8.0-alpha03
org.jetbrains.compose.ui:ui-geometry:1.8.0
org.jetbrains.compose.ui:ui-graphics:1.8.0
org.jetbrains.compose.ui:ui-text:1.8.0
org.jetbrains.compose.ui:ui-tooling-data:1.7.0-rc01
org.jetbrains.compose.ui:ui-tooling-preview:1.7.0-rc01
org.jetbrains.compose.ui:ui-tooling:1.7.0-rc01
org.jetbrains.compose.ui:ui-unit:1.8.0
org.jetbrains.compose.ui:ui-util:1.8.0
org.jetbrains.compose.ui:ui:1.8.0
Expand Down
3 changes: 3 additions & 0 deletions cmp-android/dependencies/prodDebugRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,9 @@ org.jetbrains.compose.ui:ui-backhandler:1.8.0-alpha03
org.jetbrains.compose.ui:ui-geometry:1.8.0
org.jetbrains.compose.ui:ui-graphics:1.8.0
org.jetbrains.compose.ui:ui-text:1.8.0
org.jetbrains.compose.ui:ui-tooling-data:1.7.0-rc01
org.jetbrains.compose.ui:ui-tooling-preview:1.7.0-rc01
org.jetbrains.compose.ui:ui-tooling:1.7.0-rc01
org.jetbrains.compose.ui:ui-unit:1.8.0
org.jetbrains.compose.ui:ui-util:1.8.0
org.jetbrains.compose.ui:ui:1.8.0
Expand Down
2 changes: 1 addition & 1 deletion cmp-navigation/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ kotlin {
implementation(projects.feature.dataTable)
implementation(projects.feature.groups)
implementation(projects.feature.document)
// implementation(projects.feature.loan)
implementation(projects.feature.loan)
implementation(projects.feature.note)
implementation(projects.feature.offline)
implementation(projects.feature.pathTracking)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import com.mifos.feature.dataTable.di.DataTableModule
import com.mifos.feature.document.di.DocumentModule
import com.mifos.feature.groups.di.GroupsModule
import com.mifos.feature.individualCollectionSheet.di.CollectionSheetModule
import com.mifos.feature.loan.di.LoanModule
import com.mifos.feature.note.di.NoteModule
import com.mifos.feature.offline.di.OfflineModule
import com.mifos.feature.pathTracking.di.PathTrackingModule
Expand Down Expand Up @@ -71,7 +72,7 @@ object KoinModules {
DataTableModule,
GroupsModule,
DocumentModule,
// LoanModule,
LoanModule,
NoteModule,
OfflineModule,
PathTrackingModule,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,15 @@ import com.mifos.feature.checker.inbox.task.navigation.checkerInboxTaskNavGraph
import com.mifos.feature.dataTable.navigation.dataTableNavGraph
import com.mifos.feature.dataTable.navigation.navigateToDataTable
import com.mifos.feature.document.navigation.documentListScreen
import com.mifos.feature.document.navigation.navigateToDocumentListScreen
import com.mifos.feature.groups.navigation.groupNavGraph
import com.mifos.feature.groups.navigation.navigateToCreateNewGroupScreen
import com.mifos.feature.individualCollectionSheet.navigation.individualCollectionSheetNavGraph
import com.mifos.feature.loan.navigation.addLoanAccountScreen
import com.mifos.feature.loan.navigation.groupLoanScreen
import com.mifos.feature.loan.navigation.loanNavGraph
import com.mifos.feature.loan.navigation.navigateToGroupLoanScreen
import com.mifos.feature.loan.navigation.navigateToLoanAccountSummaryScreen
import com.mifos.feature.note.navigation.navigateToNoteScreen
import com.mifos.feature.note.navigation.noteNavGraph
import com.mifos.feature.offline.navigation.offlineNavGraph
Expand Down Expand Up @@ -66,15 +72,15 @@ internal fun FeatureNavHost(
onClient = { id -> println("Client clicked: $id") },
onCenter = { id -> println("Center clicked: $id") },
onGroup = { id -> println("Group clicked: $id") },
onLoan = { id -> println("Loan clicked: $id") },
onLoan = appState.navController::navigateToLoanAccountSummaryScreen,
onSavings = { id -> println("Savings clicked: $id") },
)

savingsNavGraph(
navController = appState.navController,
onBackPressed = appState.navController::popBackStack,
loadDocuments = { _, _ -> },
loadMoreSavingsAccountInfo = { _, _ -> },
loadMoreSavingsAccountInfo = appState.navController::navigateToDataTable,
loadDocuments = appState.navController::navigateToDocumentListScreen,
)

aboutNavGraph(onBackPressed = appState.navController::popBackStack)
Expand All @@ -97,14 +103,14 @@ internal fun FeatureNavHost(
groupNavGraph(
navController = appState.navController,
paddingValues = padding,
addGroupLoanAccount = {},
addGroupLoanAccount = appState.navController::navigateToGroupLoanScreen,
addSavingsAccount = appState.navController::navigateToAddSavingsAccount,
loadDocumentList = { _, _ -> },
loadDocumentList = appState.navController::navigateToDocumentListScreen,
clientListFragment = {},
loadSavingsAccountSummary = appState.navController::navigateToSavingsAccountSummaryScreen,
loadGroupDataTables = appState.navController::navigateToDataTable,
loadNotes = appState.navController::navigateToNoteScreen,
loadLoanAccountSummary = { _ -> },
loadLoanAccountSummary = appState.navController::navigateToLoanAccountSummaryScreen,
activateGroup = appState.navController::navigateToActivateScreen,
)

Expand All @@ -120,5 +126,21 @@ internal fun FeatureNavHost(
)

pathTrackingNavGraph(appState.navController)

loanNavGraph(
navController = appState.navController,
onMoreInfoClicked = appState.navController::navigateToDataTable,
onDocumentsClicked = appState.navController::navigateToDocumentListScreen,
)

groupLoanScreen { appState.navController.popBackStack() }

addLoanAccountScreen(
onBackPressed = appState.navController::popBackStack,
dataTable = { _, _ ->
// navController.navigateDataTableList(dataTable, payload, Constants.CLIENT_LOAN)
// TODO()
},
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ import com.mifos.core.model.objects.account.loan.InterestRateFrequencyType
import com.mifos.core.model.objects.account.loan.InterestType
import com.mifos.core.model.objects.account.loan.RepaymentFrequencyType
import com.mifos.core.model.objects.account.loan.TermPeriodFrequencyType
import kotlinx.serialization.Serializable

@Serializable
data class Loan(
val id: Int? = null,

Expand Down Expand Up @@ -97,7 +99,7 @@ data class Loan(

val isNPA: Boolean? = null,

val overdueCharges: List<Any> = emptyList(),

val additionalProperties: MutableMap<String, Any> = mutableMapOf(),
// val overdueCharges: List<Any> = emptyList(),
//
// val additionalProperties: MutableMap<String, Any> = mutableMapOf(),
)
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ package com.mifos.room.entities.accounts.loans

import com.mifos.room.utils.Entity
import com.mifos.room.utils.PrimaryKey
import kotlinx.serialization.Serializable

@Serializable
@Entity(
tableName = "LoanRepaymentRequestEntity",
indices = [],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import com.mifos.room.utils.Entity
import com.mifos.room.utils.PrimaryKey
import kotlinx.serialization.Serializable

@Serializable
@Entity(
tableName = "LoanRepaymentResponse",
indices = [],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import com.mifos.room.utils.PrimaryKey
import com.mifos.room.utils.UNDEFINED
import com.mifos.room.utils.UNSPECIFIED
import com.mifos.room.utils.VALUE_UNSPECIFIED
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json

/**
Expand Down Expand Up @@ -67,6 +68,7 @@ import kotlinx.serialization.json.Json
),
],
)
@Serializable
data class ChargesEntity(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(index = true, name = INHERIT_FIELD_NAME, typeAffinity = UNDEFINED, collate = UNSPECIFIED, defaultValue = VALUE_UNSPECIFIED)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ import com.mifos.room.utils.PrimaryKey
import com.mifos.room.utils.UNDEFINED
import com.mifos.room.utils.UNSPECIFIED
import com.mifos.room.utils.VALUE_UNSPECIFIED
import kotlinx.serialization.Serializable

@Serializable
@Parcelize
@Entity(
indices = [],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ import com.mifos.room.utils.PrimaryKey
import com.mifos.room.utils.UNDEFINED
import com.mifos.room.utils.UNSPECIFIED
import com.mifos.room.utils.VALUE_UNSPECIFIED
import kotlinx.serialization.Serializable

@Serializable
@Parcelize
@Entity(
indices = [],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,12 @@ import com.mifos.core.model.utils.IgnoredOnParcel
import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import com.mifos.room.entities.noncore.DataTableEntity
import kotlinx.serialization.Serializable

/**
* Created by Rajan Maurya on 15/07/16.
*/
@Serializable
@Parcelize
data class LoanTemplate(
val clientId: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ import com.mifos.core.model.utils.IgnoredOnParcel
import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import com.mifos.room.entities.PaymentTypeOptionEntity
import kotlinx.serialization.Serializable

/**
* Created by Rajan Maurya on 14/02/17.
*/
@Serializable
@Parcelize
data class LoanTransactionTemplate(
@IgnoredOnParcel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ package com.mifos.room.entities.templates.loans

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

@Serializable
@Parcelize
data class LoanType(
val id: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,9 +240,7 @@ fun MifosOutlinedTextField(
trailingIcon = trailingIcon,
maxLines = maxLines,
singleLine = singleLine,
textStyle = LocalDensity.current.run {
TextStyle(fontSize = 18.sp)
},
textStyle = MaterialTheme.typography.bodyLarge,
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Next, keyboardType = keyboardType),
visualTransformation = visualTransformation,
isError = error != null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,15 @@ fun MifosTextFieldDropdown(
) {
OutlinedTextField(
isError = errorMessage != null,
supportingText = {
errorMessage?.let {
supportingText = if (errorMessage != null) {
{
Text(
text = it,
text = errorMessage,
color = MaterialTheme.colorScheme.error,
)
}
} else {
null
},
value = value,
onValueChange = onValueChanged,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.account.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by Tarun on 12/16/2016.
*/
@Serializable
@Parcelize
data class AccountLinkingOptions(
var accountNo: String? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.clients

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by Tarun on 13-08-17.
*/
@Serializable
@Parcelize
data class ChargeCreationResponse(
var clientId: Int = 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ data class LoanProducts(
var maxTrancheCount: Int? = null,

@SerialName("principalThresholdForLastInstallment")
var principalThresholdForLastInstallment: Int? = null,
var principalThresholdForLastInstallment: Double? = null,

@SerialName("holdGuaranteeFunds")
var holdGuaranteeFunds: Boolean? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.template.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by Rajan Maurya on 16/07/16.
*/
@Serializable
@Parcelize
data class AccountingRule(
var id: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.template.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by Rajan Maurya on 16/07/16.
*/
@Serializable
@Parcelize
data class AllowAttributeOverrides(
var amortizationType: Boolean? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.template.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by Rajan Maurya on 16/07/16.
*/
@Serializable
@Parcelize
data class AmortizationType(
var id: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.template.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by Rajan Maurya on 16/07/16.
*/
@Serializable
@Parcelize
data class AmortizationTypeOptions(
var id: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.template.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by mayankjindal on 02/10/16.
*/
@Serializable
@Parcelize
data class CalendarOptions(
var id: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.template.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by mayankjindal on 02/10/16.
*/
@Serializable
@Parcelize
data class CalendarOptionsType(
var id: Int? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ package com.mifos.core.model.objects.template.loan

import com.mifos.core.model.utils.Parcelable
import com.mifos.core.model.utils.Parcelize
import kotlinx.serialization.Serializable

/**
* Created by Rajan Maurya on 16/07/16.
*/
@Serializable
@Parcelize
data class ChargeAppliesTo(
var id: Int? = null,
Expand Down
Loading