pre and post double token

This commit is contained in:
venbaittech 2025-02-20 13:45:19 +05:30
parent 77435a82a6
commit 7d4d82042a
23 changed files with 905 additions and 404 deletions

View File

@ -9,7 +9,7 @@ class CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
Future<void> logout(BuildContext context) async { Future<void> logout(BuildContext context) async {
final prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
await prefs.clear(); await prefs.clear();

View File

@ -28,7 +28,7 @@ class _CustomAppBarState extends State<CustomAppBar> {
Future<void> getEmpStatus() async { Future<void> getEmpStatus() async {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
empStatus = prefs.getString('emp_status'); empStatus = prefs.getString('enrollmentEmp_status');
} }
Future<void> logout(BuildContext context) async { Future<void> logout(BuildContext context) async {

View File

@ -38,7 +38,7 @@ void clearLocalStorageOnAppStart() {
} }
Future<void> main() async { Future<void> main() async {
clearLocalStorageOnAppStart(); // clearLocalStorageOnAppStart();
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
// final SharedPreferences prefs = await SharedPreferences.getInstance(); // final SharedPreferences prefs = await SharedPreferences.getInstance();
// prefs.clear(); // prefs.clear();

View File

@ -37,12 +37,21 @@ class _MyEmailVerifyState extends State<MyEmailVerify> {
late Timer _timer; late Timer _timer;
int _secondsRemaining = 60; int _secondsRemaining = 60;
bool _isTimerRunning = false; bool _isTimerRunning = false;
dynamic enrollmentEmpClientBranchId;
dynamic enrollmentEmpCodeString;
dynamic enrollmentEmpPrimaryId;
dynamic enrollmentGpaEmpName;
dynamic enrollmentClient_id;
dynamic enrollmentEmp_status;
dynamic empCodeString; dynamic empCodeString;
dynamic empClientBranchId; dynamic empClientBranchId;
dynamic empPrimaryId; dynamic empPrimaryId;
dynamic gpaEmpName; dynamic gpaEmpName;
dynamic client_id; dynamic client_id;
dynamic _token; dynamic _token;
dynamic _postToken;
dynamic clientName; dynamic clientName;
dynamic clientLogo; dynamic clientLogo;
dynamic emp_status; dynamic emp_status;
@ -146,55 +155,24 @@ class _MyEmailVerifyState extends State<MyEmailVerify> {
print('data: $data'); print('data: $data');
_token = data['data']; _token = data['data'];
String status = data['status']; String status = data['status'];
print(status);
if (status == 'success') { // Directly access the post_enrollment data
Map<String, dynamic> post = data['post_enrollment'];
print('post: $post');
_postToken = post['data'];
String postStatus = post['status'];
if (postStatus == 'success') {
setState(() { setState(() {
_isLoading = false; _isLoading = false;
}); });
final SharedPreferences prefs = await SharedPreferences.getInstance(); postSuccessData(post, data);
prefs.setString('token', data['data']); } else if (status == 'success') {
setState(() {
// Decode the JWT token received from the API response _isLoading = false;
Map<String, dynamic>? decodedToken = Jwt.parseJwt(data['data']); });
print('decodedToken : $decodedToken'); enrollmentSuccessData(data);
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');
}
}
}
} else { } else {
setState(() { setState(() {
_isLoading = false; _isLoading = false;
@ -221,6 +199,130 @@ class _MyEmailVerifyState extends State<MyEmailVerify> {
} }
} }
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<String, dynamic>? 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<String, dynamic>? 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<String, dynamic>? 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() { void _resendOTP() {
setState(() { setState(() {
_secondsRemaining = 60; _secondsRemaining = 60;

View File

@ -42,10 +42,10 @@ class _addOnsDetailsState extends State<addOnsDetails> {
bool _topUpSiSwitcher = false; bool _topUpSiSwitcher = false;
bool _topUpParentSiSwitcher = false; bool _topUpParentSiSwitcher = false;
dynamic _token; dynamic _token;
dynamic empCodeString; dynamic enrollmentEmpCodeString;
dynamic empPrimaryId; dynamic enrollmentEmpPrimaryId;
dynamic gpaEmpName; dynamic enrollmentGpaEmpName;
dynamic client_id; dynamic enrollmentClient_id;
dynamic gpaPolicies; dynamic gpaPolicies;
dynamic gmcPolicies; dynamic gmcPolicies;
dynamic gpaPolicyName; dynamic gpaPolicyName;
@ -144,7 +144,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
dynamic gmcDataIsEmpty = 1; dynamic gmcDataIsEmpty = 1;
dynamic gpaDataIsEmpty = 1; dynamic gpaDataIsEmpty = 1;
dynamic empRefId; dynamic empRefId;
dynamic empClientBranchId; dynamic enrollmentEmpClientBranchId;
dynamic selfEmpStatus; dynamic selfEmpStatus;
List<Map<String, dynamic>> allDisclaimer = List<Map<String, dynamic>> allDisclaimer =
[]; // Declare this to store all disclaimers []; // Declare this to store all disclaimers
@ -194,20 +194,21 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('enrollToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;
}); });
// Decode the JWT token received from the API response // Decode th e JWT token received from the API response
Map<String, dynamic>? decodedToken = Jwt.parseJwt(token); Map<String, dynamic>? decodedToken = Jwt.parseJwt(token);
selfEmpStatus = prefs.getString('selfEmpStatus'); selfEmpStatus = prefs.getString('selfEmpStatus');
empClientBranchId = prefs.getString('empClientBranchId'); enrollmentEmpClientBranchId =
empCodeString = prefs.getString('empCode'); prefs.getString('enrollmentEmpClientBranchId');
empPrimaryId = prefs.getString('empPrimaryId'); enrollmentEmpCodeString = prefs.getString('enrollmentEmpCodeString');
gpaEmpName = prefs.getString('gpaEmpName'); enrollmentEmpPrimaryId = prefs.getString('enrollmentEmpPrimaryId');
client_id = prefs.getString('client_id'); enrollmentGpaEmpName = prefs.getString('enrollmentGpaEmpName');
enrollmentClient_id = prefs.getString('enrollmentClient_id');
// Call the API when the page enters // Call the API when the page enters
if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) { if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) {
@ -221,8 +222,8 @@ class _addOnsDetailsState extends State<addOnsDetails> {
getGmcSiParentTopUp(); getGmcSiParentTopUp();
getGmcDependentAddOns(); getGmcDependentAddOns();
fetchRelationshipList(); fetchRelationshipList();
getGpaEmpPolicyDetails(empPrimaryId); getGpaEmpPolicyDetails(enrollmentEmpPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId); getGmcEmpPolicyDetails(enrollmentEmpPrimaryId);
} else { } else {
// Token is empty or null, handle accordingly (e.g., navigate to login screen) // Token is empty or null, handle accordingly (e.g., navigate to login screen)
ToastHelper.showErrorToast(context, 'Session Out'); ToastHelper.showErrorToast(context, 'Session Out');
@ -232,13 +233,15 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> getClientLogoAndDetails() async { Future<void> getClientLogoAndDetails() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getClientLogoAndDetailsToApi( final response = await apiService.getClientLogoAndDetailsToApi(
client_id!, empCodeString!, empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
dynamic clientDetails = response['data']; dynamic clientDetails = response['data'];
@ -258,15 +261,19 @@ class _addOnsDetailsState extends State<addOnsDetails> {
} }
} }
Future<void> getGpaEmpPolicyDetails(empPrimaryId) async { Future<void> getGpaEmpPolicyDetails(enrollmentEmpPrimaryId) async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGpaEmpPolicyDetailsToApi( final response = await apiService.getGpaEmpPolicyDetailsToApi(
empPrimaryId, empCodeString!, client_id!, 'GPA', empClientBranchId!); enrollmentEmpPrimaryId,
enrollmentEmpCodeString!,
enrollmentClient_id!,
'GPA',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
setState(() { setState(() {
@ -331,15 +338,19 @@ class _addOnsDetailsState extends State<addOnsDetails> {
} }
} }
Future<void> getGmcEmpPolicyDetails(empPrimaryId) async { Future<void> getGmcEmpPolicyDetails(enrollmentEmpPrimaryId) async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcEmpPolicyDetailsToApi( final response = await apiService.getGmcEmpPolicyDetailsToApi(
empPrimaryId, empCodeString!, client_id!, 'GMC', empClientBranchId!); enrollmentEmpPrimaryId,
enrollmentEmpCodeString!,
enrollmentClient_id!,
'GMC',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
// setState(() { // setState(() {
gmcPolicies = response['data']; gmcPolicies = response['data'];
@ -403,13 +414,16 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> getGmcSiTopUp() async { Future<void> getGmcSiTopUp() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcSiTopUpToApi( 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['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
setState(() { setState(() {
@ -481,13 +495,16 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> getGmcSiParentTopUp() async { Future<void> getGmcSiParentTopUp() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcSiParentTopUpToApi(client_id!, final response = await apiService.getGmcSiParentTopUpToApi(
empCodeString!, 'GMC-SI-PARENT-TOPUP', empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
'GMC-SI-PARENT-TOPUP',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
setState(() { setState(() {
@ -570,13 +587,16 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> getGmcDependentAddOns() async { Future<void> getGmcDependentAddOns() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcDependentAddOnsToApi(client_id!, final response = await apiService.getGmcDependentAddOnsToApi(
empCodeString!, 'GMC-DEPENDENT-ADDON', empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
'GMC-DEPENDENT-ADDON',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
setState(() { setState(() {
@ -743,8 +763,8 @@ class _addOnsDetailsState extends State<addOnsDetails> {
_memberNameController.clear(); _memberNameController.clear();
_dobController.clear(); _dobController.clear();
relationshipOptions.clear(); relationshipOptions.clear();
getGpaEmpPolicyDetails(empPrimaryId); getGpaEmpPolicyDetails(enrollmentEmpPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId); getGmcEmpPolicyDetails(enrollmentEmpPrimaryId);
fetchRelationshipList(); fetchRelationshipList();
getGmcSiTopUp(); getGmcSiTopUp();
getGmcSiParentTopUp(); getGmcSiParentTopUp();
@ -767,13 +787,13 @@ class _addOnsDetailsState extends State<addOnsDetails> {
'relationship': formData['relationship'], 'relationship': formData['relationship'],
'name': formData['memberName'], 'name': formData['memberName'],
'dob': formData['dateOfBirth'], 'dob': formData['dateOfBirth'],
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'client_id': client_id, 'client_id': enrollmentClient_id,
'client_policy_id': floatedData['client_policy_id'], 'client_policy_id': floatedData['client_policy_id'],
'is_addon_value': 1, 'is_addon_value': 1,
'basic_cover_si': addOnsSelectedDependent, 'basic_cover_si': addOnsSelectedDependent,
'created_by': empPrimaryId, 'created_by': enrollmentEmpPrimaryId,
'client_branch_id': empClientBranchId, 'client_branch_id': enrollmentEmpClientBranchId,
// Add the 'id' field only if action is 'Edit' // Add the 'id' field only if action is 'Edit'
if (action == 'Edit') 'id': floatedData['employee_id'], if (action == 'Edit') 'id': floatedData['employee_id'],
}); });
@ -792,8 +812,8 @@ class _addOnsDetailsState extends State<addOnsDetails> {
_dobController.clear(); _dobController.clear();
relationshipOptions.clear(); relationshipOptions.clear();
// Request successful, handle response // Request successful, handle response
getGpaEmpPolicyDetails(empPrimaryId); getGpaEmpPolicyDetails(enrollmentEmpPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId); getGmcEmpPolicyDetails(enrollmentEmpPrimaryId);
fetchRelationshipList(); fetchRelationshipList();
getGmcSiTopUp(); getGmcSiTopUp();
getGmcSiParentTopUp(); getGmcSiParentTopUp();
@ -840,9 +860,9 @@ class _addOnsDetailsState extends State<addOnsDetails> {
'basic_cover_si': addOnsSelectedDependent, 'basic_cover_si': addOnsSelectedDependent,
'client_policy_id': client_policy_id, 'client_policy_id': client_policy_id,
'employee_id': employee_id, 'employee_id': employee_id,
'client_id': client_id, 'client_id': enrollmentClient_id,
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'client_branch_id': empClientBranchId, 'client_branch_id': enrollmentEmpClientBranchId,
}; };
// Add the map to the list // Add the map to the list
@ -900,9 +920,9 @@ class _addOnsDetailsState extends State<addOnsDetails> {
'basic_cover_si': topUpSiSelectedSI, 'basic_cover_si': topUpSiSelectedSI,
'client_policy_id': client_policy_id, 'client_policy_id': client_policy_id,
'employee_id': employee_id, 'employee_id': employee_id,
'client_id': client_id, 'client_id': enrollmentClient_id,
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'client_branch_id': empClientBranchId, 'client_branch_id': enrollmentEmpClientBranchId,
}; };
// Add the map to the list // Add the map to the list
@ -959,9 +979,9 @@ class _addOnsDetailsState extends State<addOnsDetails> {
'basic_cover_si': topUpParentSiSelectedSI, 'basic_cover_si': topUpParentSiSelectedSI,
'client_policy_id': client_policy_id, 'client_policy_id': client_policy_id,
'employee_id': employee_id, 'employee_id': employee_id,
'client_id': client_id, 'client_id': enrollmentClient_id,
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'client_branch_id': empClientBranchId, 'client_branch_id': enrollmentEmpClientBranchId,
}; };
// Add the map to the list // Add the map to the list
@ -993,11 +1013,12 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> removeAddonsGmcDependentToAPI() async { Future<void> removeAddonsGmcDependentToAPI() async {
try { try {
if (empCodeString == null || addOnsDependentClientPolicyId == null) { if (enrollmentEmpCodeString == null ||
addOnsDependentClientPolicyId == null) {
return; return;
} }
final response = await apiService.removeAddonsGmcDependentToAPI( final response = await apiService.removeAddonsGmcDependentToAPI(
empCodeString!, addOnsDependentClientPolicyId!); enrollmentEmpCodeString!, addOnsDependentClientPolicyId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
print(response['data']); print(response['data']);
} else { } else {
@ -1012,11 +1033,11 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> removeAddonsGmcSiToAPI() async { Future<void> removeAddonsGmcSiToAPI() async {
try { try {
if (empCodeString == null || topUpClientPolicyId == null) { if (enrollmentEmpCodeString == null || topUpClientPolicyId == null) {
return; return;
} }
final response = await apiService.removeAddonsGmcSiToAPI( final response = await apiService.removeAddonsGmcSiToAPI(
empCodeString!, topUpClientPolicyId!); enrollmentEmpCodeString!, topUpClientPolicyId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
print(response['data']); print(response['data']);
} else { } else {
@ -1031,11 +1052,12 @@ class _addOnsDetailsState extends State<addOnsDetails> {
Future<void> removeAddonsGmcParentSiToAPI() async { Future<void> removeAddonsGmcParentSiToAPI() async {
try { try {
if (empCodeString == null || topUpParentClientPolicyId == null) { if (enrollmentEmpCodeString == null ||
topUpParentClientPolicyId == null) {
return; return;
} }
final response = await apiService.removeAddonsGmcParentSiToAPI( final response = await apiService.removeAddonsGmcParentSiToAPI(
empCodeString!, topUpParentClientPolicyId!); enrollmentEmpCodeString!, topUpParentClientPolicyId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
print(response['data']); print(response['data']);
} else { } else {
@ -1052,9 +1074,9 @@ class _addOnsDetailsState extends State<addOnsDetails> {
try { try {
var calculation = { var calculation = {
'client_policy_id': topUpClientPolicyId, 'client_policy_id': topUpClientPolicyId,
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'si': choosedSiValue, 'si': choosedSiValue,
'client_branch_id': empClientBranchId 'client_branch_id': enrollmentEmpClientBranchId
}; };
// Iterate through familyMembers list and send each member's data to the API // Iterate through familyMembers list and send each member's data to the API
@ -1064,8 +1086,8 @@ class _addOnsDetailsState extends State<addOnsDetails> {
if (response['status'] == 'success') { if (response['status'] == 'success') {
List<dynamic>? topUpEmpArray; List<dynamic>? topUpEmpArray;
for (var item in response['data']) { for (var item in response['data']) {
if (item.containsKey(empCodeString)) { if (item.containsKey(enrollmentEmpCodeString)) {
topUpEmpArray = item[empCodeString]; topUpEmpArray = item[enrollmentEmpCodeString];
break; break;
} }
} }
@ -1096,7 +1118,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
}); });
sendAddonsGmcSiToAPI(); sendAddonsGmcSiToAPI();
} else { } else {
print('Array not found for emp_code $empCodeString'); print('Array not found for emp_code $enrollmentEmpCodeString');
} }
} else { } else {
print('Operation Failed!'); print('Operation Failed!');
@ -1110,9 +1132,9 @@ class _addOnsDetailsState extends State<addOnsDetails> {
try { try {
var calculation = { var calculation = {
'client_policy_id': topUpParentClientPolicyId, 'client_policy_id': topUpParentClientPolicyId,
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'si': choosedSiValue, 'si': choosedSiValue,
'client_branch_id': empClientBranchId 'client_branch_id': enrollmentEmpClientBranchId
}; };
// Iterate through familyMembers list and send each member's data to the API // Iterate through familyMembers list and send each member's data to the API
@ -1123,8 +1145,8 @@ class _addOnsDetailsState extends State<addOnsDetails> {
if (response['status'] == 'success') { if (response['status'] == 'success') {
List<dynamic>? topUpEmpArray; List<dynamic>? topUpEmpArray;
for (var item in response['data']) { for (var item in response['data']) {
if (item.containsKey(empCodeString)) { if (item.containsKey(enrollmentEmpCodeString)) {
topUpEmpArray = item[empCodeString]; topUpEmpArray = item[enrollmentEmpCodeString];
break; break;
} }
} }
@ -1154,7 +1176,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
}); });
sendAddonsGmcParentSiToAPI(); sendAddonsGmcParentSiToAPI();
} else { } else {
print('Array not found for emp_code $empCodeString'); print('Array not found for emp_code $enrollmentEmpCodeString');
} }
} else { } else {
print('Operation Failed!'); print('Operation Failed!');
@ -1168,9 +1190,9 @@ class _addOnsDetailsState extends State<addOnsDetails> {
try { try {
var calculation = { var calculation = {
'client_policy_id': addOnsDependentClientPolicyId, 'client_policy_id': addOnsDependentClientPolicyId,
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'si': choosedDependentValue, 'si': choosedDependentValue,
'client_branch_id': empClientBranchId 'client_branch_id': enrollmentEmpClientBranchId
}; };
// Iterate through familyMembers list and send each member's data to the API // Iterate through familyMembers list and send each member's data to the API
@ -1181,8 +1203,8 @@ class _addOnsDetailsState extends State<addOnsDetails> {
if (response['status'] == 'success') { if (response['status'] == 'success') {
List<dynamic>? addOnsEmpArray; List<dynamic>? addOnsEmpArray;
for (var item in response['data']) { for (var item in response['data']) {
if (item.containsKey(empCodeString)) { if (item.containsKey(enrollmentEmpCodeString)) {
addOnsEmpArray = item[empCodeString]; addOnsEmpArray = item[enrollmentEmpCodeString];
break; break;
} }
} }
@ -1211,7 +1233,7 @@ class _addOnsDetailsState extends State<addOnsDetails> {
addOnDependentPremiumValue + addOnsDependentPremiumGst; addOnDependentPremiumValue + addOnsDependentPremiumGst;
}); });
} else { } else {
print('Array not found for emp_code $empCodeString'); print('Array not found for emp_code $enrollmentEmpCodeString');
} }
} else { } else {
print('Operation Failed!'); print('Operation Failed!');
@ -1247,9 +1269,9 @@ class _addOnsDetailsState extends State<addOnsDetails> {
iAgreeForAddOn = iAgreeForAddOn.toSet().toList(); iAgreeForAddOn = iAgreeForAddOn.toSet().toList();
Map<String, dynamic> apiParams = { Map<String, dynamic> apiParams = {
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'client_policy_id': iAgreeForAddOn, 'client_policy_id': iAgreeForAddOn,
'client_id': client_id, 'client_id': enrollmentClient_id,
}; };
try { try {

View File

@ -28,10 +28,10 @@ class _empDetailsState extends State<empDetails> {
late ApiService apiService; late ApiService apiService;
bool isLoading = true; bool isLoading = true;
dynamic _token; dynamic _token;
dynamic empCodeString; dynamic enrollmentEmpCodeString;
dynamic empPrimaryId; dynamic enrollmentEmpPrimaryId;
dynamic gpaEmpName; dynamic enrollmentGpaEmpName;
dynamic client_id; dynamic enrollmentClient_id;
dynamic gpaPolicies; dynamic gpaPolicies;
dynamic gpaPolicyName; dynamic gpaPolicyName;
dynamic gpaGridMaster; dynamic gpaGridMaster;
@ -98,7 +98,7 @@ class _empDetailsState extends State<empDetails> {
dynamic gpaDataIsEmpty = 1; dynamic gpaDataIsEmpty = 1;
dynamic hrPrimaryId; dynamic hrPrimaryId;
dynamic empRefId; dynamic empRefId;
dynamic empClientBranchId; dynamic enrollmentEmpClientBranchId;
@override @override
void initState() { void initState() {
@ -127,22 +127,25 @@ class _empDetailsState extends State<empDetails> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('enrollToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;
}); });
// Decode the JWT token received from the API response // Decode the JWT token received from the API response
Map<String, dynamic>? decodedToken = Jwt.parseJwt(token); Map<String, dynamic>? decodedToken = Jwt.parseJwt(token);
print('decodedToken : $decodedToken'); print('decodedToken : $decodedToken');
empClientBranchId = prefs.getString('empClientBranchId'); enrollmentEmpClientBranchId =
empCodeString = prefs.getString('empCode'); prefs.getString('enrollmentEmpClientBranchId');
print('empCodeString : $empCodeString'); // Check if emp_code is correct enrollmentEmpCodeString = prefs.getString('enrollmentEmpCodeString');
empPrimaryId = prefs.getString('empPrimaryId'); print(
gpaEmpName = prefs.getString('gpaEmpName'); 'enrollmentEmpCodeString : $enrollmentEmpCodeString'); // Check if emp_code is correct
client_id = prefs.getString('client_id'); enrollmentEmpPrimaryId = prefs.getString('enrollmentEmpPrimaryId');
enrollmentGpaEmpName = prefs.getString('enrollmentGpaEmpName');
enrollmentClient_id = prefs.getString('enrollmentClient_id');
selfEmpStatus = prefs.getString('selfEmpStatus'); selfEmpStatus = prefs.getString('selfEmpStatus');
print('client_id : $client_id'); print('client_id : $enrollmentClient_id');
if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) { if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) {
clientLogo = prefs.getString('clientLogo'); clientLogo = prefs.getString('clientLogo');
@ -153,8 +156,8 @@ class _empDetailsState extends State<empDetails> {
// Call the API when the page enters // Call the API when the page enters
getSelfEmployeeProfile(); getSelfEmployeeProfile();
getGpaEmpPolicyDetails(empPrimaryId); getGpaEmpPolicyDetails(enrollmentEmpPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId); getGmcEmpPolicyDetails(enrollmentEmpPrimaryId);
fetchRelationshipList(); fetchRelationshipList();
} else { } else {
// Token is empty or null, handle accordingly (e.g., navigate to login screen) // Token is empty or null, handle accordingly (e.g., navigate to login screen)
@ -165,13 +168,15 @@ class _empDetailsState extends State<empDetails> {
Future<void> getClientLogoAndDetails() async { Future<void> getClientLogoAndDetails() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getClientLogoAndDetailsToApi( final response = await apiService.getClientLogoAndDetailsToApi(
client_id!, empCodeString!, empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
enrollmentEmpClientBranchId!);
print('check 1'); print('check 1');
if (response['status'] == 'success') { if (response['status'] == 'success') {
@ -202,13 +207,15 @@ class _empDetailsState extends State<empDetails> {
Future<void> getSelfEmployeeProfile() async { Future<void> getSelfEmployeeProfile() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getSelfEmployeeProfileToApi( final response = await apiService.getSelfEmployeeProfileToApi(
client_id!, empCodeString!, empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
@ -261,15 +268,19 @@ class _empDetailsState extends State<empDetails> {
return formattedDate; return formattedDate;
} }
Future<void> getGpaEmpPolicyDetails(empPrimaryId) async { Future<void> getGpaEmpPolicyDetails(enrollmentEmpPrimaryId) async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGpaEmpPolicyDetailsToApi( final response = await apiService.getGpaEmpPolicyDetailsToApi(
empPrimaryId, empCodeString!, client_id!, 'GPA', empClientBranchId!); enrollmentEmpPrimaryId,
enrollmentEmpCodeString!,
enrollmentClient_id!,
'GPA',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
setState(() { setState(() {
@ -290,15 +301,19 @@ class _empDetailsState extends State<empDetails> {
} }
} }
Future<void> getGmcEmpPolicyDetails(empPrimaryId) async { Future<void> getGmcEmpPolicyDetails(enrollmentEmpPrimaryId) async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcEmpPolicyDetailsToApi( final response = await apiService.getGmcEmpPolicyDetailsToApi(
empPrimaryId, empCodeString!, client_id!, 'GMC', empClientBranchId!); enrollmentEmpPrimaryId,
enrollmentEmpCodeString!,
enrollmentClient_id!,
'GMC',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
setState(() { setState(() {
gmcPolicies = response['data']; gmcPolicies = response['data'];
@ -424,8 +439,8 @@ class _empDetailsState extends State<empDetails> {
_memberNameController.clear(); _memberNameController.clear();
_dobController.clear(); _dobController.clear();
relationshipOptions.clear(); relationshipOptions.clear();
getGpaEmpPolicyDetails(empPrimaryId); getGpaEmpPolicyDetails(enrollmentEmpPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId); getGmcEmpPolicyDetails(enrollmentEmpPrimaryId);
fetchRelationshipList(); fetchRelationshipList();
ToastHelper.showSuccessToast(context, 'Item deleted successfully'); ToastHelper.showSuccessToast(context, 'Item deleted successfully');
print('Item deleted successfully'); print('Item deleted successfully');
@ -455,17 +470,17 @@ class _empDetailsState extends State<empDetails> {
primaryId = hrPrimaryId; primaryId = hrPrimaryId;
is_createdby_hr = 1; is_createdby_hr = 1;
} else { } else {
primaryId = empPrimaryId; primaryId = enrollmentEmpPrimaryId;
is_createdby_hr = 0; is_createdby_hr = 0;
} }
formDataList.add({ formDataList.add({
'client_branch_id': empClientBranchId, 'client_branch_id': enrollmentEmpClientBranchId,
'relationship': formData['relationship'], 'relationship': formData['relationship'],
'name': formData['memberName'], 'name': formData['memberName'],
'dob': formData['dateOfBirth'], 'dob': formData['dateOfBirth'],
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'client_id': client_id, 'client_id': enrollmentClient_id,
'client_policy_id': floatedData['client_policy_id'], 'client_policy_id': floatedData['client_policy_id'],
'created_by': primaryId, 'created_by': primaryId,
'is_createdby_hr': is_createdby_hr, 'is_createdby_hr': is_createdby_hr,
@ -491,8 +506,8 @@ class _empDetailsState extends State<empDetails> {
_dobController.clear(); _dobController.clear();
relationshipOptions.clear(); relationshipOptions.clear();
// Request successful, handle response // Request successful, handle response
getGpaEmpPolicyDetails(empPrimaryId); getGpaEmpPolicyDetails(enrollmentEmpPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId); getGmcEmpPolicyDetails(enrollmentEmpPrimaryId);
fetchRelationshipList(); fetchRelationshipList();
ToastHelper.showSuccessToast(context, 'Saved Successfully.'); ToastHelper.showSuccessToast(context, 'Saved Successfully.');
print('Form data sent successfully.'); print('Form data sent successfully.');

View File

@ -42,10 +42,10 @@ class _empReviewDetailsState extends State<empReviewDetails> {
false; // Declare the _isSwitched variable here false; // Declare the _isSwitched variable here
dynamic _token; dynamic _token;
dynamic empCodeString; dynamic enrollmentEmpCodeString;
dynamic empPrimaryId; dynamic enrollmentEmpPrimaryId;
dynamic gpaEmpName; dynamic enrollmentGpaEmpName;
dynamic client_id; dynamic enrollmentClient_id;
dynamic gpaPolicies; dynamic gpaPolicies;
dynamic gpaPolicyName; dynamic gpaPolicyName;
dynamic gpaGridMaster; dynamic gpaGridMaster;
@ -62,6 +62,8 @@ class _empReviewDetailsState extends State<empReviewDetails> {
dynamic gpaSiPremiumValue; dynamic gpaSiPremiumValue;
dynamic gpaTotalableValue; dynamic gpaTotalableValue;
late bool isValueValid; late bool isValueValid;
dynamic gpaTotalAmt;
dynamic gmcTotalAmt;
dynamic gmcGstValue; dynamic gmcGstValue;
dynamic gmcSiPremiumValue; dynamic gmcSiPremiumValue;
dynamic gmcTotalableValue; dynamic gmcTotalableValue;
@ -89,7 +91,7 @@ class _empReviewDetailsState extends State<empReviewDetails> {
dynamic gmcFloaterTextHeading; dynamic gmcFloaterTextHeading;
dynamic dependentValue; dynamic dependentValue;
dynamic siValue; dynamic siValue;
dynamic addOnsDependentSumInsured; late int addOnsDependentSumInsured;
dynamic addOnsDependentPolicyName; dynamic addOnsDependentPolicyName;
dynamic addOnsDependentPolicyType; dynamic addOnsDependentPolicyType;
dynamic addOnsFloaterTextHeading; dynamic addOnsFloaterTextHeading;
@ -149,7 +151,7 @@ class _empReviewDetailsState extends State<empReviewDetails> {
int activePremiumSummary = 0; int activePremiumSummary = 0;
dynamic gmcDataIsEmpty = 1; dynamic gmcDataIsEmpty = 1;
dynamic gpaDataIsEmpty = 1; dynamic gpaDataIsEmpty = 1;
dynamic empClientBranchId; dynamic enrollmentEmpClientBranchId;
dynamic selfEmpStatus; dynamic selfEmpStatus;
dynamic topUpOpenForEnrollment; dynamic topUpOpenForEnrollment;
dynamic topUpParentOpenForEnrollment; dynamic topUpParentOpenForEnrollment;
@ -189,19 +191,20 @@ class _empReviewDetailsState extends State<empReviewDetails> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('enrollToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;
}); });
selfEmpStatus = prefs.getString('selfEmpStatus'); selfEmpStatus = prefs.getString('selfEmpStatus');
empClientBranchId = prefs.getString('empClientBranchId'); enrollmentEmpClientBranchId =
empCodeString = prefs.getString('empCode'); prefs.getString('enrollmentEmpClientBranchId');
print(empCodeString); // Check if emp_code is correct enrollmentEmpCodeString = prefs.getString('enrollmentEmpCodeString');
empPrimaryId = prefs.getString('empPrimaryId'); print(enrollmentEmpCodeString); // Check if emp_code is correct
gpaEmpName = prefs.getString('gpaEmpName'); enrollmentEmpPrimaryId = prefs.getString('enrollmentEmpPrimaryId');
client_id = prefs.getString('client_id'); enrollmentGpaEmpName = prefs.getString('enrollmentGpaEmpName');
print(client_id); enrollmentClient_id = prefs.getString('enrollmentClient_id');
print(enrollmentClient_id);
// Call the API when the page enters // Call the API when the page enters
if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) { if (prefs.containsKey('clientLogo') && prefs.containsKey('clientName')) {
@ -213,8 +216,8 @@ class _empReviewDetailsState extends State<empReviewDetails> {
getGmcSiTopUp(); getGmcSiTopUp();
getGmcSiParentTopUp(); getGmcSiParentTopUp();
getGmcDependentAddOns(); getGmcDependentAddOns();
getGpaEmpPolicyDetails(empPrimaryId); getGpaEmpPolicyDetails(enrollmentEmpPrimaryId);
getGmcEmpPolicyDetails(empPrimaryId); getGmcEmpPolicyDetails(enrollmentEmpPrimaryId);
primarySummary(); primarySummary();
_sortDisclaimerByTypeOrder(); _sortDisclaimerByTypeOrder();
} else { } else {
@ -263,6 +266,7 @@ class _empReviewDetailsState extends State<empReviewDetails> {
activeDependentData = 1; activeDependentData = 1;
String? dependentDataJson = prefs.getString('dependentData'); String? dependentDataJson = prefs.getString('dependentData');
print('dependentDataJson'); print('dependentDataJson');
print('activeDependentData $activeDependentData');
print(dependentDataJson); print(dependentDataJson);
List<dynamic> dependentDataList = jsonDecode(dependentDataJson!); List<dynamic> dependentDataList = jsonDecode(dependentDataJson!);
@ -291,13 +295,18 @@ class _empReviewDetailsState extends State<empReviewDetails> {
} }
// Calculate the sum, skipping any missing values // 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 (topUpSiTotalAmt != null) totalPayableAmt += topUpSiTotalAmt;
if (topUpParentSiTotalAmt != null) totalPayableAmt += topUpParentSiTotalAmt; if (topUpParentSiTotalAmt != null) totalPayableAmt += topUpParentSiTotalAmt;
if (addOnsDependentTotalAmt != null) if (addOnsDependentTotalAmt != null)
totalPayableAmt += addOnsDependentTotalAmt; totalPayableAmt += addOnsDependentTotalAmt;
// Print or use the totalAmtSum value print('Final Total Payable Amount: $totalPayableAmt');
print('Sum of Total Amounts: $totalPayableAmt');
} }
void _sortDisclaimerByTypeOrder() { void _sortDisclaimerByTypeOrder() {
@ -310,13 +319,15 @@ class _empReviewDetailsState extends State<empReviewDetails> {
Future<void> getClientLogoAndDetails() async { Future<void> getClientLogoAndDetails() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getClientLogoAndDetailsToApi( final response = await apiService.getClientLogoAndDetailsToApi(
client_id!, empCodeString!, empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
dynamic clientDetails = response['data']; dynamic clientDetails = response['data'];
@ -339,15 +350,19 @@ class _empReviewDetailsState extends State<empReviewDetails> {
} }
} }
Future<void> getGpaEmpPolicyDetails(empPrimaryId) async { Future<void> getGpaEmpPolicyDetails(enrollmentEmpPrimaryId) async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGpaEmpPolicyDetailsToApi( final response = await apiService.getGpaEmpPolicyDetailsToApi(
empPrimaryId, empCodeString!, client_id!, 'GPA', empClientBranchId!); enrollmentEmpPrimaryId,
enrollmentEmpCodeString!,
enrollmentClient_id!,
'GPA',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
setState(() { setState(() {
@ -413,19 +428,23 @@ class _empReviewDetailsState extends State<empReviewDetails> {
} }
} }
Future<void> getGmcEmpPolicyDetails(empPrimaryId) async { Future<void> getGmcEmpPolicyDetails(enrollmentEmpPrimaryId) async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcEmpPolicyDetailsToApi( final response = await apiService.getGmcEmpPolicyDetailsToApi(
empPrimaryId, empCodeString!, client_id!, 'GMC', empClientBranchId!); enrollmentEmpPrimaryId,
enrollmentEmpCodeString!,
enrollmentClient_id!,
'GMC',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
setState(() { setState(() {
gmcPolicies = response['data']; gmcPolicies = response['data'];
print('gmcPolicies'); print('gmcPolicies $gmcPolicies');
for (var item in gmcPolicies) { for (var item in gmcPolicies) {
if (item['OpenForEnrollment'] == '1') { if (item['OpenForEnrollment'] == '1') {
dynamic disclaimer = item['disclaimer']; dynamic disclaimer = item['disclaimer'];
@ -487,13 +506,16 @@ class _empReviewDetailsState extends State<empReviewDetails> {
Future<void> getGmcSiTopUp() async { Future<void> getGmcSiTopUp() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcSiTopUpToApi( 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['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
dynamic topUpSiPolicies = response['data']; dynamic topUpSiPolicies = response['data'];
@ -600,13 +622,16 @@ class _empReviewDetailsState extends State<empReviewDetails> {
Future<void> getGmcSiParentTopUp() async { Future<void> getGmcSiParentTopUp() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcSiParentTopUpToApi(client_id!, final response = await apiService.getGmcSiParentTopUpToApi(
empCodeString!, 'GMC-SI-PARENT-TOPUP', empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
'GMC-SI-PARENT-TOPUP',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
setState(() { setState(() {
@ -740,13 +765,16 @@ class _empReviewDetailsState extends State<empReviewDetails> {
Future<void> getGmcDependentAddOns() async { Future<void> getGmcDependentAddOns() async {
try { try {
if (client_id == null || if (enrollmentClient_id == null ||
empCodeString == null || enrollmentEmpCodeString == null ||
empClientBranchId == null) { enrollmentEmpClientBranchId == null) {
return; return;
} }
final response = await apiService.getGmcDependentAddOnsToApi(client_id!, final response = await apiService.getGmcDependentAddOnsToApi(
empCodeString!, 'GMC-DEPENDENT-ADDON', empClientBranchId!); enrollmentClient_id!,
enrollmentEmpCodeString!,
'GMC-DEPENDENT-ADDON',
enrollmentEmpClientBranchId!);
if (response['status'] == 'success') { if (response['status'] == 'success') {
if (response.containsKey('data')) { if (response.containsKey('data')) {
dynamic addOnsDependentPolicies = response['data']; dynamic addOnsDependentPolicies = response['data'];
@ -758,14 +786,18 @@ class _empReviewDetailsState extends State<empReviewDetails> {
['client_policy_id']; ['client_policy_id'];
print(addOnsDependentClientPolicyId); print(addOnsDependentClientPolicyId);
addOnsDependentSumInsured = addOnsDependentSumInsured = int.parse(
addOnsDependentPolicies['gmc_dependent_addon'] addOnsDependentPolicies['gmc_dependent_addon']
['family_floaters_of_dependent_and_si_value']; ['family_floaters_of_dependent_and_si_value']
print(addOnsDependentSumInsured); .toString());
print('addOnsDependentSumInsured $addOnsDependentSumInsured');
final checkValue = addOnsDependentSumInsured + var value = int.parse(addOnsDependentPolicies['gmc_dependent_addon']
addOnsDependentPolicies['gmc_dependent_addon'] ['family_floaters_of_dependent_and_si_premium_value']
['family_floaters_of_dependent_and_si_premium_value']; .toString());
print(value);
final checkValue = addOnsDependentSumInsured + value;
print('checkValue $checkValue'); print('checkValue $checkValue');
if (checkValue == 0) { if (checkValue == 0) {
showHideAddOnsCard = 0; showHideAddOnsCard = 0;
@ -803,13 +835,17 @@ class _empReviewDetailsState extends State<empReviewDetails> {
addOnsDependentDisclaimer = addOnsDependentDisclaimer =
await addOnsDependentPolicies['gmc_dependent_addon'] await addOnsDependentPolicies['gmc_dependent_addon']
['disclaimer']; ['disclaimer'];
print(
'addOnsDependentOpenForEnrollment $addOnsDependentDisclaimer');
addOnsDependentOpenForEnrollment = addOnsDependentOpenForEnrollment =
await addOnsDependentPolicies['gmc_dependent_addon'] await addOnsDependentPolicies['gmc_dependent_addon']
['OpenForEnrollment']; ['OpenForEnrollment'];
print(
'addOnsDependentOpenForEnrollment $addOnsDependentOpenForEnrollment');
print('activeDependentData $activeDependentData');
if (addOnsDependentOpenForEnrollment == '1' && if (addOnsDependentOpenForEnrollment == '1' &&
activeDependentData == 1) { activeDependentData == 1) {
print('addOnsDependentOpenForEnrollment');
if (addOnsDependentDisclaimer != null && if (addOnsDependentDisclaimer != null &&
addOnsDependentDisclaimer.isNotEmpty) { addOnsDependentDisclaimer.isNotEmpty) {
// Temporary list to hold new entries // Temporary list to hold new entries
@ -940,9 +976,9 @@ class _empReviewDetailsState extends State<empReviewDetails> {
print(iAgreeForAddOn); // Output: [90, 92, 88, 89] print(iAgreeForAddOn); // Output: [90, 92, 88, 89]
Map<String, dynamic> apiParams = { Map<String, dynamic> apiParams = {
'emp_code': empCodeString, 'emp_code': enrollmentEmpCodeString,
'client_policy_id': iAgreeForAddOn, 'client_policy_id': iAgreeForAddOn,
'client_id': client_id, 'client_id': enrollmentClient_id,
}; };
print(apiParams); print(apiParams);
@ -1097,6 +1133,18 @@ class _empReviewDetailsState extends State<empReviewDetails> {
return true; 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if ((gpaMappedFamilyFloaters == [] && gpaMappedFamilyFloaters == null) && if ((gpaMappedFamilyFloaters == [] && gpaMappedFamilyFloaters == null) &&
@ -1282,7 +1330,7 @@ class _empReviewDetailsState extends State<empReviewDetails> {
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: [ children: [
Text( Text(
'$totalPayableAmt/Year ', '${allTotalSum()}/Year',
textAlign: TextAlign.left, textAlign: TextAlign.left,
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
fontSize: fontSize:
@ -2119,8 +2167,14 @@ class _empReviewDetailsState extends State<empReviewDetails> {
), ),
], ],
), ),
...buildPolicyRows( if (gpaPolicies != null &&
gpaPolicies.length > 0)
...gpaBuildPolicyRows(
gpaPolicies, context), gpaPolicies, context),
if (gmcPolicies != null &&
gmcPolicies.length > 0)
...gmcBuildPolicyRows(
gmcPolicies, context),
if (activeSiData == 1) if (activeSiData == 1)
TableRow( TableRow(
children: [ children: [
@ -2426,7 +2480,7 @@ class _empReviewDetailsState extends State<empReviewDetails> {
CrossAxisAlignment.end, CrossAxisAlignment.end,
children: [ children: [
Text( Text(
'$totalPayableAmt/Year', '${allTotalSum()}/Year',
textAlign: TextAlign.right, textAlign: TextAlign.right,
style: GoogleFonts.poppins( style: GoogleFonts.poppins(
fontSize: fontSize:
@ -3561,14 +3615,46 @@ class _empReviewDetailsState extends State<empReviewDetails> {
return cards; return cards;
} }
List<TableRow> buildPolicyRows( double calculateGpaTotalAmt(List<Map<String, dynamic>> policies) {
List<Map<String, dynamic>> policies, BuildContext context) { double total = policies
return policies.where((policy) { .where((policy) => policy is Map<String, dynamic>)
.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<Map<String, dynamic>> policies) {
double total = policies
.where((policy) => policy is Map<String, dynamic>)
.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<TableRow> gpaBuildPolicyRows(dynamic policies, BuildContext context) {
if (policies is! List) {
return []; // Return empty list if policies is not a list
}
gpaTotalAmt = calculateGpaTotalAmt(policies.cast<Map<String, dynamic>>());
print('gpaTotalAmt $gpaTotalAmt');
return (policies as List)
.where((policy) => policy is Map<String,
dynamic>) // Ensure each item is a Map<String, dynamic>
.map((policy) {
var siGstValue = policy["si_gst_value"] ?? 0; var siGstValue = policy["si_gst_value"] ?? 0;
var siPremiumValue = policy["si_premium_value"] ?? 0; var siPremiumValue = policy["si_premium_value"] ?? 0;
return siGstValue != 0 &&
siPremiumValue != 0; // Filter out invalid policies if (siGstValue == 0 || siPremiumValue == 0)
}).map((policy) { return null; // Skip invalid policies
return TableRow( return TableRow(
children: [ children: [
TableCell( TableCell(
@ -3619,6 +3705,84 @@ class _empReviewDetailsState extends State<empReviewDetails> {
), ),
], ],
); );
}).toList(); })
.whereType<TableRow>() // Filter out null values
.toList();
}
List<TableRow> 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<Map<String, dynamic>>());
print('gmcTotalAmt $gmcTotalAmt');
return (policies as List)
.where((policy) => policy is Map<String,
dynamic>) // Ensure each item is a Map<String, dynamic>
.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<TableRow>() // Filter out null values
.toList();
} }
} }

View File

@ -18,7 +18,7 @@ class ApiService {
Future<void> _initializeToken() async { Future<void> _initializeToken() async {
final prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
_token = prefs.getString('token') ?? ''; _token = prefs.getString('enrollToken') ?? '';
final hrprefs = await SharedPreferences.getInstance(); final hrprefs = await SharedPreferences.getInstance();
_hrtoken = hrprefs.getString('hrtoken') ?? ''; _hrtoken = hrprefs.getString('hrtoken') ?? '';
} }

View File

@ -58,7 +58,7 @@ class _loginState extends State<login> {
// _token = prefs.getString('token'); // _token = prefs.getString('token');
final response = await http.post( final response = await http.post(
Uri.parse(Environment.apiUrl + 'checkMpin'), Uri.parse(Environment.apiUrlEnrollment + 'checkMpin'),
body: json.encode({'mobile_number': empMobileNo}), body: json.encode({'mobile_number': empMobileNo}),
headers: { headers: {
HttpHeaders.contentTypeHeader: 'application/json', HttpHeaders.contentTypeHeader: 'application/json',
@ -98,8 +98,8 @@ class _loginState extends State<login> {
// Determine the API and the payload based on the visible field // Determine the API and the payload based on the visible field
String apiEndpoint = isEmailFieldVisible String apiEndpoint = isEmailFieldVisible
? Environment.apiUrl + 'verifyEmployeeEmailId' ? Environment.apiUrlEnrollment + 'verifyEmployeeEmailId'
: Environment.apiUrl + 'verifyEmployeeNumber'; : Environment.apiUrlEnrollment + 'verifyEmployeeNumber';
Map<String, dynamic> payload = isEmailFieldVisible Map<String, dynamic> payload = isEmailFieldVisible
? {'email': emailController.text} ? {'email': emailController.text}

View File

@ -53,7 +53,7 @@ class _claimprocessState extends State<claimprocess> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -77,7 +77,7 @@ class _claimsState extends State<claims> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -107,7 +107,7 @@ class _claimtracklistformState extends State<claimtracklist> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -76,7 +76,7 @@ class _generalExclusionsDeductiblesState
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -78,7 +78,7 @@ class _helpState extends State<help> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -62,7 +62,7 @@ class _HomeState extends State<Home> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -157,7 +157,7 @@ class _planclaimsformState extends State<planclaimsform> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -66,7 +66,7 @@ class _policiesState extends State<policies> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;

View File

@ -75,7 +75,7 @@ class _profileState extends State<profile> {
Future<void> _loadToken() async { Future<void> _loadToken() async {
print('_loadToken'); print('_loadToken');
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? token = prefs.getString('token'); final String? token = prefs.getString('_postToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
setState(() { setState(() {
_token = token; _token = token;
@ -150,7 +150,7 @@ class _profileState extends State<profile> {
} }
Future<void> logout(BuildContext context) async { Future<void> logout(BuildContext context) async {
if (isMobilePlatform()) { // if (isMobilePlatform()) {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
// Get the value of the mobile_number key // Get the value of the mobile_number key
@ -166,11 +166,11 @@ class _profileState extends State<profile> {
ToastHelper.showSuccessToast(context, 'logout'); ToastHelper.showSuccessToast(context, 'logout');
// Navigate to login page // Navigate to login page
Navigator.pushNamed(context, 'login'); Navigator.pushNamed(context, 'login');
} else { // } else {
final prefs = await SharedPreferences.getInstance(); // final prefs = await SharedPreferences.getInstance();
await prefs.clear(); // await prefs.clear();
Navigator.pushNamed(context, 'login'); // Navigator.pushNamed(context, 'login');
} // }
} }
@override @override

View File

@ -15,7 +15,7 @@ class ApiService {
Future<void> _initializeToken() async { Future<void> _initializeToken() async {
final prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
_token = prefs.getString('token') ?? ''; _token = prefs.getString('_postToken') ?? '';
} }
Future<Map<String, dynamic>> getActiveAndInactivePolicyDetails( Future<Map<String, dynamic>> getActiveAndInactivePolicyDetails(

View File

@ -28,14 +28,21 @@ class _pinPageState extends State<pinPage> {
String? savedPin; String? savedPin;
dynamic empMobileNo; dynamic empMobileNo;
dynamic _token; dynamic _token;
dynamic _postToken;
dynamic empCodeString; dynamic empCodeString;
dynamic empClientBranchId; dynamic empClientBranchId;
dynamic empPrimaryId; dynamic empPrimaryId;
dynamic gpaEmpName; dynamic gpaEmpName;
dynamic client_id; dynamic client_id;
dynamic emp_status;
dynamic enrollmentEmpCodeString;
dynamic enrollmentEmpClientBranchId;
dynamic enrollmentEmpPrimaryId;
dynamic enrollmentGpaEmpName;
dynamic enrollmentClient_id;
dynamic clientName; dynamic clientName;
dynamic clientLogo; dynamic clientLogo;
dynamic emp_status; dynamic enrollmentEmp_status;
dynamic bioMetricMpin; dynamic bioMetricMpin;
@override @override
@ -70,7 +77,7 @@ class _pinPageState extends State<pinPage> {
// _token = prefs.getString('token'); // _token = prefs.getString('token');
final response = await http.post( final response = await http.post(
Uri.parse(Environment.apiUrl + 'verifyMpin'), Uri.parse(Environment.apiUrlEnrollment + 'verifyMpin'),
body: json.encode({'mobile_number': empMobileNo, 'mpin': mpin}), body: json.encode({'mobile_number': empMobileNo, 'mpin': mpin}),
headers: { headers: {
HttpHeaders.contentTypeHeader: 'application/json', HttpHeaders.contentTypeHeader: 'application/json',
@ -79,12 +86,46 @@ class _pinPageState extends State<pinPage> {
if (response.statusCode == 200) { if (response.statusCode == 200) {
Map<String, dynamic> data = json.decode(response.body); Map<String, dynamic> data = json.decode(response.body);
if (data['status'] == 'success') {
print('data: $data');
_token = data['data'];
String status = data['status'];
// Directly access the post_enrollment data
Map<String, dynamic> 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');
}
} else {
ToastHelper.showErrorToast(context, 'Something went wrong');
throw Exception('Failed to verify pin number');
}
} catch (e) {
ToastHelper.showErrorToast(context, 'Something went wrong');
print('Error: $e');
}
}
void postSuccessData(post, data) async {
String status = data['status'];
String postStatus = post['status'];
if (postStatus == 'success') {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('token', data['data']); prefs.setString('_postToken', post['data']);
// Decode the JWT token received from the API response // Decode the JWT token received from the API response
Map<String, dynamic>? decodedToken = Jwt.parseJwt(data['data']); Map<String, dynamic>? decodedToken = Jwt.parseJwt(post['data']);
print('decodedToken : $decodedToken'); print('decodedToken : $decodedToken');
empClientBranchId = decodedToken['client_branch_id']; empClientBranchId = decodedToken['client_branch_id'];
prefs.setString('empClientBranchId', empClientBranchId); prefs.setString('empClientBranchId', empClientBranchId);
@ -98,29 +139,82 @@ class _pinPageState extends State<pinPage> {
prefs.setString('client_id', client_id); prefs.setString('client_id', client_id);
emp_status = decodedToken['emp_status']; emp_status = decodedToken['emp_status'];
prefs.setString('emp_status', 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<String, dynamic>? 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<String, dynamic>? 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(); getClientLogoAndDetails();
print('Successfully Login'); print('Successfully Login');
final token = prefs.getString('token');
// Redirect to another page
final token = prefs.getString('enrollToken');
if (token != null && token.isNotEmpty) { if (token != null && token.isNotEmpty) {
ToastHelper.showSuccessToast(context, 'Successfully Login'); ToastHelper.showSuccessToast(context, 'Successfully Login');
if (emp_status == 'enrolled' || emp_status == 'active') { // if (enrollmentEmp_status == 'enrolled' ||
Navigator.pushReplacementNamed(context, 'home'); // enrollmentEmp_status == 'active') {
} else { // Navigator.pushReplacementNamed(context, 'home');
// } else {
Navigator.pushReplacementNamed(context, 'empDetails'); Navigator.pushReplacementNamed(context, 'empDetails');
} // }
}
} else {
ToastHelper.showErrorToast(context, 'Invalid Pin Number');
print('Invalid Pin Number');
}
} else {
ToastHelper.showErrorToast(context, 'Something went wrong');
throw Exception('Failed to verify pin number');
}
} catch (e) {
ToastHelper.showErrorToast(context, 'Something went wrong');
print('Error: $e');
} }
} }
@ -156,8 +250,8 @@ class _pinPageState extends State<pinPage> {
} }
Future<void> getClientLogoAndDetails() async { Future<void> getClientLogoAndDetails() async {
var url = Uri.parse(Environment.apiUrl + var url = Uri.parse(Environment.apiUrlEnrollment +
'getClientDetails?client_id=$client_id&emp_code=$empCodeString'); 'getClientDetails?client_id=$enrollmentClient_id&emp_code=$enrollmentEmpCodeString');
try { try {
var response = await http.get( var response = await http.get(
url, url,

View File

@ -45,7 +45,7 @@ class _changePinState extends State<changePin> {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
empMobileNo = prefs.getString('empMobileNo'); empMobileNo = prefs.getString('empMobileNo');
_token = prefs.getString('token'); _token = prefs.getString('_postToken');
final response = await http.post( final response = await http.post(
Uri.parse(Environment.apiUrl + 'updateMpin'), Uri.parse(Environment.apiUrl + 'updateMpin'),

View File

@ -48,13 +48,13 @@ class _pinSettingPageState extends State<pinSettingPage> {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();
empMobileNo = prefs.getString('empMobileNo'); empMobileNo = prefs.getString('empMobileNo');
emp_status = prefs.getString('emp_status'); emp_status = prefs.getString('emp_status');
_token = prefs.getString('token'); _token = prefs.getString('enrollToken');
String pin = _pinController.text; String pin = _pinController.text;
await _authService.savePin(pin); await _authService.savePin(pin);
await _authService.saveSkipStatus(1); await _authService.saveSkipStatus(1);
final response = await http.post( final response = await http.post(
Uri.parse(Environment.apiUrl + 'saveMpin'), Uri.parse(Environment.apiUrlEnrollment + 'saveMpin'),
body: json.encode( body: json.encode(
{'mobile_number': empMobileNo, 'mpin': _pinController.text}), {'mobile_number': empMobileNo, 'mpin': _pinController.text}),
headers: { headers: {

View File

@ -44,15 +44,26 @@ class _MyVerifyState extends State<MyVerify> {
late Timer _timer; late Timer _timer;
int _secondsRemaining = 60; int _secondsRemaining = 60;
bool _isTimerRunning = false; bool _isTimerRunning = false;
dynamic empCodeString;
dynamic enrollmentEmpClientBranchId;
dynamic enrollmentEmpCodeString;
dynamic enrollmentEmpPrimaryId;
dynamic enrollmentGpaEmpName;
dynamic enrollmentClient_id;
dynamic enrollmentEmp_status;
dynamic empClientBranchId; dynamic empClientBranchId;
dynamic empCodeString;
dynamic empPrimaryId; dynamic empPrimaryId;
dynamic gpaEmpName; dynamic gpaEmpName;
dynamic client_id; dynamic client_id;
dynamic emp_status;
dynamic _token; dynamic _token;
dynamic _postToken;
dynamic clientName; dynamic clientName;
dynamic clientLogo; dynamic clientLogo;
dynamic emp_status;
dynamic fCMToken; dynamic fCMToken;
late String verificationId; late String verificationId;
late String mobileNumber; late String mobileNumber;
@ -148,7 +159,7 @@ class _MyVerifyState extends State<MyVerify> {
void generateToken(bool otpVerifyStatus) async { void generateToken(bool otpVerifyStatus) async {
try { try {
final response = await http.post( final response = await http.post(
Uri.parse(Environment.apiUrl + 'getVerifiedUserData'), Uri.parse(Environment.apiUrlEnrollment + 'getVerifiedUserData'),
body: json.encode({ body: json.encode({
'mobile_number': mobileNumber, 'mobile_number': mobileNumber,
'otp_verification': otpVerifyStatus 'otp_verification': otpVerifyStatus
@ -166,55 +177,24 @@ class _MyVerifyState extends State<MyVerify> {
print('data: $data'); print('data: $data');
_token = data['data']; _token = data['data'];
String status = data['status']; String status = data['status'];
print(status);
if (status == 'success') { // Directly access the post_enrollment data
Map<String, dynamic> post = data['post_enrollment'];
print('post: $post');
_postToken = post['data'];
String postStatus = post['status'];
if (postStatus == 'success') {
setState(() { setState(() {
_isLoading = false; _isLoading = false;
}); });
final SharedPreferences prefs = await SharedPreferences.getInstance(); postSuccessData(post, data);
prefs.setString('token', data['data']); } else if (status == 'success') {
setState(() {
// Decode the JWT token received from the API response _isLoading = false;
Map<String, dynamic>? decodedToken = Jwt.parseJwt(data['data']); });
print('decodedToken : $decodedToken'); enrollmentSuccessData(data);
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');
}
}
}
} else { } else {
setState(() { setState(() {
_isLoading = false; _isLoading = false;
@ -241,6 +221,130 @@ class _MyVerifyState extends State<MyVerify> {
} }
} }
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<String, dynamic>? 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<String, dynamic>? 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<String, dynamic>? 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 { void verifyOTP(String otp) async {
try { try {
setState(() { setState(() {