summary hide and show

This commit is contained in:
Surendiran 2026-07-22 11:42:57 +05:30
parent c9030d557e
commit 1ee02c793f
5 changed files with 1640 additions and 1850 deletions

View File

@ -19,12 +19,12 @@ if (project.hasProperty('google-services.json')) {
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '69'
flutterVersionCode = '70'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '2.0.30'
flutterVersionName = '2.0.31'
}
def keystoreProperties = new Properties()

File diff suppressed because it is too large Load Diff

View File

@ -1930,6 +1930,13 @@ class _empDetailsState extends State<empDetails> {
double gpaTotalableValue = gpaSiPremiumValue + gpaGstValue;
bool isValueValid = gpaSiPremiumValue != 0 && gpaGstValue != 0;
final int premiumSummaryMode =
parsePremiumSummaryMode(item['is_premium_summery']);
// 0 = hide, 1 = full summary, 2 = total only
final bool showFullPremiumSummary =
premiumSummaryMode == 1 && isValueValid;
final bool showPremiumTotalOnly =
premiumSummaryMode == 2 && gpaTotalableValue != 0;
List<dynamic> gpaMappedFamilyFloaters = [];
@ -2179,60 +2186,63 @@ class _empDetailsState extends State<empDetails> {
Column(
children: familyFloaterContainers,
),
if (Responsive.isDesktop(context) && isValueValid)
if (Responsive.isDesktop(context) &&
(showFullPremiumSummary || showPremiumTotalOnly))
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 5,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
if (showFullPremiumSummary) ...[
Expanded(
flex: 5,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
),
),
),
Text(
(gpaSiPremiumValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
Text(
(gpaSiPremiumValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
),
),
),
],
))),
Expanded(
flex: 2,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
],
))),
Expanded(
flex: 2,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
),
),
),
Text(
(gpaGstValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
Text(
(gpaGstValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
),
),
),
],
))),
],
))),
],
Expanded(
flex: 5,
child: Container(
@ -2260,95 +2270,98 @@ class _empDetailsState extends State<empDetails> {
))),
],
),
if (!Responsive.isDesktop(context) && isValueValid)
if (!Responsive.isDesktop(context) &&
(showFullPremiumSummary || showPremiumTotalOnly))
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
if (showFullPremiumSummary) ...[
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
),
),
),
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
(gpaSiPremiumValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
(gpaSiPremiumValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
),
),
),
],
))),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
],
))),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
),
),
),
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
(gpaGstValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
(gpaGstValue ?? '').toString(),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
),
),
),
],
))),
],
),
],
))),
],
),
],
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -2409,6 +2422,17 @@ class _empDetailsState extends State<empDetails> {
: value.toStringAsFixed(2);
}
/// 0 = hide premium summary, 1 = full summary, 2 = total only
int parsePremiumSummaryMode(dynamic value) {
if (value == null) return 0;
if (value is bool) return value ? 1 : 0;
if (value is num) return value.toInt();
final normalized = value.toString().trim().toLowerCase();
if (normalized == 'true' || normalized == 'yes') return 1;
if (normalized == 'false' || normalized == 'no') return 0;
return int.tryParse(normalized) ?? 0;
}
List<Widget> generateCards(List<dynamic> data) {
List<Widget> cards = [];
@ -2444,6 +2468,13 @@ class _empDetailsState extends State<empDetails> {
double gmcTotalableValue = gmcGstValue + gmcSiPremiumValue;
bool gmcIsValueValid = (gmcSiPremiumValue > 0 && gmcGstValue > 0);
final int gmcPremiumSummaryMode =
parsePremiumSummaryMode(item['is_premium_summery']);
// 0 = hide, 1 = full summary, 2 = total only
final bool showFullGmcPremiumSummary =
gmcPremiumSummaryMode == 1 && gmcIsValueValid;
final bool showGmcPremiumTotalOnly =
gmcPremiumSummaryMode == 2 && gmcTotalableValue != 0;
List gmcRelationShip = item['relationship'];
@ -2954,60 +2985,63 @@ class _empDetailsState extends State<empDetails> {
],
SizedBox(height: 15),
if (Responsive.isDesktop(context) && gmcIsValueValid)
if (Responsive.isDesktop(context) &&
(showFullGmcPremiumSummary || showGmcPremiumTotalOnly))
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 5,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
if (showFullGmcPremiumSummary) ...[
Expanded(
flex: 5,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
),
),
),
Text(
formatAmount(gmcSiPremiumValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
Text(
formatAmount(gmcSiPremiumValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
),
),
),
],
))),
Expanded(
flex: 2,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
],
))),
Expanded(
flex: 2,
child: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 20,
fontWeight: FontWeight.w500,
),
),
),
Text(
formatAmount(gmcGstValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
Text(
formatAmount(gmcGstValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
),
),
),
],
))),
],
))),
],
Expanded(
flex: 5,
child: Container(
@ -3035,99 +3069,102 @@ class _empDetailsState extends State<empDetails> {
))),
],
),
if (!Responsive.isDesktop(context) && gmcIsValueValid)
if (!Responsive.isDesktop(context) &&
(showFullGmcPremiumSummary || showGmcPremiumTotalOnly))
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
if (showFullGmcPremiumSummary) ...[
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Additional Premium',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
),
),
),
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
formatAmount(gmcSiPremiumValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
formatAmount(gmcSiPremiumValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
),
),
),
],
))),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
],
))),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'GST',
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 18,
fontWeight: FontWeight.w500,
),
),
),
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
formatAmount(gmcGstValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
],
))),
Expanded(
flex: 6,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
formatAmount(gmcGstValue),
textAlign: TextAlign.start,
style: GoogleFonts.poppins(
fontSize: 16,
),
),
),
],
))),
],
),
],
))),
],
),
],
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [

File diff suppressed because it is too large Load Diff

View File

@ -17,8 +17,8 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
#version: 1.2.42+99
version: 1.0.42+49
#version: 2.0.30+69
version: 1.0.43+50
#version: 2.0.31+70
environment:
sdk: '>=3.3.3 <4.0.0'