disclaimer change added

This commit is contained in:
venbaittech 2024-12-11 09:55:09 +05:30
parent 218225722a
commit cd0318232a
10 changed files with 787 additions and 598 deletions

View File

@ -15,12 +15,12 @@ if (localPropertiesFile.exists()) {
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
flutterVersionCode = '3'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
flutterVersionName = '1.0.2'
}
def keystoreProperties = new Properties()

View File

@ -33,7 +33,12 @@ class Environment {
return dotenv.env['TICKET_API_URL'] ?? 'TICKET_API_URL not found!';
}
//Live
static String get ticketToken {
return 'uncp8FvG310bEyYdV9MmStlo7KDRZ65fLWTeXCI2JzwPrNHjBqQhUiAgxsaO';
return '3YTSia2mRoZ7A4zvBgkqbGPrCd6Ewp8IDOuyjXhVFsl1nxWNcQJ95MeUftKH';
}
//Dev
// static String get ticketToken {
// return 'uncp8FvG310bEyYdV9MmStlo7KDRZ65fLWTeXCI2JzwPrNHjBqQhUiAgxsaO';
// }
}

View File

@ -26,6 +26,13 @@ class addOnsDetails extends StatefulWidget {
}
class _addOnsDetailsState extends State<addOnsDetails> {
List<String> typeOrder = [
'GPA',
'GMC',
'GMC - Parents',
'GMC - Topup',
'GMC - Topup(Parents)'
];
late ApiService apiService;
bool isLoading = true;
bool isChecked = false;
@ -67,6 +74,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
dynamic gmcTypeName;
dynamic clientName;
dynamic clientLogo;
dynamic addon_subheading;
dynamic topUpECardDownload;
dynamic topUpMappedFamilyFloatersSi;
dynamic topUpMappedFamilyFloatersDependent;
@ -159,6 +167,14 @@ class _addOnsDetailsState extends State<addOnsDetails> {
super.dispose();
}
void _sortDisclaimerByTypeOrder() {
allDisclaimer.sort((a, b) {
int indexA = typeOrder.indexOf(a['type']);
int indexB = typeOrder.indexOf(b['type']);
return indexA.compareTo(indexB);
});
}
String formatDate(String inputDate) {
// Parse the input date string
DateTime dateTime = DateFormat('dd-MM-yyyy').parse(inputDate);
@ -190,6 +206,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) {
clientLogo = prefs.getString('clientLogo');
clientName = prefs.getString('clientName');
addon_subheading = prefs.getString('addon_subheading');
} else {
getClientLogoAndDetails();
}
@ -249,44 +266,47 @@ class _addOnsDetailsState extends State<addOnsDetails> {
gpaPolicies = response['data'];
for (var item in gpaPolicies) {
// Extract disclaimer value from each object
dynamic disclaimer = item['disclaimer'];
if (item['OpenForEnrollment'] == '1') {
dynamic disclaimer = item['disclaimer'];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
'type': item['type']
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
'type': item['type']
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
});
// Update the state
setState(() {});
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Sort disclaimers after adding
_sortDisclaimerByTypeOrder();
}
}
}
});
@ -317,44 +337,46 @@ class _addOnsDetailsState extends State<addOnsDetails> {
// setState(() {
gmcPolicies = response['data'];
for (var item in gmcPolicies) {
// Extract disclaimer value from each object
dynamic disclaimer = item['disclaimer'];
if (item['OpenForEnrollment'] == '1') {
dynamic disclaimer = item['disclaimer'];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
'type': item['type']
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
'type': item['type']
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
});
// Update the state
setState(() {});
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Sort disclaimers after adding
_sortDisclaimerByTypeOrder();
}
}
}
// });
@ -578,44 +600,53 @@ class _addOnsDetailsState extends State<addOnsDetails> {
addOnsDependentMappedFamilyFloatersDependent =
addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_si_array'];
});
String intOpenForEnrollment =
addOnsDependentPolicies['gmc_dependent_addon']
['OpenForEnrollment'];
addOnsDependentOpenForEnrollment = int.parse(intOpenForEnrollment);
String intOpenForEnrollment =
addOnsDependentPolicies['gmc_dependent_addon']
['OpenForEnrollment'];
addOnsDependentOpenForEnrollment =
int.parse(intOpenForEnrollment);
addOnsdependentValue =
await addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_si_value'];
addOnsdependentValue =
addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_si_value'];
addOnsSelectedDependent = await addOnsdependentValue != 0
? addOnsdependentValue.toString()
: null;
if (addOnsSelectedDependent != null) {
setState(() {
final checkValue = addOnsdependentValue +
addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_si_premium_value'];
print('checkValue $checkValue');
if (checkValue == 0) {
addOnsSelectedDependent = null;
_addOnsDependentSwitcher = false;
} else {
addOnsSelectedDependent = addOnsdependentValue.toString();
}
// addOnsSelectedDependent = await addOnsdependentValue != 0
// ? addOnsdependentValue.toString()
// : null;
if (addOnsSelectedDependent != null) {
_addOnsDependentSwitcher = true;
addOnDependentPremiumValue = (addOnsDependentPolicies[
'gmc_dependent_addon'][
'family_floaters_of_dependent_and_si_premium_value']
as double)
.toInt();
;
}
addOnDependentPremiumValue = (addOnsDependentPolicies[
'gmc_dependent_addon']
['family_floaters_of_dependent_and_si_premium_value']
as double)
.toInt();
;
addOnsDependentPremiumGst =
(addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_gst_value']
as double)
.toInt();
addOnsDependentPremiumGst =
(addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_gst_value']
as double)
.toInt();
addOnsDependentTotalAmt =
addOnDependentPremiumValue + addOnsDependentPremiumGst;
});
addOnsDependentTotalAmt =
addOnDependentPremiumValue + addOnsDependentPremiumGst;
addOnsDependentECardDownload =
addOnsDependentPolicies['gmc_dependent_addon']
['eCardDownload'];
}
});
} else {
print('No data found in the response');
}
@ -1768,7 +1799,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
CrossAxisAlignment.start,
children: [
Text(
'Add Ons',
'Add-On Coverage',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
@ -1781,7 +1812,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
color: Color(0xFF181818)),
),
Text(
'Medical coverage for your parents or in-laws by paying an additional premium',
addon_subheading ?? '',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:

View File

@ -25,6 +25,13 @@ class empReviewDetails extends StatefulWidget {
}
class _empReviewDetailsState extends State<empReviewDetails> {
List<String> typeOrder = [
'GPA',
'GMC',
'GMC - Parents',
'GMC - Topup',
'GMC - Topup(Parents)'
];
late ApiService apiService;
bool isLoading = true;
bool isChecked = false; // Declare the _isSwitched variable here
@ -201,6 +208,7 @@ class _empReviewDetailsState extends State<empReviewDetails> {
getGpaEmpPolicyDetails(empPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId);
primarySummary();
_sortDisclaimerByTypeOrder();
} else {
// Token is empty or null, handle accordingly (e.g., navigate to login screen)
ToastHelper.showErrorToast(context, 'Session Out');
@ -284,6 +292,14 @@ class _empReviewDetailsState extends State<empReviewDetails> {
print('Sum of Total Amounts: $totalPayableAmt');
}
void _sortDisclaimerByTypeOrder() {
allDisclaimer.sort((a, b) {
int indexA = typeOrder.indexOf(a['type']);
int indexB = typeOrder.indexOf(b['type']);
return indexA.compareTo(indexB);
});
}
Future<void> getClientLogoAndDetails() async {
try {
if (client_id == null ||
@ -331,44 +347,47 @@ class _empReviewDetailsState extends State<empReviewDetails> {
print('gpaPolicies');
for (var item in gpaPolicies) {
// Extract disclaimer value from each object
dynamic disclaimer = item['disclaimer'];
if (item['OpenForEnrollment'] == '1') {
dynamic disclaimer = item['disclaimer'];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
'type': item['type']
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
'type': item['type']
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
});
// Update the state
setState(() {});
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Sort disclaimers after adding
_sortDisclaimerByTypeOrder();
}
}
}
});
@ -400,45 +419,46 @@ class _empReviewDetailsState extends State<empReviewDetails> {
gmcPolicies = response['data'];
print('gmcPolicies');
for (var item in gmcPolicies) {
// Extract disclaimer value from each object
dynamic disclaimer = item['disclaimer'];
if (item['OpenForEnrollment'] == '1') {
dynamic disclaimer = item['disclaimer'];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer != null && disclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
if (disclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': disclaimer,
'checked': false,
'type': item['type']
});
} else if (disclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
disclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
'type': item['type']
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
});
// Update the state
setState(() {});
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Sort disclaimers after adding
_sortDisclaimerByTypeOrder();
}
}
}
});
@ -509,43 +529,48 @@ class _empReviewDetailsState extends State<empReviewDetails> {
topUpDisclaimer =
await topUpSiPolicies['gmc_si_topup']['disclaimer'];
if (topUpDisclaimer != null && topUpDisclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (topUpOpenForEnrollment == '1' && activeSiData == 1) {
if (topUpDisclaimer != null && topUpDisclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (topUpDisclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': topUpDisclaimer,
'checked': false,
});
} else if (topUpDisclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
topUpDisclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
if (topUpDisclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': topUpDisclaimer,
'checked': false,
'type': topUpTypeName
});
} else if (topUpDisclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
topUpDisclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
'type': topUpTypeName
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
});
// Update the state
setState(() {});
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Sort disclaimers after adding
_sortDisclaimerByTypeOrder();
}
}
// allDisclaimer = allDisclaimer.toSet().toList();
// });
} else {
@ -645,43 +670,48 @@ class _empReviewDetailsState extends State<empReviewDetails> {
await topUpSiParentPolicies['gmc_si_parent_topup']
['disclaimer'];
if (topUpParentDisclaimer != null &&
topUpParentDisclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (topUpParentOpenForEnrollment == '1' &&
activeSiParentData == 1) {
if (topUpParentDisclaimer != null &&
topUpParentDisclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (topUpParentDisclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': topUpParentDisclaimer,
'checked': false,
});
} else if (topUpParentDisclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
topUpParentDisclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
if (topUpParentDisclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': topUpParentDisclaimer,
'checked': false,
'type': topUpParentTypeName
});
} else if (topUpParentDisclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
topUpParentDisclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
'type': topUpParentTypeName
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
});
// Update the state
setState(() {});
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Sort disclaimers after adding
_sortDisclaimerByTypeOrder();
}
}
} else {
print('No data found in the response');
@ -725,12 +755,22 @@ class _empReviewDetailsState extends State<empReviewDetails> {
['family_floaters_of_dependent_and_si_value'];
print(addOnsDependentSumInsured);
if (addOnsDependentSumInsured == 0) {
final checkValue = addOnsDependentSumInsured +
addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_si_premium_value'];
print('checkValue $checkValue');
if (checkValue == 0) {
showHideAddOnsCard = 0;
} else {
showHideAddOnsCard = 1;
}
// if (addOnsDependentSumInsured == 0) {
// showHideAddOnsCard = 0;
// } else {
// showHideAddOnsCard = 1;
// }
addOnsDependentPolicyName =
addOnsDependentPolicies['gmc_dependent_addon']['policy_name'];
print(addOnsDependentPolicyName);
@ -756,48 +796,53 @@ class _empReviewDetailsState extends State<empReviewDetails> {
await addOnsDependentPolicies['gmc_dependent_addon']
['disclaimer'];
if (addOnsDependentDisclaimer != null &&
addOnsDependentDisclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (addOnsDependentDisclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': addOnsDependentDisclaimer,
'checked': false,
});
} else if (addOnsDependentDisclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
addOnsDependentDisclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Update the state
setState(() {});
}
addOnsDependentOpenForEnrollment =
await addOnsDependentPolicies['gmc_dependent_addon']
['OpenForEnrollment'];
if (addOnsDependentOpenForEnrollment == '1' &&
activeDependentData == 1) {
if (addOnsDependentDisclaimer != null &&
addOnsDependentDisclaimer.isNotEmpty) {
// Temporary list to hold new entries
List<Map<String, dynamic>> newEntries = [];
if (addOnsDependentDisclaimer is String) {
// Wrap string in a map with id and checked
newEntries.add({
'id': allDisclaimer.length + 1, // Unique ID based on length
'text': addOnsDependentDisclaimer,
'checked': false,
'type': addOnsDependentPolicyType
});
} else if (addOnsDependentDisclaimer is List) {
// Convert each string in the list to a map with id and checked
newEntries.addAll(
List<Map<String, dynamic>>.from(
addOnsDependentDisclaimer.map((text) => {
'id': allDisclaimer.length + newEntries.length + 1,
'text': text,
'checked': false,
'type': addOnsDependentPolicyType
}),
),
);
} else {
print('Unexpected type for disclaimer');
}
// Add new entries to the main list, ensuring no duplicate texts
newEntries.forEach((entry) {
if (!allDisclaimer
.any((item) => item['text'] == entry['text'])) {
allDisclaimer.add(entry);
}
});
// Sort disclaimers after adding
_sortDisclaimerByTypeOrder();
}
}
} else {
print('No data found in the response');
}
@ -1263,6 +1308,223 @@ class _empReviewDetailsState extends State<empReviewDetails> {
],
),
SizedBox(height: 16),
if (showHideAddOnsCard == 1)
Card(
elevation: 0,
color: Colors.white,
child: Padding(
padding: Responsive.isDesktop(context)
? EdgeInsets.all(30)
: EdgeInsets.all(10),
child: Column(
children: [
Container(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 12,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'Add Ons',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 18
: 16,
color: Color(0xFF181818),
fontWeight: FontWeight.w600,
),
),
],
))),
],
),
),
SizedBox(height: 15),
Container(
decoration: BoxDecoration(
color: Color(
0xFFFFF1DD), // Set background color for the container
borderRadius: BorderRadius.circular(
5), // Set border radius for the container
),
padding: Responsive.isDesktop(context)
? EdgeInsets.only(
top: 15,
bottom: 15,
left: 25,
right: 25)
: EdgeInsets.only(
top: 10,
bottom: 10,
left: 10,
right: 10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: Responsive.isDesktop(context)
? 9
: 7,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 18
: 14,
),
),
Row(
children: [
Text(
Responsive.isDesktop(
context)
? addOnsDependentPolicyName
: addOnsDependentPolicyType,
textAlign: TextAlign.left,
style:
GoogleFonts.poppins(
fontSize: Responsive
.isDesktop(
context)
? 20
: 16,
fontWeight:
FontWeight.w600,
),
),
if (addOnsDependentECardDownload !=
null)
GestureDetector(
onTap: () async {
_launchURL(
addOnsDependentECardDownload);
},
child: MouseRegion(
cursor:
SystemMouseCursors
.click,
child: Icon(
Icons.file_download,
color: Color(
0xFFE26728),
size: 25,
),
),
),
],
),
],
))),
Expanded(
flex: Responsive.isDesktop(context)
? 3
: 5,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment:
MainAxisAlignment.end,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Text(
addOnsFloaterTextHeading ??
'',
textAlign: TextAlign.right,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 18
: 14,
),
),
Text(
'${addOnsDependentSumInsured != null ? addOnsDependentSumInsured : 'NA'}',
textAlign: TextAlign.right,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 20
: 16,
fontWeight: FontWeight.w600,
),
),
],
))),
],
),
),
SizedBox(height: 15),
Container(
padding: Responsive.isDesktop(context)
? EdgeInsets.only(
top: 0, bottom: 0, left: 15, right: 15)
: EdgeInsets.only(
top: 0, bottom: 0, left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children:
addOnsDependentMappedFamilyFloatersArray
.where((item) =>
item['is_value_exist'] == true)
.map<Widget>((item) {
Map<String, dynamic> data = item['data'];
return Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Icon(Icons.arrow_right,
color: Color(
0xFFE26728)), // Arrow icon
SizedBox(
width: Responsive.isDesktop(context)
? 10
: 5), // Space between icon and text
Expanded(
child: Text(
'${data['name']} - ${data['relationship']} - ${data['dob']}',
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 18
: 14,
color: Color(0xFF232526),
),
),
),
],
);
}).toList(),
),
),
],
),
)),
SizedBox(height: showHideAddOnsCard == 1 ? 16 : 0),
if (showHideTopUpCard == 1)
Card(
elevation: 0,
@ -1707,224 +1969,7 @@ class _empReviewDetailsState extends State<empReviewDetails> {
],
),
)),
SizedBox(height: showHideTopUpCard == 1 ? 16 : 0),
if (showHideAddOnsCard == 1)
Card(
elevation: 0,
color: Colors.white,
child: Padding(
padding: Responsive.isDesktop(context)
? EdgeInsets.all(30)
: EdgeInsets.all(10),
child: Column(
children: [
Container(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 12,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'Add Ons',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 18
: 16,
color: Color(0xFF181818),
fontWeight: FontWeight.w600,
),
),
],
))),
],
),
),
SizedBox(height: 15),
Container(
decoration: BoxDecoration(
color: Color(
0xFFFFF1DD), // Set background color for the container
borderRadius: BorderRadius.circular(
5), // Set border radius for the container
),
padding: Responsive.isDesktop(context)
? EdgeInsets.only(
top: 15,
bottom: 15,
left: 25,
right: 25)
: EdgeInsets.only(
top: 10,
bottom: 10,
left: 10,
right: 10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: Responsive.isDesktop(context)
? 9
: 7,
child: Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 18
: 14,
),
),
Row(
children: [
Text(
Responsive.isDesktop(
context)
? addOnsDependentPolicyName
: addOnsDependentPolicyType,
textAlign: TextAlign.left,
style:
GoogleFonts.poppins(
fontSize: Responsive
.isDesktop(
context)
? 20
: 16,
fontWeight:
FontWeight.w600,
),
),
if (addOnsDependentECardDownload !=
null)
GestureDetector(
onTap: () async {
_launchURL(
addOnsDependentECardDownload);
},
child: MouseRegion(
cursor:
SystemMouseCursors
.click,
child: Icon(
Icons.file_download,
color: Color(
0xFFE26728),
size: 25,
),
),
),
],
),
],
))),
Expanded(
flex: Responsive.isDesktop(context)
? 3
: 5,
child: Container(
alignment: Alignment.centerRight,
child: Column(
mainAxisAlignment:
MainAxisAlignment.end,
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Text(
addOnsFloaterTextHeading ??
'',
textAlign: TextAlign.right,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 18
: 14,
),
),
Text(
'${addOnsDependentSumInsured != null ? addOnsDependentSumInsured : 'NA'}',
textAlign: TextAlign.right,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(
context)
? 20
: 16,
fontWeight: FontWeight.w600,
),
),
],
))),
],
),
),
SizedBox(height: 15),
Container(
padding: Responsive.isDesktop(context)
? EdgeInsets.only(
top: 0, bottom: 0, left: 15, right: 15)
: EdgeInsets.only(
top: 0, bottom: 0, left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children:
addOnsDependentMappedFamilyFloatersArray
.where((item) =>
item['is_value_exist'] == true)
.map<Widget>((item) {
Map<String, dynamic> data = item['data'];
return Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Icon(Icons.arrow_right,
color: Color(
0xFFE26728)), // Arrow icon
SizedBox(
width: Responsive.isDesktop(context)
? 10
: 5), // Space between icon and text
Expanded(
child: Text(
'${data['name']} - ${data['relationship']} - ${data['dob']}',
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 18
: 14,
color: Color(0xFF232526),
),
),
),
],
);
}).toList(),
),
),
],
),
)),
SizedBox(height: showHideAddOnsCard == 1 ? 16 : 0),
SizedBox(height: showHideTopUpParentCard == 1 ? 16 : 0),
Card(
elevation: 0,
color: Colors.white,

View File

@ -3,7 +3,7 @@ import 'package:dash_chat_2/dash_chat_2.dart';
// String profileImage =
// 'https://e7.pngegg.com/pngimages/811/700/png-clipart-chatbot-internet-bot-business-natural-language-processing-facebook-messenger-business-people-logo-thumbnail.png';
String profileImage =
'https://dev.venbait.in/nhance/dev/public/assets/images/chatbot.png';
'https://app.nhanceindia.in/zenith/public/assets/images/chatbot.png';
// We have all the possibilities for users
ChatUser user = ChatUser(id: '0');

View File

@ -137,8 +137,12 @@ class _helpState extends State<help> {
print('check 1');
final response =
await apiService.getTrackClaimsList(empMobileNo!, empCodeString!);
print('check 1');
if (response['success'] == true) {
print('check 2');
setState(() {
isLoading = false;
});
if (response['success'] == true && response['data'] is List) {
setState(() {
trackClaimsList = response['data']
.where((item) => item['status_value'] != 'Closed')
@ -152,10 +156,15 @@ class _helpState extends State<help> {
reversedClaimsClosedList =
List<Map<String, dynamic>>.from(trackClaimsClosedList);
trackClaimsClosedList = reversedClaimsClosedList.reversed.toList();
isLoading = false;
});
print(trackClaimsList);
} else if (response['success'] == true &&
response['data'] == "User Not Found") {
setState(() {
trackClaimsList = [];
trackClaimsClosedList = [];
});
} else {
ToastHelper.showErrorToast(context, 'Something went wrong');
print('API request failed with status: ${response['status']}');
}
}
@ -418,94 +427,6 @@ class _helpState extends State<help> {
),
),
SizedBox(height: 5),
if (trackClaimsList == null)
Card(
elevation: 0,
shape: RoundedRectangleBorder(
side: BorderSide(
color: Color(0xFFD9D9D9), // Set the border color here
width: 1.0, // Set the border width here
),
borderRadius: BorderRadius.circular(
8.0), // Set the border radius here
),
child: Column(children: [
Container(
decoration: BoxDecoration(
color: Colors
.white, // Set background color for the container
),
padding: Responsive.isDesktop(context)
? EdgeInsets.only(
top: 10, bottom: 10, left: 10, right: 10)
: EdgeInsets.only(
top: 10, bottom: 10, left: 10, right: 10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
flex: 11,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SvgPicture.string(
SvgService.getSvg('tickets'),
width: 60,
height: 60,
),
SizedBox(
width:
10), // Adjust space between icon and text
Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'No service request yet!',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 18
: 16,
fontWeight: FontWeight.w600,
color: Color(0xFF000000),
),
),
Container(
constraints: BoxConstraints(
maxWidth: Responsive.isDesktop(
context)
? 800
: 250), // Adjust the maximum width as needed
child: Text(
'Please raise a service request, if you have any concerns with your policy.',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 14
: 12,
fontWeight: FontWeight.w400,
color: Color(0xFF777777),
),
softWrap:
true, // Ensure text automatically wraps
),
),
],
))
],
),
),
],
),
),
])),
SizedBox(height: 15),
Container(
decoration: BoxDecoration(
@ -669,6 +590,96 @@ class _helpState extends State<help> {
],
),
),
if (allClaimsActive == 0)
if (trackClaimsList == null || trackClaimsList.isEmpty)
Card(
elevation: 0,
shape: RoundedRectangleBorder(
side: BorderSide(
color: Color(0xFFD9D9D9), // Set the border color here
width: 1.0, // Set the border width here
),
borderRadius: BorderRadius.circular(
8.0), // Set the border radius here
),
child: Column(children: [
Container(
decoration: BoxDecoration(
color: Colors
.white, // Set background color for the container
),
padding: Responsive.isDesktop(context)
? EdgeInsets.only(
top: 10, bottom: 10, left: 10, right: 10)
: EdgeInsets.only(
top: 10, bottom: 10, left: 10, right: 10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
flex: 11,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SvgPicture.string(
SvgService.getSvg('tickets'),
width: 60,
height: 60,
),
SizedBox(
width:
10), // Adjust space between icon and text
Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'No service request yet!',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 18
: 16,
fontWeight: FontWeight.w600,
color: Color(0xFF000000),
),
),
Container(
constraints: BoxConstraints(
maxWidth: Responsive.isDesktop(
context)
? 800
: 250), // Adjust the maximum width as needed
child: Text(
'Please raise a service request, if you have any concerns with your policy.',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 14
: 12,
fontWeight: FontWeight.w400,
color: Color(0xFF777777),
),
softWrap:
true, // Ensure text automatically wraps
),
),
],
))
],
),
),
],
),
),
]),
),
if (trackClaimsList != null)
if (allClaimsActive == 0)
SingleChildScrollView(
@ -679,6 +690,97 @@ class _helpState extends State<help> {
),
),
SizedBox(height: 15),
if (closedTrackActive == 0)
if (trackClaimsClosedList == null ||
trackClaimsClosedList.isEmpty)
Card(
elevation: 0,
shape: RoundedRectangleBorder(
side: BorderSide(
color: Color(0xFFD9D9D9), // Set the border color here
width: 1.0, // Set the border width here
),
borderRadius: BorderRadius.circular(
8.0), // Set the border radius here
),
child: Column(children: [
Container(
decoration: BoxDecoration(
color: Colors
.white, // Set background color for the container
),
padding: Responsive.isDesktop(context)
? EdgeInsets.only(
top: 10, bottom: 10, left: 10, right: 10)
: EdgeInsets.only(
top: 10, bottom: 10, left: 10, right: 10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
flex: 11,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SvgPicture.string(
SvgService.getSvg('tickets'),
width: 60,
height: 60,
),
SizedBox(
width:
10), // Adjust space between icon and text
Container(
alignment: Alignment.centerLeft,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'No service request yet!',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 18
: 16,
fontWeight: FontWeight.w600,
color: Color(0xFF000000),
),
),
Container(
constraints: BoxConstraints(
maxWidth: Responsive.isDesktop(
context)
? 800
: 250), // Adjust the maximum width as needed
child: Text(
'Please raise a service request, if you have any concerns with your policy.',
textAlign: TextAlign.left,
style: GoogleFonts.poppins(
fontSize:
Responsive.isDesktop(context)
? 14
: 12,
fontWeight: FontWeight.w400,
color: Color(0xFF777777),
),
softWrap:
true, // Ensure text automatically wraps
),
),
],
))
],
),
),
],
),
),
]),
),
if (trackClaimsClosedList != null)
if (closedTrackActive == 0)
SingleChildScrollView(

View File

@ -114,6 +114,7 @@ class _HomeState extends State<Home> {
} else {
setState(() {
policyDataIsEmpty = 0;
isLoadingGif = false;
});
print('API request failed with status: ${response['status']}');
}

View File

@ -100,20 +100,21 @@ class _planclaimsformState extends State<planclaimsform> {
@override
void didChangeDependencies() {
print('didChangeDependencies');
super.didChangeDependencies();
dynamic arguments = ModalRoute.of(context)!.settings.arguments;
if (arguments != null && arguments is Map<String, dynamic>) {
argumentsData = arguments;
claimsDetails = argumentsData['claimsDetails'];
print(claimsDetails);
print('claimsDetails $claimsDetails');
if (argumentsData.containsKey('fromClaimPage')) {
fromClaimsPage = argumentsData['fromClaimPage'];
print(fromClaimsPage);
print('fromClaimsPage $fromClaimsPage');
}
if (fromClaimsPage == 0) {
claimsDepartmentId = claimsDetails['department_id'];
print(claimsDepartmentId);
print('claimsDepartmentId $claimsDepartmentId');
// employeePolicyList = claimsDetails['EmployeePolicy'];
// print('employeePolicyList : $employeePolicyList');
@ -381,9 +382,11 @@ class _planclaimsformState extends State<planclaimsform> {
setState(() {
isLoading = true;
});
print(employeePolicyList[0]['name']);
print('Help $filteredPoliciesList');
// print('Check One');
// print(employeePolicyList[0]['name']);
// print('Help $filteredPoliciesList');
try {
print('Check One');
Map<String, dynamic> formData = {
'opener': 'user',
'department_id': serviceId,

View File

@ -306,6 +306,8 @@ class _MyVerifyState extends State<MyVerify> {
final SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('clientLogo', clientDetails['client']['client_logo']);
prefs.setString('clientName', clientDetails['client']['client_name']);
prefs.setString(
'addon_subheading', clientDetails['client']['addon_subheading']);
setState(() {
// dynamic clientDetails = data['data'];
// print(clientDetails);

View File

@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# 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.0.0+1
version: 1.0.0+3
environment:
sdk: '>=3.3.3 <4.0.0'