|
|
|
|
@ -41,7 +41,14 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
key: 'HRSSA',
|
|
|
|
|
disable: false),
|
|
|
|
|
WorkListItemTypeModelData(
|
|
|
|
|
value: 0, name: 'MR', fullName: LocaleKeys.moveOrder.tr(), active: false, color: [Color(0xff58DCFA), Color(0xff3CB9D5)], icon: "assets/images/miss_swipe.svg", key: 'INVMOA', disable: false),
|
|
|
|
|
value: 0,
|
|
|
|
|
name: 'MR',
|
|
|
|
|
fullName: LocaleKeys.moveOrder.tr(),
|
|
|
|
|
active: false,
|
|
|
|
|
color: [Color(0xff58DCFA), Color(0xff3CB9D5)],
|
|
|
|
|
icon: "assets/images/miss_swipe.svg",
|
|
|
|
|
key: 'INVMOA',
|
|
|
|
|
disable: false),
|
|
|
|
|
WorkListItemTypeModelData(
|
|
|
|
|
value: 0,
|
|
|
|
|
name: 'PR',
|
|
|
|
|
@ -61,7 +68,14 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
key: 'POAPPRV',
|
|
|
|
|
disable: false),
|
|
|
|
|
WorkListItemTypeModelData(
|
|
|
|
|
value: 0, name: 'ITG', fullName: LocaleKeys.ITGForms.tr(), active: false, color: [Color(0xffEB8C90), Color(0xffDE6C70)], icon: "assets/images/miss_swipe.svg", key: 'ITG', disable: false),
|
|
|
|
|
value: 0,
|
|
|
|
|
name: 'ITG',
|
|
|
|
|
fullName: LocaleKeys.ITGForms.tr(),
|
|
|
|
|
active: false,
|
|
|
|
|
color: [Color(0xffEB8C90), Color(0xffDE6C70)],
|
|
|
|
|
icon: "assets/images/miss_swipe.svg",
|
|
|
|
|
key: 'ITG',
|
|
|
|
|
disable: false),
|
|
|
|
|
WorkListItemTypeModelData(
|
|
|
|
|
value: 0,
|
|
|
|
|
name: 'IC',
|
|
|
|
|
@ -72,7 +86,23 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
key: 'INVITEM',
|
|
|
|
|
disable: false),
|
|
|
|
|
WorkListItemTypeModelData(
|
|
|
|
|
value: 0, name: 'STAMP', fullName: LocaleKeys.stamp.tr(), active: false, color: [Color(0xff32D892), Color(0xff1AB170)], icon: "assets/images/miss_swipe.svg", key: 'STAMP', disable: false),
|
|
|
|
|
value: 0,
|
|
|
|
|
name: 'STAMP',
|
|
|
|
|
fullName: LocaleKeys.stamp.tr(),
|
|
|
|
|
active: false,
|
|
|
|
|
color: [Color(0xff32D892), Color(0xff1AB170)],
|
|
|
|
|
icon: "assets/images/miss_swipe.svg",
|
|
|
|
|
key: 'STAMP',
|
|
|
|
|
disable: false),
|
|
|
|
|
WorkListItemTypeModelData(
|
|
|
|
|
value: 0,
|
|
|
|
|
name: 'COC',
|
|
|
|
|
fullName: LocaleKeys.itemCreation.tr(),
|
|
|
|
|
active: false,
|
|
|
|
|
color: [Color(0xff787299), Color(0xff1AB170)],
|
|
|
|
|
icon: "assets/images/miss_swipe.svg",
|
|
|
|
|
key: 'COC',
|
|
|
|
|
disable: true)
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
int workListItemIndex = 0;
|
|
|
|
|
@ -95,8 +125,13 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
workListItemTypes.forEach((workListElement) {
|
|
|
|
|
if (workListElement.key == "ITG") {
|
|
|
|
|
workListElement.value = providerData.itgFormsModel?.totalCount ?? 0;
|
|
|
|
|
} else if (workListElement.key == "COC") {
|
|
|
|
|
workListElement.value = providerData.cocFinalCount;
|
|
|
|
|
} else {
|
|
|
|
|
var tempList = providerData.getOpenNotificationsList?.where((notificationElement) => notificationElement.itemType == workListElement.key).toList();
|
|
|
|
|
var tempList = providerData.getOpenNotificationsList
|
|
|
|
|
?.where((notificationElement) =>
|
|
|
|
|
notificationElement.itemType == workListElement.key)
|
|
|
|
|
.toList();
|
|
|
|
|
if (tempList!.isNotEmpty) {
|
|
|
|
|
workListElement.value = tempList.first.openNtfNumber ?? 0;
|
|
|
|
|
}
|
|
|
|
|
@ -115,18 +150,26 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
List<RequestDetails> requestAllList = [];
|
|
|
|
|
for (int i = 0; i < (itgFormsModel?.requestType!.length ?? 0); i++) {
|
|
|
|
|
itgFormsModel?.requestType![i].requestDetails?.forEach((element) {
|
|
|
|
|
element.requestType = itgFormsModel?.requestType![i].requestTypeCode;
|
|
|
|
|
element.requestType =
|
|
|
|
|
itgFormsModel?.requestType![i].requestTypeCode;
|
|
|
|
|
});
|
|
|
|
|
requestAllList = requestAllList + (itgFormsModel?.requestType![i].requestDetails ?? []);
|
|
|
|
|
requestAllList = requestAllList +
|
|
|
|
|
(itgFormsModel?.requestType![i].requestDetails ?? []);
|
|
|
|
|
}
|
|
|
|
|
AppState().setRequestAllList = requestAllList;
|
|
|
|
|
itgFormsModel?.requestType!.insert(0, RequestType(requestDetails: requestAllList, requestTypeCode: "all", requestTypeName: "All"));
|
|
|
|
|
itgFormsModel?.requestType!.insert(
|
|
|
|
|
0,
|
|
|
|
|
RequestType(
|
|
|
|
|
requestDetails: requestAllList,
|
|
|
|
|
requestTypeCode: "all",
|
|
|
|
|
requestTypeName: "All"));
|
|
|
|
|
if ((itgFormsModel?.requestType?.length ?? 0) > 0) {
|
|
|
|
|
itgRequestTypeIndex = 0;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
itgRequestTypeIndex = null;
|
|
|
|
|
workList = await WorkListApiClient().getWorkList(pageNumber, workListItemTypes[workListItemIndex].key);
|
|
|
|
|
workList = await WorkListApiClient()
|
|
|
|
|
.getWorkList(pageNumber, workListItemTypes[workListItemIndex].key);
|
|
|
|
|
AppState().setWorkList = workList;
|
|
|
|
|
}
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
@ -167,13 +210,23 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
child: ListView.separated(
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
return Container(
|
|
|
|
|
padding: const EdgeInsets.only(left: 21, right: 21, top: 8, bottom: 8),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 21, right: 21, top: 8, bottom: 8),
|
|
|
|
|
alignment: Alignment.center,
|
|
|
|
|
decoration: BoxDecoration(borderRadius: BorderRadius.circular(6), color: workListItemIndex == index ? MyColors.darkIconColor : MyColors.lightGreyEAColor),
|
|
|
|
|
child: ("${workListItemTypes[index].name} ${workListItemTypes[index].value > 0 ? "(${workListItemTypes[index].value})" : ""}")
|
|
|
|
|
.toText12(color: workListItemIndex == index ? MyColors.white : MyColors.black),
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
borderRadius: BorderRadius.circular(6),
|
|
|
|
|
color: workListItemIndex == index
|
|
|
|
|
? MyColors.darkIconColor
|
|
|
|
|
: MyColors.lightGreyEAColor),
|
|
|
|
|
child:
|
|
|
|
|
("${workListItemTypes[index].name} ${workListItemTypes[index].value > 0 ? "(${workListItemTypes[index].value})" : ""}")
|
|
|
|
|
.toText12(
|
|
|
|
|
color: workListItemIndex == index
|
|
|
|
|
? MyColors.white
|
|
|
|
|
: MyColors.black),
|
|
|
|
|
).onPress(() {
|
|
|
|
|
if (workListItemIndex != index) {
|
|
|
|
|
if (workListItemIndex != index &&
|
|
|
|
|
!workListItemTypes[index].disable) {
|
|
|
|
|
workListItemIndex = index;
|
|
|
|
|
if (workListItemTypes[index].value == 0) {
|
|
|
|
|
workList = [];
|
|
|
|
|
@ -194,7 +247,10 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
padding: const EdgeInsets.only(left: 21, right: 21),
|
|
|
|
|
),
|
|
|
|
|
).paddingOnly(top: 21, bottom: 21),
|
|
|
|
|
workListItemTypes[workListItemIndex].fullName.toSectionHeading().paddingOnly(left: 21, right: 21),
|
|
|
|
|
workListItemTypes[workListItemIndex]
|
|
|
|
|
.fullName
|
|
|
|
|
.toSectionHeading()
|
|
|
|
|
.paddingOnly(left: 21, right: 21),
|
|
|
|
|
if (itgRequestTypeIndex != null)
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 40,
|
|
|
|
|
@ -202,10 +258,18 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
RequestType type = itgFormsModel!.requestType![index];
|
|
|
|
|
return Container(
|
|
|
|
|
padding: const EdgeInsets.only(left: 21, right: 21, top: 8, bottom: 8),
|
|
|
|
|
padding: const EdgeInsets.only(
|
|
|
|
|
left: 21, right: 21, top: 8, bottom: 8),
|
|
|
|
|
alignment: Alignment.center,
|
|
|
|
|
decoration: BoxDecoration(borderRadius: BorderRadius.circular(30), color: itgRequestTypeIndex == index ? MyColors.darkIconColor : MyColors.lightGreyEAColor),
|
|
|
|
|
child: ("${type.requestTypeName}").toText12(color: itgRequestTypeIndex == index ? MyColors.white : MyColors.black),
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
borderRadius: BorderRadius.circular(30),
|
|
|
|
|
color: itgRequestTypeIndex == index
|
|
|
|
|
? MyColors.darkIconColor
|
|
|
|
|
: MyColors.lightGreyEAColor),
|
|
|
|
|
child: ("${type.requestTypeName}").toText12(
|
|
|
|
|
color: itgRequestTypeIndex == index
|
|
|
|
|
? MyColors.white
|
|
|
|
|
: MyColors.black),
|
|
|
|
|
).onPress(() {
|
|
|
|
|
if (itgRequestTypeIndex != index) {
|
|
|
|
|
itgRequestTypeIndex = index;
|
|
|
|
|
@ -225,21 +289,35 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
child: ListView.separated(
|
|
|
|
|
physics: BouncingScrollPhysics(),
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
return itgRowItem(workListItemTypes[workListItemIndex], itgFormsModel!.requestType![itgRequestTypeIndex!].requestDetails![index], index);
|
|
|
|
|
return itgRowItem(
|
|
|
|
|
workListItemTypes[workListItemIndex],
|
|
|
|
|
itgFormsModel!.requestType![itgRequestTypeIndex!]
|
|
|
|
|
.requestDetails![index],
|
|
|
|
|
index);
|
|
|
|
|
},
|
|
|
|
|
separatorBuilder: (context, index) => 12.height,
|
|
|
|
|
itemCount: itgFormsModel!.requestType![itgRequestTypeIndex!].requestDetails?.length ?? 0,
|
|
|
|
|
itemCount: itgFormsModel!
|
|
|
|
|
.requestType![itgRequestTypeIndex!]
|
|
|
|
|
.requestDetails
|
|
|
|
|
?.length ??
|
|
|
|
|
0,
|
|
|
|
|
padding: const EdgeInsets.all(21),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
: Expanded(
|
|
|
|
|
child: workList != null
|
|
|
|
|
? ((workList!).isEmpty
|
|
|
|
|
? LocaleKeys.noHistoryAvailable.tr().toText16().center
|
|
|
|
|
? LocaleKeys.noHistoryAvailable
|
|
|
|
|
.tr()
|
|
|
|
|
.toText16()
|
|
|
|
|
.center
|
|
|
|
|
: ListView.separated(
|
|
|
|
|
physics: const BouncingScrollPhysics(),
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
return rowItem(workListItemTypes[workListItemIndex], workList![index], index);
|
|
|
|
|
return rowItem(
|
|
|
|
|
workListItemTypes[workListItemIndex],
|
|
|
|
|
workList![index],
|
|
|
|
|
index);
|
|
|
|
|
},
|
|
|
|
|
separatorBuilder: (context, index) => 12.height,
|
|
|
|
|
itemCount: workList?.length ?? 0,
|
|
|
|
|
@ -253,14 +331,17 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget itgRowItem(WorkListItemTypeModelData data, RequestDetails requestDetails, int index) {
|
|
|
|
|
Widget itgRowItem(WorkListItemTypeModelData data,
|
|
|
|
|
RequestDetails requestDetails, int index) {
|
|
|
|
|
return InkWell(
|
|
|
|
|
onTap: () async {
|
|
|
|
|
AppState().setItgWorkListIndex = index;
|
|
|
|
|
var shouldReloadData = await Navigator.pushNamed(context, AppRoutes.itgDetail);
|
|
|
|
|
var shouldReloadData =
|
|
|
|
|
await Navigator.pushNamed(context, AppRoutes.itgDetail);
|
|
|
|
|
if (shouldReloadData != null) {
|
|
|
|
|
if (shouldReloadData.toString() == "delegate_reload") {
|
|
|
|
|
providerData.itgFormsModel!.totalCount = providerData.itgFormsModel!.totalCount! - 1;
|
|
|
|
|
providerData.itgFormsModel!.totalCount =
|
|
|
|
|
providerData.itgFormsModel!.totalCount! - 1;
|
|
|
|
|
calculateCounter();
|
|
|
|
|
getWorkList();
|
|
|
|
|
}
|
|
|
|
|
@ -284,7 +365,8 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
},
|
|
|
|
|
child: Container(
|
|
|
|
|
width: double.infinity,
|
|
|
|
|
padding: const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10),
|
|
|
|
|
padding:
|
|
|
|
|
const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10),
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
color: Colors.white,
|
|
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
|
|
@ -303,11 +385,20 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
Container(
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
borderRadius: BorderRadius.circular(4),
|
|
|
|
|
gradient: LinearGradient(transform: GradientRotation(.218), begin: Alignment.topRight, end: Alignment.bottomRight, colors: data.color),
|
|
|
|
|
gradient: LinearGradient(
|
|
|
|
|
transform: GradientRotation(.218),
|
|
|
|
|
begin: Alignment.topRight,
|
|
|
|
|
end: Alignment.bottomRight,
|
|
|
|
|
colors: data.color),
|
|
|
|
|
),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [SvgPicture.asset("assets/images/miss_swipe.svg", width: 20, height: 20, color: Colors.white), 2.height, data.name.toText10(color: Colors.white)],
|
|
|
|
|
children: [
|
|
|
|
|
SvgPicture.asset("assets/images/miss_swipe.svg",
|
|
|
|
|
width: 20, height: 20, color: Colors.white),
|
|
|
|
|
2.height,
|
|
|
|
|
data.name.toText10(color: Colors.white)
|
|
|
|
|
],
|
|
|
|
|
).paddingAll(6),
|
|
|
|
|
),
|
|
|
|
|
8.width,
|
|
|
|
|
@ -320,11 +411,17 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
10.height,
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
DateUtil.formatDateToDate(DateUtil.convertStringToDate(requestDetails.modifiedDate!), false).toText10(color: MyColors.lightTextColor).expanded,
|
|
|
|
|
DateUtil.formatDateToDate(
|
|
|
|
|
DateUtil.convertStringToDate(
|
|
|
|
|
requestDetails.modifiedDate!),
|
|
|
|
|
false)
|
|
|
|
|
.toText10(color: MyColors.lightTextColor)
|
|
|
|
|
.expanded,
|
|
|
|
|
RotatedBox(
|
|
|
|
|
quarterTurns: AppState().isArabic(context) ? 2 : 4,
|
|
|
|
|
child: SvgPicture.asset("assets/images/arrow_next.svg", color:MyColors.darkIconColor)
|
|
|
|
|
),
|
|
|
|
|
child: SvgPicture.asset(
|
|
|
|
|
"assets/images/arrow_next.svg",
|
|
|
|
|
color: MyColors.darkIconColor)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
@ -336,12 +433,15 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Widget rowItem(WorkListItemTypeModelData data, WorkListResponseModel workData, int index) {
|
|
|
|
|
Widget rowItem(WorkListItemTypeModelData data, WorkListResponseModel workData,
|
|
|
|
|
int index) {
|
|
|
|
|
return InkWell(
|
|
|
|
|
onTap: () async {
|
|
|
|
|
AppState().setWorkListIndex = index;
|
|
|
|
|
var data = workList![index];
|
|
|
|
|
var shouldReloadData = await Navigator.pushNamed(context, AppRoutes.workListDetail, arguments: workData);
|
|
|
|
|
var shouldReloadData = await Navigator.pushNamed(
|
|
|
|
|
context, AppRoutes.workListDetail,
|
|
|
|
|
arguments: workData);
|
|
|
|
|
if (shouldReloadData != null) {
|
|
|
|
|
if (shouldReloadData.toString() == "delegate_reload") {
|
|
|
|
|
calculateCounter();
|
|
|
|
|
@ -366,7 +466,8 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
},
|
|
|
|
|
child: Container(
|
|
|
|
|
width: double.infinity,
|
|
|
|
|
padding: const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10),
|
|
|
|
|
padding:
|
|
|
|
|
const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10),
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
color: Colors.white,
|
|
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
|
|
@ -385,11 +486,20 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
Container(
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
borderRadius: BorderRadius.circular(4),
|
|
|
|
|
gradient: LinearGradient(transform: GradientRotation(.218), begin: Alignment.topRight, end: Alignment.bottomRight, colors: data.color),
|
|
|
|
|
gradient: LinearGradient(
|
|
|
|
|
transform: GradientRotation(.218),
|
|
|
|
|
begin: Alignment.topRight,
|
|
|
|
|
end: Alignment.bottomRight,
|
|
|
|
|
colors: data.color),
|
|
|
|
|
),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [SvgPicture.asset("assets/images/miss_swipe.svg", width: 20, height: 20, color: Colors.white), 2.height, data.name.toText10(color: Colors.white)],
|
|
|
|
|
children: [
|
|
|
|
|
SvgPicture.asset("assets/images/miss_swipe.svg",
|
|
|
|
|
width: 20, height: 20, color: Colors.white),
|
|
|
|
|
2.height,
|
|
|
|
|
data.name.toText10(color: Colors.white)
|
|
|
|
|
],
|
|
|
|
|
).paddingAll(6),
|
|
|
|
|
),
|
|
|
|
|
8.width,
|
|
|
|
|
@ -402,12 +512,17 @@ class _WorkListScreenState extends State<WorkListScreen> {
|
|
|
|
|
10.height,
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
DateUtil.formatDateToDate(DateUtil.convertSimpleStringDateToDate(workData.bEGINDATE!), false).toText10(color: MyColors.lightTextColor).expanded,
|
|
|
|
|
DateUtil.formatDateToDate(
|
|
|
|
|
DateUtil.convertSimpleStringDateToDate(
|
|
|
|
|
workData.bEGINDATE!),
|
|
|
|
|
false)
|
|
|
|
|
.toText10(color: MyColors.lightTextColor)
|
|
|
|
|
.expanded,
|
|
|
|
|
RotatedBox(
|
|
|
|
|
quarterTurns: AppState().isArabic(context) ? 2 : 4,
|
|
|
|
|
child: SvgPicture.asset("assets/images/arrow_next.svg", color:MyColors.darkIconColor)
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
child: SvgPicture.asset(
|
|
|
|
|
"assets/images/arrow_next.svg",
|
|
|
|
|
color: MyColors.darkIconColor)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
|