Skip to content

Commit 66cdba5

Browse files
authored
Merge branch 'openMF:development' into MIFOSAC-539
2 parents 6ba966d + efc0851 commit 66cdba5

File tree

33 files changed

+900
-370
lines changed

33 files changed

+900
-370
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@ import com.mifos.core.model.objects.payloads.GroupLoanPayload
1414
import com.mifos.core.network.model.LoansPayload
1515
import com.mifos.room.entities.accounts.loans.Loan
1616
import com.mifos.room.entities.client.ClientPayloadEntity
17+
import io.ktor.client.statement.HttpResponse
1718
import kotlinx.coroutines.flow.Flow
1819

1920
/**
2021
* Created by Aditya Gupta on 10/08/23.
2122
*/
2223
interface DataTableListRepository {
2324

24-
fun createLoansAccount(loansPayload: LoansPayload?): Flow<DataState<Loan>>
25+
fun createLoansAccount(loansPayload: LoansPayload?): Flow<DataState<HttpResponse>>
2526

2627
fun createGroupLoansAccount(loansPayload: GroupLoanPayload?): Flow<DataState<Loan>>
2728

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ package com.mifos.core.data.repository
1212
import com.mifos.core.common.utils.DataState
1313
import com.mifos.core.model.objects.organisations.LoanProducts
1414
import com.mifos.core.network.model.LoansPayload
15-
import com.mifos.room.entities.accounts.loans.Loan
1615
import com.mifos.room.entities.templates.loans.LoanTemplate
16+
import io.ktor.client.statement.HttpResponse
1717
import kotlinx.coroutines.flow.Flow
1818

1919
/**
@@ -25,5 +25,5 @@ interface LoanAccountRepository {
2525

2626
fun getLoansAccountTemplate(clientId: Int, productId: Int): Flow<DataState<LoanTemplate>>
2727

28-
fun createLoansAccount(loansPayload: LoansPayload): Flow<DataState<Loan>>
28+
fun createLoansAccount(loansPayload: LoansPayload): Flow<DataState<HttpResponse>>
2929
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import com.mifos.core.network.datamanager.DataManagerLoan
1919
import com.mifos.core.network.model.LoansPayload
2020
import com.mifos.room.entities.accounts.loans.Loan
2121
import com.mifos.room.entities.client.ClientPayloadEntity
22+
import io.ktor.client.statement.HttpResponse
2223
import kotlinx.coroutines.flow.Flow
2324

2425
/**
@@ -30,7 +31,7 @@ class DataTableListRepositoryImp(
3031
private val dataManagerClient: DataManagerClient,
3132
) : DataTableListRepository {
3233

33-
override fun createLoansAccount(loansPayload: LoansPayload?): Flow<DataState<Loan>> {
34+
override fun createLoansAccount(loansPayload: LoansPayload?): Flow<DataState<HttpResponse>> {
3435
return dataManagerLoan.createLoansAccount(loansPayload)
3536
.asDataStateFlow()
3637
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import com.mifos.core.data.repository.LoanAccountRepository
1515
import com.mifos.core.model.objects.organisations.LoanProducts
1616
import com.mifos.core.network.datamanager.DataManagerLoan
1717
import com.mifos.core.network.model.LoansPayload
18-
import com.mifos.room.entities.accounts.loans.Loan
1918
import com.mifos.room.entities.templates.loans.LoanTemplate
19+
import io.ktor.client.statement.HttpResponse
2020
import kotlinx.coroutines.flow.Flow
2121

2222
/**
@@ -38,7 +38,7 @@ class LoanAccountRepositoryImp(
3838
.asDataStateFlow()
3939
}
4040

41-
override fun createLoansAccount(loansPayload: LoansPayload): Flow<DataState<Loan>> {
41+
override fun createLoansAccount(loansPayload: LoansPayload): Flow<DataState<HttpResponse>> {
4242
return dataManagerLoan.createLoansAccount(loansPayload)
4343
.asDataStateFlow()
4444
}

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import androidx.compose.ui.Alignment
2828
import androidx.compose.ui.Modifier
2929
import androidx.compose.ui.semantics.contentDescription
3030
import androidx.compose.ui.semantics.semantics
31+
import androidx.compose.ui.text.style.TextAlign
3132
import androidx.compose.ui.unit.dp
3233
import com.mifos.core.designsystem.theme.MifosTheme
3334
import core.designsystem.generated.resources.Res
@@ -39,6 +40,7 @@ import org.jetbrains.compose.ui.tooling.preview.Preview
3940
@Composable
4041
fun MifosSweetError(
4142
message: String,
43+
isShowLoadMsg: Boolean = true,
4244
modifier: Modifier = Modifier
4345
.fillMaxSize()
4446
.padding(18.dp)
@@ -52,14 +54,16 @@ fun MifosSweetError(
5254
verticalArrangement = Arrangement.Center,
5355
horizontalAlignment = Alignment.CenterHorizontally,
5456
) {
55-
Text(
56-
text = stringResource(Res.string.core_designsystem_unable_to_load),
57-
style = MaterialTheme.typography.bodyMedium,
58-
color = MaterialTheme.colorScheme.secondary,
59-
)
57+
if (isShowLoadMsg) {
58+
Text(
59+
text = stringResource(Res.string.core_designsystem_unable_to_load),
60+
style = MaterialTheme.typography.bodyMedium,
61+
color = MaterialTheme.colorScheme.secondary,
62+
)
63+
}
6064
Text(
6165
text = message,
62-
style = MaterialTheme.typography.bodyMedium,
66+
style = MaterialTheme.typography.bodyMedium.copy(textAlign = TextAlign.Center),
6367
color = MaterialTheme.colorScheme.secondary,
6468
)
6569
if (isRetryEnabled) {

core/domain/src/commonMain/kotlin/com/mifos/core/domain/useCases/CreateLoanAccountUseCase.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ package com.mifos.core.domain.useCases
1212
import com.mifos.core.common.utils.DataState
1313
import com.mifos.core.data.repository.LoanAccountRepository
1414
import com.mifos.core.network.model.LoansPayload
15-
import com.mifos.room.entities.accounts.loans.Loan
15+
import io.ktor.client.statement.HttpResponse
1616
import kotlinx.coroutines.flow.Flow
1717

1818
class CreateLoanAccountUseCase(
1919
private val loanAccountRepository: LoanAccountRepository,
2020
) {
2121

22-
operator fun invoke(loansPayload: LoansPayload): Flow<DataState<Loan>> =
22+
operator fun invoke(loansPayload: LoansPayload): Flow<DataState<HttpResponse>> =
2323
loanAccountRepository.createLoansAccount(loansPayload)
2424
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ import com.mifos.core.network.BaseApiManager
1515
import com.mifos.core.network.GenericResponse
1616
import com.mifos.core.network.model.LoansPayload
1717
import com.mifos.room.entities.PaymentTypeOptionEntity
18-
import com.mifos.room.entities.accounts.loans.Loan
1918
import com.mifos.room.entities.accounts.loans.LoanRepaymentRequestEntity
2019
import com.mifos.room.entities.accounts.loans.LoanRepaymentResponseEntity
2120
import com.mifos.room.entities.accounts.loans.LoanWithAssociationsEntity
2221
import com.mifos.room.entities.templates.loans.LoanRepaymentTemplateEntity
2322
import com.mifos.room.entities.templates.loans.LoanTemplate
2423
import com.mifos.room.entities.templates.loans.LoanTransactionTemplate
2524
import com.mifos.room.helper.LoanDaoHelper
25+
import io.ktor.client.statement.HttpResponse
2626
import kotlinx.coroutines.ExperimentalCoroutinesApi
2727
import kotlinx.coroutines.flow.Flow
2828
import kotlinx.coroutines.flow.first
@@ -90,7 +90,7 @@ class DataManagerLoan(
9090
return mBaseApiManager.loanService.getLoansAccountTemplate(clientId, productId)
9191
}
9292

93-
fun createLoansAccount(loansPayload: LoansPayload?): Flow<Loan> {
93+
fun createLoansAccount(loansPayload: LoansPayload?): Flow<HttpResponse> {
9494
return mBaseApiManager.loanService.createLoansAccount(loansPayload)
9595
}
9696

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,5 @@ data class LoansPayload(
4444
var fundId: Int? = null,
4545
var linkAccountId: Int? = null,
4646
var dataTables: ArrayList<DataTablePayload>? = null,
47+
var externalId: String? = null,
4748
)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import de.jensklingenberg.ktorfit.http.GET
3131
import de.jensklingenberg.ktorfit.http.POST
3232
import de.jensklingenberg.ktorfit.http.Path
3333
import de.jensklingenberg.ktorfit.http.Query
34+
import io.ktor.client.statement.HttpResponse
3435
import kotlinx.coroutines.flow.Flow
3536

3637
/**
@@ -75,7 +76,7 @@ interface LoanService {
7576
fun getAllLoans(): Flow<List<LoanProducts>>
7677

7778
@POST(APIEndPoint.CREATE_LOANS_ACCOUNTS)
78-
fun createLoansAccount(@Body loansPayload: LoansPayload?): Flow<Loan>
79+
fun createLoansAccount(@Body loansPayload: LoansPayload?): Flow<HttpResponse>
7980

8081
@GET(APIEndPoint.CREATE_LOANS_ACCOUNTS + "/template?templateType=individual")
8182
fun getLoansAccountTemplate(

core/ui/src/commonMain/kotlin/com/mifos/core/ui/components/MifosStepper.kt

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ package com.mifos.core.ui.components
1111

1212
import androidx.compose.foundation.background
1313
import androidx.compose.foundation.clickable
14-
import androidx.compose.foundation.layout.Arrangement
1514
import androidx.compose.foundation.layout.Box
1615
import androidx.compose.foundation.layout.Column
17-
import androidx.compose.foundation.layout.Row
16+
import androidx.compose.foundation.layout.PaddingValues
1817
import androidx.compose.foundation.layout.Spacer
1918
import androidx.compose.foundation.layout.fillMaxWidth
2019
import androidx.compose.foundation.layout.height
@@ -66,22 +65,23 @@ fun MifosStepper(
6665
),
6766
horizontalAlignment = Alignment.CenterHorizontally,
6867
) {
69-
LazyRow(
70-
state = listState,
68+
Box(
7169
modifier = Modifier
7270
.clip(shape = DesignToken.shapes.medium)
7371
.background(MaterialTheme.colorScheme.primary)
74-
.padding(vertical = DesignToken.padding.largeIncreasedExtra)
75-
.padding(start = DesignToken.padding.small)
72+
.padding(
73+
vertical = DesignToken.padding.largeIncreasedExtra,
74+
)
7675
.fillMaxWidth(),
77-
horizontalArrangement = Arrangement.SpaceBetween,
76+
contentAlignment = Alignment.Center,
7877
) {
79-
steps.forEachIndexed { index, step ->
80-
repeat(2) { it ->
81-
item {
82-
Row(
83-
verticalAlignment = Alignment.Top,
84-
) {
78+
LazyRow(
79+
state = listState,
80+
contentPadding = PaddingValues(horizontal = DesignToken.padding.small),
81+
) {
82+
steps.forEachIndexed { index, step ->
83+
repeat(2) { it ->
84+
item {
8585
if (it == 0) {
8686
Column(
8787
horizontalAlignment = Alignment.CenterHorizontally,
@@ -107,7 +107,6 @@ fun MifosStepper(
107107
color = MaterialTheme.colorScheme.primary,
108108
)
109109
}
110-
111110
Spacer(modifier = Modifier.height(DesignToken.padding.small))
112111
BasicText(
113112
text = step.name,
@@ -120,16 +119,14 @@ fun MifosStepper(
120119
),
121120
)
122121
}
123-
} else {
124-
if (index != steps.lastIndex) {
125-
Box(
126-
modifier = Modifier
127-
.padding(vertical = DesignToken.padding.large)
128-
.width(DesignToken.padding.small)
129-
.height(1.dp)
130-
.background(AppColors.stepperColor),
131-
)
132-
}
122+
} else if (index != steps.lastIndex) {
123+
Box(
124+
modifier = Modifier
125+
.padding(vertical = DesignToken.padding.large)
126+
.width(DesignToken.padding.small)
127+
.height(1.dp)
128+
.background(AppColors.stepperColor),
129+
)
133130
}
134131
}
135132
}
@@ -154,7 +151,7 @@ private fun MifosStepperDemo() {
154151

155152
MifosStepper(
156153
steps = steps,
157-
currentIndex = 2,
154+
currentIndex = 0,
158155
onStepChange = { },
159156
modifier = Modifier
160157
.fillMaxWidth(),

0 commit comments

Comments
 (0)