Skip to content

Commit 96b929c

Browse files
Merge branch 'kmp-impl' into final-clean-up
2 parents 252e22e + 43e6acd commit 96b929c

2 files changed

Lines changed: 43 additions & 50 deletions

File tree

core/network/src/commonMain/kotlin/com/mifos/core/network/model/LoansPayload.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,11 @@ import kotlinx.serialization.Serializable
1717
*/
1818

1919
@Serializable
20-
class LoansPayload(
20+
data class LoansPayload(
2121
var allowPartialPeriodInterestCalcualtion: Boolean? = null,
2222
var amortizationType: Int? = null,
2323
var clientId: Int? = null,
2424
var dateFormat: String? = null,
25-
26-
/* public String getDisbursementData() {
27-
return disbursementData;
28-
}
29-
30-
public void setDisbursementData(String disbursementData) {
31-
this.disbursementData = disbursementData;
32-
}*/
3325
var expectedDisbursementDate: String? = null,
3426
var interestCalculationPeriodType: Int? = null,
3527
var interestRatePerPeriod: Double? = null,
@@ -46,7 +38,7 @@ class LoansPayload(
4638
var repaymentFrequencyDayOfWeekType: Int? = null,
4739
var repaymentFrequencyNthDayType: Int? = null,
4840
var submittedOnDate: String? = null,
49-
var transactionProcessingStrategyId: Int? = null,
41+
var transactionProcessingStrategyCode: String? = null,
5042
var loanPurposeId: Int? = null,
5143
var loanOfficerId: Int? = null,
5244
var fundId: Int? = null,

feature/loan/src/commonMain/kotlin/com/mifos/feature/loan/loanAccount/LoanAccountScreen.kt

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import androidx.compose.ui.text.input.KeyboardType
7676
import androidx.compose.ui.unit.dp
7777
import androidx.compose.ui.unit.sp
7878
import androidx.lifecycle.compose.collectAsStateWithLifecycle
79+
import com.mifos.core.common.utils.Constants
7980
import com.mifos.core.common.utils.DateHelper
8081
import com.mifos.core.designsystem.component.MifosCircularProgress
8182
import com.mifos.core.designsystem.component.MifosDatePickerTextField
@@ -210,11 +211,11 @@ private fun LoanAccountContent(
210211
var selectedLoanProduct by rememberSaveable { mutableStateOf("") }
211212
var selectedLoanProductId by rememberSaveable { mutableIntStateOf(0) }
212213
var selectedLoanPurpose by rememberSaveable { mutableStateOf("") }
213-
var selectedLoanPurposeId by rememberSaveable { mutableIntStateOf(0) }
214+
var selectedLoanPurposeId by rememberSaveable { mutableStateOf<Int?>(null) }
214215
var selectedLoanOfficer by rememberSaveable { mutableStateOf("") }
215216
var selectedLoanOfficerId by rememberSaveable { mutableIntStateOf(0) }
216217
var selectedFund by rememberSaveable { mutableStateOf("") }
217-
var selectedFundId by rememberSaveable { mutableIntStateOf(0) }
218+
var selectedFundId by rememberSaveable { mutableStateOf<Int?>(null) }
218219

219220
var showSubmissionDatePicker by rememberSaveable { mutableStateOf(false) }
220221
var submissionDate by rememberSaveable { mutableLongStateOf(Clock.System.now().toEpochMilliseconds()) }
@@ -244,21 +245,21 @@ private fun LoanAccountContent(
244245
var nominal by rememberSaveable { mutableStateOf("5.0") }
245246
var repaidEvery by rememberSaveable { mutableStateOf("2") }
246247
var repaidEveryType by rememberSaveable { mutableStateOf("") }
247-
var repaidEveryTypeFrequency by rememberSaveable { mutableIntStateOf(0) }
248+
var repaidEveryTypeFrequency by rememberSaveable { mutableStateOf<Int?>(null) }
248249
var loanTerms by rememberSaveable { mutableStateOf("20") }
249250
var loanTermsType by rememberSaveable { mutableStateOf("") }
250251
var loanTermsTypeFrequency by rememberSaveable { mutableIntStateOf(0) }
251252

252253
var selectedLinkSavings by rememberSaveable { mutableStateOf("") }
253-
var selectedLinkSavingsId by rememberSaveable { mutableIntStateOf(0) }
254+
var selectedLinkSavingsId by rememberSaveable { mutableStateOf<Int?>(null) }
254255
var selectedAmortization by rememberSaveable { mutableStateOf("") }
255-
var selectedAmortizationId by rememberSaveable { mutableIntStateOf(0) }
256+
var selectedAmortizationId by rememberSaveable { mutableStateOf<Int?>(null) }
256257
var selectedInterestCalculationPeriod by rememberSaveable { mutableStateOf("") }
257-
var selectedInterestCalculationPeriodId by rememberSaveable { mutableIntStateOf(0) }
258+
var selectedInterestCalculationPeriodId by rememberSaveable { mutableStateOf<Int?>(null) }
258259
var selectedRepaymentStrategy by rememberSaveable { mutableStateOf("") }
259-
var selectedRepaymentStrategyId by rememberSaveable { mutableIntStateOf(0) }
260+
var selectedRepaymentStrategyId by rememberSaveable { mutableStateOf("") }
260261
var selectedInterestTypeMethod by rememberSaveable { mutableStateOf("") }
261-
var selectedInterestTypeMethodId by rememberSaveable { mutableIntStateOf(0) }
262+
var selectedInterestTypeMethodId by rememberSaveable { mutableStateOf<Int?>(null) }
262263
var selectedCalculateExactDaysIn by rememberSaveable { mutableStateOf(false) }
263264

264265
if (showSubmissionDatePicker) {
@@ -546,7 +547,7 @@ private fun LoanAccountContent(
546547
onValueChanged = { selectedRepaymentStrategy = it },
547548
onOptionSelected = { index, value ->
548549
selectedRepaymentStrategy = value
549-
loanTemplate.transactionProcessingStrategyOptions[index].id?.let {
550+
loanTemplate.transactionProcessingStrategyOptions[index].code?.let {
550551
selectedRepaymentStrategyId = it
551552
}
552553
},
@@ -587,39 +588,39 @@ private fun LoanAccountContent(
587588

588589
Button(
589590
onClick = {
590-
val loadPayload = LoansPayload().apply {
591-
allowPartialPeriodInterestCalcualtion = selectedCalculateExactDaysIn
592-
amortizationType = selectedAmortizationId
593-
clientId = clientsId
594-
dateFormat = "dd MMMM yyyy"
591+
val loadPayload = LoansPayload(
592+
allowPartialPeriodInterestCalcualtion = selectedCalculateExactDaysIn,
593+
amortizationType = selectedAmortizationId,
594+
clientId = clientsId,
595+
dateFormat = DateHelper.SHORT_MONTH,
595596
expectedDisbursementDate =
596-
DateHelper.getDateAsStringFromLong(
597-
disbursementDate,
598-
)
599-
interestCalculationPeriodType = selectedInterestCalculationPeriodId
600-
loanType = "individual"
601-
locale = "en"
602-
numberOfRepayments = numberOfRepayment.toInt()
603-
principal = principalAmount.toDouble()
604-
productId = selectedLoanProductId
605-
repaymentEvery = repaidEvery.toInt()
597+
DateHelper.getDateAsStringFromLong(
598+
disbursementDate,
599+
),
600+
interestCalculationPeriodType = selectedInterestCalculationPeriodId,
601+
loanType = "individual",
602+
locale = Constants.LOCALE_EN,
603+
numberOfRepayments = numberOfRepayment.toInt(),
604+
principal = principalAmount.toDouble(),
605+
productId = selectedLoanProductId,
606+
repaymentEvery = repaidEvery.toInt(),
606607
submittedOnDate =
607-
DateHelper.getDateAsStringFromLong(
608-
disbursementDate,
609-
)
610-
loanPurposeId = selectedLoanPurposeId
611-
loanTermFrequency = loanTerms.toInt()
612-
loanTermFrequencyType = loanTermsTypeFrequency
613-
repaymentFrequencyType = loanTermsTypeFrequency
614-
repaymentFrequencyDayOfWeekType = repaidEveryTypeFrequency
615-
repaymentFrequencyNthDayType = repaidEveryTypeFrequency
616-
transactionProcessingStrategyId = selectedRepaymentStrategyId
617-
fundId = selectedFundId
618-
interestType = selectedInterestTypeMethodId
619-
loanOfficerId = selectedLoanOfficerId
620-
linkAccountId = selectedLinkSavingsId
621-
interestRatePerPeriod = nominal.toDouble()
622-
}
608+
DateHelper.getDateAsStringFromLong(
609+
submissionDate,
610+
),
611+
loanPurposeId = selectedLoanPurposeId,
612+
loanTermFrequency = loanTerms.toInt(),
613+
loanTermFrequencyType = loanTermsTypeFrequency,
614+
repaymentFrequencyType = loanTermsTypeFrequency,
615+
repaymentFrequencyDayOfWeekType = repaidEveryTypeFrequency,
616+
repaymentFrequencyNthDayType = 1,
617+
transactionProcessingStrategyCode = selectedRepaymentStrategyId,
618+
fundId = selectedFundId,
619+
interestType = selectedInterestTypeMethodId,
620+
loanOfficerId = selectedLoanOfficerId,
621+
linkAccountId = selectedLinkSavingsId,
622+
interestRatePerPeriod = nominal.toDouble(),
623+
)
623624
if (loanTemplate.dataTables.isNotEmpty()) {
624625
dataTable(loanTemplate.dataTables, loadPayload)
625626
} else {

0 commit comments

Comments
 (0)