diff --git a/lib/customAppBar/customAppBar.dart b/lib/customAppBar/customAppBar.dart index a64f439..5f360d3 100644 --- a/lib/customAppBar/customAppBar.dart +++ b/lib/customAppBar/customAppBar.dart @@ -9,7 +9,7 @@ class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { Future logout(BuildContext context) async { final prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { await prefs.clear(); diff --git a/lib/customAppBar/enrollmentAppBar.dart b/lib/customAppBar/enrollmentAppBar.dart index 65095c0..eab7f00 100644 --- a/lib/customAppBar/enrollmentAppBar.dart +++ b/lib/customAppBar/enrollmentAppBar.dart @@ -28,7 +28,7 @@ class _CustomAppBarState extends State { Future getEmpStatus() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); - empStatus = prefs.getString('emp_status'); + empStatus = prefs.getString('enrollmentEmp_status'); } Future logout(BuildContext context) async { diff --git a/lib/main.dart b/lib/main.dart index d3bab5b..830152d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -38,7 +38,7 @@ void clearLocalStorageOnAppStart() { } Future main() async { - clearLocalStorageOnAppStart(); + // clearLocalStorageOnAppStart(); WidgetsFlutterBinding.ensureInitialized(); // final SharedPreferences prefs = await SharedPreferences.getInstance(); // prefs.clear(); diff --git a/lib/pages/email_verify.dart b/lib/pages/email_verify.dart index 2f323f1..8be84a5 100644 --- a/lib/pages/email_verify.dart +++ b/lib/pages/email_verify.dart @@ -37,12 +37,21 @@ class _MyEmailVerifyState extends State { late Timer _timer; int _secondsRemaining = 60; bool _isTimerRunning = false; + + dynamic enrollmentEmpClientBranchId; + dynamic enrollmentEmpCodeString; + dynamic enrollmentEmpPrimaryId; + dynamic enrollmentGpaEmpName; + dynamic enrollmentClient_id; + dynamic enrollmentEmp_status; + dynamic empCodeString; dynamic empClientBranchId; dynamic empPrimaryId; dynamic gpaEmpName; dynamic client_id; dynamic _token; + dynamic _postToken; dynamic clientName; dynamic clientLogo; dynamic emp_status; @@ -146,55 +155,24 @@ class _MyEmailVerifyState extends State { print('data: $data'); _token = data['data']; String status = data['status']; - print(status); - if (status == 'success') { + + // Directly access the post_enrollment data + Map post = data['post_enrollment']; + print('post: $post'); + + _postToken = post['data']; + String postStatus = post['status']; + + if (postStatus == 'success') { setState(() { _isLoading = false; }); - final SharedPreferences prefs = await SharedPreferences.getInstance(); - prefs.setString('token', data['data']); - - // Decode the JWT token received from the API response - Map? decodedToken = Jwt.parseJwt(data['data']); - print('decodedToken : $decodedToken'); - empClientBranchId = decodedToken['client_branch_id']; - prefs.setString('empClientBranchId', empClientBranchId); - empCodeString = decodedToken['emp_code'].toString(); - prefs.setString('empCode', empCodeString); - empPrimaryId = decodedToken['id']; - prefs.setString('empPrimaryId', empPrimaryId); - gpaEmpName = decodedToken['name'].toString(); - prefs.setString('gpaEmpName', gpaEmpName); - client_id = decodedToken['client_id']; - prefs.setString('client_id', client_id); - emp_status = decodedToken['emp_status']; - prefs.setString('emp_status', emp_status); - getClientLogoAndDetails(); - - print('Successfully Login'); - - // Redirect to another page - final token = prefs.getString('token'); - // int skipStatus = prefs.getInt('skipStatus') ?? 1; - // final mpinText = prefs.getString('mpinText'); - print(isMobilePlatform()); - if (isMobilePlatform()) { - // if (prefs.containsKey('mpin') && mpinText == 'Mpin - exist') { - if (token != null && token.isNotEmpty) { - await initNotification(); - Navigator.pushReplacementNamed(context, 'pinSettingPage'); - } - // } - } else { - if (token != null && token.isNotEmpty) { - ToastHelper.showSuccessToast(context, 'Successfully Login'); - if (emp_status == 'enrolled' || emp_status == 'active') { - Navigator.pushReplacementNamed(context, 'home'); - } else { - Navigator.pushReplacementNamed(context, 'empDetails'); - } - } - } + postSuccessData(post, data); + } else if (status == 'success') { + setState(() { + _isLoading = false; + }); + enrollmentSuccessData(data); } else { setState(() { _isLoading = false; @@ -221,6 +199,130 @@ class _MyEmailVerifyState extends State { } } + void postSuccessData(post, data) async { + String status = data['status']; + String postStatus = post['status']; + + if (postStatus == 'success') { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('_postToken', post['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(post['data']); + print('decodedToken : $decodedToken'); + empClientBranchId = decodedToken['client_branch_id']; + prefs.setString('empClientBranchId', empClientBranchId); + empCodeString = decodedToken['emp_code'].toString(); + prefs.setString('empCode', empCodeString); + empPrimaryId = decodedToken['id']; + prefs.setString('empPrimaryId', empPrimaryId); + gpaEmpName = decodedToken['name'].toString(); + prefs.setString('gpaEmpName', gpaEmpName); + client_id = decodedToken['client_id']; + prefs.setString('client_id', client_id); + emp_status = decodedToken['emp_status']; + prefs.setString('emp_status', emp_status); + getClientLogoAndDetails(); + + print('Successfully Login'); + + // Redirect to another page + } + + if (status == 'success') { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('enrollToken', data['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(data['data']); + print('decodedToken : $decodedToken'); + enrollmentEmpClientBranchId = decodedToken['client_branch_id']; + prefs.setString( + 'enrollmentEmpClientBranchId', enrollmentEmpClientBranchId); + enrollmentEmpCodeString = decodedToken['emp_code'].toString(); + prefs.setString('enrollmentEmpCodeString', enrollmentEmpCodeString); + enrollmentEmpPrimaryId = decodedToken['id']; + prefs.setString('enrollmentEmpPrimaryId', enrollmentEmpPrimaryId); + enrollmentGpaEmpName = decodedToken['name'].toString(); + prefs.setString('enrollmentGpaEmpName', enrollmentGpaEmpName); + enrollmentClient_id = decodedToken['client_id']; + prefs.setString('enrollmentClient_id', enrollmentClient_id); + enrollmentEmp_status = decodedToken['emp_status']; + prefs.setString('enrollmentEmp_status', enrollmentEmp_status); + // getClientLogoAndDetails(); + } + + final SharedPreferences prefs = await SharedPreferences.getInstance(); + final _postToken = prefs.getString('_postToken'); + // int skipStatus = prefs.getInt('skipStatus') ?? 1; + // final mpinText = prefs.getString('mpinText'); + print(isMobilePlatform()); + if (isMobilePlatform()) { + // if (prefs.containsKey('mpin') && mpinText == 'Mpin - exist') { + if (_postToken != null && _postToken.isNotEmpty) { + await initNotification(); + Navigator.pushReplacementNamed(context, 'pinSettingPage'); + } + // } + } else { + if (_postToken != null && _postToken.isNotEmpty) { + ToastHelper.showSuccessToast(context, 'Successfully Login'); + // if (emp_status == 'enrolled' || emp_status == 'active') { + Navigator.pushReplacementNamed(context, 'home'); + // } else { + // Navigator.pushReplacementNamed(context, 'empDetails'); + // } + } + } + } + + void enrollmentSuccessData(data) async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('enrollToken', data['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(data['data']); + print('decodedToken : $decodedToken'); + enrollmentEmpClientBranchId = decodedToken['client_branch_id']; + prefs.setString('enrollmentEmpClientBranchId', enrollmentEmpClientBranchId); + enrollmentEmpCodeString = decodedToken['emp_code'].toString(); + prefs.setString('enrollmentEmpCodeString', enrollmentEmpCodeString); + enrollmentEmpPrimaryId = decodedToken['id']; + prefs.setString('enrollmentEmpPrimaryId', enrollmentEmpPrimaryId); + enrollmentGpaEmpName = decodedToken['name'].toString(); + prefs.setString('enrollmentGpaEmpName', enrollmentGpaEmpName); + enrollmentClient_id = decodedToken['client_id']; + prefs.setString('enrollmentClient_id', enrollmentClient_id); + enrollmentEmp_status = decodedToken['emp_status']; + prefs.setString('enrollmentEmp_status', enrollmentEmp_status); + getClientLogoAndDetails(); + + print('Successfully Login'); + + // Redirect to another page + final enrollToken = prefs.getString('enrollToken'); + // int skipStatus = prefs.getInt('skipStatus') ?? 1; + // final mpinText = prefs.getString('mpinText'); + print(isMobilePlatform()); + if (isMobilePlatform()) { + // if (prefs.containsKey('mpin') && mpinText == 'Mpin - exist') { + if (enrollToken != null && enrollToken.isNotEmpty) { + await initNotification(); + Navigator.pushReplacementNamed(context, 'pinSettingPage'); + } + // } + } else { + if (enrollToken != null && enrollToken.isNotEmpty) { + ToastHelper.showSuccessToast(context, 'Successfully Login'); + // if (emp_status == 'enrolled' || emp_status == 'active') { + // Navigator.pushReplacementNamed(context, 'home'); + // } else { + Navigator.pushReplacementNamed(context, 'empDetails'); + // } + } + } + } + void _resendOTP() { setState(() { _secondsRemaining = 60; diff --git a/lib/pages/enrollment/addons.dart b/lib/pages/enrollment/addons.dart index 92e233a..846811f 100644 --- a/lib/pages/enrollment/addons.dart +++ b/lib/pages/enrollment/addons.dart @@ -42,10 +42,10 @@ class _addOnsDetailsState extends State { bool _topUpSiSwitcher = false; bool _topUpParentSiSwitcher = false; dynamic _token; - dynamic empCodeString; - dynamic empPrimaryId; - dynamic gpaEmpName; - dynamic client_id; + dynamic enrollmentEmpCodeString; + dynamic enrollmentEmpPrimaryId; + dynamic enrollmentGpaEmpName; + dynamic enrollmentClient_id; dynamic gpaPolicies; dynamic gmcPolicies; dynamic gpaPolicyName; @@ -144,7 +144,7 @@ class _addOnsDetailsState extends State { dynamic gmcDataIsEmpty = 1; dynamic gpaDataIsEmpty = 1; dynamic empRefId; - dynamic empClientBranchId; + dynamic enrollmentEmpClientBranchId; dynamic selfEmpStatus; List> allDisclaimer = []; // Declare this to store all disclaimers @@ -194,20 +194,21 @@ class _addOnsDetailsState extends State { Future _loadToken() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('enrollToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; }); - // Decode the JWT token received from the API response + // Decode th e JWT token received from the API response Map? decodedToken = Jwt.parseJwt(token); selfEmpStatus = prefs.getString('selfEmpStatus'); - empClientBranchId = prefs.getString('empClientBranchId'); - empCodeString = prefs.getString('empCode'); - empPrimaryId = prefs.getString('empPrimaryId'); - gpaEmpName = prefs.getString('gpaEmpName'); - client_id = prefs.getString('client_id'); + enrollmentEmpClientBranchId = + prefs.getString('enrollmentEmpClientBranchId'); + enrollmentEmpCodeString = prefs.getString('enrollmentEmpCodeString'); + enrollmentEmpPrimaryId = prefs.getString('enrollmentEmpPrimaryId'); + enrollmentGpaEmpName = prefs.getString('enrollmentGpaEmpName'); + enrollmentClient_id = prefs.getString('enrollmentClient_id'); // Call the API when the page enters if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) { @@ -221,8 +222,8 @@ class _addOnsDetailsState extends State { getGmcSiParentTopUp(); getGmcDependentAddOns(); fetchRelationshipList(); - getGpaEmpPolicyDetails(empPrimaryId); - getGmcEmpPolicyDetails(empPrimaryId); + getGpaEmpPolicyDetails(enrollmentEmpPrimaryId); + getGmcEmpPolicyDetails(enrollmentEmpPrimaryId); } else { // Token is empty or null, handle accordingly (e.g., navigate to login screen) ToastHelper.showErrorToast(context, 'Session Out'); @@ -232,13 +233,15 @@ class _addOnsDetailsState extends State { Future getClientLogoAndDetails() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getClientLogoAndDetailsToApi( - client_id!, empCodeString!, empClientBranchId!); + enrollmentClient_id!, + enrollmentEmpCodeString!, + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { dynamic clientDetails = response['data']; @@ -258,15 +261,19 @@ class _addOnsDetailsState extends State { } } - Future getGpaEmpPolicyDetails(empPrimaryId) async { + Future getGpaEmpPolicyDetails(enrollmentEmpPrimaryId) async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGpaEmpPolicyDetailsToApi( - empPrimaryId, empCodeString!, client_id!, 'GPA', empClientBranchId!); + enrollmentEmpPrimaryId, + enrollmentEmpCodeString!, + enrollmentClient_id!, + 'GPA', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { setState(() { @@ -331,15 +338,19 @@ class _addOnsDetailsState extends State { } } - Future getGmcEmpPolicyDetails(empPrimaryId) async { + Future getGmcEmpPolicyDetails(enrollmentEmpPrimaryId) async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGmcEmpPolicyDetailsToApi( - empPrimaryId, empCodeString!, client_id!, 'GMC', empClientBranchId!); + enrollmentEmpPrimaryId, + enrollmentEmpCodeString!, + enrollmentClient_id!, + 'GMC', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { // setState(() { gmcPolicies = response['data']; @@ -403,13 +414,16 @@ class _addOnsDetailsState extends State { Future getGmcSiTopUp() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGmcSiTopUpToApi( - client_id!, empCodeString!, 'GMC-SI-TOPUP', empClientBranchId!); + enrollmentClient_id!, + enrollmentEmpCodeString!, + 'GMC-SI-TOPUP', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { setState(() { @@ -481,13 +495,16 @@ class _addOnsDetailsState extends State { Future getGmcSiParentTopUp() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } - final response = await apiService.getGmcSiParentTopUpToApi(client_id!, - empCodeString!, 'GMC-SI-PARENT-TOPUP', empClientBranchId!); + final response = await apiService.getGmcSiParentTopUpToApi( + enrollmentClient_id!, + enrollmentEmpCodeString!, + 'GMC-SI-PARENT-TOPUP', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { setState(() { @@ -570,13 +587,16 @@ class _addOnsDetailsState extends State { Future getGmcDependentAddOns() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } - final response = await apiService.getGmcDependentAddOnsToApi(client_id!, - empCodeString!, 'GMC-DEPENDENT-ADDON', empClientBranchId!); + final response = await apiService.getGmcDependentAddOnsToApi( + enrollmentClient_id!, + enrollmentEmpCodeString!, + 'GMC-DEPENDENT-ADDON', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { setState(() { @@ -743,8 +763,8 @@ class _addOnsDetailsState extends State { _memberNameController.clear(); _dobController.clear(); relationshipOptions.clear(); - getGpaEmpPolicyDetails(empPrimaryId); - getGmcEmpPolicyDetails(empPrimaryId); + getGpaEmpPolicyDetails(enrollmentEmpPrimaryId); + getGmcEmpPolicyDetails(enrollmentEmpPrimaryId); fetchRelationshipList(); getGmcSiTopUp(); getGmcSiParentTopUp(); @@ -767,13 +787,13 @@ class _addOnsDetailsState extends State { 'relationship': formData['relationship'], 'name': formData['memberName'], 'dob': formData['dateOfBirth'], - 'emp_code': empCodeString, - 'client_id': client_id, + 'emp_code': enrollmentEmpCodeString, + 'client_id': enrollmentClient_id, 'client_policy_id': floatedData['client_policy_id'], 'is_addon_value': 1, 'basic_cover_si': addOnsSelectedDependent, - 'created_by': empPrimaryId, - 'client_branch_id': empClientBranchId, + 'created_by': enrollmentEmpPrimaryId, + 'client_branch_id': enrollmentEmpClientBranchId, // Add the 'id' field only if action is 'Edit' if (action == 'Edit') 'id': floatedData['employee_id'], }); @@ -792,8 +812,8 @@ class _addOnsDetailsState extends State { _dobController.clear(); relationshipOptions.clear(); // Request successful, handle response - getGpaEmpPolicyDetails(empPrimaryId); - getGmcEmpPolicyDetails(empPrimaryId); + getGpaEmpPolicyDetails(enrollmentEmpPrimaryId); + getGmcEmpPolicyDetails(enrollmentEmpPrimaryId); fetchRelationshipList(); getGmcSiTopUp(); getGmcSiParentTopUp(); @@ -840,9 +860,9 @@ class _addOnsDetailsState extends State { 'basic_cover_si': addOnsSelectedDependent, 'client_policy_id': client_policy_id, 'employee_id': employee_id, - 'client_id': client_id, - 'emp_code': empCodeString, - 'client_branch_id': empClientBranchId, + 'client_id': enrollmentClient_id, + 'emp_code': enrollmentEmpCodeString, + 'client_branch_id': enrollmentEmpClientBranchId, }; // Add the map to the list @@ -900,9 +920,9 @@ class _addOnsDetailsState extends State { 'basic_cover_si': topUpSiSelectedSI, 'client_policy_id': client_policy_id, 'employee_id': employee_id, - 'client_id': client_id, - 'emp_code': empCodeString, - 'client_branch_id': empClientBranchId, + 'client_id': enrollmentClient_id, + 'emp_code': enrollmentEmpCodeString, + 'client_branch_id': enrollmentEmpClientBranchId, }; // Add the map to the list @@ -959,9 +979,9 @@ class _addOnsDetailsState extends State { 'basic_cover_si': topUpParentSiSelectedSI, 'client_policy_id': client_policy_id, 'employee_id': employee_id, - 'client_id': client_id, - 'emp_code': empCodeString, - 'client_branch_id': empClientBranchId, + 'client_id': enrollmentClient_id, + 'emp_code': enrollmentEmpCodeString, + 'client_branch_id': enrollmentEmpClientBranchId, }; // Add the map to the list @@ -993,11 +1013,12 @@ class _addOnsDetailsState extends State { Future removeAddonsGmcDependentToAPI() async { try { - if (empCodeString == null || addOnsDependentClientPolicyId == null) { + if (enrollmentEmpCodeString == null || + addOnsDependentClientPolicyId == null) { return; } final response = await apiService.removeAddonsGmcDependentToAPI( - empCodeString!, addOnsDependentClientPolicyId!); + enrollmentEmpCodeString!, addOnsDependentClientPolicyId!); if (response['status'] == 'success') { print(response['data']); } else { @@ -1012,11 +1033,11 @@ class _addOnsDetailsState extends State { Future removeAddonsGmcSiToAPI() async { try { - if (empCodeString == null || topUpClientPolicyId == null) { + if (enrollmentEmpCodeString == null || topUpClientPolicyId == null) { return; } final response = await apiService.removeAddonsGmcSiToAPI( - empCodeString!, topUpClientPolicyId!); + enrollmentEmpCodeString!, topUpClientPolicyId!); if (response['status'] == 'success') { print(response['data']); } else { @@ -1031,11 +1052,12 @@ class _addOnsDetailsState extends State { Future removeAddonsGmcParentSiToAPI() async { try { - if (empCodeString == null || topUpParentClientPolicyId == null) { + if (enrollmentEmpCodeString == null || + topUpParentClientPolicyId == null) { return; } final response = await apiService.removeAddonsGmcParentSiToAPI( - empCodeString!, topUpParentClientPolicyId!); + enrollmentEmpCodeString!, topUpParentClientPolicyId!); if (response['status'] == 'success') { print(response['data']); } else { @@ -1052,9 +1074,9 @@ class _addOnsDetailsState extends State { try { var calculation = { 'client_policy_id': topUpClientPolicyId, - 'emp_code': empCodeString, + 'emp_code': enrollmentEmpCodeString, 'si': choosedSiValue, - 'client_branch_id': empClientBranchId + 'client_branch_id': enrollmentEmpClientBranchId }; // Iterate through familyMembers list and send each member's data to the API @@ -1064,8 +1086,8 @@ class _addOnsDetailsState extends State { if (response['status'] == 'success') { List? topUpEmpArray; for (var item in response['data']) { - if (item.containsKey(empCodeString)) { - topUpEmpArray = item[empCodeString]; + if (item.containsKey(enrollmentEmpCodeString)) { + topUpEmpArray = item[enrollmentEmpCodeString]; break; } } @@ -1096,7 +1118,7 @@ class _addOnsDetailsState extends State { }); sendAddonsGmcSiToAPI(); } else { - print('Array not found for emp_code $empCodeString'); + print('Array not found for emp_code $enrollmentEmpCodeString'); } } else { print('Operation Failed!'); @@ -1110,9 +1132,9 @@ class _addOnsDetailsState extends State { try { var calculation = { 'client_policy_id': topUpParentClientPolicyId, - 'emp_code': empCodeString, + 'emp_code': enrollmentEmpCodeString, 'si': choosedSiValue, - 'client_branch_id': empClientBranchId + 'client_branch_id': enrollmentEmpClientBranchId }; // Iterate through familyMembers list and send each member's data to the API @@ -1123,8 +1145,8 @@ class _addOnsDetailsState extends State { if (response['status'] == 'success') { List? topUpEmpArray; for (var item in response['data']) { - if (item.containsKey(empCodeString)) { - topUpEmpArray = item[empCodeString]; + if (item.containsKey(enrollmentEmpCodeString)) { + topUpEmpArray = item[enrollmentEmpCodeString]; break; } } @@ -1154,7 +1176,7 @@ class _addOnsDetailsState extends State { }); sendAddonsGmcParentSiToAPI(); } else { - print('Array not found for emp_code $empCodeString'); + print('Array not found for emp_code $enrollmentEmpCodeString'); } } else { print('Operation Failed!'); @@ -1168,9 +1190,9 @@ class _addOnsDetailsState extends State { try { var calculation = { 'client_policy_id': addOnsDependentClientPolicyId, - 'emp_code': empCodeString, + 'emp_code': enrollmentEmpCodeString, 'si': choosedDependentValue, - 'client_branch_id': empClientBranchId + 'client_branch_id': enrollmentEmpClientBranchId }; // Iterate through familyMembers list and send each member's data to the API @@ -1181,8 +1203,8 @@ class _addOnsDetailsState extends State { if (response['status'] == 'success') { List? addOnsEmpArray; for (var item in response['data']) { - if (item.containsKey(empCodeString)) { - addOnsEmpArray = item[empCodeString]; + if (item.containsKey(enrollmentEmpCodeString)) { + addOnsEmpArray = item[enrollmentEmpCodeString]; break; } } @@ -1211,7 +1233,7 @@ class _addOnsDetailsState extends State { addOnDependentPremiumValue + addOnsDependentPremiumGst; }); } else { - print('Array not found for emp_code $empCodeString'); + print('Array not found for emp_code $enrollmentEmpCodeString'); } } else { print('Operation Failed!'); @@ -1247,9 +1269,9 @@ class _addOnsDetailsState extends State { iAgreeForAddOn = iAgreeForAddOn.toSet().toList(); Map apiParams = { - 'emp_code': empCodeString, + 'emp_code': enrollmentEmpCodeString, 'client_policy_id': iAgreeForAddOn, - 'client_id': client_id, + 'client_id': enrollmentClient_id, }; try { diff --git a/lib/pages/enrollment/empDetails.dart b/lib/pages/enrollment/empDetails.dart index fda4ca5..c6cb0ef 100644 --- a/lib/pages/enrollment/empDetails.dart +++ b/lib/pages/enrollment/empDetails.dart @@ -28,10 +28,10 @@ class _empDetailsState extends State { late ApiService apiService; bool isLoading = true; dynamic _token; - dynamic empCodeString; - dynamic empPrimaryId; - dynamic gpaEmpName; - dynamic client_id; + dynamic enrollmentEmpCodeString; + dynamic enrollmentEmpPrimaryId; + dynamic enrollmentGpaEmpName; + dynamic enrollmentClient_id; dynamic gpaPolicies; dynamic gpaPolicyName; dynamic gpaGridMaster; @@ -98,7 +98,7 @@ class _empDetailsState extends State { dynamic gpaDataIsEmpty = 1; dynamic hrPrimaryId; dynamic empRefId; - dynamic empClientBranchId; + dynamic enrollmentEmpClientBranchId; @override void initState() { @@ -127,22 +127,25 @@ class _empDetailsState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('enrollToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; }); + // Decode the JWT token received from the API response Map? decodedToken = Jwt.parseJwt(token); print('decodedToken : $decodedToken'); - empClientBranchId = prefs.getString('empClientBranchId'); - empCodeString = prefs.getString('empCode'); - print('empCodeString : $empCodeString'); // Check if emp_code is correct - empPrimaryId = prefs.getString('empPrimaryId'); - gpaEmpName = prefs.getString('gpaEmpName'); - client_id = prefs.getString('client_id'); + enrollmentEmpClientBranchId = + prefs.getString('enrollmentEmpClientBranchId'); + enrollmentEmpCodeString = prefs.getString('enrollmentEmpCodeString'); + print( + 'enrollmentEmpCodeString : $enrollmentEmpCodeString'); // Check if emp_code is correct + enrollmentEmpPrimaryId = prefs.getString('enrollmentEmpPrimaryId'); + enrollmentGpaEmpName = prefs.getString('enrollmentGpaEmpName'); + enrollmentClient_id = prefs.getString('enrollmentClient_id'); selfEmpStatus = prefs.getString('selfEmpStatus'); - print('client_id : $client_id'); + print('client_id : $enrollmentClient_id'); if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) { clientLogo = prefs.getString('clientLogo'); @@ -153,8 +156,8 @@ class _empDetailsState extends State { // Call the API when the page enters getSelfEmployeeProfile(); - getGpaEmpPolicyDetails(empPrimaryId); - getGmcEmpPolicyDetails(empPrimaryId); + getGpaEmpPolicyDetails(enrollmentEmpPrimaryId); + getGmcEmpPolicyDetails(enrollmentEmpPrimaryId); fetchRelationshipList(); } else { // Token is empty or null, handle accordingly (e.g., navigate to login screen) @@ -165,13 +168,15 @@ class _empDetailsState extends State { Future getClientLogoAndDetails() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getClientLogoAndDetailsToApi( - client_id!, empCodeString!, empClientBranchId!); + enrollmentClient_id!, + enrollmentEmpCodeString!, + enrollmentEmpClientBranchId!); print('check 1'); if (response['status'] == 'success') { @@ -202,13 +207,15 @@ class _empDetailsState extends State { Future getSelfEmployeeProfile() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getSelfEmployeeProfileToApi( - client_id!, empCodeString!, empClientBranchId!); + enrollmentClient_id!, + enrollmentEmpCodeString!, + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { @@ -261,15 +268,19 @@ class _empDetailsState extends State { return formattedDate; } - Future getGpaEmpPolicyDetails(empPrimaryId) async { + Future getGpaEmpPolicyDetails(enrollmentEmpPrimaryId) async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGpaEmpPolicyDetailsToApi( - empPrimaryId, empCodeString!, client_id!, 'GPA', empClientBranchId!); + enrollmentEmpPrimaryId, + enrollmentEmpCodeString!, + enrollmentClient_id!, + 'GPA', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { setState(() { @@ -290,15 +301,19 @@ class _empDetailsState extends State { } } - Future getGmcEmpPolicyDetails(empPrimaryId) async { + Future getGmcEmpPolicyDetails(enrollmentEmpPrimaryId) async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGmcEmpPolicyDetailsToApi( - empPrimaryId, empCodeString!, client_id!, 'GMC', empClientBranchId!); + enrollmentEmpPrimaryId, + enrollmentEmpCodeString!, + enrollmentClient_id!, + 'GMC', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { setState(() { gmcPolicies = response['data']; @@ -424,8 +439,8 @@ class _empDetailsState extends State { _memberNameController.clear(); _dobController.clear(); relationshipOptions.clear(); - getGpaEmpPolicyDetails(empPrimaryId); - getGmcEmpPolicyDetails(empPrimaryId); + getGpaEmpPolicyDetails(enrollmentEmpPrimaryId); + getGmcEmpPolicyDetails(enrollmentEmpPrimaryId); fetchRelationshipList(); ToastHelper.showSuccessToast(context, 'Item deleted successfully'); print('Item deleted successfully'); @@ -455,17 +470,17 @@ class _empDetailsState extends State { primaryId = hrPrimaryId; is_createdby_hr = 1; } else { - primaryId = empPrimaryId; + primaryId = enrollmentEmpPrimaryId; is_createdby_hr = 0; } formDataList.add({ - 'client_branch_id': empClientBranchId, + 'client_branch_id': enrollmentEmpClientBranchId, 'relationship': formData['relationship'], 'name': formData['memberName'], 'dob': formData['dateOfBirth'], - 'emp_code': empCodeString, - 'client_id': client_id, + 'emp_code': enrollmentEmpCodeString, + 'client_id': enrollmentClient_id, 'client_policy_id': floatedData['client_policy_id'], 'created_by': primaryId, 'is_createdby_hr': is_createdby_hr, @@ -491,8 +506,8 @@ class _empDetailsState extends State { _dobController.clear(); relationshipOptions.clear(); // Request successful, handle response - getGpaEmpPolicyDetails(empPrimaryId); - getGmcEmpPolicyDetails(empPrimaryId); + getGpaEmpPolicyDetails(enrollmentEmpPrimaryId); + getGmcEmpPolicyDetails(enrollmentEmpPrimaryId); fetchRelationshipList(); ToastHelper.showSuccessToast(context, 'Saved Successfully.'); print('Form data sent successfully.'); diff --git a/lib/pages/enrollment/empReview.dart b/lib/pages/enrollment/empReview.dart index 30e39d4..912aff7 100644 --- a/lib/pages/enrollment/empReview.dart +++ b/lib/pages/enrollment/empReview.dart @@ -42,10 +42,10 @@ class _empReviewDetailsState extends State { false; // Declare the _isSwitched variable here dynamic _token; - dynamic empCodeString; - dynamic empPrimaryId; - dynamic gpaEmpName; - dynamic client_id; + dynamic enrollmentEmpCodeString; + dynamic enrollmentEmpPrimaryId; + dynamic enrollmentGpaEmpName; + dynamic enrollmentClient_id; dynamic gpaPolicies; dynamic gpaPolicyName; dynamic gpaGridMaster; @@ -62,6 +62,8 @@ class _empReviewDetailsState extends State { dynamic gpaSiPremiumValue; dynamic gpaTotalableValue; late bool isValueValid; + dynamic gpaTotalAmt; + dynamic gmcTotalAmt; dynamic gmcGstValue; dynamic gmcSiPremiumValue; dynamic gmcTotalableValue; @@ -89,7 +91,7 @@ class _empReviewDetailsState extends State { dynamic gmcFloaterTextHeading; dynamic dependentValue; dynamic siValue; - dynamic addOnsDependentSumInsured; + late int addOnsDependentSumInsured; dynamic addOnsDependentPolicyName; dynamic addOnsDependentPolicyType; dynamic addOnsFloaterTextHeading; @@ -149,7 +151,7 @@ class _empReviewDetailsState extends State { int activePremiumSummary = 0; dynamic gmcDataIsEmpty = 1; dynamic gpaDataIsEmpty = 1; - dynamic empClientBranchId; + dynamic enrollmentEmpClientBranchId; dynamic selfEmpStatus; dynamic topUpOpenForEnrollment; dynamic topUpParentOpenForEnrollment; @@ -189,19 +191,20 @@ class _empReviewDetailsState extends State { Future _loadToken() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('enrollToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; }); selfEmpStatus = prefs.getString('selfEmpStatus'); - empClientBranchId = prefs.getString('empClientBranchId'); - empCodeString = prefs.getString('empCode'); - print(empCodeString); // Check if emp_code is correct - empPrimaryId = prefs.getString('empPrimaryId'); - gpaEmpName = prefs.getString('gpaEmpName'); - client_id = prefs.getString('client_id'); - print(client_id); + enrollmentEmpClientBranchId = + prefs.getString('enrollmentEmpClientBranchId'); + enrollmentEmpCodeString = prefs.getString('enrollmentEmpCodeString'); + print(enrollmentEmpCodeString); // Check if emp_code is correct + enrollmentEmpPrimaryId = prefs.getString('enrollmentEmpPrimaryId'); + enrollmentGpaEmpName = prefs.getString('enrollmentGpaEmpName'); + enrollmentClient_id = prefs.getString('enrollmentClient_id'); + print(enrollmentClient_id); // Call the API when the page enters if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) { @@ -213,8 +216,8 @@ class _empReviewDetailsState extends State { getGmcSiTopUp(); getGmcSiParentTopUp(); getGmcDependentAddOns(); - getGpaEmpPolicyDetails(empPrimaryId); - getGmcEmpPolicyDetails(empPrimaryId); + getGpaEmpPolicyDetails(enrollmentEmpPrimaryId); + getGmcEmpPolicyDetails(enrollmentEmpPrimaryId); primarySummary(); _sortDisclaimerByTypeOrder(); } else { @@ -263,6 +266,7 @@ class _empReviewDetailsState extends State { activeDependentData = 1; String? dependentDataJson = prefs.getString('dependentData'); print('dependentDataJson'); + print('activeDependentData $activeDependentData'); print(dependentDataJson); List dependentDataList = jsonDecode(dependentDataJson!); @@ -291,13 +295,18 @@ class _empReviewDetailsState extends State { } // Calculate the sum, skipping any missing values + print('topUpSiTotalAmt: $topUpSiTotalAmt'); + print('topUpParentSiTotalAmt: $topUpParentSiTotalAmt'); + print('addOnsDependentTotalAmt: $addOnsDependentTotalAmt'); + print('gpaTotalAmt: $gpaTotalAmt'); + print('gmcTotalAmt: $gmcTotalAmt'); + if (topUpSiTotalAmt != null) totalPayableAmt += topUpSiTotalAmt; if (topUpParentSiTotalAmt != null) totalPayableAmt += topUpParentSiTotalAmt; if (addOnsDependentTotalAmt != null) totalPayableAmt += addOnsDependentTotalAmt; - // Print or use the totalAmtSum value - print('Sum of Total Amounts: $totalPayableAmt'); + print('Final Total Payable Amount: $totalPayableAmt'); } void _sortDisclaimerByTypeOrder() { @@ -310,13 +319,15 @@ class _empReviewDetailsState extends State { Future getClientLogoAndDetails() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getClientLogoAndDetailsToApi( - client_id!, empCodeString!, empClientBranchId!); + enrollmentClient_id!, + enrollmentEmpCodeString!, + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { dynamic clientDetails = response['data']; @@ -339,15 +350,19 @@ class _empReviewDetailsState extends State { } } - Future getGpaEmpPolicyDetails(empPrimaryId) async { + Future getGpaEmpPolicyDetails(enrollmentEmpPrimaryId) async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGpaEmpPolicyDetailsToApi( - empPrimaryId, empCodeString!, client_id!, 'GPA', empClientBranchId!); + enrollmentEmpPrimaryId, + enrollmentEmpCodeString!, + enrollmentClient_id!, + 'GPA', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { setState(() { @@ -413,19 +428,23 @@ class _empReviewDetailsState extends State { } } - Future getGmcEmpPolicyDetails(empPrimaryId) async { + Future getGmcEmpPolicyDetails(enrollmentEmpPrimaryId) async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGmcEmpPolicyDetailsToApi( - empPrimaryId, empCodeString!, client_id!, 'GMC', empClientBranchId!); + enrollmentEmpPrimaryId, + enrollmentEmpCodeString!, + enrollmentClient_id!, + 'GMC', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { setState(() { gmcPolicies = response['data']; - print('gmcPolicies'); + print('gmcPolicies $gmcPolicies'); for (var item in gmcPolicies) { if (item['OpenForEnrollment'] == '1') { dynamic disclaimer = item['disclaimer']; @@ -487,13 +506,16 @@ class _empReviewDetailsState extends State { Future getGmcSiTopUp() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } final response = await apiService.getGmcSiTopUpToApi( - client_id!, empCodeString!, 'GMC-SI-TOPUP', empClientBranchId!); + enrollmentClient_id!, + enrollmentEmpCodeString!, + 'GMC-SI-TOPUP', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { dynamic topUpSiPolicies = response['data']; @@ -600,13 +622,16 @@ class _empReviewDetailsState extends State { Future getGmcSiParentTopUp() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } - final response = await apiService.getGmcSiParentTopUpToApi(client_id!, - empCodeString!, 'GMC-SI-PARENT-TOPUP', empClientBranchId!); + final response = await apiService.getGmcSiParentTopUpToApi( + enrollmentClient_id!, + enrollmentEmpCodeString!, + 'GMC-SI-PARENT-TOPUP', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { setState(() { @@ -740,13 +765,16 @@ class _empReviewDetailsState extends State { Future getGmcDependentAddOns() async { try { - if (client_id == null || - empCodeString == null || - empClientBranchId == null) { + if (enrollmentClient_id == null || + enrollmentEmpCodeString == null || + enrollmentEmpClientBranchId == null) { return; } - final response = await apiService.getGmcDependentAddOnsToApi(client_id!, - empCodeString!, 'GMC-DEPENDENT-ADDON', empClientBranchId!); + final response = await apiService.getGmcDependentAddOnsToApi( + enrollmentClient_id!, + enrollmentEmpCodeString!, + 'GMC-DEPENDENT-ADDON', + enrollmentEmpClientBranchId!); if (response['status'] == 'success') { if (response.containsKey('data')) { dynamic addOnsDependentPolicies = response['data']; @@ -758,14 +786,18 @@ class _empReviewDetailsState extends State { ['client_policy_id']; print(addOnsDependentClientPolicyId); - addOnsDependentSumInsured = + addOnsDependentSumInsured = int.parse( addOnsDependentPolicies['gmc_dependent_addon'] - ['family_floaters_of_dependent_and_si_value']; - print(addOnsDependentSumInsured); + ['family_floaters_of_dependent_and_si_value'] + .toString()); + print('addOnsDependentSumInsured $addOnsDependentSumInsured'); - final checkValue = addOnsDependentSumInsured + - addOnsDependentPolicies['gmc_dependent_addon'] - ['family_floaters_of_dependent_and_si_premium_value']; + var value = int.parse(addOnsDependentPolicies['gmc_dependent_addon'] + ['family_floaters_of_dependent_and_si_premium_value'] + .toString()); + print(value); + + final checkValue = addOnsDependentSumInsured + value; print('checkValue $checkValue'); if (checkValue == 0) { showHideAddOnsCard = 0; @@ -803,13 +835,17 @@ class _empReviewDetailsState extends State { addOnsDependentDisclaimer = await addOnsDependentPolicies['gmc_dependent_addon'] ['disclaimer']; - + print( + 'addOnsDependentOpenForEnrollment $addOnsDependentDisclaimer'); addOnsDependentOpenForEnrollment = await addOnsDependentPolicies['gmc_dependent_addon'] ['OpenForEnrollment']; - + print( + 'addOnsDependentOpenForEnrollment $addOnsDependentOpenForEnrollment'); + print('activeDependentData $activeDependentData'); if (addOnsDependentOpenForEnrollment == '1' && activeDependentData == 1) { + print('addOnsDependentOpenForEnrollment'); if (addOnsDependentDisclaimer != null && addOnsDependentDisclaimer.isNotEmpty) { // Temporary list to hold new entries @@ -940,9 +976,9 @@ class _empReviewDetailsState extends State { print(iAgreeForAddOn); // Output: [90, 92, 88, 89] Map apiParams = { - 'emp_code': empCodeString, + 'emp_code': enrollmentEmpCodeString, 'client_policy_id': iAgreeForAddOn, - 'client_id': client_id, + 'client_id': enrollmentClient_id, }; print(apiParams); @@ -1097,6 +1133,18 @@ class _empReviewDetailsState extends State { return true; } + double allTotalSum() { + double total = 0.0; // Initialize to avoid unwanted accumulation + + if (topUpSiTotalAmt != null) total += topUpSiTotalAmt!; + if (topUpParentSiTotalAmt != null) total += topUpParentSiTotalAmt!; + if (addOnsDependentTotalAmt != null) total += addOnsDependentTotalAmt!; + if (gpaTotalAmt != null) total += gpaTotalAmt!; + if (gmcTotalAmt != null) total += gmcTotalAmt!; + + return total; + } + @override Widget build(BuildContext context) { if ((gpaMappedFamilyFloaters == [] && gpaMappedFamilyFloaters == null) && @@ -1282,7 +1330,7 @@ class _empReviewDetailsState extends State { CrossAxisAlignment.start, children: [ Text( - '₹$totalPayableAmt/Year ', + '₹${allTotalSum()}/Year', textAlign: TextAlign.left, style: GoogleFonts.poppins( fontSize: @@ -2119,8 +2167,14 @@ class _empReviewDetailsState extends State { ), ], ), - ...buildPolicyRows( - gpaPolicies, context), + if (gpaPolicies != null && + gpaPolicies.length > 0) + ...gpaBuildPolicyRows( + gpaPolicies, context), + if (gmcPolicies != null && + gmcPolicies.length > 0) + ...gmcBuildPolicyRows( + gmcPolicies, context), if (activeSiData == 1) TableRow( children: [ @@ -2426,7 +2480,7 @@ class _empReviewDetailsState extends State { CrossAxisAlignment.end, children: [ Text( - '₹$totalPayableAmt/Year', + '₹${allTotalSum()}/Year', textAlign: TextAlign.right, style: GoogleFonts.poppins( fontSize: @@ -3561,64 +3615,174 @@ class _empReviewDetailsState extends State { return cards; } - List buildPolicyRows( - List> policies, BuildContext context) { - return policies.where((policy) { - var siGstValue = policy["si_gst_value"] ?? 0; - var siPremiumValue = policy["si_premium_value"] ?? 0; - return siGstValue != 0 && - siPremiumValue != 0; // Filter out invalid policies - }).map((policy) { - return TableRow( - children: [ - TableCell( - child: Padding( - padding: EdgeInsets.all(8.0), - child: Text( - Responsive.isDesktop(context) - ? (policy["Policy_Name"] ?? 'Default Policy Name') - : policy['type'], - textAlign: TextAlign.start, - style: GoogleFonts.poppins( - fontSize: Responsive.isDesktop(context) ? 14 : 12), + double calculateGpaTotalAmt(List> policies) { + double total = policies + .where((policy) => policy is Map) + .map((policy) => + (policy["si_gst_value"] ?? 0) + (policy["si_premium_value"] ?? 0)) + .fold(0.0, (sum, value) => sum + value); + + print('Calculated gpaTotalAmt: $total'); // Debug print + return total; + } + + double calculateGmcTotalAmt(List> policies) { + double total = policies + .where((policy) => policy is Map) + .map((policy) => + (policy["family_floaters_of_dependent_and_gst_value"] ?? 0) + + (policy["family_floaters_of_dependent_and_si_premium_value"] ?? 0)) + .fold(0.0, (sum, value) => sum + value); + + print('Calculated gmcTotalAmt: $total'); // Debug print + return total; + } + + List gpaBuildPolicyRows(dynamic policies, BuildContext context) { + if (policies is! List) { + return []; // Return empty list if policies is not a list + } + gpaTotalAmt = calculateGpaTotalAmt(policies.cast>()); + + print('gpaTotalAmt $gpaTotalAmt'); + return (policies as List) + .where((policy) => policy is Map) // Ensure each item is a Map + .map((policy) { + var siGstValue = policy["si_gst_value"] ?? 0; + var siPremiumValue = policy["si_premium_value"] ?? 0; + + if (siGstValue == 0 || siPremiumValue == 0) + return null; // Skip invalid policies + + return TableRow( + children: [ + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + Responsive.isDesktop(context) + ? (policy["Policy_Name"] ?? 'Default Policy Name') + : policy['type'], + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), ), - ), - ), - TableCell( - child: Padding( - padding: EdgeInsets.all(8.0), - child: Text( - '₹${policy["si_premium_value"]}/Year', - textAlign: TextAlign.start, - style: GoogleFonts.poppins( - fontSize: Responsive.isDesktop(context) ? 14 : 12), + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + '₹${policy["si_premium_value"]}/Year', + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), ), - ), - ), - TableCell( - child: Padding( - padding: EdgeInsets.all(8.0), - child: Text( - '₹${policy["si_gst_value"]}/-', - textAlign: TextAlign.start, - style: GoogleFonts.poppins( - fontSize: Responsive.isDesktop(context) ? 14 : 12), + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + '₹${policy["si_gst_value"]}/-', + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), ), - ), - ), - TableCell( - child: Padding( - padding: EdgeInsets.all(8.0), - child: Text( - '₹${(policy["si_premium_value"] ?? 0) + (policy["si_gst_value"] ?? 0)}/-', - textAlign: TextAlign.start, - style: GoogleFonts.poppins( - fontSize: Responsive.isDesktop(context) ? 14 : 12), + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + '₹${(policy["si_premium_value"] ?? 0) + (policy["si_gst_value"] ?? 0)}/-', + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), ), - ), - ), - ], - ); - }).toList(); + ], + ); + }) + .whereType() // Filter out null values + .toList(); + } + + List gmcBuildPolicyRows(dynamic policies, BuildContext context) { + print('gmcBuildPolicyRows $policies'); + + if (policies is! List) { + return []; // Return empty list if policies is not a list + } + gmcTotalAmt = calculateGmcTotalAmt(policies.cast>()); + + print('gmcTotalAmt $gmcTotalAmt'); + return (policies as List) + .where((policy) => policy is Map) // Ensure each item is a Map + .map((policy) { + var siGstValue = + policy["family_floaters_of_dependent_and_gst_value"] ?? 0; + var siPremiumValue = + policy["family_floaters_of_dependent_and_si_premium_value"] ?? 0; + + if (siGstValue == 0 || siPremiumValue == 0) + return null; // Skip invalid policies + + return TableRow( + children: [ + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + Responsive.isDesktop(context) + ? (policy["Policy_Name"] ?? 'Default Policy Name') + : policy['type'], + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), + ), + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + '₹${policy["family_floaters_of_dependent_and_si_premium_value"]}/Year', + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), + ), + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + '₹${policy["family_floaters_of_dependent_and_gst_value"]}/-', + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), + ), + TableCell( + child: Padding( + padding: EdgeInsets.all(8.0), + child: Text( + '₹${(policy["family_floaters_of_dependent_and_si_premium_value"] ?? 0) + (policy["family_floaters_of_dependent_and_gst_value"] ?? 0)}/-', + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: Responsive.isDesktop(context) ? 14 : 12), + ), + ), + ), + ], + ); + }) + .whereType() // Filter out null values + .toList(); } } diff --git a/lib/pages/enrollment/service/api_service.dart b/lib/pages/enrollment/service/api_service.dart index a180ce6..27d452f 100644 --- a/lib/pages/enrollment/service/api_service.dart +++ b/lib/pages/enrollment/service/api_service.dart @@ -18,7 +18,7 @@ class ApiService { Future _initializeToken() async { final prefs = await SharedPreferences.getInstance(); - _token = prefs.getString('token') ?? ''; + _token = prefs.getString('enrollToken') ?? ''; final hrprefs = await SharedPreferences.getInstance(); _hrtoken = hrprefs.getString('hrtoken') ?? ''; } diff --git a/lib/pages/login.dart b/lib/pages/login.dart index 57f7843..0937669 100644 --- a/lib/pages/login.dart +++ b/lib/pages/login.dart @@ -58,7 +58,7 @@ class _loginState extends State { // _token = prefs.getString('token'); final response = await http.post( - Uri.parse(Environment.apiUrl + 'checkMpin'), + Uri.parse(Environment.apiUrlEnrollment + 'checkMpin'), body: json.encode({'mobile_number': empMobileNo}), headers: { HttpHeaders.contentTypeHeader: 'application/json', @@ -98,8 +98,8 @@ class _loginState extends State { // Determine the API and the payload based on the visible field String apiEndpoint = isEmailFieldVisible - ? Environment.apiUrl + 'verifyEmployeeEmailId' - : Environment.apiUrl + 'verifyEmployeeNumber'; + ? Environment.apiUrlEnrollment + 'verifyEmployeeEmailId' + : Environment.apiUrlEnrollment + 'verifyEmployeeNumber'; Map payload = isEmailFieldVisible ? {'email': emailController.text} diff --git a/lib/pages/postEnrollment/claimprocess.dart b/lib/pages/postEnrollment/claimprocess.dart index 8f50f91..51a994a 100644 --- a/lib/pages/postEnrollment/claimprocess.dart +++ b/lib/pages/postEnrollment/claimprocess.dart @@ -53,7 +53,7 @@ class _claimprocessState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/claims.dart b/lib/pages/postEnrollment/claims.dart index 61a6bd1..50e9ca0 100644 --- a/lib/pages/postEnrollment/claims.dart +++ b/lib/pages/postEnrollment/claims.dart @@ -77,7 +77,7 @@ class _claimsState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/claimtracklist.dart b/lib/pages/postEnrollment/claimtracklist.dart index 0074e24..339e69d 100644 --- a/lib/pages/postEnrollment/claimtracklist.dart +++ b/lib/pages/postEnrollment/claimtracklist.dart @@ -107,7 +107,7 @@ class _claimtracklistformState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/generalexclusionsdeductibles.dart b/lib/pages/postEnrollment/generalexclusionsdeductibles.dart index 7ad0611..1d7043e 100644 --- a/lib/pages/postEnrollment/generalexclusionsdeductibles.dart +++ b/lib/pages/postEnrollment/generalexclusionsdeductibles.dart @@ -76,7 +76,7 @@ class _generalExclusionsDeductiblesState Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/help.dart b/lib/pages/postEnrollment/help.dart index 08db05d..20b48c1 100644 --- a/lib/pages/postEnrollment/help.dart +++ b/lib/pages/postEnrollment/help.dart @@ -78,7 +78,7 @@ class _helpState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/home.dart b/lib/pages/postEnrollment/home.dart index 007ea71..2dd0f93 100644 --- a/lib/pages/postEnrollment/home.dart +++ b/lib/pages/postEnrollment/home.dart @@ -62,7 +62,7 @@ class _HomeState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/planclaimsform.dart b/lib/pages/postEnrollment/planclaimsform.dart index 129818e..c977b19 100644 --- a/lib/pages/postEnrollment/planclaimsform.dart +++ b/lib/pages/postEnrollment/planclaimsform.dart @@ -157,7 +157,7 @@ class _planclaimsformState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/policies.dart b/lib/pages/postEnrollment/policies.dart index 66ae648..539ba6c 100644 --- a/lib/pages/postEnrollment/policies.dart +++ b/lib/pages/postEnrollment/policies.dart @@ -66,7 +66,7 @@ class _policiesState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; diff --git a/lib/pages/postEnrollment/profile.dart b/lib/pages/postEnrollment/profile.dart index da9e147..d65be5b 100644 --- a/lib/pages/postEnrollment/profile.dart +++ b/lib/pages/postEnrollment/profile.dart @@ -75,7 +75,7 @@ class _profileState extends State { Future _loadToken() async { print('_loadToken'); final SharedPreferences prefs = await SharedPreferences.getInstance(); - final String? token = prefs.getString('token'); + final String? token = prefs.getString('_postToken'); if (token != null && token.isNotEmpty) { setState(() { _token = token; @@ -150,27 +150,27 @@ class _profileState extends State { } Future logout(BuildContext context) async { - if (isMobilePlatform()) { - final SharedPreferences prefs = await SharedPreferences.getInstance(); + // if (isMobilePlatform()) { + final SharedPreferences prefs = await SharedPreferences.getInstance(); - // Get the value of the mobile_number key - String? mobileNumber = prefs.getString('empMobileNo'); + // Get the value of the mobile_number key + String? mobileNumber = prefs.getString('empMobileNo'); - // Clear all keys - await prefs.clear(); + // Clear all keys + await prefs.clear(); - // Re-set the mobile_number key - if (mobileNumber != null) { - await prefs.setString('empMobileNo', mobileNumber); - } - ToastHelper.showSuccessToast(context, 'logout'); - // Navigate to login page - Navigator.pushNamed(context, 'login'); - } else { - final prefs = await SharedPreferences.getInstance(); - await prefs.clear(); - Navigator.pushNamed(context, 'login'); + // Re-set the mobile_number key + if (mobileNumber != null) { + await prefs.setString('empMobileNo', mobileNumber); } + ToastHelper.showSuccessToast(context, 'logout'); + // Navigate to login page + Navigator.pushNamed(context, 'login'); + // } else { + // final prefs = await SharedPreferences.getInstance(); + // await prefs.clear(); + // Navigator.pushNamed(context, 'login'); + // } } @override diff --git a/lib/pages/postEnrollment/service/api_service.dart b/lib/pages/postEnrollment/service/api_service.dart index 3621937..22fce7b 100644 --- a/lib/pages/postEnrollment/service/api_service.dart +++ b/lib/pages/postEnrollment/service/api_service.dart @@ -15,7 +15,7 @@ class ApiService { Future _initializeToken() async { final prefs = await SharedPreferences.getInstance(); - _token = prefs.getString('token') ?? ''; + _token = prefs.getString('_postToken') ?? ''; } Future> getActiveAndInactivePolicyDetails( diff --git a/lib/pages/session/SetPinBiometric.dart b/lib/pages/session/SetPinBiometric.dart index 08bc31b..cce4cc4 100644 --- a/lib/pages/session/SetPinBiometric.dart +++ b/lib/pages/session/SetPinBiometric.dart @@ -28,14 +28,21 @@ class _pinPageState extends State { String? savedPin; dynamic empMobileNo; dynamic _token; + dynamic _postToken; dynamic empCodeString; dynamic empClientBranchId; dynamic empPrimaryId; dynamic gpaEmpName; dynamic client_id; + dynamic emp_status; + dynamic enrollmentEmpCodeString; + dynamic enrollmentEmpClientBranchId; + dynamic enrollmentEmpPrimaryId; + dynamic enrollmentGpaEmpName; + dynamic enrollmentClient_id; dynamic clientName; dynamic clientLogo; - dynamic emp_status; + dynamic enrollmentEmp_status; dynamic bioMetricMpin; @override @@ -70,7 +77,7 @@ class _pinPageState extends State { // _token = prefs.getString('token'); final response = await http.post( - Uri.parse(Environment.apiUrl + 'verifyMpin'), + Uri.parse(Environment.apiUrlEnrollment + 'verifyMpin'), body: json.encode({'mobile_number': empMobileNo, 'mpin': mpin}), headers: { HttpHeaders.contentTypeHeader: 'application/json', @@ -79,37 +86,22 @@ class _pinPageState extends State { if (response.statusCode == 200) { Map data = json.decode(response.body); - if (data['status'] == 'success') { - final SharedPreferences prefs = await SharedPreferences.getInstance(); - prefs.setString('token', data['data']); - // Decode the JWT token received from the API response - Map? decodedToken = Jwt.parseJwt(data['data']); - print('decodedToken : $decodedToken'); - empClientBranchId = decodedToken['client_branch_id']; - prefs.setString('empClientBranchId', empClientBranchId); - empCodeString = decodedToken['emp_code'].toString(); - prefs.setString('empCode', empCodeString); - empPrimaryId = decodedToken['id']; - prefs.setString('empPrimaryId', empPrimaryId); - gpaEmpName = decodedToken['name'].toString(); - prefs.setString('gpaEmpName', gpaEmpName); - client_id = decodedToken['client_id']; - prefs.setString('client_id', client_id); - emp_status = decodedToken['emp_status']; - prefs.setString('emp_status', emp_status); - getClientLogoAndDetails(); + print('data: $data'); + _token = data['data']; + String status = data['status']; - print('Successfully Login'); - final token = prefs.getString('token'); - if (token != null && token.isNotEmpty) { - ToastHelper.showSuccessToast(context, 'Successfully Login'); - if (emp_status == 'enrolled' || emp_status == 'active') { - Navigator.pushReplacementNamed(context, 'home'); - } else { - Navigator.pushReplacementNamed(context, 'empDetails'); - } - } + // Directly access the post_enrollment data + Map post = data['post_enrollment']; + print('post: $post'); + + _postToken = post['data']; + String postStatus = post['status']; + + if (postStatus == 'success') { + postSuccessData(post, data); + } else if (status == 'success') { + enrollmentSuccessData(data); } else { ToastHelper.showErrorToast(context, 'Invalid Pin Number'); print('Invalid Pin Number'); @@ -124,6 +116,108 @@ class _pinPageState extends State { } } + void postSuccessData(post, data) async { + String status = data['status']; + String postStatus = post['status']; + + if (postStatus == 'success') { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('_postToken', post['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(post['data']); + print('decodedToken : $decodedToken'); + empClientBranchId = decodedToken['client_branch_id']; + prefs.setString('empClientBranchId', empClientBranchId); + empCodeString = decodedToken['emp_code'].toString(); + prefs.setString('empCode', empCodeString); + empPrimaryId = decodedToken['id']; + prefs.setString('empPrimaryId', empPrimaryId); + gpaEmpName = decodedToken['name'].toString(); + prefs.setString('gpaEmpName', gpaEmpName); + client_id = decodedToken['client_id']; + prefs.setString('client_id', client_id); + emp_status = decodedToken['emp_status']; + prefs.setString('emp_status', emp_status); + // getClientLogoAndDetails(); + + print('Successfully Login'); + + // Redirect to another page + } + + if (status == 'success') { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('enrollToken', data['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(data['data']); + print('decodedToken : $decodedToken'); + enrollmentEmpClientBranchId = decodedToken['client_branch_id']; + prefs.setString( + 'enrollmentEmpClientBranchId', enrollmentEmpClientBranchId); + enrollmentEmpCodeString = decodedToken['emp_code'].toString(); + prefs.setString('enrollmentEmpCodeString', enrollmentEmpCodeString); + enrollmentEmpPrimaryId = decodedToken['id']; + prefs.setString('enrollmentEmpPrimaryId', enrollmentEmpPrimaryId); + enrollmentGpaEmpName = decodedToken['name'].toString(); + prefs.setString('enrollmentGpaEmpName', enrollmentGpaEmpName); + enrollmentClient_id = decodedToken['client_id']; + prefs.setString('enrollmentClient_id', enrollmentClient_id); + enrollmentEmp_status = decodedToken['emp_status']; + prefs.setString('enrollmentEmp_status', enrollmentEmp_status); + getClientLogoAndDetails(); + } + + final SharedPreferences prefs = await SharedPreferences.getInstance(); + final token = prefs.getString('_postToken'); + if (token != null && token.isNotEmpty) { + ToastHelper.showSuccessToast(context, 'Successfully Login'); + // if (enrollmentEmp_status == 'enrolled' || + // enrollmentEmp_status == 'active') { + Navigator.pushReplacementNamed(context, 'home'); + // } else { + // Navigator.pushReplacementNamed(context, 'empDetails'); + // } + } + } + + void enrollmentSuccessData(data) async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('enrollToken', data['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(data['data']); + print('decodedToken : $decodedToken'); + enrollmentEmpClientBranchId = decodedToken['client_branch_id']; + prefs.setString('enrollmentEmpClientBranchId', enrollmentEmpClientBranchId); + enrollmentEmpCodeString = decodedToken['emp_code'].toString(); + prefs.setString('enrollmentEmpCodeString', enrollmentEmpCodeString); + enrollmentEmpPrimaryId = decodedToken['id']; + prefs.setString('enrollmentEmpPrimaryId', enrollmentEmpPrimaryId); + enrollmentGpaEmpName = decodedToken['name'].toString(); + prefs.setString('enrollmentGpaEmpName', enrollmentGpaEmpName); + enrollmentClient_id = decodedToken['client_id']; + prefs.setString('enrollmentClient_id', enrollmentClient_id); + enrollmentEmp_status = decodedToken['emp_status']; + prefs.setString('enrollmentEmp_status', enrollmentEmp_status); + getClientLogoAndDetails(); + + print('Successfully Login'); + + // Redirect to another page + final token = prefs.getString('enrollToken'); + if (token != null && token.isNotEmpty) { + ToastHelper.showSuccessToast(context, 'Successfully Login'); + // if (enrollmentEmp_status == 'enrolled' || + // enrollmentEmp_status == 'active') { + // Navigator.pushReplacementNamed(context, 'home'); + // } else { + Navigator.pushReplacementNamed(context, 'empDetails'); + // } + } + } + Future enterLoginPin() async { try { if (_formKey.currentState!.validate()) { @@ -156,8 +250,8 @@ class _pinPageState extends State { } Future getClientLogoAndDetails() async { - var url = Uri.parse(Environment.apiUrl + - 'getClientDetails?client_id=$client_id&emp_code=$empCodeString'); + var url = Uri.parse(Environment.apiUrlEnrollment + + 'getClientDetails?client_id=$enrollmentClient_id&emp_code=$enrollmentEmpCodeString'); try { var response = await http.get( url, diff --git a/lib/pages/session/changePin.dart b/lib/pages/session/changePin.dart index 4370581..1f7d4db 100644 --- a/lib/pages/session/changePin.dart +++ b/lib/pages/session/changePin.dart @@ -45,7 +45,7 @@ class _changePinState extends State { if (_formKey.currentState!.validate()) { final SharedPreferences prefs = await SharedPreferences.getInstance(); empMobileNo = prefs.getString('empMobileNo'); - _token = prefs.getString('token'); + _token = prefs.getString('_postToken'); final response = await http.post( Uri.parse(Environment.apiUrl + 'updateMpin'), diff --git a/lib/pages/session/settingUpPinAndBiometric.dart b/lib/pages/session/settingUpPinAndBiometric.dart index a022bc6..bf093bc 100644 --- a/lib/pages/session/settingUpPinAndBiometric.dart +++ b/lib/pages/session/settingUpPinAndBiometric.dart @@ -48,13 +48,13 @@ class _pinSettingPageState extends State { final SharedPreferences prefs = await SharedPreferences.getInstance(); empMobileNo = prefs.getString('empMobileNo'); emp_status = prefs.getString('emp_status'); - _token = prefs.getString('token'); + _token = prefs.getString('enrollToken'); String pin = _pinController.text; await _authService.savePin(pin); await _authService.saveSkipStatus(1); final response = await http.post( - Uri.parse(Environment.apiUrl + 'saveMpin'), + Uri.parse(Environment.apiUrlEnrollment + 'saveMpin'), body: json.encode( {'mobile_number': empMobileNo, 'mpin': _pinController.text}), headers: { diff --git a/lib/pages/verify.dart b/lib/pages/verify.dart index bd8a3f8..9045341 100644 --- a/lib/pages/verify.dart +++ b/lib/pages/verify.dart @@ -44,15 +44,26 @@ class _MyVerifyState extends State { late Timer _timer; int _secondsRemaining = 60; bool _isTimerRunning = false; - dynamic empCodeString; + + dynamic enrollmentEmpClientBranchId; + dynamic enrollmentEmpCodeString; + dynamic enrollmentEmpPrimaryId; + dynamic enrollmentGpaEmpName; + dynamic enrollmentClient_id; + dynamic enrollmentEmp_status; + dynamic empClientBranchId; + dynamic empCodeString; dynamic empPrimaryId; dynamic gpaEmpName; dynamic client_id; + dynamic emp_status; + dynamic _token; + dynamic _postToken; dynamic clientName; dynamic clientLogo; - dynamic emp_status; + dynamic fCMToken; late String verificationId; late String mobileNumber; @@ -148,7 +159,7 @@ class _MyVerifyState extends State { void generateToken(bool otpVerifyStatus) async { try { final response = await http.post( - Uri.parse(Environment.apiUrl + 'getVerifiedUserData'), + Uri.parse(Environment.apiUrlEnrollment + 'getVerifiedUserData'), body: json.encode({ 'mobile_number': mobileNumber, 'otp_verification': otpVerifyStatus @@ -166,55 +177,24 @@ class _MyVerifyState extends State { print('data: $data'); _token = data['data']; String status = data['status']; - print(status); - if (status == 'success') { + + // Directly access the post_enrollment data + Map post = data['post_enrollment']; + print('post: $post'); + + _postToken = post['data']; + String postStatus = post['status']; + + if (postStatus == 'success') { setState(() { _isLoading = false; }); - final SharedPreferences prefs = await SharedPreferences.getInstance(); - prefs.setString('token', data['data']); - - // Decode the JWT token received from the API response - Map? decodedToken = Jwt.parseJwt(data['data']); - print('decodedToken : $decodedToken'); - empClientBranchId = decodedToken['client_branch_id']; - prefs.setString('empClientBranchId', empClientBranchId); - empCodeString = decodedToken['emp_code'].toString(); - prefs.setString('empCode', empCodeString); - empPrimaryId = decodedToken['id']; - prefs.setString('empPrimaryId', empPrimaryId); - gpaEmpName = decodedToken['name'].toString(); - prefs.setString('gpaEmpName', gpaEmpName); - client_id = decodedToken['client_id']; - prefs.setString('client_id', client_id); - emp_status = decodedToken['emp_status']; - prefs.setString('emp_status', emp_status); - getClientLogoAndDetails(); - - print('Successfully Login'); - - // Redirect to another page - final token = prefs.getString('token'); - // int skipStatus = prefs.getInt('skipStatus') ?? 1; - // final mpinText = prefs.getString('mpinText'); - print(isMobilePlatform()); - if (isMobilePlatform()) { - // if (prefs.containsKey('mpin') && mpinText == 'Mpin - exist') { - if (token != null && token.isNotEmpty) { - await initNotification(); - Navigator.pushReplacementNamed(context, 'pinSettingPage'); - } - // } - } else { - if (token != null && token.isNotEmpty) { - ToastHelper.showSuccessToast(context, 'Successfully Login'); - if (emp_status == 'enrolled' || emp_status == 'active') { - Navigator.pushReplacementNamed(context, 'home'); - } else { - Navigator.pushReplacementNamed(context, 'empDetails'); - } - } - } + postSuccessData(post, data); + } else if (status == 'success') { + setState(() { + _isLoading = false; + }); + enrollmentSuccessData(data); } else { setState(() { _isLoading = false; @@ -241,6 +221,130 @@ class _MyVerifyState extends State { } } + void postSuccessData(post, data) async { + String status = data['status']; + String postStatus = post['status']; + + if (postStatus == 'success') { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('_postToken', post['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(post['data']); + print('decodedToken : $decodedToken'); + empClientBranchId = decodedToken['client_branch_id']; + prefs.setString('empClientBranchId', empClientBranchId); + empCodeString = decodedToken['emp_code'].toString(); + prefs.setString('empCode', empCodeString); + empPrimaryId = decodedToken['id']; + prefs.setString('empPrimaryId', empPrimaryId); + gpaEmpName = decodedToken['name'].toString(); + prefs.setString('gpaEmpName', gpaEmpName); + client_id = decodedToken['client_id']; + prefs.setString('client_id', client_id); + emp_status = decodedToken['emp_status']; + prefs.setString('emp_status', emp_status); + getClientLogoAndDetails(); + + print('Successfully Login'); + + // Redirect to another page + } + + if (status == 'success') { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('enrollToken', data['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(data['data']); + print('decodedToken : $decodedToken'); + enrollmentEmpClientBranchId = decodedToken['client_branch_id']; + prefs.setString( + 'enrollmentEmpClientBranchId', enrollmentEmpClientBranchId); + enrollmentEmpCodeString = decodedToken['emp_code'].toString(); + prefs.setString('enrollmentEmpCodeString', enrollmentEmpCodeString); + enrollmentEmpPrimaryId = decodedToken['id']; + prefs.setString('enrollmentEmpPrimaryId', enrollmentEmpPrimaryId); + enrollmentGpaEmpName = decodedToken['name'].toString(); + prefs.setString('enrollmentGpaEmpName', enrollmentGpaEmpName); + enrollmentClient_id = decodedToken['client_id']; + prefs.setString('enrollmentClient_id', enrollmentClient_id); + enrollmentEmp_status = decodedToken['emp_status']; + prefs.setString('enrollmentEmp_status', enrollmentEmp_status); + // getClientLogoAndDetails(); + } + + final SharedPreferences prefs = await SharedPreferences.getInstance(); + final _postToken = prefs.getString('_postToken'); + // int skipStatus = prefs.getInt('skipStatus') ?? 1; + // final mpinText = prefs.getString('mpinText'); + print(isMobilePlatform()); + if (isMobilePlatform()) { + // if (prefs.containsKey('mpin') && mpinText == 'Mpin - exist') { + if (_postToken != null && _postToken.isNotEmpty) { + await initNotification(); + Navigator.pushReplacementNamed(context, 'pinSettingPage'); + } + // } + } else { + if (_postToken != null && _postToken.isNotEmpty) { + ToastHelper.showSuccessToast(context, 'Successfully Login'); + // if (emp_status == 'enrolled' || emp_status == 'active') { + Navigator.pushReplacementNamed(context, 'home'); + // } else { + // Navigator.pushReplacementNamed(context, 'empDetails'); + // } + } + } + } + + void enrollmentSuccessData(data) async { + final SharedPreferences prefs = await SharedPreferences.getInstance(); + prefs.setString('enrollToken', data['data']); + + // Decode the JWT token received from the API response + Map? decodedToken = Jwt.parseJwt(data['data']); + print('decodedToken : $decodedToken'); + enrollmentEmpClientBranchId = decodedToken['client_branch_id']; + prefs.setString('enrollmentEmpClientBranchId', enrollmentEmpClientBranchId); + enrollmentEmpCodeString = decodedToken['emp_code'].toString(); + prefs.setString('enrollmentEmpCodeString', enrollmentEmpCodeString); + enrollmentEmpPrimaryId = decodedToken['id']; + prefs.setString('enrollmentEmpPrimaryId', enrollmentEmpPrimaryId); + enrollmentGpaEmpName = decodedToken['name'].toString(); + prefs.setString('enrollmentGpaEmpName', enrollmentGpaEmpName); + enrollmentClient_id = decodedToken['client_id']; + prefs.setString('enrollmentClient_id', enrollmentClient_id); + enrollmentEmp_status = decodedToken['emp_status']; + prefs.setString('enrollmentEmp_status', enrollmentEmp_status); + getClientLogoAndDetails(); + + print('Successfully Login'); + + // Redirect to another page + final enrollToken = prefs.getString('enrollToken'); + // int skipStatus = prefs.getInt('skipStatus') ?? 1; + // final mpinText = prefs.getString('mpinText'); + print(isMobilePlatform()); + if (isMobilePlatform()) { + // if (prefs.containsKey('mpin') && mpinText == 'Mpin - exist') { + if (enrollToken != null && enrollToken.isNotEmpty) { + await initNotification(); + Navigator.pushReplacementNamed(context, 'pinSettingPage'); + } + // } + } else { + if (enrollToken != null && enrollToken.isNotEmpty) { + ToastHelper.showSuccessToast(context, 'Successfully Login'); + // if (emp_status == 'enrolled' || emp_status == 'active') { + // Navigator.pushReplacementNamed(context, 'home'); + // } else { + Navigator.pushReplacementNamed(context, 'empDetails'); + // } + } + } + } + void verifyOTP(String otp) async { try { setState(() {