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