Skip to content

Commit 729d4fb

Browse files
committed
updated
1 parent 2f29254 commit 729d4fb

7 files changed

Lines changed: 140 additions & 126 deletions

File tree

feature/report/src/commonMain/kotlin/com/mifos/feature/report/di/ReportModule.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,12 @@
99
*/
1010
package com.mifos.feature.report.di
1111

12-
import com.mifos.feature.report.report.ReportViewModel
1312
import com.mifos.feature.report.reportDetail.ReportDetailViewModel
1413
import com.mifos.feature.report.runReport.RunReportViewModel
1514
import org.koin.core.module.dsl.viewModelOf
1615
import org.koin.dsl.module
1716

1817
val ReportModule = module {
19-
viewModelOf(::ReportViewModel)
2018
viewModelOf(::ReportDetailViewModel)
2119
viewModelOf(::RunReportViewModel)
2220
}

feature/report/src/commonMain/kotlin/com/mifos/feature/report/navigation/ReportNavigation.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import androidx.navigation.navigation
1818
import com.mifos.core.common.utils.Constants
1919
import com.mifos.core.model.objects.runreport.FullParameterListResponse
2020
import com.mifos.core.model.objects.runreport.client.ClientReportTypeItem
21-
import com.mifos.feature.report.report.ReportScreen
21+
//import com.mifos.feature.report.report.ReportScreen
2222
import com.mifos.feature.report.reportDetail.ReportDetailScreen
2323
import com.mifos.feature.report.runReport.RunReportScreen
2424
import kotlinx.serialization.encodeToString
@@ -37,7 +37,6 @@ fun NavGraphBuilder.reportNavGraph(
3737
)
3838
reportDetailsScreenRoute(
3939
onBackPressed = navController::popBackStack,
40-
runReport = navController::navigateReportScreens,
4140
)
4241
reportScreenRoute(
4342
onBackPressed = navController::popBackStack,
@@ -61,15 +60,13 @@ fun NavGraphBuilder.runReportScreenRoute(
6160

6261
fun NavGraphBuilder.reportDetailsScreenRoute(
6362
onBackPressed: () -> Unit,
64-
runReport: (FullParameterListResponse) -> Unit,
6563
) {
6664
composable(
6765
route = ReportScreens.ReportDetailScreen.route,
6866
arguments = listOf(navArgument(Constants.REPORT_TYPE_ITEM, builder = { type = NavType.StringType })),
6967
) {
7068
ReportDetailScreen(
7169
onBackPressed = onBackPressed,
72-
runReport = runReport,
7370
)
7471
}
7572
}
@@ -81,9 +78,9 @@ fun NavGraphBuilder.reportScreenRoute(
8178
route = ReportScreens.ReportScreen.route,
8279
arguments = listOf(navArgument(Constants.REPORT_PARAMETER_RESPONSE, builder = { type = NavType.StringType })),
8380
) {
84-
ReportScreen(
85-
onBackPressed = onBackPressed,
86-
)
81+
// ReportScreen(
82+
// onBackPressed = onBackPressed,
83+
// )
8784
}
8885
}
8986

feature/report/src/commonMain/kotlin/com/mifos/feature/report/report/ReportScreen.kt

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel
4444
import com.mifos.core.designsystem.component.MifosScaffold
4545
import com.mifos.core.designsystem.icon.MifosIcons
4646
import com.mifos.core.model.objects.runreport.FullParameterListResponse
47+
import com.mifos.feature.report.reportDetail.ReportUiState
4748
import kotlinx.coroutines.launch
4849
import org.jetbrains.compose.resources.stringResource
4950
import org.koin.compose.viewmodel.koinViewModel
@@ -52,32 +53,32 @@ import org.jetbrains.compose.ui.tooling.preview.PreviewParameter
5253
import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider
5354

5455

55-
@Composable
56-
internal fun ReportScreen(
57-
onBackPressed: () -> Unit,
58-
viewModel: ReportViewModel = koinViewModel(),
59-
) {
60-
val report = viewModel.report
61-
val state by viewModel.reportUiState.collectAsStateWithLifecycle()
62-
63-
ReportScreen(
64-
state = state,
65-
report = report,
66-
onBackPressed = onBackPressed,
67-
exportReport = {
68-
// val reportDirectoryPath =
69-
// Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
70-
// .toString() + getString(context, R.string.feature_report_export_csv_directory)
71-
// viewModel.exportCsv(
72-
// report = report,
73-
// reportDirectoryPath = reportDirectoryPath,
74-
// )
75-
},
76-
)
77-
}
56+
//@Composable
57+
//internal fun ReportScreen(
58+
// onBackPressed: () -> Unit,
59+
// viewModel: ReportViewModel = koinViewModel(),
60+
//) {
61+
// val report = viewModel.report
62+
// val state by viewModel.reportUiState.collectAsStateWithLifecycle()
63+
//
64+
// ReportScreen(
65+
// state = state,
66+
// report = report,
67+
// onBackPressed = onBackPressed,
68+
// exportReport = {
69+
//// val reportDirectoryPath =
70+
//// Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
71+
//// .toString() + getString(context, R.string.feature_report_export_csv_directory)
72+
//// viewModel.exportCsv(
73+
//// report = report,
74+
//// reportDirectoryPath = reportDirectoryPath,
75+
//// )
76+
// },
77+
// )
78+
//}
7879

7980
@Composable
80-
internal fun ReportScreen(
81+
fun ReportScreen(
8182
state: ReportUiState,
8283
report: FullParameterListResponse,
8384
onBackPressed: () -> Unit,
@@ -163,24 +164,24 @@ internal fun ReportScreen(
163164
}
164165
}
165166

166-
private class ReportUiStateProvider : PreviewParameterProvider<ReportUiState> {
167-
168-
override val values: Sequence<ReportUiState>
169-
get() = sequenceOf(
170-
ReportUiState.Initial,
171-
ReportUiState.Message(Res.string.feature_report_export_csv),
172-
)
173-
}
174-
175-
@Preview
176-
@Composable
177-
private fun ReportScreenPreview(
178-
@PreviewParameter(ReportUiStateProvider::class) state: ReportUiState,
179-
) {
180-
ReportScreen(
181-
state = state,
182-
report = FullParameterListResponse(emptyList(), emptyList()),
183-
onBackPressed = { },
184-
exportReport = { },
185-
)
186-
}
167+
//private class ReportUiStateProvider : PreviewParameterProvider<ReportUiState> {
168+
//
169+
// override val values: Sequence<ReportUiState>
170+
// get() = sequenceOf(
171+
// ReportUiState.Initial,
172+
// ReportUiState.Message(Res.string.feature_report_export_csv),
173+
// )
174+
//}
175+
//
176+
//@Preview
177+
//@Composable
178+
//private fun ReportScreenPreview(
179+
// @PreviewParameter(ReportUiStateProvider::class) state: ReportUiState,
180+
//) {
181+
// ReportScreen(
182+
// state = state,
183+
// report = FullParameterListResponse(emptyList(), emptyList()),
184+
// onBackPressed = { },
185+
// exportReport = { },
186+
// )
187+
//}

feature/report/src/commonMain/kotlin/com/mifos/feature/report/report/ReportUiState.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ package com.mifos.feature.report.report
1111

1212
import org.jetbrains.compose.resources.StringResource
1313

14-
sealed class ReportUiState {
15-
16-
data object Initial : ReportUiState()
17-
18-
data class Message(val message: StringResource) : ReportUiState()
19-
}
14+
//sealed class ReportUiState {
15+
//
16+
// data object Initial : ReportUiState()
17+
//
18+
// data class Message(val message: StringResource) : ReportUiState()
19+
//}

feature/report/src/commonMain/kotlin/com/mifos/feature/report/report/ReportViewModel.kt

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -30,45 +30,45 @@ import okio.Path.Companion.toPath
3030
import okio.SYSTEM
3131
import okio.buffer
3232
import okio.use
33-
34-
class ReportViewModel(
35-
savedStateHandle: SavedStateHandle,
36-
) : ViewModel() {
37-
38-
private val reportParameterString =
39-
savedStateHandle.getStateFlow(key = Constants.REPORT_PARAMETER_RESPONSE, initialValue = "")
40-
41-
val report: FullParameterListResponse =
42-
Json.decodeFromString(reportParameterString.value)
43-
44-
private val _reportUiState = MutableStateFlow<ReportUiState>(ReportUiState.Initial)
45-
val reportUiState = _reportUiState.asStateFlow()
46-
47-
fun exportCsv(report: FullParameterListResponse, reportDirectoryPath: String) {
48-
viewModelScope.launch {
49-
_reportUiState.value = ReportUiState.Message(Res.string.feature_report_export_started)
50-
51-
val timestamp = Clock.System.now().toEpochMilliseconds().toString()
52-
val fileName = "$reportDirectoryPath/$timestamp.csv"
53-
val path = fileName.toPath()
54-
55-
try {
56-
FileSystem.SYSTEM.sink(path).buffer().use { sink ->
57-
val headers = report.columnHeaders.joinToString(",") { it.columnName }
58-
sink.writeUtf8(headers + "\n")
59-
60-
for (row in report.data) {
61-
val line = row.row.joinToString(",")
62-
sink.writeUtf8(line + "\n")
63-
}
64-
}
65-
66-
_reportUiState.value =
67-
ReportUiState.Message(Res.string.feature_report_exported_successfully)
68-
} catch (e: Exception) {
69-
_reportUiState.value =
70-
ReportUiState.Message(Res.string.feature_report_unable_to_export)
71-
}
72-
}
73-
}
74-
}
33+
//
34+
//class ReportViewModel(
35+
// savedStateHandle: SavedStateHandle,
36+
//) : ViewModel() {
37+
//
38+
// private val reportParameterString =
39+
// savedStateHandle.getStateFlow(key = Constants.REPORT_PARAMETER_RESPONSE, initialValue = "")
40+
//
41+
// val report: FullParameterListResponse =
42+
// Json.decodeFromString(reportParameterString.value)
43+
//
44+
// private val _reportUiState = MutableStateFlow<ReportUiState>(ReportUiState.Initial)
45+
// val reportUiState = _reportUiState.asStateFlow()
46+
//
47+
// fun exportCsv(report: FullParameterListResponse, reportDirectoryPath: String) {
48+
// viewModelScope.launch {
49+
// _reportUiState.value = ReportUiState.Message(Res.string.feature_report_export_started)
50+
//
51+
// val timestamp = Clock.System.now().toEpochMilliseconds().toString()
52+
// val fileName = "$reportDirectoryPath/$timestamp.csv"
53+
// val path = fileName.toPath()
54+
//
55+
// try {
56+
// FileSystem.SYSTEM.sink(path).buffer().use { sink ->
57+
// val headers = report.columnHeaders.joinToString(",") { it.columnName }
58+
// sink.writeUtf8(headers + "\n")
59+
//
60+
// for (row in report.data) {
61+
// val line = row.row.joinToString(",")
62+
// sink.writeUtf8(line + "\n")
63+
// }
64+
// }
65+
//
66+
// _reportUiState.value =
67+
// ReportUiState.Message(Res.string.feature_report_exported_successfully)
68+
// } catch (e: Exception) {
69+
// _reportUiState.value =
70+
// ReportUiState.Message(Res.string.feature_report_unable_to_export)
71+
// }
72+
// }
73+
// }
74+
//}

feature/report/src/commonMain/kotlin/com/mifos/feature/report/reportDetail/ReportDetailScreen.kt

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import com.mifos.core.designsystem.component.MifosTextFieldDropdown
7676
import com.mifos.core.model.objects.runreport.DataRow
7777
import com.mifos.core.model.objects.runreport.FullParameterListResponse
7878
import com.mifos.core.model.objects.runreport.client.ClientReportTypeItem
79+
import com.mifos.feature.report.report.ReportScreen
7980
import org.jetbrains.compose.resources.painterResource
8081
import org.jetbrains.compose.resources.stringResource
8182
import org.koin.compose.viewmodel.koinViewModel
@@ -86,7 +87,6 @@ import org.jetbrains.compose.ui.tooling.preview.PreviewParameterProvider
8687
@Composable
8788
internal fun ReportDetailScreen(
8889
onBackPressed: () -> Unit,
89-
runReport: (FullParameterListResponse) -> Unit,
9090
viewModel: ReportDetailViewModel = koinViewModel(),
9191
) {
9292
val reportItem = viewModel.reportItem
@@ -97,11 +97,12 @@ internal fun ReportDetailScreen(
9797
val reportProducts by viewModel.reportProducts.collectAsStateWithLifecycle()
9898
val runReportDetail by viewModel.runReport.collectAsStateWithLifecycle()
9999
var runReportEnable by remember { mutableStateOf(false) }
100+
var showReportScreen by remember { mutableStateOf(false) }
100101

101102
LaunchedEffect(runReportDetail) {
102103
runReportDetail?.let {
103104
if (runReportEnable) {
104-
runReport(it)
105+
showReportScreen=true
105106
}
106107
}
107108
}
@@ -185,28 +186,38 @@ internal fun ReportDetailScreen(
185186
}
186187
}
187188

188-
ReportDetailScreen(
189-
reportItem = reportItem,
190-
state = state,
191-
onBackPressed = onBackPressed,
192-
onRetry = {},
193-
officeList = officeList,
194-
loanPurposeList = loanPurposeList,
195-
fundList = fundList,
196-
currencyList = currencyList,
197-
parCalculatorList = parCalculatorList,
198-
savingsAccountDepositList = savingsAccountDepositList,
199-
glAccountList = glAccountList,
200-
obligationDateList = obligationDateList,
201-
reportOffices = reportOffices,
202-
reportProducts = reportProducts,
203-
runReport = { mapQuery ->
204-
runReportEnable = true
205-
reportItem.reportName?.let {
206-
viewModel.fetchRunReportWithQuery(it, mapQuery)
207-
}
208-
},
209-
)
189+
if(showReportScreen){
190+
ReportScreen(
191+
state = ReportUiState.Initial,
192+
report = runReportDetail!!,
193+
onBackPressed = onBackPressed,
194+
exportReport = {}
195+
)
196+
}
197+
else{
198+
ReportDetailScreen(
199+
reportItem = reportItem,
200+
state = state,
201+
onBackPressed = onBackPressed,
202+
onRetry = {},
203+
officeList = officeList,
204+
loanPurposeList = loanPurposeList,
205+
fundList = fundList,
206+
currencyList = currencyList,
207+
parCalculatorList = parCalculatorList,
208+
savingsAccountDepositList = savingsAccountDepositList,
209+
glAccountList = glAccountList,
210+
obligationDateList = obligationDateList,
211+
reportOffices = reportOffices,
212+
reportProducts = reportProducts,
213+
runReport = { mapQuery ->
214+
runReportEnable = true
215+
reportItem.reportName?.let {
216+
viewModel.fetchRunReportWithQuery(it, mapQuery)
217+
}
218+
},
219+
)
220+
}
210221
}
211222

212223
@Composable

feature/report/src/commonMain/kotlin/com/mifos/feature/report/reportDetail/ReportDetailUiState.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,10 @@ sealed class ReportDetailUiState {
1919

2020
data object ParameterDetailsSuccess : ReportDetailUiState()
2121
}
22+
23+
sealed class ReportUiState {
24+
25+
data object Initial : ReportUiState()
26+
27+
data class Message(val message: StringResource) : ReportUiState()
28+
}

0 commit comments

Comments
 (0)