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') def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) { if (flutterVersionCode == null) {
flutterVersionCode = '69' flutterVersionCode = '70'
} }
def flutterVersionName = localProperties.getProperty('flutter.versionName') def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) { if (flutterVersionName == null) {
flutterVersionName = '2.0.30' flutterVersionName = '2.0.31'
} }
def keystoreProperties = new Properties() 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; double gpaTotalableValue = gpaSiPremiumValue + gpaGstValue;
bool isValueValid = gpaSiPremiumValue != 0 && gpaGstValue != 0; 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 = []; List<dynamic> gpaMappedFamilyFloaters = [];
@ -2179,60 +2186,63 @@ class _empDetailsState extends State<empDetails> {
Column( Column(
children: familyFloaterContainers, children: familyFloaterContainers,
), ),
if (Responsive.isDesktop(context) && isValueValid) if (Responsive.isDesktop(context) &&
(showFullPremiumSummary || showPremiumTotalOnly))
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Expanded( if (showFullPremiumSummary) ...[
flex: 5, Expanded(
child: Container( flex: 5,
alignment: Alignment.center, child: Container(
child: Column( alignment: Alignment.center,
mainAxisAlignment: MainAxisAlignment.center, child: Column(
crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ crossAxisAlignment: CrossAxisAlignment.center,
Text( children: [
'Additional Premium', Text(
textAlign: TextAlign.start, 'Additional Premium',
style: GoogleFonts.poppins( textAlign: TextAlign.start,
fontSize: 20, style: GoogleFonts.poppins(
fontWeight: FontWeight.w500, fontSize: 20,
fontWeight: FontWeight.w500,
),
), ),
), Text(
Text( (gpaSiPremiumValue ?? '').toString(),
(gpaSiPremiumValue ?? '').toString(), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 18,
fontSize: 18, ),
), ),
), ],
], ))),
))), Expanded(
Expanded( flex: 2,
flex: 2, child: Container(
child: Container( alignment: Alignment.center,
alignment: Alignment.center, child: Column(
child: Column( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, children: [
children: [ Text(
Text( 'GST',
'GST', textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 20,
fontSize: 20, fontWeight: FontWeight.w500,
fontWeight: FontWeight.w500, ),
), ),
), Text(
Text( (gpaGstValue ?? '').toString(),
(gpaGstValue ?? '').toString(), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 18,
fontSize: 18, ),
), ),
), ],
], ))),
))), ],
Expanded( Expanded(
flex: 5, flex: 5,
child: Container( child: Container(
@ -2260,95 +2270,98 @@ class _empDetailsState extends State<empDetails> {
))), ))),
], ],
), ),
if (!Responsive.isDesktop(context) && isValueValid) if (!Responsive.isDesktop(context) &&
(showFullPremiumSummary || showPremiumTotalOnly))
Container( Container(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( if (showFullPremiumSummary) ...[
crossAxisAlignment: CrossAxisAlignment.start, Row(
children: [ crossAxisAlignment: CrossAxisAlignment.start,
Expanded( children: [
flex: 6, Expanded(
child: Container( flex: 6,
alignment: Alignment.centerLeft, child: Container(
child: Column( alignment: Alignment.centerLeft,
mainAxisAlignment: MainAxisAlignment.center, child: Column(
crossAxisAlignment: mainAxisAlignment: MainAxisAlignment.center,
CrossAxisAlignment.center, crossAxisAlignment:
children: [ CrossAxisAlignment.center,
Text( children: [
'Additional Premium', Text(
textAlign: TextAlign.start, 'Additional Premium',
style: GoogleFonts.poppins( textAlign: TextAlign.start,
fontSize: 18, style: GoogleFonts.poppins(
fontWeight: FontWeight.w500, fontSize: 18,
fontWeight: FontWeight.w500,
),
), ),
), ],
], ))),
))), Expanded(
Expanded( flex: 6,
flex: 6, child: Container(
child: Container( alignment: Alignment.centerRight,
alignment: Alignment.centerRight, child: Column(
child: Column( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.center,
CrossAxisAlignment.center, children: [
children: [ Text(
Text( (gpaSiPremiumValue ?? '').toString(),
(gpaSiPremiumValue ?? '').toString(), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 16,
fontSize: 16, ),
), ),
), ],
], ))),
))), ],
], ),
), Row(
Row( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ Expanded(
Expanded( flex: 6,
flex: 6, child: Container(
child: Container( alignment: Alignment.centerLeft,
alignment: Alignment.centerLeft, child: Column(
child: Column( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.center,
CrossAxisAlignment.center, children: [
children: [ Text(
Text( 'GST',
'GST', textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 18,
fontSize: 18, fontWeight: FontWeight.w500,
fontWeight: FontWeight.w500, ),
), ),
), ],
], ))),
))), Expanded(
Expanded( flex: 6,
flex: 6, child: Container(
child: Container( alignment: Alignment.centerRight,
alignment: Alignment.centerRight, child: Column(
child: Column( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.center,
CrossAxisAlignment.center, children: [
children: [ Text(
Text( (gpaGstValue ?? '').toString(),
(gpaGstValue ?? '').toString(), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 16,
fontSize: 16, ),
), ),
), ],
], ))),
))), ],
], ),
), ],
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -2409,6 +2422,17 @@ class _empDetailsState extends State<empDetails> {
: value.toStringAsFixed(2); : 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> generateCards(List<dynamic> data) {
List<Widget> cards = []; List<Widget> cards = [];
@ -2444,6 +2468,13 @@ class _empDetailsState extends State<empDetails> {
double gmcTotalableValue = gmcGstValue + gmcSiPremiumValue; double gmcTotalableValue = gmcGstValue + gmcSiPremiumValue;
bool gmcIsValueValid = (gmcSiPremiumValue > 0 && gmcGstValue > 0); 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']; List gmcRelationShip = item['relationship'];
@ -2954,60 +2985,63 @@ class _empDetailsState extends State<empDetails> {
], ],
SizedBox(height: 15), SizedBox(height: 15),
if (Responsive.isDesktop(context) && gmcIsValueValid) if (Responsive.isDesktop(context) &&
(showFullGmcPremiumSummary || showGmcPremiumTotalOnly))
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Expanded( if (showFullGmcPremiumSummary) ...[
flex: 5, Expanded(
child: Container( flex: 5,
alignment: Alignment.center, child: Container(
child: Column( alignment: Alignment.center,
mainAxisAlignment: MainAxisAlignment.center, child: Column(
crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ crossAxisAlignment: CrossAxisAlignment.center,
Text( children: [
'Additional Premium', Text(
textAlign: TextAlign.start, 'Additional Premium',
style: GoogleFonts.poppins( textAlign: TextAlign.start,
fontSize: 20, style: GoogleFonts.poppins(
fontWeight: FontWeight.w500, fontSize: 20,
fontWeight: FontWeight.w500,
),
), ),
), Text(
Text( formatAmount(gmcSiPremiumValue),
formatAmount(gmcSiPremiumValue), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 18,
fontSize: 18, ),
), ),
), ],
], ))),
))), Expanded(
Expanded( flex: 2,
flex: 2, child: Container(
child: Container( alignment: Alignment.center,
alignment: Alignment.center, child: Column(
child: Column( mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, children: [
children: [ Text(
Text( 'GST',
'GST', textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 20,
fontSize: 20, fontWeight: FontWeight.w500,
fontWeight: FontWeight.w500, ),
), ),
), Text(
Text( formatAmount(gmcGstValue),
formatAmount(gmcGstValue), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 18,
fontSize: 18, ),
), ),
), ],
], ))),
))), ],
Expanded( Expanded(
flex: 5, flex: 5,
child: Container( child: Container(
@ -3035,99 +3069,102 @@ class _empDetailsState extends State<empDetails> {
))), ))),
], ],
), ),
if (!Responsive.isDesktop(context) && gmcIsValueValid) if (!Responsive.isDesktop(context) &&
(showFullGmcPremiumSummary || showGmcPremiumTotalOnly))
Container( Container(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( if (showFullGmcPremiumSummary) ...[
crossAxisAlignment: CrossAxisAlignment.start, Row(
children: [ crossAxisAlignment: CrossAxisAlignment.start,
Expanded( children: [
flex: 6, Expanded(
child: Container( flex: 6,
alignment: Alignment.centerLeft, child: Container(
child: Column( alignment: Alignment.centerLeft,
mainAxisAlignment: child: Column(
MainAxisAlignment.center, mainAxisAlignment:
crossAxisAlignment: MainAxisAlignment.center,
CrossAxisAlignment.center, crossAxisAlignment:
children: [ CrossAxisAlignment.center,
Text( children: [
'Additional Premium', Text(
textAlign: TextAlign.start, 'Additional Premium',
style: GoogleFonts.poppins( textAlign: TextAlign.start,
fontSize: 18, style: GoogleFonts.poppins(
fontWeight: FontWeight.w500, fontSize: 18,
fontWeight: FontWeight.w500,
),
), ),
), ],
], ))),
))), Expanded(
Expanded( flex: 6,
flex: 6, child: Container(
child: Container( alignment: Alignment.centerRight,
alignment: Alignment.centerRight, child: Column(
child: Column( mainAxisAlignment:
mainAxisAlignment: MainAxisAlignment.center,
MainAxisAlignment.center, crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.center,
CrossAxisAlignment.center, children: [
children: [ Text(
Text( formatAmount(gmcSiPremiumValue),
formatAmount(gmcSiPremiumValue), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 16,
fontSize: 16, ),
), ),
), ],
], ))),
))), ],
], ),
), Row(
Row( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ Expanded(
Expanded( flex: 6,
flex: 6, child: Container(
child: Container( alignment: Alignment.centerLeft,
alignment: Alignment.centerLeft, child: Column(
child: Column( mainAxisAlignment:
mainAxisAlignment: MainAxisAlignment.center,
MainAxisAlignment.center, crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.center,
CrossAxisAlignment.center, children: [
children: [ Text(
Text( 'GST',
'GST', textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 18,
fontSize: 18, fontWeight: FontWeight.w500,
fontWeight: FontWeight.w500, ),
), ),
), ],
], ))),
))), Expanded(
Expanded( flex: 6,
flex: 6, child: Container(
child: Container( alignment: Alignment.centerRight,
alignment: Alignment.centerRight, child: Column(
child: Column( mainAxisAlignment:
mainAxisAlignment: MainAxisAlignment.center,
MainAxisAlignment.center, crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.center,
CrossAxisAlignment.center, children: [
children: [ Text(
Text( formatAmount(gmcGstValue),
formatAmount(gmcGstValue), textAlign: TextAlign.start,
textAlign: TextAlign.start, style: GoogleFonts.poppins(
style: GoogleFonts.poppins( fontSize: 16,
fontSize: 16, ),
), ),
), ],
], ))),
))), ],
], ),
), ],
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ 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 # 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. # of the product and file versions while build-number is used as the build suffix.
#version: 1.2.42+99 #version: 1.2.42+99
version: 1.0.42+49 version: 1.0.43+50
#version: 2.0.30+69 #version: 2.0.31+70
environment: environment:
sdk: '>=3.3.3 <4.0.0' sdk: '>=3.3.3 <4.0.0'