|  |  |  | @ -191,169 +191,187 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> { | 
		
	
		
			
				|  |  |  |  |     return Scaffold( | 
		
	
		
			
				|  |  |  |  |       appBar: AppBarWidget(context, title: LocaleKeys.details.tr()), | 
		
	
		
			
				|  |  |  |  |       backgroundColor: Colors.white, | 
		
	
		
			
				|  |  |  |  |       body: Stack( | 
		
	
		
			
				|  |  |  |  |         children: [ | 
		
	
		
			
				|  |  |  |  |           Column( | 
		
	
		
			
				|  |  |  |  |             children: [ | 
		
	
		
			
				|  |  |  |  |               Container( | 
		
	
		
			
				|  |  |  |  |                 padding: const EdgeInsets.only(left: 21, right: 21, top: 16, bottom: 16), | 
		
	
		
			
				|  |  |  |  |                 decoration: const BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                   borderRadius: BorderRadius.only( | 
		
	
		
			
				|  |  |  |  |                     bottomLeft: Radius.circular(25), | 
		
	
		
			
				|  |  |  |  |                     bottomRight: Radius.circular(25), | 
		
	
		
			
				|  |  |  |  |                   ), | 
		
	
		
			
				|  |  |  |  |                   gradient: LinearGradient( | 
		
	
		
			
				|  |  |  |  |                     transform: GradientRotation(.83), | 
		
	
		
			
				|  |  |  |  |                     begin: Alignment.topRight, | 
		
	
		
			
				|  |  |  |  |                     end: Alignment.bottomLeft, | 
		
	
		
			
				|  |  |  |  |                     colors: [ | 
		
	
		
			
				|  |  |  |  |                       MyColors.gradiantEndColor, | 
		
	
		
			
				|  |  |  |  |                       MyColors.gradiantStartColor, | 
		
	
		
			
				|  |  |  |  |                     ], | 
		
	
		
			
				|  |  |  |  |                   ), | 
		
	
		
			
				|  |  |  |  |                 ), | 
		
	
		
			
				|  |  |  |  |                 child: Row( | 
		
	
		
			
				|  |  |  |  |                   children: [ | 
		
	
		
			
				|  |  |  |  |                     myTab(LocaleKeys.info.tr(), 0), | 
		
	
		
			
				|  |  |  |  |                     (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") ? myTab(LocaleKeys.details.tr(), 1) : myTab(LocaleKeys.request.tr(), 1), | 
		
	
		
			
				|  |  |  |  |                     myTab(LocaleKeys.actions.tr(), 2), | 
		
	
		
			
				|  |  |  |  |                     myTab(LocaleKeys.attachments.tr(), 3), | 
		
	
		
			
				|  |  |  |  |                   ], | 
		
	
		
			
				|  |  |  |  |                 ), | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |               if ((workListData?.sUBJECT ?? "").isNotEmpty) workListData!.sUBJECT!.toText14().paddingOnly(top: 20, right: 21, left: 21), | 
		
	
		
			
				|  |  |  |  |               PageView( | 
		
	
		
			
				|  |  |  |  |                 controller: controller, | 
		
	
		
			
				|  |  |  |  |                 onPageChanged: (pageIndex) { | 
		
	
		
			
				|  |  |  |  |                   setState(() { | 
		
	
		
			
				|  |  |  |  |                     tabIndex = pageIndex; | 
		
	
		
			
				|  |  |  |  |                   }); | 
		
	
		
			
				|  |  |  |  |                 }, | 
		
	
		
			
				|  |  |  |  |                 children: [ | 
		
	
		
			
				|  |  |  |  |                   InfoFragment( | 
		
	
		
			
				|  |  |  |  |                     poHeaderList: getPoNotificationBody?.pOHeader ?? [], | 
		
	
		
			
				|  |  |  |  |                     workListData: workListData, | 
		
	
		
			
				|  |  |  |  |                     itemCreationHeader: getItemCreationNtfBody?.itemCreationHeader ?? [], | 
		
	
		
			
				|  |  |  |  |                     getStampMsNotifications: getStampMsNotifications, | 
		
	
		
			
				|  |  |  |  |                     getStampNsNotifications: getStampNsNotifications, | 
		
	
		
			
				|  |  |  |  |                     getEitCollectionNotificationBodyList: getEitCollectionNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                     getPhonesNotificationBodyList: getPhonesNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                     getBasicDetNtfBodyList: getBasicDetNtfBodyList, | 
		
	
		
			
				|  |  |  |  |                     getAbsenceCollectionNotificationBodyList: getAbsenceCollectionNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                     getContactNotificationBodyList: getContactNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                     getPrNotificationBodyList: getPrNotificationBody, | 
		
	
		
			
				|  |  |  |  |                   ), | 
		
	
		
			
				|  |  |  |  |                   (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") | 
		
	
		
			
				|  |  |  |  |                       ? DetailFragment(workListData, memberInformationListModel) | 
		
	
		
			
				|  |  |  |  |                       : RequestFragment( | 
		
	
		
			
				|  |  |  |  |                           moNotificationBodyList: getMoNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                           poLinesList: getPoNotificationBody?.pOLines ?? [], | 
		
	
		
			
				|  |  |  |  |                           itemCreationLines: getItemCreationNtfBody?.itemCreationLines ?? [], | 
		
	
		
			
				|  |  |  |  |                           prLinesList: getPrNotificationBody?.pRLines ?? [], | 
		
	
		
			
				|  |  |  |  |                         ), | 
		
	
		
			
				|  |  |  |  |                   isActionHistoryLoaded | 
		
	
		
			
				|  |  |  |  |                       ? actionHistoryList.isEmpty | 
		
	
		
			
				|  |  |  |  |                           ? Utils.getNoDataWidget(context) | 
		
	
		
			
				|  |  |  |  |                           : ActionsFragment( | 
		
	
		
			
				|  |  |  |  |                               workListData!.nOTIFICATIONID, | 
		
	
		
			
				|  |  |  |  |                               actionHistoryList, | 
		
	
		
			
				|  |  |  |  |                               voidCallback: reloadWorkList, | 
		
	
		
			
				|  |  |  |  |                             ) | 
		
	
		
			
				|  |  |  |  |                       : showLoadingAnimation(), | 
		
	
		
			
				|  |  |  |  |                   isAttachmentLoaded | 
		
	
		
			
				|  |  |  |  |                       ? getAttachmentList.isEmpty | 
		
	
		
			
				|  |  |  |  |                           ? Utils.getNoDataWidget(context) | 
		
	
		
			
				|  |  |  |  |                           : AttachmentsFragment(getAttachmentList) | 
		
	
		
			
				|  |  |  |  |                       : showLoadingAnimation(), | 
		
	
		
			
				|  |  |  |  |                 ], | 
		
	
		
			
				|  |  |  |  |               ).expanded, | 
		
	
		
			
				|  |  |  |  |               if (isApproveAvailable || isRejectAvailable || isCloseAvailable) | 
		
	
		
			
				|  |  |  |  |       body: AnimatedSwitcher( | 
		
	
		
			
				|  |  |  |  |         duration: const Duration(milliseconds: 500), | 
		
	
		
			
				|  |  |  |  |         switchInCurve: Curves.easeInToLinear, | 
		
	
		
			
				|  |  |  |  |         transitionBuilder: (Widget child, Animation<double> animation) { | 
		
	
		
			
				|  |  |  |  |           Animation<Offset> custom = Tween<Offset>( | 
		
	
		
			
				|  |  |  |  |             begin: const Offset(1.0, 0.0), | 
		
	
		
			
				|  |  |  |  |             end: Offset.zero, | 
		
	
		
			
				|  |  |  |  |           ).animate(animation); | 
		
	
		
			
				|  |  |  |  |           return ClipRect( | 
		
	
		
			
				|  |  |  |  |             child: SlideTransition( | 
		
	
		
			
				|  |  |  |  |               position: custom, | 
		
	
		
			
				|  |  |  |  |               child: child, | 
		
	
		
			
				|  |  |  |  |               // textDirection: TextDirection.ltr, | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |           ); | 
		
	
		
			
				|  |  |  |  |         }, | 
		
	
		
			
				|  |  |  |  |         child: Stack( | 
		
	
		
			
				|  |  |  |  |           key: ValueKey(AppState().workListIndex ?? 0), | 
		
	
		
			
				|  |  |  |  |           children: [ | 
		
	
		
			
				|  |  |  |  |             Column( | 
		
	
		
			
				|  |  |  |  |               children: [ | 
		
	
		
			
				|  |  |  |  |                 Container( | 
		
	
		
			
				|  |  |  |  |                   padding: const EdgeInsets.only(top: 14, bottom: 14, left: 21, right: 21), | 
		
	
		
			
				|  |  |  |  |                   padding: const EdgeInsets.only(left: 21, right: 21, top: 16, bottom: 16), | 
		
	
		
			
				|  |  |  |  |                   decoration: const BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                     color: Colors.white, | 
		
	
		
			
				|  |  |  |  |                     border: Border( | 
		
	
		
			
				|  |  |  |  |                       top: BorderSide(color: MyColors.lightGreyEFColor, width: 1.0), | 
		
	
		
			
				|  |  |  |  |                     borderRadius: BorderRadius.only( | 
		
	
		
			
				|  |  |  |  |                       bottomLeft: Radius.circular(25), | 
		
	
		
			
				|  |  |  |  |                       bottomRight: Radius.circular(25), | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                     gradient: LinearGradient( | 
		
	
		
			
				|  |  |  |  |                       transform: GradientRotation(.83), | 
		
	
		
			
				|  |  |  |  |                       begin: Alignment.topRight, | 
		
	
		
			
				|  |  |  |  |                       end: Alignment.bottomLeft, | 
		
	
		
			
				|  |  |  |  |                       colors: [ | 
		
	
		
			
				|  |  |  |  |                         MyColors.gradiantEndColor, | 
		
	
		
			
				|  |  |  |  |                         MyColors.gradiantStartColor, | 
		
	
		
			
				|  |  |  |  |                       ], | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                   ), | 
		
	
		
			
				|  |  |  |  |                   child: Row( | 
		
	
		
			
				|  |  |  |  |                     children: [ | 
		
	
		
			
				|  |  |  |  |                       if (isRejectAvailable) | 
		
	
		
			
				|  |  |  |  |                         DefaultButton( | 
		
	
		
			
				|  |  |  |  |                           LocaleKeys.reject.tr(), | 
		
	
		
			
				|  |  |  |  |                           () => performAction("REJECTED"), | 
		
	
		
			
				|  |  |  |  |                           colors: const [Color(0xffE47A7E), Color(0xffDE6D71)], | 
		
	
		
			
				|  |  |  |  |                         ).expanded, | 
		
	
		
			
				|  |  |  |  |                       if (isApproveAvailable && isRejectAvailable) 8.width, | 
		
	
		
			
				|  |  |  |  |                       if (isApproveAvailable) | 
		
	
		
			
				|  |  |  |  |                         DefaultButton( | 
		
	
		
			
				|  |  |  |  |                           LocaleKeys.approve.tr(), | 
		
	
		
			
				|  |  |  |  |                           () => performAction("APPROVED"), | 
		
	
		
			
				|  |  |  |  |                           colors: const [Color(0xff28C884), Color(0xff1BB271)], | 
		
	
		
			
				|  |  |  |  |                         ).expanded, | 
		
	
		
			
				|  |  |  |  |                       if (isCloseAvailable) | 
		
	
		
			
				|  |  |  |  |                         DefaultButton( | 
		
	
		
			
				|  |  |  |  |                           LocaleKeys.ok.tr(), | 
		
	
		
			
				|  |  |  |  |                           () => performAction("CLOSE"), | 
		
	
		
			
				|  |  |  |  |                           colors: const [Color(0xff32D892), Color(0xff1AB170)], | 
		
	
		
			
				|  |  |  |  |                         ).expanded, | 
		
	
		
			
				|  |  |  |  |                       8.width, | 
		
	
		
			
				|  |  |  |  |                       Container( | 
		
	
		
			
				|  |  |  |  |                         height: 43, | 
		
	
		
			
				|  |  |  |  |                         width: 43, | 
		
	
		
			
				|  |  |  |  |                         decoration: const BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                           shape: BoxShape.circle, | 
		
	
		
			
				|  |  |  |  |                           color: MyColors.lightGreyE6Color, | 
		
	
		
			
				|  |  |  |  |                         ), | 
		
	
		
			
				|  |  |  |  |                         child: Icon(showFabOptions ? Icons.more_vert_rounded : Icons.more_horiz_rounded, color: MyColors.darkIconColor), | 
		
	
		
			
				|  |  |  |  |                       ).onPress(() { | 
		
	
		
			
				|  |  |  |  |                         setState(() { | 
		
	
		
			
				|  |  |  |  |                           showFabOptions = true; | 
		
	
		
			
				|  |  |  |  |                         }); | 
		
	
		
			
				|  |  |  |  |                       }) | 
		
	
		
			
				|  |  |  |  |                       myTab(LocaleKeys.info.tr(), 0), | 
		
	
		
			
				|  |  |  |  |                       (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") ? myTab(LocaleKeys.details.tr(), 1) : myTab(LocaleKeys.request.tr(), 1), | 
		
	
		
			
				|  |  |  |  |                       myTab(LocaleKeys.actions.tr(), 2), | 
		
	
		
			
				|  |  |  |  |                       myTab(LocaleKeys.attachments.tr(), 3), | 
		
	
		
			
				|  |  |  |  |                     ], | 
		
	
		
			
				|  |  |  |  |                   ), | 
		
	
		
			
				|  |  |  |  |                 ) | 
		
	
		
			
				|  |  |  |  |             ], | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |           IgnorePointer( | 
		
	
		
			
				|  |  |  |  |             ignoring: !showFabOptions, | 
		
	
		
			
				|  |  |  |  |             child: AnimatedOpacity( | 
		
	
		
			
				|  |  |  |  |               opacity: showFabOptions ? 1 : 0, | 
		
	
		
			
				|  |  |  |  |               duration: const Duration(milliseconds: 250), | 
		
	
		
			
				|  |  |  |  |               child: Container( | 
		
	
		
			
				|  |  |  |  |                 padding: const EdgeInsets.only(left: 21, right: 21, bottom: 75 - 12), | 
		
	
		
			
				|  |  |  |  |                 width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                 height: double.infinity, | 
		
	
		
			
				|  |  |  |  |                 color: Colors.white.withOpacity(.67), | 
		
	
		
			
				|  |  |  |  |                 alignment: Alignment.bottomRight, | 
		
	
		
			
				|  |  |  |  |                 child: Column( | 
		
	
		
			
				|  |  |  |  |                   mainAxisSize: MainAxisSize.min, | 
		
	
		
			
				|  |  |  |  |                   crossAxisAlignment: CrossAxisAlignment.end, | 
		
	
		
			
				|  |  |  |  |                 ), | 
		
	
		
			
				|  |  |  |  |                 if ((workListData?.sUBJECT ?? "").isNotEmpty) workListData!.sUBJECT!.toText14().paddingOnly(top: 20, right: 21, left: 21), | 
		
	
		
			
				|  |  |  |  |                 PageView( | 
		
	
		
			
				|  |  |  |  |                   controller: controller, | 
		
	
		
			
				|  |  |  |  |                   onPageChanged: (int pageIndex) { | 
		
	
		
			
				|  |  |  |  |                     setState(() { | 
		
	
		
			
				|  |  |  |  |                       tabIndex = pageIndex; | 
		
	
		
			
				|  |  |  |  |                     }); | 
		
	
		
			
				|  |  |  |  |                   }, | 
		
	
		
			
				|  |  |  |  |                   children: [ | 
		
	
		
			
				|  |  |  |  |                     myFab(LocaleKeys.skip.tr(), "assets/images/skip.svg").onPress(() { | 
		
	
		
			
				|  |  |  |  |                       if (AppState().workList!.length - 1 > AppState().workListIndex!) { | 
		
	
		
			
				|  |  |  |  |                         AppState().setWorkListIndex = AppState().workListIndex! + 1; | 
		
	
		
			
				|  |  |  |  |                         workListData = null; | 
		
	
		
			
				|  |  |  |  |                         showFabOptions = false; | 
		
	
		
			
				|  |  |  |  |                         tabIndex = 0; | 
		
	
		
			
				|  |  |  |  |                         getDataFromState(); | 
		
	
		
			
				|  |  |  |  |                       } else if (AppState().workList!.length - 1 == AppState().workListIndex!) { | 
		
	
		
			
				|  |  |  |  |                         Navigator.pop(context); | 
		
	
		
			
				|  |  |  |  |                       } | 
		
	
		
			
				|  |  |  |  |                     }), | 
		
	
		
			
				|  |  |  |  |                     12.height, | 
		
	
		
			
				|  |  |  |  |                     ...viewApiButtonsList(notificationButtonsList), | 
		
	
		
			
				|  |  |  |  |                     InfoFragment( | 
		
	
		
			
				|  |  |  |  |                       poHeaderList: getPoNotificationBody?.pOHeader ?? [], | 
		
	
		
			
				|  |  |  |  |                       workListData: workListData, | 
		
	
		
			
				|  |  |  |  |                       itemCreationHeader: getItemCreationNtfBody?.itemCreationHeader ?? [], | 
		
	
		
			
				|  |  |  |  |                       getStampMsNotifications: getStampMsNotifications, | 
		
	
		
			
				|  |  |  |  |                       getStampNsNotifications: getStampNsNotifications, | 
		
	
		
			
				|  |  |  |  |                       getEitCollectionNotificationBodyList: getEitCollectionNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                       getPhonesNotificationBodyList: getPhonesNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                       getBasicDetNtfBodyList: getBasicDetNtfBodyList, | 
		
	
		
			
				|  |  |  |  |                       getAbsenceCollectionNotificationBodyList: getAbsenceCollectionNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                       getContactNotificationBodyList: getContactNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                       getPrNotificationBodyList: getPrNotificationBody, | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                     (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") | 
		
	
		
			
				|  |  |  |  |                         ? DetailFragment(workListData, memberInformationListModel) | 
		
	
		
			
				|  |  |  |  |                         : RequestFragment( | 
		
	
		
			
				|  |  |  |  |                             moNotificationBodyList: getMoNotificationBodyList, | 
		
	
		
			
				|  |  |  |  |                             poLinesList: getPoNotificationBody?.pOLines ?? [], | 
		
	
		
			
				|  |  |  |  |                             itemCreationLines: getItemCreationNtfBody?.itemCreationLines ?? [], | 
		
	
		
			
				|  |  |  |  |                             prLinesList: getPrNotificationBody?.pRLines ?? [], | 
		
	
		
			
				|  |  |  |  |                           ), | 
		
	
		
			
				|  |  |  |  |                     isActionHistoryLoaded | 
		
	
		
			
				|  |  |  |  |                         ? actionHistoryList.isEmpty | 
		
	
		
			
				|  |  |  |  |                             ? Utils.getNoDataWidget(context) | 
		
	
		
			
				|  |  |  |  |                             : ActionsFragment( | 
		
	
		
			
				|  |  |  |  |                                 workListData!.nOTIFICATIONID, | 
		
	
		
			
				|  |  |  |  |                                 actionHistoryList, | 
		
	
		
			
				|  |  |  |  |                                 voidCallback: reloadWorkList, | 
		
	
		
			
				|  |  |  |  |                               ) | 
		
	
		
			
				|  |  |  |  |                         : showLoadingAnimation(), | 
		
	
		
			
				|  |  |  |  |                     isAttachmentLoaded | 
		
	
		
			
				|  |  |  |  |                         ? getAttachmentList.isEmpty | 
		
	
		
			
				|  |  |  |  |                             ? Utils.getNoDataWidget(context) | 
		
	
		
			
				|  |  |  |  |                             : AttachmentsFragment(getAttachmentList) | 
		
	
		
			
				|  |  |  |  |                         : showLoadingAnimation(), | 
		
	
		
			
				|  |  |  |  |                   ], | 
		
	
		
			
				|  |  |  |  |                 ).expanded, | 
		
	
		
			
				|  |  |  |  |                 if (isApproveAvailable || isRejectAvailable || isCloseAvailable) | 
		
	
		
			
				|  |  |  |  |                   Container( | 
		
	
		
			
				|  |  |  |  |                     padding: const EdgeInsets.only(top: 14, bottom: 14, left: 21, right: 21), | 
		
	
		
			
				|  |  |  |  |                     decoration: const BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                       color: Colors.white, | 
		
	
		
			
				|  |  |  |  |                       border: Border( | 
		
	
		
			
				|  |  |  |  |                         top: BorderSide(color: MyColors.lightGreyEFColor, width: 1.0), | 
		
	
		
			
				|  |  |  |  |                       ), | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                     child: Row( | 
		
	
		
			
				|  |  |  |  |                       children: [ | 
		
	
		
			
				|  |  |  |  |                         if (isRejectAvailable) | 
		
	
		
			
				|  |  |  |  |                           DefaultButton( | 
		
	
		
			
				|  |  |  |  |                             LocaleKeys.reject.tr(), | 
		
	
		
			
				|  |  |  |  |                             () => performAction("REJECTED"), | 
		
	
		
			
				|  |  |  |  |                             colors: const [Color(0xffE47A7E), Color(0xffDE6D71)], | 
		
	
		
			
				|  |  |  |  |                           ).expanded, | 
		
	
		
			
				|  |  |  |  |                         if (isApproveAvailable && isRejectAvailable) 8.width, | 
		
	
		
			
				|  |  |  |  |                         if (isApproveAvailable) | 
		
	
		
			
				|  |  |  |  |                           DefaultButton( | 
		
	
		
			
				|  |  |  |  |                             LocaleKeys.approve.tr(), | 
		
	
		
			
				|  |  |  |  |                             () => performAction("APPROVED"), | 
		
	
		
			
				|  |  |  |  |                             colors: const [Color(0xff28C884), Color(0xff1BB271)], | 
		
	
		
			
				|  |  |  |  |                           ).expanded, | 
		
	
		
			
				|  |  |  |  |                         if (isCloseAvailable) | 
		
	
		
			
				|  |  |  |  |                           DefaultButton( | 
		
	
		
			
				|  |  |  |  |                             LocaleKeys.ok.tr(), | 
		
	
		
			
				|  |  |  |  |                             () => performAction("CLOSE"), | 
		
	
		
			
				|  |  |  |  |                             colors: const [Color(0xff32D892), Color(0xff1AB170)], | 
		
	
		
			
				|  |  |  |  |                           ).expanded, | 
		
	
		
			
				|  |  |  |  |                         8.width, | 
		
	
		
			
				|  |  |  |  |                         Container( | 
		
	
		
			
				|  |  |  |  |                           height: 43, | 
		
	
		
			
				|  |  |  |  |                           width: 43, | 
		
	
		
			
				|  |  |  |  |                           decoration: const BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                             shape: BoxShape.circle, | 
		
	
		
			
				|  |  |  |  |                             color: MyColors.lightGreyE6Color, | 
		
	
		
			
				|  |  |  |  |                           ), | 
		
	
		
			
				|  |  |  |  |                           child: Icon(showFabOptions ? Icons.more_vert_rounded : Icons.more_horiz_rounded, color: MyColors.darkIconColor), | 
		
	
		
			
				|  |  |  |  |                         ).onPress(() { | 
		
	
		
			
				|  |  |  |  |                           setState(() { | 
		
	
		
			
				|  |  |  |  |                             showFabOptions = true; | 
		
	
		
			
				|  |  |  |  |                           }); | 
		
	
		
			
				|  |  |  |  |                         }) | 
		
	
		
			
				|  |  |  |  |                       ], | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                   ) | 
		
	
		
			
				|  |  |  |  |               ], | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |             IgnorePointer( | 
		
	
		
			
				|  |  |  |  |               ignoring: !showFabOptions, | 
		
	
		
			
				|  |  |  |  |               child: AnimatedOpacity( | 
		
	
		
			
				|  |  |  |  |                 opacity: showFabOptions ? 1 : 0, | 
		
	
		
			
				|  |  |  |  |                 duration: const Duration(milliseconds: 250), | 
		
	
		
			
				|  |  |  |  |                 child: Container( | 
		
	
		
			
				|  |  |  |  |                   padding: const EdgeInsets.only(left: 21, right: 21, bottom: 75 - 12), | 
		
	
		
			
				|  |  |  |  |                   width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                   height: double.infinity, | 
		
	
		
			
				|  |  |  |  |                   color: Colors.white.withOpacity(.67), | 
		
	
		
			
				|  |  |  |  |                   alignment: Alignment.bottomRight, | 
		
	
		
			
				|  |  |  |  |                   child: Column( | 
		
	
		
			
				|  |  |  |  |                     mainAxisSize: MainAxisSize.min, | 
		
	
		
			
				|  |  |  |  |                     crossAxisAlignment: CrossAxisAlignment.end, | 
		
	
		
			
				|  |  |  |  |                     children: [ | 
		
	
		
			
				|  |  |  |  |                       myFab(LocaleKeys.skip.tr(), "assets/images/skip.svg").onPress(() { | 
		
	
		
			
				|  |  |  |  |                         if (AppState().workList!.length - 1 > AppState().workListIndex!) { | 
		
	
		
			
				|  |  |  |  |                           AppState().setWorkListIndex = AppState().workListIndex! + 1; | 
		
	
		
			
				|  |  |  |  |                           workListData = null; | 
		
	
		
			
				|  |  |  |  |                           showFabOptions = false; | 
		
	
		
			
				|  |  |  |  |                           tabIndex = 0; | 
		
	
		
			
				|  |  |  |  |                           getDataFromState(); | 
		
	
		
			
				|  |  |  |  |                         } else if (AppState().workList!.length - 1 == AppState().workListIndex!) { | 
		
	
		
			
				|  |  |  |  |                           Navigator.pop(context); | 
		
	
		
			
				|  |  |  |  |                         } | 
		
	
		
			
				|  |  |  |  |                       }), | 
		
	
		
			
				|  |  |  |  |                       12.height, | 
		
	
		
			
				|  |  |  |  |                       ...viewApiButtonsList(notificationButtonsList), | 
		
	
		
			
				|  |  |  |  |                     ], | 
		
	
		
			
				|  |  |  |  |                   ), | 
		
	
		
			
				|  |  |  |  |                 ), | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |             ).onPress(() { | 
		
	
		
			
				|  |  |  |  |               setState(() { | 
		
	
		
			
				|  |  |  |  |                 showFabOptions = false; | 
		
	
		
			
				|  |  |  |  |               }); | 
		
	
		
			
				|  |  |  |  |             }), | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |         ], | 
		
	
		
			
				|  |  |  |  |               ).onPress(() { | 
		
	
		
			
				|  |  |  |  |                 setState(() { | 
		
	
		
			
				|  |  |  |  |                   showFabOptions = false; | 
		
	
		
			
				|  |  |  |  |                 }); | 
		
	
		
			
				|  |  |  |  |               }), | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |           ], | 
		
	
		
			
				|  |  |  |  |         ), | 
		
	
		
			
				|  |  |  |  |       ), | 
		
	
		
			
				|  |  |  |  |       floatingActionButton: (!isApproveAvailable && !isRejectAvailable && !isCloseAvailable) | 
		
	
		
			
				|  |  |  |  |           ? Container( | 
		
	
	
		
			
				
					|  |  |  | @ -546,7 +564,7 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> { | 
		
	
		
			
				|  |  |  |  |   Future<void> performNetworkCall(BuildContext context, {String? email, String? userId}) async { | 
		
	
		
			
				|  |  |  |  |     showDialog( | 
		
	
		
			
				|  |  |  |  |       context: context, | 
		
	
		
			
				|  |  |  |  |       builder: (cxt) => ConfirmDialog( | 
		
	
		
			
				|  |  |  |  |       builder: (BuildContext cxt) => ConfirmDialog( | 
		
	
		
			
				|  |  |  |  |         message: LocaleKeys.wantToReject.tr(), | 
		
	
		
			
				|  |  |  |  |         okTitle: LocaleKeys.reject.tr(), | 
		
	
		
			
				|  |  |  |  |         onTap: () async { | 
		
	
	
		
			
				
					|  |  |  | @ -629,12 +647,12 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> { | 
		
	
		
			
				|  |  |  |  |     print(actionMode); | 
		
	
		
			
				|  |  |  |  |     showDialog( | 
		
	
		
			
				|  |  |  |  |       context: context, | 
		
	
		
			
				|  |  |  |  |       builder: (cxt) => AcceptRejectInputDialog( | 
		
	
		
			
				|  |  |  |  |       builder: (BuildContext cxt) => AcceptRejectInputDialog( | 
		
	
		
			
				|  |  |  |  |         message: title != null ? null : LocaleKeys.requestedItems.tr(), | 
		
	
		
			
				|  |  |  |  |         title: title, | 
		
	
		
			
				|  |  |  |  |         notificationGetRespond: notificationNoteInput, | 
		
	
		
			
				|  |  |  |  |         actionMode: actionMode, | 
		
	
		
			
				|  |  |  |  |         onTap: (note) { | 
		
	
		
			
				|  |  |  |  |         onTap: (String note) { | 
		
	
		
			
				|  |  |  |  |           Map<String, dynamic> payload = { | 
		
	
		
			
				|  |  |  |  |             "P_ACTION_MODE": actionMode, | 
		
	
		
			
				|  |  |  |  |             "P_APPROVER_INDEX": null, | 
		
	
	
		
			
				
					|  |  |  | @ -915,9 +933,9 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> { | 
		
	
		
			
				|  |  |  |  |       apiCallCount++; | 
		
	
		
			
				|  |  |  |  |       notificationButtonsList = await WorkListApiClient().getNotificationButtons(workListData!.nOTIFICATIONID!); | 
		
	
		
			
				|  |  |  |  |       if (notificationButtonsList.isNotEmpty) { | 
		
	
		
			
				|  |  |  |  |         isCloseAvailable = notificationButtonsList.any((element) => element.bUTTONACTION == "CLOSE"); | 
		
	
		
			
				|  |  |  |  |         isApproveAvailable = notificationButtonsList.any((element) => element.bUTTONACTION == "APPROVED"); | 
		
	
		
			
				|  |  |  |  |         isRejectAvailable = notificationButtonsList.any((element) => element.bUTTONACTION == "REJECTED"); | 
		
	
		
			
				|  |  |  |  |         isCloseAvailable = notificationButtonsList.any((GetNotificationButtonsList element) => element.bUTTONACTION == "CLOSE"); | 
		
	
		
			
				|  |  |  |  |         isApproveAvailable = notificationButtonsList.any((GetNotificationButtonsList element) => element.bUTTONACTION == "APPROVED"); | 
		
	
		
			
				|  |  |  |  |         isRejectAvailable = notificationButtonsList.any((GetNotificationButtonsList element) => element.bUTTONACTION == "REJECTED"); | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |       apiCallCount--; | 
		
	
		
			
				|  |  |  |  |       if (apiCallCount == 0) { | 
		
	
	
		
			
				
					|  |  |  | 
 |