From a7620302e955aa005b70cd5648bf25387a94c1c0 Mon Sep 17 00:00:00 2001 From: Oqba Date: Sat, 17 Oct 2026 18:28:33 +0330 Subject: [PATCH] =?UTF-8?q?=D8=A7=D8=B5=D9=84=D8=A7=D8=AD=20=D8=A7=D8=B3?= =?UTF-8?q?=DA=A9=D8=B1=D9=88=D9=84=20=DB=8C=DA=A9=D9=BE=D8=A7=D8=B1=DA=86?= =?UTF-8?q?=D9=87=20=D8=AF=DB=8C=D8=A7=D9=84=D9=88=DA=AF=20=DA=AF=D8=B2?= =?UTF-8?q?=D8=A7=D8=B1=D8=B4=20=D9=85=D8=A7=D9=84=DB=8C=20=D9=88=20=D9=86?= =?UTF-8?q?=D9=85=D8=A7=DB=8C=D8=B4=20=D8=AA=D9=81=DA=A9=DB=8C=DA=A9=20?= =?UTF-8?q?=D9=85=D8=A7=D9=87=E2=80=8C=D9=87=D8=A7=DB=8C=20=DA=AF=D8=B0?= =?UTF-8?q?=D8=B4=D8=AA=D9=87=20(=D9=86=D8=B3=D8=AE=D9=87=201.1.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 +- .../ui/screens/PersonScreen.kt | 153 +++++++++--------- update.json | 8 +- 3 files changed, 81 insertions(+), 84 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 21994dd..ddbf6e5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -30,8 +30,8 @@ android { applicationId = "com.oqba26.monthlypaymentapp" minSdk = 25 targetSdk = 34 - versionCode = 10 - versionName = "1.0.9" + versionCode = 11 + versionName = "1.1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } } diff --git a/app/src/main/java/com/oqba26/monthlypaymentapp/ui/screens/PersonScreen.kt b/app/src/main/java/com/oqba26/monthlypaymentapp/ui/screens/PersonScreen.kt index 21cf272..a234e94 100644 --- a/app/src/main/java/com/oqba26/monthlypaymentapp/ui/screens/PersonScreen.kt +++ b/app/src/main/java/com/oqba26/monthlypaymentapp/ui/screens/PersonScreen.kt @@ -1168,7 +1168,7 @@ fun FinancialReportDialog( Card( modifier = Modifier .fillMaxWidth() - .heightIn(max = 600.dp), + .heightIn(max = 650.dp), shape = RoundedCornerShape(24.dp), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surface) ) { @@ -1195,84 +1195,90 @@ fun FinancialReportDialog( Spacer(modifier = Modifier.height(8.dp)) - Card( + LazyColumn( modifier = Modifier.fillMaxWidth(), - colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer.copy(alpha = 0.4f)) + verticalArrangement = Arrangement.spacedBy(10.dp) ) { - Column( - modifier = Modifier.padding(12.dp), - verticalArrangement = Arrangement.spacedBy(6.dp) - ) { - Row( + item { + Card( modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween + colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer.copy(alpha = 0.4f)) ) { - Text("💰 کل درآمدهای تمام زمان‌ها:", style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.SemiBold) - Text("${formatNumberAsPersian(data.totalAllTimeIncome)} تومان", style = MaterialTheme.typography.bodyLarge, fontWeight = FontWeight.Bold) - } - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween - ) { - Text("🔴 کل بدهی‌های معوقه فعلی:", style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.error) - Text("${formatNumberAsPersian(data.totalOverdueDebt)} تومان (${data.totalDebtorsCount.toString().toPersianDigits()} نفر)", style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.Bold, color = MaterialTheme.colorScheme.error) - } - } - } - - if (data.debtors.isNotEmpty()) { - Spacer(modifier = Modifier.height(8.dp)) - Card( - modifier = Modifier.fillMaxWidth(), - colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.errorContainer.copy(alpha = 0.15f)) - ) { - Column( - modifier = Modifier.padding(12.dp), - verticalArrangement = Arrangement.spacedBy(4.dp) - ) { - Text( - text = "لیست بدهکاران (${data.totalDebtorsCount.toString().toPersianDigits()} نفر):", - style = MaterialTheme.typography.titleSmall, - fontWeight = FontWeight.Bold, - color = MaterialTheme.colorScheme.error - ) - val debtorNamesText = data.debtors.joinToString("، ") { - "${it.personName} (${formatNumberAsPersian(it.totalDebtAmount)})" + Column( + modifier = Modifier.padding(12.dp), + verticalArrangement = Arrangement.spacedBy(6.dp) + ) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween + ) { + Text("💰 کل درآمدهای تمام زمان‌ها:", style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.SemiBold) + Text("${formatNumberAsPersian(data.totalAllTimeIncome)} تومان", style = MaterialTheme.typography.bodyLarge, fontWeight = FontWeight.Bold) + } + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween + ) { + Text("🔴 کل بدهی‌های معوقه فعلی:", style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.error) + Text("${formatNumberAsPersian(data.totalOverdueDebt)} تومان (${data.totalDebtorsCount.toString().toPersianDigits()} نفر)", style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.Bold, color = MaterialTheme.colorScheme.error) + } } + } + } + + if (data.debtors.isNotEmpty()) { + item { + Card( + modifier = Modifier.fillMaxWidth(), + colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.errorContainer.copy(alpha = 0.15f)) + ) { + Column( + modifier = Modifier.padding(12.dp), + verticalArrangement = Arrangement.spacedBy(4.dp) + ) { + Text( + text = "لیست بدهکاران (${data.totalDebtorsCount.toString().toPersianDigits()} نفر):", + style = MaterialTheme.typography.titleSmall, + fontWeight = FontWeight.Bold, + color = MaterialTheme.colorScheme.error + ) + val debtorNamesText = data.debtors.joinToString("، ") { + "${it.personName} (${formatNumberAsPersian(it.totalDebtAmount)})" + } + Text( + text = debtorNamesText, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + } + } + } + } + + item { + Column { + HorizontalDivider(modifier = Modifier.padding(vertical = 4.dp)) Text( - text = debtorNamesText, - style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.onSurfaceVariant + text = "تفکیک درآمد ماهانه ماه‌های گذشته", + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.Bold, + modifier = Modifier.padding(top = 4.dp) ) } } - } - Spacer(modifier = Modifier.height(12.dp)) - HorizontalDivider() - Spacer(modifier = Modifier.height(8.dp)) - - Text( - text = "تفکیک درآمد ماهانه ماه‌های گذشته", - style = MaterialTheme.typography.titleMedium, - fontWeight = FontWeight.Bold, - modifier = Modifier.padding(bottom = 8.dp) - ) - - if (data.monthlyReports.isEmpty()) { - Box( - modifier = Modifier - .fillMaxWidth() - .padding(24.dp), - contentAlignment = Alignment.Center - ) { - Text("هیچ دریافتی تا کنون ثبت نشده است.", style = MaterialTheme.typography.bodyMedium) - } - } else { - LazyColumn( - modifier = Modifier.weight(1f), - verticalArrangement = Arrangement.spacedBy(8.dp) - ) { + if (data.monthlyReports.isEmpty()) { + item { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(24.dp), + contentAlignment = Alignment.Center + ) { + Text("هیچ دریافتی تا کنون ثبت نشده است.", style = MaterialTheme.typography.bodyMedium) + } + } + } else { items(data.monthlyReports) { report -> Card( modifier = Modifier.fillMaxWidth(), @@ -1319,15 +1325,6 @@ fun FinancialReportDialog( } } } - - Spacer(modifier = Modifier.height(12.dp)) - - TextButton( - onClick = onDismiss, - modifier = Modifier.align(Alignment.End) - ) { - Text("بستن") - } } } } diff --git a/update.json b/update.json index 7c7eb25..3217216 100644 --- a/update.json +++ b/update.json @@ -1,7 +1,7 @@ { - "versionCode": 10, - "versionName": "1.0.9", - "url": "https://github.com/oqba26/MonthlyPaymentApp/releases/download/v1.0.9/MonthlyPaymentApp-v1.0.9.apk", - "releaseNotes": "اصلاح اسکرول صفحه تنظیمات، بهبود ظاهری کارت حالت دسترسی و انتقال لیست اسامی بدهکاران به گزارش مالی", + "versionCode": 11, + "versionName": "1.1.0", + "url": "https://github.com/oqba26/MonthlyPaymentApp/releases/download/v1.1.0/MonthlyPaymentApp-v1.1.0.apk", + "releaseNotes": "اصلاح اسکرول یکپارچه دیالوگ گزارش مالی و نمایش کامل تفکیک ماه‌های گذشته", "isForceUpdate": false }