|
|
|
@ -10,10 +10,12 @@ import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/widgets/circular_avatar.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/widgets/dialogs/accept_reject_input_dialog.dart';
|
|
|
|
|
import 'package:mohem_flutter_app/widgets/input_widget.dart';
|
|
|
|
|
|
|
|
|
|
class SelectedItemSheet extends StatelessWidget {
|
|
|
|
@ -23,10 +25,18 @@ class SelectedItemSheet extends StatelessWidget {
|
|
|
|
|
GetFavoriteReplacements? favoriteReplacements;
|
|
|
|
|
ReplacementList? replacementList;
|
|
|
|
|
MemberInformationListModel? memberInformationListModel;
|
|
|
|
|
List<NotificationGetRespondAttributesList> getNotificationRespondAttributes;
|
|
|
|
|
|
|
|
|
|
bool isITGRequest;
|
|
|
|
|
|
|
|
|
|
SelectedItemSheet(this.title, {required this.apiMode, this.notificationID, this.actionHistoryList, this.favoriteReplacements, this.replacementList, this.isITGRequest = false});
|
|
|
|
|
SelectedItemSheet(this.title,
|
|
|
|
|
{required this.apiMode,
|
|
|
|
|
this.notificationID,
|
|
|
|
|
this.actionHistoryList,
|
|
|
|
|
this.favoriteReplacements,
|
|
|
|
|
this.replacementList,
|
|
|
|
|
this.isITGRequest = false,
|
|
|
|
|
this.getNotificationRespondAttributes = const []});
|
|
|
|
|
|
|
|
|
|
TextEditingController username = TextEditingController();
|
|
|
|
|
String comment = "";
|
|
|
|
@ -103,7 +113,7 @@ class SelectedItemSheet extends StatelessWidget {
|
|
|
|
|
email = replacementList!.emailAddress;
|
|
|
|
|
userId = replacementList!.userName;
|
|
|
|
|
}
|
|
|
|
|
isITGRequest ? performITGNetworkCall(context, email: email ?? "", userId: userId ?? "") : performNetworkCall(context, email: email ?? "", userId: userId ?? "");
|
|
|
|
|
isITGRequest ? performITGNetworkCall(context, email: email ?? "", userId: userId ?? "") : askForConfirmation(context, email: email ?? "", userId: userId ?? "");
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast("Please enter comments");
|
|
|
|
|
}
|
|
|
|
@ -121,6 +131,41 @@ class SelectedItemSheet extends StatelessWidget {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void askForConfirmation(BuildContext context, {String? email, String? userId}) {
|
|
|
|
|
NotificationGetRespondAttributesList? notificationNoteInput;
|
|
|
|
|
NotificationGetRespondAttributesList? forwardToUser;
|
|
|
|
|
List<NotificationGetRespondAttributesList> filtered = getNotificationRespondAttributes.where((element) => element.attributeName == "NOTE" || element.attributeName == "WF_NOTE").toList();
|
|
|
|
|
if (filtered.isNotEmpty) {
|
|
|
|
|
notificationNoteInput = filtered.first;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
filtered = getNotificationRespondAttributes.where((element) => element.attributeName == "FORWARD_TO_USERNAME_RESPONSE").toList();
|
|
|
|
|
if (filtered.isNotEmpty) {
|
|
|
|
|
forwardToUser = filtered.first;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showDialog(
|
|
|
|
|
context: context,
|
|
|
|
|
builder: (cxt) => AcceptRejectInputDialog(
|
|
|
|
|
message: title != null ? null : LocaleKeys.requestedItems.tr(),
|
|
|
|
|
// title: title,
|
|
|
|
|
notificationGetRespond: notificationNoteInput,
|
|
|
|
|
actionMode: apiMode,
|
|
|
|
|
onTap: (note) {
|
|
|
|
|
performNetworkCall(context, email: email ?? "", userId: userId ?? "", attributeData: [
|
|
|
|
|
if ((apiMode == "FORWARD" || apiMode == "APPROVE_AND_FORWARD") && forwardToUser != null)
|
|
|
|
|
{"ATTRIBUTE_NAME": "FORWARD_TO_USERNAME_RESPONSE", "ATTRIBUTE_TEXT_VALUE": actionHistoryList?.uSERNAME},
|
|
|
|
|
if (notificationNoteInput != null)
|
|
|
|
|
{
|
|
|
|
|
"ATTRIBUTE_NAME": notificationNoteInput.attributeName,
|
|
|
|
|
if (notificationNoteInput.attributeType == "number") "ATTRIBUTE_NUMBER_VALUE": note else if (notificationNoteInput.attributeType == "VARCHAR2") "ATTRIBUTE_TEXT_VALUE": note
|
|
|
|
|
}
|
|
|
|
|
]);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void getUserInformation(BuildContext context) async {
|
|
|
|
|
String? empID = "";
|
|
|
|
|
if (actionHistoryList != null) empID = actionHistoryList!.uSERNAME;
|
|
|
|
@ -137,10 +182,17 @@ class SelectedItemSheet extends StatelessWidget {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> performNetworkCall(BuildContext context, {String? email, String? userId}) async {
|
|
|
|
|
Future<void> performNetworkCall(BuildContext context, {String? email, String? userId, List<Map<String, dynamic>>? attributeData = const []}) async {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
try {
|
|
|
|
|
await WorkListApiClient().submitComment(comment: comment, email: email, userId: userId, notificationId: notificationID, apiMode: apiMode, approverIndex: actionHistoryList != null ? actionHistoryList!.sEQUENCE : null);
|
|
|
|
|
await WorkListApiClient().submitComment(
|
|
|
|
|
comment: comment,
|
|
|
|
|
email: email,
|
|
|
|
|
userId: userId,
|
|
|
|
|
notificationId: notificationID,
|
|
|
|
|
apiMode: apiMode,
|
|
|
|
|
approverIndex: actionHistoryList != null ? actionHistoryList!.sEQUENCE : null,
|
|
|
|
|
attributeData: attributeData);
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
// Navigator.pop(context);
|
|
|
|
|
// Navigator.pop(context);
|
|
|
|
|