Worklist updates

faiz_marathon_signalR_critical
haroon amjad 2 years ago
parent b971795be9
commit 8b0bae0891

@ -81,8 +81,8 @@ class ApiClient {
}
if (!kReleaseMode) {
print("Url:$url");
var bodyJson = json.encode(jsonObject);
print("body:$bodyJson");
// var bodyJson = json.encode(jsonObject);
// print("body:$bodyJson");
}
var response = await postJsonForResponse(url, jsonObject,
token: token,

@ -52,6 +52,10 @@ class Utils {
}
}
static Future delay(int millis) async {
return await Future.delayed(Duration(milliseconds: millis));
}
static void showLoading(BuildContext context) {
WidgetsBinding.instance.addPostFrameCallback((_) {
_isLoadingVisible = true;
@ -65,10 +69,6 @@ class Utils {
});
}
static Future delay(int millis) async {
return await Future.delayed(Duration(milliseconds: millis));
}
static void hideLoading(BuildContext context) {
if (_isLoadingVisible) {
_isLoadingVisible = false;

@ -134,15 +134,15 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
workListCounter = genericResponseModel?.pOPENNTFNUMBER ?? 0;
itgFormsModel = await DashboardApiClient().getItgFormsPendingTask();
workListCounter = workListCounter + (itgFormsModel?.totalCount ?? 0);
if (showLoading) Utils.hideLoading(context);
GenericResponseModel? cocGenericResponseModel = await DashboardApiClient().getCOCNotifications();
cocCount = cocGenericResponseModel?.mohemmITGPendingTaskResponseItem;
if (cocCount != null) {
cocFinalCount = (cocCount?.escalation ?? 0) + (cocCount?.waitingToClose ?? 0) + (cocCount?.waitingForAcceptance ?? 0) + (cocCount?.extendTATRequest ?? 0);
workListCounter += cocFinalCount;
}
if (showLoading) Utils.hideLoading(context);
itgFormsModel = await DashboardApiClient().getItgFormsPendingTask();
workListCounter = workListCounter + (itgFormsModel?.totalCount ?? 0);
notifyListeners();
} catch (ex) {
isWorkListLoading = false;

@ -164,6 +164,7 @@ class _AppDrawerState extends State<AppDrawer> {
AppState().setPostParamsModel(obj!);
Navigator.pop(context);
widget.onLanguageChange();
setState(() {});
}
void performLogout() async {

@ -183,7 +183,6 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
),
),
),
10.height,
AppState().isArabic(context)
? getOffersList.titleAR!.toText16(isBold: true, color: const Color(0xff2B353E), maxlines: 1)
: getOffersList.title!.toText16(isBold: true, color: const Color(0xff2B353E), maxlines: 1),
@ -194,7 +193,7 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
// // }
// ),
getOffersList.description!.toText12(maxLine: 2, color: const Color(0xff535353)),
16.height,
// 8.height,
getOffersList.discount!.toText14(isBold: true, maxlines: 1),
10.height,
Row(
@ -211,9 +210,13 @@ class _OffersAndDiscountsHomeState extends State<OffersAndDiscountsHome> {
List<OffersListModel> results = [];
if (enteredKeyword.isEmpty) {
results = getOffersList;
} else {
if(AppState().isArabic(context)) {
results = getOffersList.where((offer) => offer.titleAR!.toLowerCase().contains(enteredKeyword.toLowerCase())).toList();
} else {
results = getOffersList.where((offer) => offer.title!.toLowerCase().contains(enteredKeyword.toLowerCase())).toList();
}
}
setState(() {
_foundOffersList = results;
});

@ -120,9 +120,8 @@ class _WorkListScreenState extends State<WorkListScreen> {
ItgFormsModel? itgFormsModel;
int? itgRequestTypeIndex;
Future<void> getWorkList({bool showLoading = true}) async {
Future<void> getWorkList({bool showLoading = true, bool callWorkList = true}) async {
try {
if (showLoading) Utils.showLoading(context);
if (workListItemTypes[workListItemIndex].key == "ITG") {
itgFormsModel = await WorkListApiClient().getITGTaskCountRequestType();
List<RequestDetails> requestAllList = [];
@ -138,31 +137,36 @@ class _WorkListScreenState extends State<WorkListScreen> {
itgRequestTypeIndex = 0;
}
} else {
if (showLoading) Utils.showLoading(context);
itgRequestTypeIndex = null;
if (callWorkList) {
workList = await WorkListApiClient().getWorkList(pageNumber, workListItemTypes[workListItemIndex].key, pNotificationType.toString());
AppState().setWorkList = workList;
}
if (showLoading) Utils.hideLoading(context);
if (showLoading) setState(() {});
setState(() {});
}
} catch (ex) {
if (showLoading) Utils.hideLoading(context);
if (showLoading) Utils.handleException(ex, context, null);
}
}
void _onRefresh() async {
void _onRefresh({bool callWorkList = true}) async {
try {
_refreshController.refreshCompleted();
Utils.showLoading(context);
if(callWorkList) Utils.showLoading(context);
List dataOnRefresh = await Future.wait([
providerData.fetchWorkListCounter(context, showLoading: false),
getWorkList(showLoading: false),
providerData.fetchWorkListCounter(context, showLoading: true).then((value) {
setState(() {});
}),
getWorkList(showLoading: false, callWorkList: callWorkList),
]);
calculateCounter();
Utils.hideLoading(context);
if(callWorkList) Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
if(callWorkList) Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@ -443,6 +447,7 @@ class _WorkListScreenState extends State<WorkListScreen> {
if (mounted) setState(() {});
}
} else {
_onRefresh(callWorkList: false);
if (mounted) setState(() {});
}
},

@ -40,6 +40,7 @@ import 'package:mohem_flutter_app/widgets/dialogs/accept_reject_input_dialog.dar
import 'package:mohem_flutter_app/widgets/dialogs/confirm_dialog.dart';
class WorkListDetailScreen extends StatefulWidget {
WorkListDetailScreen({Key? key}) : super(key: key);
@override
@ -98,6 +99,12 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
if (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") {
getUserInformation();
}
getNotificationButtons();
notificationGetRespondAttributes();
getAttachments();
getActionHistory();
if (workListData!.iTEMTYPE == "HRSSA") {
if (workListData!.rEQUESTTYPE == "EIT") {
getEitNotificationBody();
@ -130,8 +137,6 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
getPRNotification();
}
notificationGetRespondAttributes();
// List dataToFetch = await Future.wait([
//
// WorkListApiClient().getActionHistory(workListData!.nOTIFICATIONID!),
@ -142,10 +147,6 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
// actionHistoryList = dataToFetch[1];
// getAttachmentList = dataToFetch[2];
getNotificationButtons();
getActionHistory();
getAttachments();
// if (notificationButtonsList.isNotEmpty) {
// isCloseAvailable = notificationButtonsList.any((element) => element.bUTTONACTION == "CLOSE");
// isApproveAvailable = notificationButtonsList.any((element) => element.bUTTONACTION == "APPROVED");
@ -487,7 +488,6 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
builder: (cxt) => AcceptRejectInputDialog(
message: LocaleKeys.requestedItems.tr(),
notificationGetRespond: notificationNoteInput,
textEditingController: textEditingController,
onTap: (note) {
Map<String, dynamic> payload = {
"P_ACTION_MODE": actionMode,
@ -503,7 +503,7 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
}
],
};
if (actionMode == "APPROVED" || actionMode == "APPROVE") {
if (actionMode == "APPROVED" || actionMode == "APPROVE" || actionMode == "CLOSE") {
performNotificationAction(payload);
} else if (note.isNotEmpty && (actionMode != "APPROVED" || actionMode != "APPROVE")) {
performNotificationAction(payload);
@ -540,34 +540,34 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
void getEitNotificationBody() async {
try {
if (apiCallCount == 0) Utils.showLoading(context);
apiCallCount++;
// if (apiCallCount == 0) Utils.showLoading(context);
// apiCallCount++;
getEitCollectionNotificationBodyList = await WorkListApiClient().GetEitNotificationBody(workListData!.nOTIFICATIONID);
apiCallCount--;
if (apiCallCount == 0) {
Utils.hideLoading(context);
// apiCallCount--;
// if (apiCallCount == 0) {
// Utils.hideLoading(context);
setState(() {});
}
// }
} catch (ex) {
apiCallCount--;
Utils.hideLoading(context);
// apiCallCount--;
// Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void getUserInformation() async {
try {
if (apiCallCount == 0) Utils.showLoading(context);
apiCallCount++;
// if (apiCallCount == 0) Utils.showLoading(context);
// apiCallCount++;
memberInformationListModel = await WorkListApiClient().getUserInformation(-999, workListData!.sELECTEDEMPLOYEENUMBER!);
apiCallCount--;
if (apiCallCount == 0) {
Utils.hideLoading(context);
// apiCallCount--;
// if (apiCallCount == 0) {
// Utils.hideLoading(context);
setState(() {});
}
// }
} catch (ex) {
apiCallCount--;
Utils.hideLoading(context);
// apiCallCount--;
// Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@ -608,17 +608,17 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
void getAbsenceNotificationBody() async {
try {
if (apiCallCount == 0) Utils.showLoading(context);
apiCallCount++;
// if (apiCallCount == 0) Utils.showLoading(context);
// apiCallCount++;
getAbsenceCollectionNotificationBodyList = await WorkListApiClient().getAbsenceNotificationBody(workListData!.nOTIFICATIONID);
apiCallCount--;
if (apiCallCount == 0) {
Utils.hideLoading(context);
// apiCallCount--;
// if (apiCallCount == 0) {
// Utils.hideLoading(context);
setState(() {});
}
// }
} catch (ex) {
apiCallCount--;
Utils.hideLoading(context);
// apiCallCount--;
// Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@ -731,20 +731,20 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
void notificationGetRespondAttributes() async {
try {
if (apiCallCount == 0) Utils.showLoading(context);
apiCallCount++;
// if (apiCallCount == 0) Utils.showLoading(context);
// apiCallCount++;
getNotificationRespondAttributes = await WorkListApiClient().notificationGetRespondAttributes(workListData!.nOTIFICATIONID!);
if (getNotificationRespondAttributes.isNotEmpty) {
notificationNoteInput = getNotificationRespondAttributes.first;
}
apiCallCount--;
if (apiCallCount == 0) {
Utils.hideLoading(context);
// apiCallCount--;
// if (apiCallCount == 0) {
// Utils.hideLoading(context);
setState(() {});
}
// }
} catch (ex) {
apiCallCount--;
Utils.hideLoading(context);
// apiCallCount--;
// Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@ -773,17 +773,17 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
void getActionHistory() async {
try {
if (apiCallCount == 0) Utils.showLoading(context);
apiCallCount++;
// if (apiCallCount == 0) Utils.showLoading(context);
// apiCallCount++;
actionHistoryList = await WorkListApiClient().getActionHistory(workListData!.nOTIFICATIONID!);
apiCallCount--;
if (apiCallCount == 0) {
Utils.hideLoading(context);
// apiCallCount--;
// if (apiCallCount == 0) {
// Utils.hideLoading(context);
setState(() {});
}
// }
} catch (ex) {
apiCallCount--;
Utils.hideLoading(context);
// apiCallCount--;
// Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}

@ -15,9 +15,9 @@ class AcceptRejectInputDialog extends StatelessWidget {
final String? okTitle;
final NotificationGetRespondAttributesList? notificationGetRespond;
final Function(String) onTap;
final TextEditingController textEditingController;
// final TextEditingController textEditingController;
AcceptRejectInputDialog({Key? key, this.title, @required this.message, this.okTitle, required this.onTap, this.notificationGetRespond, required this.textEditingController}) : super(key: key);
AcceptRejectInputDialog({Key? key, this.title, @required this.message, this.okTitle, required this.onTap, this.notificationGetRespond}) : super(key: key);
String note = "";

Loading…
Cancel
Save