Merge branch 'master' of https://gitlab.com/mirza.shafique/mohem_flutter_app into development_sultan
commit
06b3726d4a
@ -0,0 +1,282 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:mohem_flutter_app/api/api_client.dart';
|
||||
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
||||
import 'package:mohem_flutter_app/classes/consts.dart';
|
||||
import 'package:mohem_flutter_app/models/dashboard/itg_forms_model.dart';
|
||||
import 'package:mohem_flutter_app/models/generic_response_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_attachement_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_item_creation_ntf_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_mo_Item_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_mo_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_notification_buttons_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_Item_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_quotation_analysis_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_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_response_model.dart';
|
||||
|
||||
class WorkListApiClient {
|
||||
static final WorkListApiClient _instance = WorkListApiClient._internal();
|
||||
|
||||
WorkListApiClient._internal();
|
||||
|
||||
factory WorkListApiClient() => _instance;
|
||||
|
||||
Future<List<WorkListResponseModel>?> getWorkList(int pPageNum, String pItemType) async {
|
||||
String url = "${ApiConsts.erpRest}GET_WORKLIST";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_TYPE": "1",
|
||||
"P_PAGE_NUM": pPageNum,
|
||||
"P_PAGE_LIMIT": 50,
|
||||
"P_ITEM_TYPE": pItemType,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getWorkList;
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<ItgFormsModel?> getITGTaskCountRequestType() async {
|
||||
String url = "${ApiConsts.cocRest}ITGGetTaskCountRequestType";
|
||||
Map<String, dynamic> postParams = {};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
ItgFormsModel responseData = ItgFormsModel.fromJson(json);
|
||||
return responseData;
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<GenericResponseModel> getSubordinatesLeaves(String fromDate, String toDate) async {
|
||||
String url = "${ApiConsts.erpRest}GET_SUBORDINATES_LEAVES";
|
||||
Map<String, dynamic> postParams = {"P_DATE_FROM": "/Date(1639861200000+0300)/", "P_DATE_TO": "/Date(1640120400000+0300)/"};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData;
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetAttachementList>> getAttachments(int pNotificationID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_ATTACHMENTS";
|
||||
Map<String, dynamic> postParams = {"P_NOTIFICATION_ID": pNotificationID};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getAttachementList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetActionHistoryList>> getActionHistory(int pNotificationID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_ACTION_HISTORY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getActionHistoryList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetNotificationButtonsList>> getNotificationButtons(int pNotificationID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_NOTIFICATION_BUTTONS";
|
||||
Map<String, dynamic> postParams = {"P_NOTIFICATION_ID": pNotificationID};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getNotificationButtonsList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<NotificationGetRespondAttributesList>> notificationGetRespondAttributes(int pNotificationID) async {
|
||||
String url = "${ApiConsts.erpRest}NOTIFICATION_GET_RESPOND_ATTRIBUTES";
|
||||
Map<String, dynamic> postParams = {"P_NOTIFICATION_ID": pNotificationID};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.notificationGetRespondAttributesList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<GenericResponseModel> getBasicDetNTFBody(int pNotificationID, int pTransactionID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_BASIC_DET_NTF_BODY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_TRANSACTION_ID": pTransactionID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData;
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<MemberInformationListModel> getUserInformation(int pSelectedResopID, String selectedEmployeeNumber) async {
|
||||
String url = "${ApiConsts.erpRest}Get_UserInformation";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_SELECTED_RESP_ID": pSelectedResopID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
postParams["P_SELECTED_EMPLOYEE_NUMBER"] = selectedEmployeeNumber;
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.memberInformationList![0];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetStampMsNotificationBodyList>> getStampMsNotificationBody(int pNotificationID, int pTransactionID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_STAMP_MS_NOTIFICATION_BODY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_TRANSACTION_ID": pTransactionID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getStampMsNotificationBodyList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetStampNsNotificationBodyList>> getStampNsNotificationBody(int pNotificationID, int pTransactionID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_STAMP_NS_NOTIFICATION_BODY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_TRANSACTION_ID": pTransactionID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getStampNsNotificationBodyList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetAbsenceCollectionNotificationBodyList>> getAbsenceNotificationBody(int pNotificationID, int pTransactionID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_ABSENCE_NOTIFICATION_BODY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_TRANSACTION_ID": pTransactionID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getAbsenceCollectionNotificationBodyList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<GenericResponseModel> postNotificationActions(Map<String, dynamic> postParams) async {
|
||||
String url = "${ApiConsts.erpRest}NOTIFICATION_ACTIONS";
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData;
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetMoNotificationBodyList>> getMoNotificationBody(int pNotificationID, int pTransactionID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_MO_NOTIFICATION_BODY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_TRANSACTION_ID": pTransactionID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getMoNotificationBodyList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<GetPoNotificationBodyList?> getPoNotificationBody(int pNotificationID, int pTransactionID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_PO_NOTIFICATION_BODY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_TRANSACTION_ID": pTransactionID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getPoNotificationBodyList;
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetMoItemHistoryList>> getMoItemHistory(int pItemID, int pOrgID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_MO_ITEM_HISTORY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_ITEM_ID": pItemID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
"P_ORG_ID": pOrgID,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getMoItemHistoryList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetPoItemHistoryList>> getPoItemHistory(int pItemID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_PO_ITEM_HISTORY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_ITEM_ID": pItemID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getPoItemHistoryList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetQuotationAnalysisList>> getQuotationAnalysis(int pItemID, int pPoHeaderId) async {
|
||||
String url = "${ApiConsts.erpRest}GET_QUOTATION_ANALYSIS";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_ITEM_ID": pItemID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
"P_PO_HEADER_ID": pPoHeaderId,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getQuotationAnalysisList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<GetItemCreationNtfBodyList?> getItemCreationNtfBody(int pNotificationID, int pTransactionID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_ITEM_CREATION_NTF_BODY";
|
||||
Map<String, dynamic> postParams = {
|
||||
"P_NOTIFICATION_ID": pNotificationID,
|
||||
"P_TRANSACTION_ID": pTransactionID,
|
||||
"P_PAGE_LIMIT": 100,
|
||||
"P_PAGE_NUM": 1,
|
||||
};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getItemCreationNtfBodyList;
|
||||
}, url, postParams);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,448 @@
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
class DateUtil {
|
||||
/// convert String To Date function
|
||||
/// [date] String we want to convert
|
||||
static DateTime convertStringToDate(String date) {
|
||||
// /Date(1585774800000+0300)/
|
||||
if (date != null) {
|
||||
const start = "/Date(";
|
||||
const end = "+0300)";
|
||||
final startIndex = date.indexOf(start);
|
||||
final endIndex = date.indexOf(end, startIndex + start.length);
|
||||
return DateTime.fromMillisecondsSinceEpoch(
|
||||
int.parse(
|
||||
date.substring(startIndex + start.length, endIndex),
|
||||
),
|
||||
);
|
||||
} else
|
||||
return DateTime.now();
|
||||
}
|
||||
|
||||
static DateTime convertSimpleStringDateToDate(String date) {
|
||||
return DateFormat("MM/dd/yyyy hh:mm:ss").parse(date);
|
||||
}
|
||||
|
||||
static DateTime convertSimpleStringDateToDateddMMyyyy(String date) {
|
||||
return DateFormat("MM/dd/yyyy hh:mm:ss").parse(date);
|
||||
}
|
||||
|
||||
static DateTime convertStringToDateNoTimeZone(String date) {
|
||||
// /Date(1585774800000+0300)/
|
||||
if (date != null) {
|
||||
const start = "/Date(";
|
||||
const end = ")";
|
||||
final startIndex = date.indexOf(start);
|
||||
final endIndex = date.indexOf(end, startIndex + start.length);
|
||||
return DateTime.fromMillisecondsSinceEpoch(
|
||||
int.parse(
|
||||
date.substring(startIndex + start.length, endIndex),
|
||||
),
|
||||
);
|
||||
} else
|
||||
return DateTime.now();
|
||||
}
|
||||
|
||||
static DateTime convertStringToDateTime(String date) {
|
||||
if (date != null) {
|
||||
try {
|
||||
var dateT = date.split('/');
|
||||
var year = dateT[2].substring(0, 4);
|
||||
var dateP = DateTime(int.parse(year), int.parse(dateT[1]), int.parse(dateT[0]));
|
||||
return dateP;
|
||||
} catch (e) {
|
||||
print(e);
|
||||
}
|
||||
|
||||
return DateTime.now();
|
||||
} else
|
||||
return DateTime.now();
|
||||
}
|
||||
|
||||
static String convertDateToString(DateTime date) {
|
||||
const start = "/Date(";
|
||||
const end = "+0300)";
|
||||
int milliseconds = date.millisecondsSinceEpoch;
|
||||
|
||||
return start + "$milliseconds" + end;
|
||||
}
|
||||
|
||||
static String convertDateToStringLocation(DateTime date) {
|
||||
const start = "/Date(";
|
||||
const end = ")/";
|
||||
int milliseconds = date.millisecondsSinceEpoch;
|
||||
|
||||
return start + "$milliseconds" + end;
|
||||
}
|
||||
|
||||
static String formatDateToDate(DateTime date, bool isArabic) {
|
||||
return DateFormat('dd MMM yyy', isArabic ? "ar_SA" : "en_US").format(date);
|
||||
}
|
||||
|
||||
static String formatDateToTime(DateTime date) {
|
||||
return DateFormat('hh:mm a').format(date);
|
||||
}
|
||||
|
||||
static String yearMonthDay(DateTime dateTime) {
|
||||
String dateFormat = '${dateTime.year}-${dateTime.month}-${dateTime.day}';
|
||||
return dateFormat;
|
||||
}
|
||||
|
||||
static String time(DateTime dateTime) {
|
||||
String dateFormat = '${dateTime.hour}:${dateTime.minute}:00';
|
||||
return dateFormat;
|
||||
}
|
||||
|
||||
static String convertDateMSToJsonDate(utc) {
|
||||
var dt = new DateTime.fromMicrosecondsSinceEpoch(utc);
|
||||
|
||||
return "/Date(" + (dt.millisecondsSinceEpoch * 1000).toString() + '+0300' + ")/";
|
||||
}
|
||||
|
||||
/// check Date
|
||||
/// [dateString] String we want to convert
|
||||
static String checkDate(DateTime checkedTime) {
|
||||
DateTime currentTime = DateTime.now();
|
||||
if ((currentTime.year == checkedTime.year) && (currentTime.month == checkedTime.month) && (currentTime.day == checkedTime.day)) {
|
||||
return "Today";
|
||||
} else if ((currentTime.year == checkedTime.year) && (currentTime.month == checkedTime.month)) {
|
||||
if ((currentTime.day - checkedTime.day) == 1) {
|
||||
return "YESTERDAY";
|
||||
} else if ((currentTime.day - checkedTime.day) == -1) {
|
||||
return "Tomorrow";
|
||||
}
|
||||
|
||||
if ((currentTime.day - checkedTime.day) <= -2) {
|
||||
return "Next Week";
|
||||
} else {
|
||||
return "Old Date";
|
||||
}
|
||||
}
|
||||
return "Old Date";
|
||||
}
|
||||
|
||||
static String getDateFormatted(String date) {
|
||||
DateTime dateObj = DateUtil.convertStringToDate(date);
|
||||
return DateUtil.getWeekDay(dateObj.weekday) + ", " + dateObj.day.toString() + " " + DateUtil.getMonth(dateObj.month) + " " + dateObj.year.toString();
|
||||
}
|
||||
|
||||
static String getISODateFormat(DateTime dateTime) {
|
||||
// 2020-04-30T00:00:00.000
|
||||
return dateTime.toIso8601String();
|
||||
}
|
||||
|
||||
/// get month by
|
||||
/// [month] convert month number in to month name
|
||||
static getMonth(int month) {
|
||||
switch (month) {
|
||||
case 1:
|
||||
return "January";
|
||||
case 2:
|
||||
return "February";
|
||||
case 3:
|
||||
return "March";
|
||||
case 4:
|
||||
return "April";
|
||||
case 5:
|
||||
return "May";
|
||||
case 6:
|
||||
return "June";
|
||||
case 7:
|
||||
return "July";
|
||||
case 8:
|
||||
return "August";
|
||||
case 9:
|
||||
return "September";
|
||||
case 10:
|
||||
return "October";
|
||||
case 11:
|
||||
return "November";
|
||||
case 12:
|
||||
return "December";
|
||||
}
|
||||
}
|
||||
|
||||
/// get month by
|
||||
/// [month] convert month number in to month name in Arabic
|
||||
static getMonthArabic(int month) {
|
||||
switch (month) {
|
||||
case 1:
|
||||
return "يناير";
|
||||
case 2:
|
||||
return " فبراير";
|
||||
case 3:
|
||||
return "مارس";
|
||||
case 4:
|
||||
return "أبريل";
|
||||
case 5:
|
||||
return "مايو";
|
||||
case 6:
|
||||
return "يونيو";
|
||||
case 7:
|
||||
return "يوليو";
|
||||
case 8:
|
||||
return "أغسطس";
|
||||
case 9:
|
||||
return "سبتمبر";
|
||||
case 10:
|
||||
return " اكتوبر";
|
||||
case 11:
|
||||
return " نوفمبر";
|
||||
case 12:
|
||||
return "ديسمبر";
|
||||
}
|
||||
}
|
||||
|
||||
static getMonthByName(String month) {
|
||||
switch (month.toLowerCase()) {
|
||||
case 'january':
|
||||
return 1;
|
||||
case 'february':
|
||||
return 2;
|
||||
case 'march':
|
||||
return 3;
|
||||
case 'april':
|
||||
return 4;
|
||||
case 'may':
|
||||
return 5;
|
||||
case 'june':
|
||||
return 6;
|
||||
case 'july':
|
||||
return 7;
|
||||
case 'august':
|
||||
return 8;
|
||||
case 'september':
|
||||
return 9;
|
||||
case 'october':
|
||||
return 10;
|
||||
case 'november':
|
||||
return 11;
|
||||
case 'december':
|
||||
return 12;
|
||||
}
|
||||
}
|
||||
|
||||
static DateTime getMonthDateTime(String month, yearName) {
|
||||
DateTime? date;
|
||||
try {
|
||||
date = DateTime(int.parse(yearName), getMonthByName(month));
|
||||
} catch (e) {
|
||||
print(e);
|
||||
}
|
||||
return date ?? DateTime.now();
|
||||
}
|
||||
|
||||
/// get month by
|
||||
/// [weekDay] convert week day in int to week day name
|
||||
static getWeekDay(int weekDay) {
|
||||
switch (weekDay) {
|
||||
case 1:
|
||||
return "Monday";
|
||||
case 2:
|
||||
return "Tuesday";
|
||||
case 3:
|
||||
return "Wednesday";
|
||||
case 4:
|
||||
return "Thursday";
|
||||
case 5:
|
||||
return "Friday";
|
||||
case 6:
|
||||
return "Saturday ";
|
||||
case 7:
|
||||
return "Sunday";
|
||||
}
|
||||
}
|
||||
|
||||
/// get month by
|
||||
/// [weekDay] convert week day in int to week day name arabic
|
||||
static getWeekDayArabic(int weekDay) {
|
||||
switch (weekDay) {
|
||||
case 1:
|
||||
return "الاثنين";
|
||||
case 2:
|
||||
return "الثلاثاء";
|
||||
case 3:
|
||||
return "الاربعاء";
|
||||
case 4:
|
||||
return "الخميس";
|
||||
case 5:
|
||||
return "الجمعه";
|
||||
case 6:
|
||||
return "السبت ";
|
||||
case 7:
|
||||
return "الاحد";
|
||||
}
|
||||
}
|
||||
|
||||
static getWeekDayEnglish(int weekDay) {
|
||||
switch (weekDay) {
|
||||
case 1:
|
||||
return "Monday";
|
||||
case 2:
|
||||
return "Tuesday";
|
||||
case 3:
|
||||
return "Wednesday";
|
||||
case 4:
|
||||
return "Thursday";
|
||||
case 5:
|
||||
return "Friday";
|
||||
case 6:
|
||||
return "Saturday ";
|
||||
case 7:
|
||||
return "Sunday";
|
||||
}
|
||||
}
|
||||
|
||||
/// get data formatted like Apr 26,2020
|
||||
/// [dateTime] convert DateTime to data formatted
|
||||
static String getMonthDayYearDateFormatted(DateTime dateTime) {
|
||||
if (dateTime != null)
|
||||
return getMonth(dateTime.month) + " " + dateTime.day.toString() + ", " + dateTime.year.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like Apr 26,2020
|
||||
/// [dateTime] convert DateTime to data formatted Arabic
|
||||
static String getMonthDayYearDateFormattedAr(DateTime dateTime) {
|
||||
if (dateTime != null)
|
||||
return getMonthArabic(dateTime.month) + " " + dateTime.day.toString() + ", " + dateTime.year.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like Thursday, Apr 26,2020
|
||||
/// [dateTime] convert DateTime to date formatted
|
||||
static String getWeekDayMonthDayYearDateFormatted(DateTime dateTime, String lang) {
|
||||
// print(dateTime);
|
||||
// print(dateTime.weekday);
|
||||
// print(dateTime.weekday.getDayOfWeekEnumValue.value);
|
||||
if (dateTime != null)
|
||||
return lang == 'en'
|
||||
? getWeekDayEnglish(dateTime.weekday) + ", " + getMonth(dateTime.month) + " " + dateTime.day.toString() + " " + dateTime.year.toString()
|
||||
: getWeekDayArabic(dateTime.weekday) + ", " + dateTime.day.toString() + " " + getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
static String getMonthDayYearLangDateFormatted(DateTime dateTime, String lang) {
|
||||
if (dateTime != null)
|
||||
return lang == 'en'
|
||||
? getMonth(dateTime.month) + " " + dateTime.day.toString() + " " + dateTime.year.toString()
|
||||
: dateTime.day.toString() + " " + getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like 26/4/2020
|
||||
static String getDayMonthYearLangDateFormatted(DateTime dateTime, String lang) {
|
||||
if (dateTime != null)
|
||||
return lang == 'en'
|
||||
? dateTime.day.toString() + " " + getMonth(dateTime.month) + " " + dateTime.year.toString()
|
||||
: dateTime.day.toString() + " " + getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
static String getMonthYearLangDateFormatted(DateTime dateTime, String lang) {
|
||||
if (dateTime != null)
|
||||
return lang == 'en' ? getMonth(dateTime.month) + " " + dateTime.year.toString() : getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like 26/4/2020
|
||||
/// [dateTime] convert DateTime to data formatted
|
||||
static String getDayMonthYearDateFormatted(DateTime dateTime) {
|
||||
if (dateTime != null)
|
||||
return dateTime.day.toString() + "/" + dateTime.month.toString() + "/" + dateTime.year.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like 26/4/2020
|
||||
/// [dateTime] convert DateTime to data formatted
|
||||
static String getDayMonthDateFormatted(DateTime dateTime) {
|
||||
if (dateTime != null)
|
||||
return DateFormat('dd/MM').format(dateTime);
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like 26/4/2020
|
||||
/// [dateTime] convert DateTime to data formatted according to language
|
||||
static String getDayMonthYearDateFormattedLang(DateTime dateTime, bool isArabic) {
|
||||
if (dateTime != null)
|
||||
return DateFormat('dd/MM/yyyy', isArabic ? "ar_SA" : "en_US").format(dateTime);
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like 10:30 according to lang
|
||||
static String formatDateToTimeLang(DateTime date, bool isArabic) {
|
||||
return DateFormat('HH:mm', isArabic ? "ar_SA" : "en_US").format(date);
|
||||
}
|
||||
|
||||
/// get data formatted like 26/4/2020 10:30
|
||||
/// [dateTime] convert DateTime to data formatted
|
||||
static String getDayMonthYearHourMinuteDateFormatted(DateTime dateTime) {
|
||||
if (dateTime != null)
|
||||
return dateTime.day.toString() + "/" + dateTime.month.toString() + "/" + dateTime.year.toString() + " " + DateFormat('HH:mm').format(dateTime);
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
/// get data formatted like 2020-8-13 09:43:00
|
||||
/// [dateTime] convert DateTime to data formatted
|
||||
static String getYearMonthDayHourMinSecDateFormatted(DateTime dateTime) {
|
||||
if (dateTime != null)
|
||||
return dateTime.year.toString() +
|
||||
"-" +
|
||||
dateTime.month.toString() +
|
||||
"-" +
|
||||
dateTime.day.toString() +
|
||||
" " +
|
||||
dateTime.hour.toString() +
|
||||
":" +
|
||||
dateTime.minute.toString() +
|
||||
":" +
|
||||
dateTime.second.toString();
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
static String getFormattedDate(DateTime dateTime, String formattedString) {
|
||||
return DateFormat(formattedString).format(dateTime);
|
||||
}
|
||||
|
||||
static convertISODateToJsonDate(String isoDate) {
|
||||
return "/Date(" + DateFormat('mm-dd-yyy').parse(isoDate).millisecondsSinceEpoch.toString() + ")/";
|
||||
}
|
||||
|
||||
// static String getDay(DayOfWeek dayOfWeek) {
|
||||
// switch (dayOfWeek) {
|
||||
// case DayOfWeek.Monday:
|
||||
// return "Monday";
|
||||
// break;
|
||||
// case DayOfWeek.Tuesday:
|
||||
// return "Tuesday";
|
||||
// break;
|
||||
// case DayOfWeek.Wednesday:
|
||||
// return "Wednesday";
|
||||
// break;
|
||||
// case DayOfWeek.Thursday:
|
||||
// return "Thursday";
|
||||
// break;
|
||||
// case DayOfWeek.Friday:
|
||||
// return "Friday";
|
||||
// break;
|
||||
// case DayOfWeek.Saturday:
|
||||
// return "Saturday";
|
||||
// break;
|
||||
// case DayOfWeek.Sunday:
|
||||
// return "Sunday";
|
||||
// break;
|
||||
// }
|
||||
// return "";
|
||||
// }
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
|
||||
class GetAbsenceCollectionNotificationBodyList {
|
||||
List<CollectionNotification>? collectionNotification;
|
||||
|
||||
GetAbsenceCollectionNotificationBodyList({this.collectionNotification});
|
||||
|
||||
GetAbsenceCollectionNotificationBodyList.fromJson(Map<String, dynamic> json) {
|
||||
if (json['Collection_Notification'] != null) {
|
||||
collectionNotification = <CollectionNotification>[];
|
||||
json['Collection_Notification'].forEach((v) {
|
||||
collectionNotification!.add(new CollectionNotification.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.collectionNotification != null) {
|
||||
data['Collection_Notification'] =
|
||||
this.collectionNotification!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class CollectionNotification {
|
||||
String? aCTION;
|
||||
String? aPPLICATIONCOLUMNNAME;
|
||||
String? dATATYPE;
|
||||
String? dATEVALUE;
|
||||
String? dESCFLEXCONTEXTCODE;
|
||||
String? dESCFLEXNAME;
|
||||
String? dISPLAYFLAG;
|
||||
int? nUMBERVALUE;
|
||||
String? pREVSEGMENTVALUEDSP;
|
||||
String? sEGMENTNAME;
|
||||
String? sEGMENTPROMPT;
|
||||
int? sEGMENTSEQNUM;
|
||||
String? sEGMENTVALUEDSP;
|
||||
int? tRANSACTIONNUMBER;
|
||||
String? vARCHAR2VALUE;
|
||||
|
||||
CollectionNotification(
|
||||
{this.aCTION,
|
||||
this.aPPLICATIONCOLUMNNAME,
|
||||
this.dATATYPE,
|
||||
this.dATEVALUE,
|
||||
this.dESCFLEXCONTEXTCODE,
|
||||
this.dESCFLEXNAME,
|
||||
this.dISPLAYFLAG,
|
||||
this.nUMBERVALUE,
|
||||
this.pREVSEGMENTVALUEDSP,
|
||||
this.sEGMENTNAME,
|
||||
this.sEGMENTPROMPT,
|
||||
this.sEGMENTSEQNUM,
|
||||
this.sEGMENTVALUEDSP,
|
||||
this.tRANSACTIONNUMBER,
|
||||
this.vARCHAR2VALUE});
|
||||
|
||||
CollectionNotification.fromJson(Map<String, dynamic> json) {
|
||||
aCTION = json['ACTION'];
|
||||
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
|
||||
dATATYPE = json['DATATYPE'];
|
||||
dATEVALUE = json['DATE_VALUE'];
|
||||
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
|
||||
dESCFLEXNAME = json['DESC_FLEX_NAME'];
|
||||
dISPLAYFLAG = json['DISPLAY_FLAG'];
|
||||
nUMBERVALUE = json['NUMBER_VALUE'];
|
||||
pREVSEGMENTVALUEDSP = json['PREV_SEGMENT_VALUE_DSP'];
|
||||
sEGMENTNAME = json['SEGMENT_NAME'];
|
||||
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
|
||||
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
|
||||
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
|
||||
tRANSACTIONNUMBER = json['TRANSACTION_NUMBER'];
|
||||
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACTION'] = this.aCTION;
|
||||
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
|
||||
data['DATATYPE'] = this.dATATYPE;
|
||||
data['DATE_VALUE'] = this.dATEVALUE;
|
||||
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
|
||||
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
|
||||
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
|
||||
data['NUMBER_VALUE'] = this.nUMBERVALUE;
|
||||
data['PREV_SEGMENT_VALUE_DSP'] = this.pREVSEGMENTVALUEDSP;
|
||||
data['SEGMENT_NAME'] = this.sEGMENTNAME;
|
||||
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
|
||||
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
|
||||
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
|
||||
data['TRANSACTION_NUMBER'] = this.tRANSACTIONNUMBER;
|
||||
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
class GetActionHistoryList {
|
||||
String? aCTION;
|
||||
String? aCTIONCODE;
|
||||
String? eMAILADDRESS;
|
||||
String? eMPLOYEEIMAGE;
|
||||
int? fROMROWNUM;
|
||||
bool? isFavorite;
|
||||
String? nAME;
|
||||
String? nOTE;
|
||||
String? nOTIFICATIONDATE;
|
||||
int? nOTIFICATIONID;
|
||||
int? nOOFROWS;
|
||||
String? pOSITIONTITLE;
|
||||
int? rOWNUM;
|
||||
int? sEQUENCE;
|
||||
int? tOROWNUM;
|
||||
String? uSERNAME;
|
||||
|
||||
GetActionHistoryList(
|
||||
{this.aCTION,
|
||||
this.aCTIONCODE,
|
||||
this.eMAILADDRESS,
|
||||
this.eMPLOYEEIMAGE,
|
||||
this.fROMROWNUM,
|
||||
this.isFavorite,
|
||||
this.nAME,
|
||||
this.nOTE,
|
||||
this.nOTIFICATIONDATE,
|
||||
this.nOTIFICATIONID,
|
||||
this.nOOFROWS,
|
||||
this.pOSITIONTITLE,
|
||||
this.rOWNUM,
|
||||
this.sEQUENCE,
|
||||
this.tOROWNUM,
|
||||
this.uSERNAME});
|
||||
|
||||
GetActionHistoryList.fromJson(Map<String, dynamic> json) {
|
||||
aCTION = json['ACTION'];
|
||||
aCTIONCODE = json['ACTION_CODE'];
|
||||
eMAILADDRESS = json['EMAIL_ADDRESS'];
|
||||
eMPLOYEEIMAGE = json['EMPLOYEE_IMAGE'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
isFavorite = json['IsFavorite'];
|
||||
nAME = json['NAME'];
|
||||
nOTE = json['NOTE'];
|
||||
nOTIFICATIONDATE = json['NOTIFICATION_DATE'];
|
||||
nOTIFICATIONID = json['NOTIFICATION_ID'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
pOSITIONTITLE = json['POSITION_TITLE'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sEQUENCE = json['SEQUENCE'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
uSERNAME = json['USER_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACTION'] = this.aCTION;
|
||||
data['ACTION_CODE'] = this.aCTIONCODE;
|
||||
data['EMAIL_ADDRESS'] = this.eMAILADDRESS;
|
||||
data['EMPLOYEE_IMAGE'] = this.eMPLOYEEIMAGE;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['IsFavorite'] = this.isFavorite;
|
||||
data['NAME'] = this.nAME;
|
||||
data['NOTE'] = this.nOTE;
|
||||
data['NOTIFICATION_DATE'] = this.nOTIFICATIONDATE;
|
||||
data['NOTIFICATION_ID'] = this.nOTIFICATIONID;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['POSITION_TITLE'] = this.pOSITIONTITLE;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SEQUENCE'] = this.sEQUENCE;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['USER_NAME'] = this.uSERNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
class GetAttachementList {
|
||||
int? aTTACHEDDOCUMENTID;
|
||||
int? cATEGORYID;
|
||||
int? dATATYPEID;
|
||||
int? dOCUMENTID;
|
||||
String? eNTITYNAME;
|
||||
String? fILECONTENTTYPE;
|
||||
String? fILEDATA;
|
||||
int? fILEID;
|
||||
String? fILENAME;
|
||||
String? pK1VALUE;
|
||||
String? pK2VALUE;
|
||||
String? pK3VALUE;
|
||||
String? pK4VALUE;
|
||||
String? pK5VALUE;
|
||||
int? sEQNUM;
|
||||
|
||||
GetAttachementList(
|
||||
{this.aTTACHEDDOCUMENTID,
|
||||
this.cATEGORYID,
|
||||
this.dATATYPEID,
|
||||
this.dOCUMENTID,
|
||||
this.eNTITYNAME,
|
||||
this.fILECONTENTTYPE,
|
||||
this.fILEDATA,
|
||||
this.fILEID,
|
||||
this.fILENAME,
|
||||
this.pK1VALUE,
|
||||
this.pK2VALUE,
|
||||
this.pK3VALUE,
|
||||
this.pK4VALUE,
|
||||
this.pK5VALUE,
|
||||
this.sEQNUM});
|
||||
|
||||
GetAttachementList.fromJson(Map<String, dynamic> json) {
|
||||
aTTACHEDDOCUMENTID = json['ATTACHED_DOCUMENT_ID'];
|
||||
cATEGORYID = json['CATEGORY_ID'];
|
||||
dATATYPEID = json['DATATYPE_ID'];
|
||||
dOCUMENTID = json['DOCUMENT_ID'];
|
||||
eNTITYNAME = json['ENTITY_NAME'];
|
||||
fILECONTENTTYPE = json['FILE_CONTENT_TYPE'];
|
||||
fILEDATA = json['FILE_DATA'];
|
||||
fILEID = json['FILE_ID'];
|
||||
fILENAME = json['FILE_NAME'];
|
||||
pK1VALUE = json['PK1_VALUE'];
|
||||
pK2VALUE = json['PK2_VALUE'];
|
||||
pK3VALUE = json['PK3_VALUE'];
|
||||
pK4VALUE = json['PK4_VALUE'];
|
||||
pK5VALUE = json['PK5_VALUE'];
|
||||
sEQNUM = json['SEQ_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ATTACHED_DOCUMENT_ID'] = this.aTTACHEDDOCUMENTID;
|
||||
data['CATEGORY_ID'] = this.cATEGORYID;
|
||||
data['DATATYPE_ID'] = this.dATATYPEID;
|
||||
data['DOCUMENT_ID'] = this.dOCUMENTID;
|
||||
data['ENTITY_NAME'] = this.eNTITYNAME;
|
||||
data['FILE_CONTENT_TYPE'] = this.fILECONTENTTYPE;
|
||||
data['FILE_DATA'] = this.fILEDATA;
|
||||
data['FILE_ID'] = this.fILEID;
|
||||
data['FILE_NAME'] = this.fILENAME;
|
||||
data['PK1_VALUE'] = this.pK1VALUE;
|
||||
data['PK2_VALUE'] = this.pK2VALUE;
|
||||
data['PK3_VALUE'] = this.pK3VALUE;
|
||||
data['PK4_VALUE'] = this.pK4VALUE;
|
||||
data['PK5_VALUE'] = this.pK5VALUE;
|
||||
data['SEQ_NUM'] = this.sEQNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
class GetBasicDetNtfBodyList {
|
||||
String? prevSegmentValueDsp;
|
||||
String? segmentPrompt;
|
||||
String? segmentValueDsp;
|
||||
String? updatedFlag;
|
||||
|
||||
GetBasicDetNtfBodyList({this.prevSegmentValueDsp, this.segmentPrompt, this.segmentValueDsp, this.updatedFlag});
|
||||
|
||||
GetBasicDetNtfBodyList.fromJson(Map<String, dynamic> json) {
|
||||
prevSegmentValueDsp = json['PREV_SEGMENT_VALUE_DSP'];
|
||||
segmentPrompt = json['SEGMENT_PROMPT'];
|
||||
segmentValueDsp = json['SEGMENT_VALUE_DSP'];
|
||||
updatedFlag = json['UPDATED_FLAG'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['PREV_SEGMENT_VALUE_DSP'] = this.prevSegmentValueDsp;
|
||||
data['SEGMENT_PROMPT'] = this.segmentPrompt;
|
||||
data['SEGMENT_VALUE_DSP'] = this.segmentValueDsp;
|
||||
data['UPDATED_FLAG'] = this.updatedFlag;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,292 @@
|
||||
class GetItemCreationNtfBodyList {
|
||||
List<ItemCreationHeader>? itemCreationHeader;
|
||||
List<ItemCreationLines>? itemCreationLines;
|
||||
String? pINFORMATION;
|
||||
String? pQUESTION;
|
||||
|
||||
GetItemCreationNtfBodyList({this.itemCreationHeader, this.itemCreationLines, this.pINFORMATION, this.pQUESTION});
|
||||
|
||||
GetItemCreationNtfBodyList.fromJson(Map<String, dynamic> json) {
|
||||
if (json['ItemCreationHeader'] != null) {
|
||||
itemCreationHeader = <ItemCreationHeader>[];
|
||||
json['ItemCreationHeader'].forEach((v) {
|
||||
itemCreationHeader!.add(new ItemCreationHeader.fromJson(v));
|
||||
});
|
||||
}
|
||||
if (json['ItemCreationLines'] != null) {
|
||||
itemCreationLines = <ItemCreationLines>[];
|
||||
json['ItemCreationLines'].forEach((v) {
|
||||
itemCreationLines!.add(new ItemCreationLines.fromJson(v));
|
||||
});
|
||||
}
|
||||
pINFORMATION = json['P_INFORMATION'];
|
||||
pQUESTION = json['P_QUESTION'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.itemCreationHeader != null) {
|
||||
data['ItemCreationHeader'] = this.itemCreationHeader!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
if (this.itemCreationLines != null) {
|
||||
data['ItemCreationLines'] = this.itemCreationLines!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
data['P_INFORMATION'] = this.pINFORMATION;
|
||||
data['P_QUESTION'] = this.pQUESTION;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class ItemCreationHeader {
|
||||
String? aNALYZEDBY;
|
||||
int? aNALYZEDBYID;
|
||||
String? aNALYZEDDATE;
|
||||
String? aPPROVEDDATE;
|
||||
String? cATEGORY;
|
||||
int? cATEGORYID;
|
||||
String? iTEMTYPE;
|
||||
String? oPERATINGUNIT;
|
||||
int? oRGID;
|
||||
int? rELATEDID;
|
||||
String? rELATEDTO;
|
||||
String? rEQUESTER;
|
||||
int? rEQUESTERID;
|
||||
String? rEQUESTDATE;
|
||||
String? sTATUS;
|
||||
int? tRANSACTIONHEADERID;
|
||||
String? uRGENTFLAG;
|
||||
String? uRGENTFLAGDISP;
|
||||
String? wFITEMKEYANALYSIS;
|
||||
String? wFITEMKEYAPPROVAL;
|
||||
String? wFITEMTYPE;
|
||||
|
||||
ItemCreationHeader(
|
||||
{this.aNALYZEDBY,
|
||||
this.aNALYZEDBYID,
|
||||
this.aNALYZEDDATE,
|
||||
this.aPPROVEDDATE,
|
||||
this.cATEGORY,
|
||||
this.cATEGORYID,
|
||||
this.iTEMTYPE,
|
||||
this.oPERATINGUNIT,
|
||||
this.oRGID,
|
||||
this.rELATEDID,
|
||||
this.rELATEDTO,
|
||||
this.rEQUESTER,
|
||||
this.rEQUESTERID,
|
||||
this.rEQUESTDATE,
|
||||
this.sTATUS,
|
||||
this.tRANSACTIONHEADERID,
|
||||
this.uRGENTFLAG,
|
||||
this.uRGENTFLAGDISP,
|
||||
this.wFITEMKEYANALYSIS,
|
||||
this.wFITEMKEYAPPROVAL,
|
||||
this.wFITEMTYPE});
|
||||
|
||||
ItemCreationHeader.fromJson(Map<String, dynamic> json) {
|
||||
aNALYZEDBY = json['ANALYZED_BY'];
|
||||
aNALYZEDBYID = json['ANALYZED_BY_ID'];
|
||||
aNALYZEDDATE = json['ANALYZED_DATE'];
|
||||
aPPROVEDDATE = json['APPROVED_DATE'];
|
||||
cATEGORY = json['CATEGORY'];
|
||||
cATEGORYID = json['CATEGORY_ID'];
|
||||
iTEMTYPE = json['ITEM_TYPE'];
|
||||
oPERATINGUNIT = json['OPERATING_UNIT'];
|
||||
oRGID = json['ORG_ID'];
|
||||
rELATEDID = json['RELATED_ID'];
|
||||
rELATEDTO = json['RELATED_TO'];
|
||||
rEQUESTER = json['REQUESTER'];
|
||||
rEQUESTERID = json['REQUESTER_ID'];
|
||||
rEQUESTDATE = json['REQUEST_DATE'];
|
||||
sTATUS = json['STATUS'];
|
||||
tRANSACTIONHEADERID = json['TRANSACTION_HEADER_ID'];
|
||||
uRGENTFLAG = json['URGENT_FLAG'];
|
||||
uRGENTFLAGDISP = json['URGENT_FLAG_DISP'];
|
||||
wFITEMKEYANALYSIS = json['WF_ITEM_KEY_ANALYSIS'];
|
||||
wFITEMKEYAPPROVAL = json['WF_ITEM_KEY_APPROVAL'];
|
||||
wFITEMTYPE = json['WF_ITEM_TYPE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ANALYZED_BY'] = this.aNALYZEDBY;
|
||||
data['ANALYZED_BY_ID'] = this.aNALYZEDBYID;
|
||||
data['ANALYZED_DATE'] = this.aNALYZEDDATE;
|
||||
data['APPROVED_DATE'] = this.aPPROVEDDATE;
|
||||
data['CATEGORY'] = this.cATEGORY;
|
||||
data['CATEGORY_ID'] = this.cATEGORYID;
|
||||
data['ITEM_TYPE'] = this.iTEMTYPE;
|
||||
data['OPERATING_UNIT'] = this.oPERATINGUNIT;
|
||||
data['ORG_ID'] = this.oRGID;
|
||||
data['RELATED_ID'] = this.rELATEDID;
|
||||
data['RELATED_TO'] = this.rELATEDTO;
|
||||
data['REQUESTER'] = this.rEQUESTER;
|
||||
data['REQUESTER_ID'] = this.rEQUESTERID;
|
||||
data['REQUEST_DATE'] = this.rEQUESTDATE;
|
||||
data['STATUS'] = this.sTATUS;
|
||||
data['TRANSACTION_HEADER_ID'] = this.tRANSACTIONHEADERID;
|
||||
data['URGENT_FLAG'] = this.uRGENTFLAG;
|
||||
data['URGENT_FLAG_DISP'] = this.uRGENTFLAGDISP;
|
||||
data['WF_ITEM_KEY_ANALYSIS'] = this.wFITEMKEYANALYSIS;
|
||||
data['WF_ITEM_KEY_APPROVAL'] = this.wFITEMKEYAPPROVAL;
|
||||
data['WF_ITEM_TYPE'] = this.wFITEMTYPE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class ItemCreationLines {
|
||||
String? cHARGETOPATIENT;
|
||||
int? fROMROWNUM;
|
||||
int? iNVENTORYITEMID;
|
||||
String? iTEMCODE;
|
||||
String? iTEMCREATIONSTATUS;
|
||||
String? iTEMCREATIONSTATUSDISP;
|
||||
String? iTEMDESCRIPTION;
|
||||
String? iTEMGROUP;
|
||||
String? iTEMGROUPCODE;
|
||||
String? iTEMSUBGROUP;
|
||||
String? iTEMSUBGROUPCODE;
|
||||
String? iTEMTYPE;
|
||||
String? jUSTIFICATION;
|
||||
int? lINENUMBER;
|
||||
int? nOOFROWS;
|
||||
String? pRIMARYUOM;
|
||||
String? pRIMARYUOMCODE;
|
||||
String? pRODUCTDESCRIPTION;
|
||||
String? pRODUCTNAME;
|
||||
int? rOWNUM;
|
||||
String? sTANARDSTATUSDISP;
|
||||
int? sTANDARDMANUFACTURERID;
|
||||
String? sTANDARDMANUFACTURERNAME;
|
||||
String? sTANDARDMFGPARTNUM;
|
||||
String? sTANDARDREJECTREASON;
|
||||
String? sTANDARDSTATUS;
|
||||
String? sUPPLIERCONTACT;
|
||||
String? sUPPLIERNAME;
|
||||
int? tEMPLATEID;
|
||||
String? tEMPLATENAME;
|
||||
int? tOROWNUM;
|
||||
int? tRANSACTIONHEADERID;
|
||||
int? tRANSACTIONLINEID;
|
||||
int? uNITPRICE;
|
||||
String? uSERMANUFACTURERNAME;
|
||||
String? uSERMFGPARTNUM;
|
||||
|
||||
ItemCreationLines(
|
||||
{this.cHARGETOPATIENT,
|
||||
this.fROMROWNUM,
|
||||
this.iNVENTORYITEMID,
|
||||
this.iTEMCODE,
|
||||
this.iTEMCREATIONSTATUS,
|
||||
this.iTEMCREATIONSTATUSDISP,
|
||||
this.iTEMDESCRIPTION,
|
||||
this.iTEMGROUP,
|
||||
this.iTEMGROUPCODE,
|
||||
this.iTEMSUBGROUP,
|
||||
this.iTEMSUBGROUPCODE,
|
||||
this.iTEMTYPE,
|
||||
this.jUSTIFICATION,
|
||||
this.lINENUMBER,
|
||||
this.nOOFROWS,
|
||||
this.pRIMARYUOM,
|
||||
this.pRIMARYUOMCODE,
|
||||
this.pRODUCTDESCRIPTION,
|
||||
this.pRODUCTNAME,
|
||||
this.rOWNUM,
|
||||
this.sTANARDSTATUSDISP,
|
||||
this.sTANDARDMANUFACTURERID,
|
||||
this.sTANDARDMANUFACTURERNAME,
|
||||
this.sTANDARDMFGPARTNUM,
|
||||
this.sTANDARDREJECTREASON,
|
||||
this.sTANDARDSTATUS,
|
||||
this.sUPPLIERCONTACT,
|
||||
this.sUPPLIERNAME,
|
||||
this.tEMPLATEID,
|
||||
this.tEMPLATENAME,
|
||||
this.tOROWNUM,
|
||||
this.tRANSACTIONHEADERID,
|
||||
this.tRANSACTIONLINEID,
|
||||
this.uNITPRICE,
|
||||
this.uSERMANUFACTURERNAME,
|
||||
this.uSERMFGPARTNUM});
|
||||
|
||||
ItemCreationLines.fromJson(Map<String, dynamic> json) {
|
||||
cHARGETOPATIENT = json['CHARGE_TO_PATIENT'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
iNVENTORYITEMID = json['INVENTORY_ITEM_ID'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
iTEMCREATIONSTATUS = json['ITEM_CREATION_STATUS'];
|
||||
iTEMCREATIONSTATUSDISP = json['ITEM_CREATION_STATUS_DISP'];
|
||||
iTEMDESCRIPTION = json['ITEM_DESCRIPTION'];
|
||||
iTEMGROUP = json['ITEM_GROUP'];
|
||||
iTEMGROUPCODE = json['ITEM_GROUP_CODE'];
|
||||
iTEMSUBGROUP = json['ITEM_SUBGROUP'];
|
||||
iTEMSUBGROUPCODE = json['ITEM_SUBGROUP_CODE'];
|
||||
iTEMTYPE = json['ITEM_TYPE'];
|
||||
jUSTIFICATION = json['JUSTIFICATION'];
|
||||
lINENUMBER = json['LINE_NUMBER'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
pRIMARYUOM = json['PRIMARY_UOM'];
|
||||
pRIMARYUOMCODE = json['PRIMARY_UOM_CODE'];
|
||||
pRODUCTDESCRIPTION = json['PRODUCT_DESCRIPTION'];
|
||||
pRODUCTNAME = json['PRODUCT_NAME'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sTANARDSTATUSDISP = json['STANARD_STATUS_DISP'];
|
||||
sTANDARDMANUFACTURERID = json['STANDARD_MANUFACTURER_ID'];
|
||||
sTANDARDMANUFACTURERNAME = json['STANDARD_MANUFACTURER_NAME'];
|
||||
sTANDARDMFGPARTNUM = json['STANDARD_MFG_PART_NUM'];
|
||||
sTANDARDREJECTREASON = json['STANDARD_REJECT_REASON'];
|
||||
sTANDARDSTATUS = json['STANDARD_STATUS'];
|
||||
sUPPLIERCONTACT = json['SUPPLIER_CONTACT'];
|
||||
sUPPLIERNAME = json['SUPPLIER_NAME'];
|
||||
tEMPLATEID = json['TEMPLATE_ID'];
|
||||
tEMPLATENAME = json['TEMPLATE_NAME'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
tRANSACTIONHEADERID = json['TRANSACTION_HEADER_ID'];
|
||||
tRANSACTIONLINEID = json['TRANSACTION_LINE_ID'];
|
||||
uNITPRICE = json['UNIT_PRICE'];
|
||||
uSERMANUFACTURERNAME = json['USER_MANUFACTURER_NAME'];
|
||||
uSERMFGPARTNUM = json['USER_MFG_PART_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['CHARGE_TO_PATIENT'] = this.cHARGETOPATIENT;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['INVENTORY_ITEM_ID'] = this.iNVENTORYITEMID;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['ITEM_CREATION_STATUS'] = this.iTEMCREATIONSTATUS;
|
||||
data['ITEM_CREATION_STATUS_DISP'] = this.iTEMCREATIONSTATUSDISP;
|
||||
data['ITEM_DESCRIPTION'] = this.iTEMDESCRIPTION;
|
||||
data['ITEM_GROUP'] = this.iTEMGROUP;
|
||||
data['ITEM_GROUP_CODE'] = this.iTEMGROUPCODE;
|
||||
data['ITEM_SUBGROUP'] = this.iTEMSUBGROUP;
|
||||
data['ITEM_SUBGROUP_CODE'] = this.iTEMSUBGROUPCODE;
|
||||
data['ITEM_TYPE'] = this.iTEMTYPE;
|
||||
data['JUSTIFICATION'] = this.jUSTIFICATION;
|
||||
data['LINE_NUMBER'] = this.lINENUMBER;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['PRIMARY_UOM'] = this.pRIMARYUOM;
|
||||
data['PRIMARY_UOM_CODE'] = this.pRIMARYUOMCODE;
|
||||
data['PRODUCT_DESCRIPTION'] = this.pRODUCTDESCRIPTION;
|
||||
data['PRODUCT_NAME'] = this.pRODUCTNAME;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['STANARD_STATUS_DISP'] = this.sTANARDSTATUSDISP;
|
||||
data['STANDARD_MANUFACTURER_ID'] = this.sTANDARDMANUFACTURERID;
|
||||
data['STANDARD_MANUFACTURER_NAME'] = this.sTANDARDMANUFACTURERNAME;
|
||||
data['STANDARD_MFG_PART_NUM'] = this.sTANDARDMFGPARTNUM;
|
||||
data['STANDARD_REJECT_REASON'] = this.sTANDARDREJECTREASON;
|
||||
data['STANDARD_STATUS'] = this.sTANDARDSTATUS;
|
||||
data['SUPPLIER_CONTACT'] = this.sUPPLIERCONTACT;
|
||||
data['SUPPLIER_NAME'] = this.sUPPLIERNAME;
|
||||
data['TEMPLATE_ID'] = this.tEMPLATEID;
|
||||
data['TEMPLATE_NAME'] = this.tEMPLATENAME;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['TRANSACTION_HEADER_ID'] = this.tRANSACTIONHEADERID;
|
||||
data['TRANSACTION_LINE_ID'] = this.tRANSACTIONLINEID;
|
||||
data['UNIT_PRICE'] = this.uNITPRICE;
|
||||
data['USER_MANUFACTURER_NAME'] = this.uSERMANUFACTURERNAME;
|
||||
data['USER_MFG_PART_NUM'] = this.uSERMFGPARTNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,100 @@
|
||||
class GetMoItemHistoryList {
|
||||
String? dATEREQUIRED;
|
||||
String? dESCRIPTION;
|
||||
String? fROMLOCATOR;
|
||||
int? fROMROWNUM;
|
||||
String? fROMSUBINVENTORYCODE;
|
||||
String? iTEMCODE;
|
||||
String? lINESTATUSDIS;
|
||||
int? nOOFROWS;
|
||||
String? oPERATINGUNITNAME;
|
||||
String? oRGANIZATIONCODE;
|
||||
int? oRGANIZATIONID;
|
||||
String? oRGANIZATIONNAME;
|
||||
int? qUANTITY;
|
||||
String? rEQUESTNUMBER;
|
||||
int? rOWNUM;
|
||||
String? sHIPTOLOCATION;
|
||||
String? sTATUSDATE;
|
||||
String? tOLOCATOR;
|
||||
int? tOROWNUM;
|
||||
String? tOSUBINVENTORYCODE;
|
||||
String? tRANSACTIONTYPENAME;
|
||||
String? uNITOFMEASURE;
|
||||
|
||||
GetMoItemHistoryList(
|
||||
{this.dATEREQUIRED,
|
||||
this.dESCRIPTION,
|
||||
this.fROMLOCATOR,
|
||||
this.fROMROWNUM,
|
||||
this.fROMSUBINVENTORYCODE,
|
||||
this.iTEMCODE,
|
||||
this.lINESTATUSDIS,
|
||||
this.nOOFROWS,
|
||||
this.oPERATINGUNITNAME,
|
||||
this.oRGANIZATIONCODE,
|
||||
this.oRGANIZATIONID,
|
||||
this.oRGANIZATIONNAME,
|
||||
this.qUANTITY,
|
||||
this.rEQUESTNUMBER,
|
||||
this.rOWNUM,
|
||||
this.sHIPTOLOCATION,
|
||||
this.sTATUSDATE,
|
||||
this.tOLOCATOR,
|
||||
this.tOROWNUM,
|
||||
this.tOSUBINVENTORYCODE,
|
||||
this.tRANSACTIONTYPENAME,
|
||||
this.uNITOFMEASURE});
|
||||
|
||||
GetMoItemHistoryList.fromJson(Map<String, dynamic> json) {
|
||||
dATEREQUIRED = json['DATE_REQUIRED'];
|
||||
dESCRIPTION = json['DESCRIPTION'];
|
||||
fROMLOCATOR = json['FROM_LOCATOR'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
fROMSUBINVENTORYCODE = json['FROM_SUBINVENTORY_CODE'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
lINESTATUSDIS = json['LINE_STATUS_DIS'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
oPERATINGUNITNAME = json['OPERATING_UNIT_NAME'];
|
||||
oRGANIZATIONCODE = json['ORGANIZATION_CODE'];
|
||||
oRGANIZATIONID = json['ORGANIZATION_ID'];
|
||||
oRGANIZATIONNAME = json['ORGANIZATION_NAME'];
|
||||
qUANTITY = json['QUANTITY'];
|
||||
rEQUESTNUMBER = json['REQUEST_NUMBER'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sHIPTOLOCATION = json['SHIP_TO_LOCATION'];
|
||||
sTATUSDATE = json['STATUS_DATE'];
|
||||
tOLOCATOR = json['TO_LOCATOR'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
tOSUBINVENTORYCODE = json['TO_SUBINVENTORY_CODE'];
|
||||
tRANSACTIONTYPENAME = json['TRANSACTION_TYPE_NAME'];
|
||||
uNITOFMEASURE = json['UNIT_OF_MEASURE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['DATE_REQUIRED'] = this.dATEREQUIRED;
|
||||
data['DESCRIPTION'] = this.dESCRIPTION;
|
||||
data['FROM_LOCATOR'] = this.fROMLOCATOR;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['FROM_SUBINVENTORY_CODE'] = this.fROMSUBINVENTORYCODE;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['LINE_STATUS_DIS'] = this.lINESTATUSDIS;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['OPERATING_UNIT_NAME'] = this.oPERATINGUNITNAME;
|
||||
data['ORGANIZATION_CODE'] = this.oRGANIZATIONCODE;
|
||||
data['ORGANIZATION_ID'] = this.oRGANIZATIONID;
|
||||
data['ORGANIZATION_NAME'] = this.oRGANIZATIONNAME;
|
||||
data['QUANTITY'] = this.qUANTITY;
|
||||
data['REQUEST_NUMBER'] = this.rEQUESTNUMBER;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SHIP_TO_LOCATION'] = this.sHIPTOLOCATION;
|
||||
data['STATUS_DATE'] = this.sTATUSDATE;
|
||||
data['TO_LOCATOR'] = this.tOLOCATOR;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['TO_SUBINVENTORY_CODE'] = this.tOSUBINVENTORYCODE;
|
||||
data['TRANSACTION_TYPE_NAME'] = this.tRANSACTIONTYPENAME;
|
||||
data['UNIT_OF_MEASURE'] = this.uNITOFMEASURE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,104 @@
|
||||
class GetMoNotificationBodyList {
|
||||
String? dATEREQUIRED;
|
||||
String? dESCRIPTION;
|
||||
String? fROMLOCATOR;
|
||||
int? fROMROWNUM;
|
||||
String? fROMSUBINVENTORY;
|
||||
String? iTEMCODE;
|
||||
int? iTEMID;
|
||||
int? lINENUMBER;
|
||||
String? lINESTATUS;
|
||||
int? nOOFROWS;
|
||||
String? oPERATINGUNIT;
|
||||
String? oRGANIZATIONCODE;
|
||||
String? oRGANIZATIONNAME;
|
||||
int? oRGID;
|
||||
int? qUANTITY;
|
||||
int? rOWNUM;
|
||||
String? sHIPTOLOCATION;
|
||||
String? sTATUSDATE;
|
||||
String? tOLOCATOR;
|
||||
int? tOROWNUM;
|
||||
String? tOSUBINVENTORY;
|
||||
String? tRANSACTIONTYPENAME;
|
||||
String? uOM;
|
||||
|
||||
GetMoNotificationBodyList(
|
||||
{this.dATEREQUIRED,
|
||||
this.dESCRIPTION,
|
||||
this.fROMLOCATOR,
|
||||
this.fROMROWNUM,
|
||||
this.fROMSUBINVENTORY,
|
||||
this.iTEMCODE,
|
||||
this.iTEMID,
|
||||
this.lINENUMBER,
|
||||
this.lINESTATUS,
|
||||
this.nOOFROWS,
|
||||
this.oPERATINGUNIT,
|
||||
this.oRGANIZATIONCODE,
|
||||
this.oRGANIZATIONNAME,
|
||||
this.oRGID,
|
||||
this.qUANTITY,
|
||||
this.rOWNUM,
|
||||
this.sHIPTOLOCATION,
|
||||
this.sTATUSDATE,
|
||||
this.tOLOCATOR,
|
||||
this.tOROWNUM,
|
||||
this.tOSUBINVENTORY,
|
||||
this.tRANSACTIONTYPENAME,
|
||||
this.uOM});
|
||||
|
||||
GetMoNotificationBodyList.fromJson(Map<String, dynamic> json) {
|
||||
dATEREQUIRED = json['DATE_REQUIRED'];
|
||||
dESCRIPTION = json['DESCRIPTION'];
|
||||
fROMLOCATOR = json['FROM_LOCATOR'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
fROMSUBINVENTORY = json['FROM_SUBINVENTORY'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
iTEMID = json['ITEM_ID'];
|
||||
lINENUMBER = json['LINE_NUMBER'];
|
||||
lINESTATUS = json['LINE_STATUS'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
oPERATINGUNIT = json['OPERATING_UNIT'];
|
||||
oRGANIZATIONCODE = json['ORGANIZATION_CODE'];
|
||||
oRGANIZATIONNAME = json['ORGANIZATION_NAME'];
|
||||
oRGID = json['ORG_ID'];
|
||||
qUANTITY = json['QUANTITY'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sHIPTOLOCATION = json['SHIP_TO_LOCATION'];
|
||||
sTATUSDATE = json['STATUS_DATE'];
|
||||
tOLOCATOR = json['TO_LOCATOR'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
tOSUBINVENTORY = json['TO_SUBINVENTORY'];
|
||||
tRANSACTIONTYPENAME = json['TRANSACTION_TYPE_NAME'];
|
||||
uOM = json['UOM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['DATE_REQUIRED'] = this.dATEREQUIRED;
|
||||
data['DESCRIPTION'] = this.dESCRIPTION;
|
||||
data['FROM_LOCATOR'] = this.fROMLOCATOR;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['FROM_SUBINVENTORY'] = this.fROMSUBINVENTORY;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['ITEM_ID'] = this.iTEMID;
|
||||
data['LINE_NUMBER'] = this.lINENUMBER;
|
||||
data['LINE_STATUS'] = this.lINESTATUS;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['OPERATING_UNIT'] = this.oPERATINGUNIT;
|
||||
data['ORGANIZATION_CODE'] = this.oRGANIZATIONCODE;
|
||||
data['ORGANIZATION_NAME'] = this.oRGANIZATIONNAME;
|
||||
data['ORG_ID'] = this.oRGID;
|
||||
data['QUANTITY'] = this.qUANTITY;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SHIP_TO_LOCATION'] = this.sHIPTOLOCATION;
|
||||
data['STATUS_DATE'] = this.sTATUSDATE;
|
||||
data['TO_LOCATOR'] = this.tOLOCATOR;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['TO_SUBINVENTORY'] = this.tOSUBINVENTORY;
|
||||
data['TRANSACTION_TYPE_NAME'] = this.tRANSACTIONTYPENAME;
|
||||
data['UOM'] = this.uOM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
class GetNotificationButtonsList {
|
||||
String? bUTTONACTION;
|
||||
String? bUTTONICON;
|
||||
String? bUTTONLABEL;
|
||||
int? bUTTONSEQ;
|
||||
|
||||
GetNotificationButtonsList(
|
||||
{this.bUTTONACTION, this.bUTTONICON, this.bUTTONLABEL, this.bUTTONSEQ});
|
||||
|
||||
GetNotificationButtonsList.fromJson(Map<String, dynamic> json) {
|
||||
bUTTONACTION = json['BUTTON_ACTION'];
|
||||
bUTTONICON = json['BUTTON_ICON'];
|
||||
bUTTONLABEL = json['BUTTON_LABEL'];
|
||||
bUTTONSEQ = json['BUTTON_SEQ'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['BUTTON_ACTION'] = this.bUTTONACTION;
|
||||
data['BUTTON_ICON'] = this.bUTTONICON;
|
||||
data['BUTTON_LABEL'] = this.bUTTONLABEL;
|
||||
data['BUTTON_SEQ'] = this.bUTTONSEQ;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,92 @@
|
||||
class GetPoItemHistoryList {
|
||||
int? bALANCEQUANTITY;
|
||||
int? bONUSQUANTITY;
|
||||
String? bUYER;
|
||||
String? cLOSEDCODE;
|
||||
String? cREATIONDATE;
|
||||
int? dISCOUNTPERCENTAGE;
|
||||
int? fROMROWNUM;
|
||||
int? iTEMID;
|
||||
int? nETPRICE;
|
||||
int? nOOFROWS;
|
||||
String? oUNAME;
|
||||
String? pONUMBER;
|
||||
int? pURCHASEPRICE;
|
||||
int? qUANTITYORDERED;
|
||||
int? qUANTITYRECEIVED;
|
||||
int? rEVISIONNUM;
|
||||
int? rOWNUM;
|
||||
String? sUPPLIER;
|
||||
int? tOROWNUM;
|
||||
String? uOM;
|
||||
|
||||
GetPoItemHistoryList(
|
||||
{this.bALANCEQUANTITY,
|
||||
this.bONUSQUANTITY,
|
||||
this.bUYER,
|
||||
this.cLOSEDCODE,
|
||||
this.cREATIONDATE,
|
||||
this.dISCOUNTPERCENTAGE,
|
||||
this.fROMROWNUM,
|
||||
this.iTEMID,
|
||||
this.nETPRICE,
|
||||
this.nOOFROWS,
|
||||
this.oUNAME,
|
||||
this.pONUMBER,
|
||||
this.pURCHASEPRICE,
|
||||
this.qUANTITYORDERED,
|
||||
this.qUANTITYRECEIVED,
|
||||
this.rEVISIONNUM,
|
||||
this.rOWNUM,
|
||||
this.sUPPLIER,
|
||||
this.tOROWNUM,
|
||||
this.uOM});
|
||||
|
||||
GetPoItemHistoryList.fromJson(Map<String, dynamic> json) {
|
||||
bALANCEQUANTITY = json['BALANCE_QUANTITY'];
|
||||
bONUSQUANTITY = json['BONUS_QUANTITY'];
|
||||
bUYER = json['BUYER'];
|
||||
cLOSEDCODE = json['CLOSED_CODE'];
|
||||
cREATIONDATE = json['CREATION_DATE'];
|
||||
dISCOUNTPERCENTAGE = json['DISCOUNT_PERCENTAGE'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
iTEMID = json['ITEM_ID'];
|
||||
nETPRICE = json['NET_PRICE'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
oUNAME = json['OU_NAME'];
|
||||
pONUMBER = json['PO_NUMBER'];
|
||||
pURCHASEPRICE = json['PURCHASE_PRICE'];
|
||||
qUANTITYORDERED = json['QUANTITY_ORDERED'];
|
||||
qUANTITYRECEIVED = json['QUANTITY_RECEIVED'];
|
||||
rEVISIONNUM = json['REVISION_NUM'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sUPPLIER = json['SUPPLIER'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
uOM = json['UOM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['BALANCE_QUANTITY'] = this.bALANCEQUANTITY;
|
||||
data['BONUS_QUANTITY'] = this.bONUSQUANTITY;
|
||||
data['BUYER'] = this.bUYER;
|
||||
data['CLOSED_CODE'] = this.cLOSEDCODE;
|
||||
data['CREATION_DATE'] = this.cREATIONDATE;
|
||||
data['DISCOUNT_PERCENTAGE'] = this.dISCOUNTPERCENTAGE;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['ITEM_ID'] = this.iTEMID;
|
||||
data['NET_PRICE'] = this.nETPRICE;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['OU_NAME'] = this.oUNAME;
|
||||
data['PO_NUMBER'] = this.pONUMBER;
|
||||
data['PURCHASE_PRICE'] = this.pURCHASEPRICE;
|
||||
data['QUANTITY_ORDERED'] = this.qUANTITYORDERED;
|
||||
data['QUANTITY_RECEIVED'] = this.qUANTITYRECEIVED;
|
||||
data['REVISION_NUM'] = this.rEVISIONNUM;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SUPPLIER'] = this.sUPPLIER;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['UOM'] = this.uOM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,242 @@
|
||||
|
||||
class GetPoNotificationBodyList {
|
||||
List<POHeader>? pOHeader;
|
||||
List<POLines>? pOLines;
|
||||
String? pINFORMATION;
|
||||
String? pQUESTION;
|
||||
|
||||
GetPoNotificationBodyList(
|
||||
{this.pOHeader, this.pOLines, this.pINFORMATION, this.pQUESTION});
|
||||
|
||||
GetPoNotificationBodyList.fromJson(Map<String, dynamic> json) {
|
||||
if (json['POHeader'] != null) {
|
||||
pOHeader = <POHeader>[];
|
||||
json['POHeader'].forEach((v) {
|
||||
pOHeader!.add(new POHeader.fromJson(v));
|
||||
});
|
||||
}
|
||||
if (json['POLines'] != null) {
|
||||
pOLines = <POLines>[];
|
||||
json['POLines'].forEach((v) {
|
||||
pOLines!.add(new POLines.fromJson(v));
|
||||
});
|
||||
}
|
||||
pINFORMATION = json['P_INFORMATION'];
|
||||
pQUESTION = json['P_QUESTION'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.pOHeader != null) {
|
||||
data['POHeader'] = this.pOHeader!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
if (this.pOLines != null) {
|
||||
data['POLines'] = this.pOLines!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
data['P_INFORMATION'] = this.pINFORMATION;
|
||||
data['P_QUESTION'] = this.pQUESTION;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class POHeader {
|
||||
String? bUYER;
|
||||
String? cOMMENTS;
|
||||
String? cREATIONDATE;
|
||||
String? cURRENCYNAME;
|
||||
int? cUSTOMDUTY;
|
||||
int? dISCOUNTAMOUNT;
|
||||
int? gROSSAMOUNT;
|
||||
String? lOCCUR;
|
||||
int? lOCCURTOTPOAMT;
|
||||
int? oTHERCHARGES;
|
||||
String? pAYMENTTERMS;
|
||||
String? pONUMBER;
|
||||
String? pREPARER;
|
||||
String? qUOTATIONDATE;
|
||||
String? qUOTATIONNUMBER;
|
||||
int? sALESTAX;
|
||||
int? sHIPHANDLE;
|
||||
String? sHIPTOLOCATIONNAME;
|
||||
int? tOTALPODISCOUNT;
|
||||
int? tOTPOAMT;
|
||||
String? tOTPOAMTWORD;
|
||||
String? vENDORNAME;
|
||||
String? vENDORSITECODE;
|
||||
|
||||
POHeader(
|
||||
{this.bUYER,
|
||||
this.cOMMENTS,
|
||||
this.cREATIONDATE,
|
||||
this.cURRENCYNAME,
|
||||
this.cUSTOMDUTY,
|
||||
this.dISCOUNTAMOUNT,
|
||||
this.gROSSAMOUNT,
|
||||
this.lOCCUR,
|
||||
this.lOCCURTOTPOAMT,
|
||||
this.oTHERCHARGES,
|
||||
this.pAYMENTTERMS,
|
||||
this.pONUMBER,
|
||||
this.pREPARER,
|
||||
this.qUOTATIONDATE,
|
||||
this.qUOTATIONNUMBER,
|
||||
this.sALESTAX,
|
||||
this.sHIPHANDLE,
|
||||
this.sHIPTOLOCATIONNAME,
|
||||
this.tOTALPODISCOUNT,
|
||||
this.tOTPOAMT,
|
||||
this.tOTPOAMTWORD,
|
||||
this.vENDORNAME,
|
||||
this.vENDORSITECODE});
|
||||
|
||||
POHeader.fromJson(Map<String, dynamic> json) {
|
||||
bUYER = json['BUYER'];
|
||||
cOMMENTS = json['COMMENTS'];
|
||||
cREATIONDATE = json['CREATION_DATE'];
|
||||
cURRENCYNAME = json['CURRENCY_NAME'];
|
||||
cUSTOMDUTY = json['CUSTOM_DUTY'];
|
||||
dISCOUNTAMOUNT = json['DISCOUNT_AMOUNT'];
|
||||
gROSSAMOUNT = json['GROSS_AMOUNT'];
|
||||
lOCCUR = json['LOC_CUR'];
|
||||
lOCCURTOTPOAMT = json['LOC_CUR_TOT_PO_AMT'];
|
||||
oTHERCHARGES = json['OTHER_CHARGES'];
|
||||
pAYMENTTERMS = json['PAYMENT_TERMS'];
|
||||
pONUMBER = json['PO_NUMBER'];
|
||||
pREPARER = json['PREPARER'];
|
||||
qUOTATIONDATE = json['QUOTATION_DATE'];
|
||||
qUOTATIONNUMBER = json['QUOTATION_NUMBER'];
|
||||
sALESTAX = json['SALES_TAX'];
|
||||
sHIPHANDLE = json['SHIP_HANDLE'];
|
||||
sHIPTOLOCATIONNAME = json['SHIP_TO_LOCATION_NAME'];
|
||||
tOTALPODISCOUNT = json['TOTAL_PO_DISCOUNT'];
|
||||
tOTPOAMT = json['TOT_PO_AMT'];
|
||||
tOTPOAMTWORD = json['TOT_PO_AMT_WORD'];
|
||||
vENDORNAME = json['VENDOR_NAME'];
|
||||
vENDORSITECODE = json['VENDOR_SITE_CODE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['BUYER'] = this.bUYER;
|
||||
data['COMMENTS'] = this.cOMMENTS;
|
||||
data['CREATION_DATE'] = this.cREATIONDATE;
|
||||
data['CURRENCY_NAME'] = this.cURRENCYNAME;
|
||||
data['CUSTOM_DUTY'] = this.cUSTOMDUTY;
|
||||
data['DISCOUNT_AMOUNT'] = this.dISCOUNTAMOUNT;
|
||||
data['GROSS_AMOUNT'] = this.gROSSAMOUNT;
|
||||
data['LOC_CUR'] = this.lOCCUR;
|
||||
data['LOC_CUR_TOT_PO_AMT'] = this.lOCCURTOTPOAMT;
|
||||
data['OTHER_CHARGES'] = this.oTHERCHARGES;
|
||||
data['PAYMENT_TERMS'] = this.pAYMENTTERMS;
|
||||
data['PO_NUMBER'] = this.pONUMBER;
|
||||
data['PREPARER'] = this.pREPARER;
|
||||
data['QUOTATION_DATE'] = this.qUOTATIONDATE;
|
||||
data['QUOTATION_NUMBER'] = this.qUOTATIONNUMBER;
|
||||
data['SALES_TAX'] = this.sALESTAX;
|
||||
data['SHIP_HANDLE'] = this.sHIPHANDLE;
|
||||
data['SHIP_TO_LOCATION_NAME'] = this.sHIPTOLOCATIONNAME;
|
||||
data['TOTAL_PO_DISCOUNT'] = this.tOTALPODISCOUNT;
|
||||
data['TOT_PO_AMT'] = this.tOTPOAMT;
|
||||
data['TOT_PO_AMT_WORD'] = this.tOTPOAMTWORD;
|
||||
data['VENDOR_NAME'] = this.vENDORNAME;
|
||||
data['VENDOR_SITE_CODE'] = this.vENDORSITECODE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class POLines {
|
||||
String? dELIVERTOLOCATION;
|
||||
int? fROMROWNUM;
|
||||
String? iTEMCODE;
|
||||
String? iTEMDESCRIPTION;
|
||||
int? iTEMID;
|
||||
int? lINEAMOUNT;
|
||||
int? lINEDISCPERCENTAGE;
|
||||
int? lINENUM;
|
||||
String? lINETYPE;
|
||||
String? mFG;
|
||||
String? nEEDBYDATE;
|
||||
int? nOOFROWS;
|
||||
int? pOHEADERID;
|
||||
String? pROMISEDDATE;
|
||||
String? pRNUM;
|
||||
int? qUANTITY;
|
||||
String? rEQUESTOR;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
int? uNITPRICE;
|
||||
String? uOM;
|
||||
|
||||
POLines(
|
||||
{this.dELIVERTOLOCATION,
|
||||
this.fROMROWNUM,
|
||||
this.iTEMCODE,
|
||||
this.iTEMDESCRIPTION,
|
||||
this.iTEMID,
|
||||
this.lINEAMOUNT,
|
||||
this.lINEDISCPERCENTAGE,
|
||||
this.lINENUM,
|
||||
this.lINETYPE,
|
||||
this.mFG,
|
||||
this.nEEDBYDATE,
|
||||
this.nOOFROWS,
|
||||
this.pOHEADERID,
|
||||
this.pROMISEDDATE,
|
||||
this.pRNUM,
|
||||
this.qUANTITY,
|
||||
this.rEQUESTOR,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM,
|
||||
this.uNITPRICE,
|
||||
this.uOM});
|
||||
|
||||
POLines.fromJson(Map<String, dynamic> json) {
|
||||
dELIVERTOLOCATION = json['DELIVER_TO_LOCATION'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
iTEMDESCRIPTION = json['ITEM_DESCRIPTION'];
|
||||
iTEMID = json['ITEM_ID'];
|
||||
lINEAMOUNT = json['LINE_AMOUNT'];
|
||||
lINEDISCPERCENTAGE = json['LINE_DISC_PERCENTAGE'];
|
||||
lINENUM = json['LINE_NUM'];
|
||||
lINETYPE = json['LINE_TYPE'];
|
||||
mFG = json['MFG'];
|
||||
nEEDBYDATE = json['NEED_BY_DATE'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
pOHEADERID = json['PO_HEADER_ID'];
|
||||
pROMISEDDATE = json['PROMISED_DATE'];
|
||||
pRNUM = json['PR_NUM'];
|
||||
qUANTITY = json['QUANTITY'];
|
||||
rEQUESTOR = json['REQUESTOR'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
uNITPRICE = json['UNIT_PRICE'];
|
||||
uOM = json['UOM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['DELIVER_TO_LOCATION'] = this.dELIVERTOLOCATION;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['ITEM_DESCRIPTION'] = this.iTEMDESCRIPTION;
|
||||
data['ITEM_ID'] = this.iTEMID;
|
||||
data['LINE_AMOUNT'] = this.lINEAMOUNT;
|
||||
data['LINE_DISC_PERCENTAGE'] = this.lINEDISCPERCENTAGE;
|
||||
data['LINE_NUM'] = this.lINENUM;
|
||||
data['LINE_TYPE'] = this.lINETYPE;
|
||||
data['MFG'] = this.mFG;
|
||||
data['NEED_BY_DATE'] = this.nEEDBYDATE;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['PO_HEADER_ID'] = this.pOHEADERID;
|
||||
data['PROMISED_DATE'] = this.pROMISEDDATE;
|
||||
data['PR_NUM'] = this.pRNUM;
|
||||
data['QUANTITY'] = this.qUANTITY;
|
||||
data['REQUESTOR'] = this.rEQUESTOR;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['UNIT_PRICE'] = this.uNITPRICE;
|
||||
data['UOM'] = this.uOM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,84 @@
|
||||
class GetQuotationAnalysisList {
|
||||
int? fROMROWNUM;
|
||||
String? iTEMCODE;
|
||||
String? iTEMDESC;
|
||||
int? nOOFROWS;
|
||||
String? qUOTBONUSQTY;
|
||||
String? qUOTDELIVERYDATE;
|
||||
int? qUOTLINETOTAL;
|
||||
String? qUOTMFGPARTNUM;
|
||||
String? qUOTNUM;
|
||||
int? qUOTQTY;
|
||||
int? qUOTUNITPRICE;
|
||||
String? qUOTUOM;
|
||||
String? rFQNUM;
|
||||
int? rFQQTY;
|
||||
String? rFQUOM;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
String? vENDORNAME;
|
||||
|
||||
GetQuotationAnalysisList(
|
||||
{this.fROMROWNUM,
|
||||
this.iTEMCODE,
|
||||
this.iTEMDESC,
|
||||
this.nOOFROWS,
|
||||
this.qUOTBONUSQTY,
|
||||
this.qUOTDELIVERYDATE,
|
||||
this.qUOTLINETOTAL,
|
||||
this.qUOTMFGPARTNUM,
|
||||
this.qUOTNUM,
|
||||
this.qUOTQTY,
|
||||
this.qUOTUNITPRICE,
|
||||
this.qUOTUOM,
|
||||
this.rFQNUM,
|
||||
this.rFQQTY,
|
||||
this.rFQUOM,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM,
|
||||
this.vENDORNAME});
|
||||
|
||||
GetQuotationAnalysisList.fromJson(Map<String, dynamic> json) {
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
iTEMDESC = json['ITEM_DESC'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
qUOTBONUSQTY = json['QUOT_BONUS_QTY'];
|
||||
qUOTDELIVERYDATE = json['QUOT_DELIVERY_DATE'];
|
||||
qUOTLINETOTAL = json['QUOT_LINE_TOTAL'];
|
||||
qUOTMFGPARTNUM = json['QUOT_MFG_PART_NUM'];
|
||||
qUOTNUM = json['QUOT_NUM'];
|
||||
qUOTQTY = json['QUOT_QTY'];
|
||||
qUOTUNITPRICE = json['QUOT_UNIT_PRICE'];
|
||||
qUOTUOM = json['QUOT_UOM'];
|
||||
rFQNUM = json['RFQ_NUM'];
|
||||
rFQQTY = json['RFQ_QTY'];
|
||||
rFQUOM = json['RFQ_UOM'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
vENDORNAME = json['VENDOR_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
data['ITEM_DESC'] = this.iTEMDESC;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['QUOT_BONUS_QTY'] = this.qUOTBONUSQTY;
|
||||
data['QUOT_DELIVERY_DATE'] = this.qUOTDELIVERYDATE;
|
||||
data['QUOT_LINE_TOTAL'] = this.qUOTLINETOTAL;
|
||||
data['QUOT_MFG_PART_NUM'] = this.qUOTMFGPARTNUM;
|
||||
data['QUOT_NUM'] = this.qUOTNUM;
|
||||
data['QUOT_QTY'] = this.qUOTQTY;
|
||||
data['QUOT_UNIT_PRICE'] = this.qUOTUNITPRICE;
|
||||
data['QUOT_UOM'] = this.qUOTUOM;
|
||||
data['RFQ_NUM'] = this.rFQNUM;
|
||||
data['RFQ_QTY'] = this.rFQQTY;
|
||||
data['RFQ_UOM'] = this.rFQUOM;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['VENDOR_NAME'] = this.vENDORNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,132 @@
|
||||
class GetStampMsNotificationBodyList {
|
||||
int? aCTUALWOBHRS;
|
||||
int? aCTUALWOBSEC;
|
||||
String? aPPROVEDENDREASONDESC;
|
||||
String? aPPROVEDSTARTDATETIME;
|
||||
String? aPPROVEDSTARTREASON;
|
||||
String? aPPROVEDSTARTTIME;
|
||||
int? aSSIGNMENTID;
|
||||
int? aSSIGNMENTNUMBER;
|
||||
String? bREAKNAME;
|
||||
String? bUSINESSGROUPID;
|
||||
String? eMPLOYEENAME;
|
||||
int? eMPLOYEENUMBER;
|
||||
String? eMPLOYMENTCATEGORY;
|
||||
int? pAYROLLID;
|
||||
String? pAYROLLNAME;
|
||||
String? sCHEDULEDATE;
|
||||
int? sEQNO;
|
||||
String? sHTACTUALENDDATETIME;
|
||||
String? sHTACTUALENDTIME;
|
||||
String? sHTACTUALHRS;
|
||||
int? sHTACTUALSEC;
|
||||
String? sHTACTUALSTARTDATETIME;
|
||||
String? sHTACTUALSTARTTIME;
|
||||
String? sHTCODE;
|
||||
int? sHTID;
|
||||
String? sHTNAME;
|
||||
String? sHTTYPE;
|
||||
String? sHTTYPEDESC;
|
||||
int? sUPERVISORID;
|
||||
int? tKPERSONID;
|
||||
|
||||
GetStampMsNotificationBodyList(
|
||||
{this.aCTUALWOBHRS,
|
||||
this.aCTUALWOBSEC,
|
||||
this.aPPROVEDENDREASONDESC,
|
||||
this.aPPROVEDSTARTDATETIME,
|
||||
this.aPPROVEDSTARTREASON,
|
||||
this.aPPROVEDSTARTTIME,
|
||||
this.aSSIGNMENTID,
|
||||
this.aSSIGNMENTNUMBER,
|
||||
this.bREAKNAME,
|
||||
this.bUSINESSGROUPID,
|
||||
this.eMPLOYEENAME,
|
||||
this.eMPLOYEENUMBER,
|
||||
this.eMPLOYMENTCATEGORY,
|
||||
this.pAYROLLID,
|
||||
this.pAYROLLNAME,
|
||||
this.sCHEDULEDATE,
|
||||
this.sEQNO,
|
||||
this.sHTACTUALENDDATETIME,
|
||||
this.sHTACTUALENDTIME,
|
||||
this.sHTACTUALHRS,
|
||||
this.sHTACTUALSEC,
|
||||
this.sHTACTUALSTARTDATETIME,
|
||||
this.sHTACTUALSTARTTIME,
|
||||
this.sHTCODE,
|
||||
this.sHTID,
|
||||
this.sHTNAME,
|
||||
this.sHTTYPE,
|
||||
this.sHTTYPEDESC,
|
||||
this.sUPERVISORID,
|
||||
this.tKPERSONID});
|
||||
|
||||
GetStampMsNotificationBodyList.fromJson(Map<String, dynamic> json) {
|
||||
aCTUALWOBHRS = json['ACTUAL_WOB_HRS'];
|
||||
aCTUALWOBSEC = json['ACTUAL_WOB_SEC'];
|
||||
aPPROVEDENDREASONDESC = json['APPROVED_END_REASON_DESC'];
|
||||
aPPROVEDSTARTDATETIME = json['APPROVED_START_DATETIME'];
|
||||
aPPROVEDSTARTREASON = json['APPROVED_START_REASON'];
|
||||
aPPROVEDSTARTTIME = json['APPROVED_START_TIME'];
|
||||
aSSIGNMENTID = json['ASSIGNMENT_ID'];
|
||||
aSSIGNMENTNUMBER = json['ASSIGNMENT_NUMBER'];
|
||||
bREAKNAME = json['BREAK_NAME'];
|
||||
bUSINESSGROUPID = json['BUSINESS_GROUP_ID'];
|
||||
eMPLOYEENAME = json['EMPLOYEE_NAME'];
|
||||
eMPLOYEENUMBER = json['EMPLOYEE_NUMBER'];
|
||||
eMPLOYMENTCATEGORY = json['EMPLOYMENT_CATEGORY'];
|
||||
pAYROLLID = json['PAYROLL_ID'];
|
||||
pAYROLLNAME = json['PAYROLL_NAME'];
|
||||
sCHEDULEDATE = json['SCHEDULE_DATE'];
|
||||
sEQNO = json['SEQ_NO'];
|
||||
sHTACTUALENDDATETIME = json['SHT_ACTUAL_END_DATETIME'];
|
||||
sHTACTUALENDTIME = json['SHT_ACTUAL_END_TIME'];
|
||||
sHTACTUALHRS = json['SHT_ACTUAL_HRS'];
|
||||
sHTACTUALSEC = json['SHT_ACTUAL_SEC'];
|
||||
sHTACTUALSTARTDATETIME = json['SHT_ACTUAL_START_DATETIME'];
|
||||
sHTACTUALSTARTTIME = json['SHT_ACTUAL_START_TIME'];
|
||||
sHTCODE = json['SHT_CODE'];
|
||||
sHTID = json['SHT_ID'];
|
||||
sHTNAME = json['SHT_NAME'];
|
||||
sHTTYPE = json['SHT_TYPE'];
|
||||
sHTTYPEDESC = json['SHT_TYPE_DESC'];
|
||||
sUPERVISORID = json['SUPERVISOR_ID'];
|
||||
tKPERSONID = json['TK_PERSON_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACTUAL_WOB_HRS'] = this.aCTUALWOBHRS;
|
||||
data['ACTUAL_WOB_SEC'] = this.aCTUALWOBSEC;
|
||||
data['APPROVED_END_REASON_DESC'] = this.aPPROVEDENDREASONDESC;
|
||||
data['APPROVED_START_DATETIME'] = this.aPPROVEDSTARTDATETIME;
|
||||
data['APPROVED_START_REASON'] = this.aPPROVEDSTARTREASON;
|
||||
data['APPROVED_START_TIME'] = this.aPPROVEDSTARTTIME;
|
||||
data['ASSIGNMENT_ID'] = this.aSSIGNMENTID;
|
||||
data['ASSIGNMENT_NUMBER'] = this.aSSIGNMENTNUMBER;
|
||||
data['BREAK_NAME'] = this.bREAKNAME;
|
||||
data['BUSINESS_GROUP_ID'] = this.bUSINESSGROUPID;
|
||||
data['EMPLOYEE_NAME'] = this.eMPLOYEENAME;
|
||||
data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER;
|
||||
data['EMPLOYMENT_CATEGORY'] = this.eMPLOYMENTCATEGORY;
|
||||
data['PAYROLL_ID'] = this.pAYROLLID;
|
||||
data['PAYROLL_NAME'] = this.pAYROLLNAME;
|
||||
data['SCHEDULE_DATE'] = this.sCHEDULEDATE;
|
||||
data['SEQ_NO'] = this.sEQNO;
|
||||
data['SHT_ACTUAL_END_DATETIME'] = this.sHTACTUALENDDATETIME;
|
||||
data['SHT_ACTUAL_END_TIME'] = this.sHTACTUALENDTIME;
|
||||
data['SHT_ACTUAL_HRS'] = this.sHTACTUALHRS;
|
||||
data['SHT_ACTUAL_SEC'] = this.sHTACTUALSEC;
|
||||
data['SHT_ACTUAL_START_DATETIME'] = this.sHTACTUALSTARTDATETIME;
|
||||
data['SHT_ACTUAL_START_TIME'] = this.sHTACTUALSTARTTIME;
|
||||
data['SHT_CODE'] = this.sHTCODE;
|
||||
data['SHT_ID'] = this.sHTID;
|
||||
data['SHT_NAME'] = this.sHTNAME;
|
||||
data['SHT_TYPE'] = this.sHTTYPE;
|
||||
data['SHT_TYPE_DESC'] = this.sHTTYPEDESC;
|
||||
data['SUPERVISOR_ID'] = this.sUPERVISORID;
|
||||
data['TK_PERSON_ID'] = this.tKPERSONID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
|
||||
class GetStampNsNotificationBodyList {
|
||||
int? aSSIGNMENTID;
|
||||
String? aSSIGNMENTNUMBER;
|
||||
int? bUSINESSGROUPID;
|
||||
String? eMPLOYEENAME;
|
||||
String? eMPLOYEENUMBER;
|
||||
String? eMPLOYMENTCATEGORY;
|
||||
int? pAYROLLID;
|
||||
String? pAYROLLNAME;
|
||||
int? pERSONID;
|
||||
String? sCHEDULEDATE;
|
||||
int? sUPERVISORID;
|
||||
int? tKPERSONID;
|
||||
|
||||
GetStampNsNotificationBodyList(
|
||||
{this.aSSIGNMENTID,
|
||||
this.aSSIGNMENTNUMBER,
|
||||
this.bUSINESSGROUPID,
|
||||
this.eMPLOYEENAME,
|
||||
this.eMPLOYEENUMBER,
|
||||
this.eMPLOYMENTCATEGORY,
|
||||
this.pAYROLLID,
|
||||
this.pAYROLLNAME,
|
||||
this.pERSONID,
|
||||
this.sCHEDULEDATE,
|
||||
this.sUPERVISORID,
|
||||
this.tKPERSONID});
|
||||
|
||||
GetStampNsNotificationBodyList.fromJson(Map<String, dynamic> json) {
|
||||
aSSIGNMENTID = json['ASSIGNMENT_ID'];
|
||||
aSSIGNMENTNUMBER = json['ASSIGNMENT_NUMBER'];
|
||||
bUSINESSGROUPID = json['BUSINESS_GROUP_ID'];
|
||||
eMPLOYEENAME = json['EMPLOYEE_NAME'];
|
||||
eMPLOYEENUMBER = json['EMPLOYEE_NUMBER'];
|
||||
eMPLOYMENTCATEGORY = json['EMPLOYMENT_CATEGORY'];
|
||||
pAYROLLID = json['PAYROLL_ID'];
|
||||
pAYROLLNAME = json['PAYROLL_NAME'];
|
||||
pERSONID = json['PERSON_ID'];
|
||||
sCHEDULEDATE = json['SCHEDULE_DATE'];
|
||||
sUPERVISORID = json['SUPERVISOR_ID'];
|
||||
tKPERSONID = json['TK_PERSON_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ASSIGNMENT_ID'] = this.aSSIGNMENTID;
|
||||
data['ASSIGNMENT_NUMBER'] = this.aSSIGNMENTNUMBER;
|
||||
data['BUSINESS_GROUP_ID'] = this.bUSINESSGROUPID;
|
||||
data['EMPLOYEE_NAME'] = this.eMPLOYEENAME;
|
||||
data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER;
|
||||
data['EMPLOYMENT_CATEGORY'] = this.eMPLOYMENTCATEGORY;
|
||||
data['PAYROLL_ID'] = this.pAYROLLID;
|
||||
data['PAYROLL_NAME'] = this.pAYROLLNAME;
|
||||
data['PERSON_ID'] = this.pERSONID;
|
||||
data['SCHEDULE_DATE'] = this.sCHEDULEDATE;
|
||||
data['SUPERVISOR_ID'] = this.sUPERVISORID;
|
||||
data['TK_PERSON_ID'] = this.tKPERSONID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
class NotificationAction {
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
|
||||
NotificationAction({this.pRETURNMSG, this.pRETURNSTATUS});
|
||||
|
||||
NotificationAction.fromJson(Map<String, dynamic> json) {
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
class NotificationGetRespondAttributesList {
|
||||
String? attributeDisplayName;
|
||||
String? attributeFormat;
|
||||
String? attributeName;
|
||||
String? attributeType;
|
||||
|
||||
NotificationGetRespondAttributesList({this.attributeDisplayName, this.attributeFormat, this.attributeName, this.attributeType});
|
||||
|
||||
NotificationGetRespondAttributesList.fromJson(Map<String, dynamic> json) {
|
||||
attributeDisplayName = json['ATTRIBUTE_DISPLAY_NAME'];
|
||||
attributeFormat = json['ATTRIBUTE_FORMAT'];
|
||||
attributeName = json['ATTRIBUTE_NAME'];
|
||||
attributeType = json['ATTRIBUTE_TYPE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['ATTRIBUTE_DISPLAY_NAME'] = attributeDisplayName;
|
||||
data['ATTRIBUTE_FORMAT'] = attributeFormat;
|
||||
data['ATTRIBUTE_NAME'] = attributeName;
|
||||
data['ATTRIBUTE_TYPE'] = attributeType;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
class SubordinatesLeavesList {
|
||||
String? aBSENCEATTENDANCETYPENAME;
|
||||
String? cALENDARENTRYDESC;
|
||||
String? dATEEND;
|
||||
String? dATESTART;
|
||||
String? eMPLOYEEIMAGE;
|
||||
String? eMPLOYEENAME;
|
||||
String? eMPLOYEENUMBER;
|
||||
String? eVENTDATE;
|
||||
String? lEAVETYPE;
|
||||
int? oRGANIZATIONID;
|
||||
String? oRGANIZATIONNAME;
|
||||
String? pOSITIONTITLE;
|
||||
String? rEPLACEMENTNAME;
|
||||
String? sTATUS;
|
||||
|
||||
SubordinatesLeavesList(
|
||||
{this.aBSENCEATTENDANCETYPENAME,
|
||||
this.cALENDARENTRYDESC,
|
||||
this.dATEEND,
|
||||
this.dATESTART,
|
||||
this.eMPLOYEEIMAGE,
|
||||
this.eMPLOYEENAME,
|
||||
this.eMPLOYEENUMBER,
|
||||
this.eVENTDATE,
|
||||
this.lEAVETYPE,
|
||||
this.oRGANIZATIONID,
|
||||
this.oRGANIZATIONNAME,
|
||||
this.pOSITIONTITLE,
|
||||
this.rEPLACEMENTNAME,
|
||||
this.sTATUS});
|
||||
|
||||
SubordinatesLeavesList.fromJson(Map<String, dynamic> json) {
|
||||
aBSENCEATTENDANCETYPENAME = json['ABSENCE_ATTENDANCE_TYPE_NAME'];
|
||||
cALENDARENTRYDESC = json['CALENDAR_ENTRY_DESC'];
|
||||
dATEEND = json['DATE_END'];
|
||||
dATESTART = json['DATE_START'];
|
||||
eMPLOYEEIMAGE = json['EMPLOYEE_IMAGE'];
|
||||
eMPLOYEENAME = json['EMPLOYEE_NAME'];
|
||||
eMPLOYEENUMBER = json['EMPLOYEE_NUMBER'];
|
||||
eVENTDATE = json['EVENT_DATE'];
|
||||
lEAVETYPE = json['LEAVE_TYPE'];
|
||||
oRGANIZATIONID = json['ORGANIZATION_ID'];
|
||||
oRGANIZATIONNAME = json['ORGANIZATION_NAME'];
|
||||
pOSITIONTITLE = json['POSITION_TITLE'];
|
||||
rEPLACEMENTNAME = json['REPLACEMENT_NAME'];
|
||||
sTATUS = json['STATUS'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ABSENCE_ATTENDANCE_TYPE_NAME'] = this.aBSENCEATTENDANCETYPENAME;
|
||||
data['CALENDAR_ENTRY_DESC'] = this.cALENDARENTRYDESC;
|
||||
data['DATE_END'] = this.dATEEND;
|
||||
data['DATE_START'] = this.dATESTART;
|
||||
data['EMPLOYEE_IMAGE'] = this.eMPLOYEEIMAGE;
|
||||
data['EMPLOYEE_NAME'] = this.eMPLOYEENAME;
|
||||
data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER;
|
||||
data['EVENT_DATE'] = this.eVENTDATE;
|
||||
data['LEAVE_TYPE'] = this.lEAVETYPE;
|
||||
data['ORGANIZATION_ID'] = this.oRGANIZATIONID;
|
||||
data['ORGANIZATION_NAME'] = this.oRGANIZATIONNAME;
|
||||
data['POSITION_TITLE'] = this.pOSITIONTITLE;
|
||||
data['REPLACEMENT_NAME'] = this.rEPLACEMENTNAME;
|
||||
data['STATUS'] = this.sTATUS;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
import 'dart:ui';
|
||||
|
||||
class WorkListItemTypeModelData {
|
||||
late int value;
|
||||
late String name;
|
||||
late String fullName;
|
||||
late bool active;
|
||||
late List<Color> color;
|
||||
late String icon;
|
||||
late String key;
|
||||
late bool disable;
|
||||
|
||||
WorkListItemTypeModelData({required this.value, required this.name, required this.fullName, required this.active, required this.color, required this.icon, required this.key, required this.disable});
|
||||
|
||||
WorkListItemTypeModelData.fromJson(Map<String, dynamic> json) {
|
||||
value = json['value'];
|
||||
name = json['name'];
|
||||
fullName = json['fullName'];
|
||||
active = json['active'];
|
||||
color = json['color'];
|
||||
icon = json['icon'];
|
||||
key = json['key'];
|
||||
disable = json['disable'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['value'] = value;
|
||||
data['name'] = name;
|
||||
data['fullName'] = fullName;
|
||||
data['active'] = active;
|
||||
data['color'] = color;
|
||||
data['icon'] = icon;
|
||||
data['key'] = key;
|
||||
data['disable'] = disable;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,137 @@
|
||||
|
||||
class WorkListResponseModel {
|
||||
String? bEGINDATE;
|
||||
String? dUEDATE;
|
||||
String? eNDDATE;
|
||||
String? fROMROLE;
|
||||
int? fROMROWNUM;
|
||||
String? fROMUSER;
|
||||
String? fUNCTIONNAME;
|
||||
String? iTEMKEY;
|
||||
String? iTEMTYPE;
|
||||
String? iTEMTYPEDISPLAYNAME;
|
||||
String? lANGUAGE;
|
||||
String? mAILSTATUS;
|
||||
String? mOREINFOROLE;
|
||||
int? nOTIFICATIONID;
|
||||
String? nOTIFICATIONNAME;
|
||||
int? nOOFROWS;
|
||||
String? oRIGINALRECIPIENT;
|
||||
String? pONUMBER;
|
||||
int? pRIORITY;
|
||||
String? pRIORITYF;
|
||||
String? pRNUMBER;
|
||||
String? rECIPIENTROLE;
|
||||
String? rEQUESTNUMBER;
|
||||
String? rEQUESTTYPE;
|
||||
String? rESPONDER;
|
||||
int? rOWNUM;
|
||||
String? sELECTEDEMPLOYEENUMBER;
|
||||
String? sTATUS;
|
||||
String? sUBJECT;
|
||||
int? tOROWNUM;
|
||||
String? tOUSER;
|
||||
|
||||
WorkListResponseModel(
|
||||
{this.bEGINDATE,
|
||||
this.dUEDATE,
|
||||
this.eNDDATE,
|
||||
this.fROMROLE,
|
||||
this.fROMROWNUM,
|
||||
this.fROMUSER,
|
||||
this.fUNCTIONNAME,
|
||||
this.iTEMKEY,
|
||||
this.iTEMTYPE,
|
||||
this.iTEMTYPEDISPLAYNAME,
|
||||
this.lANGUAGE,
|
||||
this.mAILSTATUS,
|
||||
this.mOREINFOROLE,
|
||||
this.nOTIFICATIONID,
|
||||
this.nOTIFICATIONNAME,
|
||||
this.nOOFROWS,
|
||||
this.oRIGINALRECIPIENT,
|
||||
this.pONUMBER,
|
||||
this.pRIORITY,
|
||||
this.pRIORITYF,
|
||||
this.pRNUMBER,
|
||||
this.rECIPIENTROLE,
|
||||
this.rEQUESTNUMBER,
|
||||
this.rEQUESTTYPE,
|
||||
this.rESPONDER,
|
||||
this.rOWNUM,
|
||||
this.sELECTEDEMPLOYEENUMBER,
|
||||
this.sTATUS,
|
||||
this.sUBJECT,
|
||||
this.tOROWNUM,
|
||||
this.tOUSER});
|
||||
|
||||
WorkListResponseModel.fromJson(Map<String, dynamic> json) {
|
||||
bEGINDATE = json['BEGIN_DATE'];
|
||||
dUEDATE = json['DUE_DATE'];
|
||||
eNDDATE = json['END_DATE'];
|
||||
fROMROLE = json['FROM_ROLE'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
fROMUSER = json['FROM_USER'];
|
||||
fUNCTIONNAME = json['FUNCTION_NAME'];
|
||||
iTEMKEY = json['ITEM_KEY'];
|
||||
iTEMTYPE = json['ITEM_TYPE'];
|
||||
iTEMTYPEDISPLAYNAME = json['ITEM_TYPE_DISPLAY_NAME'];
|
||||
lANGUAGE = json['LANGUAGE'];
|
||||
mAILSTATUS = json['MAIL_STATUS'];
|
||||
mOREINFOROLE = json['MORE_INFO_ROLE'];
|
||||
nOTIFICATIONID = json['NOTIFICATION_ID'];
|
||||
nOTIFICATIONNAME = json['NOTIFICATION_NAME'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
oRIGINALRECIPIENT = json['ORIGINAL_RECIPIENT'];
|
||||
pONUMBER = json['PO_NUMBER'];
|
||||
pRIORITY = json['PRIORITY'];
|
||||
pRIORITYF = json['PRIORITY_F'];
|
||||
pRNUMBER = json['PR_NUMBER'];
|
||||
rECIPIENTROLE = json['RECIPIENT_ROLE'];
|
||||
rEQUESTNUMBER = json['REQUEST_NUMBER'];
|
||||
rEQUESTTYPE = json['REQUEST_TYPE'];
|
||||
rESPONDER = json['RESPONDER'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sELECTEDEMPLOYEENUMBER = json['SELECTED_EMPLOYEE_NUMBER'];
|
||||
sTATUS = json['STATUS'];
|
||||
sUBJECT = json['SUBJECT'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
tOUSER = json['TO_USER'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['BEGIN_DATE'] = this.bEGINDATE;
|
||||
data['DUE_DATE'] = this.dUEDATE;
|
||||
data['END_DATE'] = this.eNDDATE;
|
||||
data['FROM_ROLE'] = this.fROMROLE;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['FROM_USER'] = this.fROMUSER;
|
||||
data['FUNCTION_NAME'] = this.fUNCTIONNAME;
|
||||
data['ITEM_KEY'] = this.iTEMKEY;
|
||||
data['ITEM_TYPE'] = this.iTEMTYPE;
|
||||
data['ITEM_TYPE_DISPLAY_NAME'] = this.iTEMTYPEDISPLAYNAME;
|
||||
data['LANGUAGE'] = this.lANGUAGE;
|
||||
data['MAIL_STATUS'] = this.mAILSTATUS;
|
||||
data['MORE_INFO_ROLE'] = this.mOREINFOROLE;
|
||||
data['NOTIFICATION_ID'] = this.nOTIFICATIONID;
|
||||
data['NOTIFICATION_NAME'] = this.nOTIFICATIONNAME;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['ORIGINAL_RECIPIENT'] = this.oRIGINALRECIPIENT;
|
||||
data['PO_NUMBER'] = this.pONUMBER;
|
||||
data['PRIORITY'] = this.pRIORITY;
|
||||
data['PRIORITY_F'] = this.pRIORITYF;
|
||||
data['PR_NUMBER'] = this.pRNUMBER;
|
||||
data['RECIPIENT_ROLE'] = this.rECIPIENTROLE;
|
||||
data['REQUEST_NUMBER'] = this.rEQUESTNUMBER;
|
||||
data['REQUEST_TYPE'] = this.rEQUESTTYPE;
|
||||
data['RESPONDER'] = this.rESPONDER;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SELECTED_EMPLOYEE_NUMBER'] = this.sELECTEDEMPLOYEENUMBER;
|
||||
data['STATUS'] = this.sTATUS;
|
||||
data['SUBJECT'] = this.sUBJECT;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['TO_USER'] = this.tOUSER;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -1,26 +0,0 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
|
||||
AppBar appBar(BuildContext context, {required String title}) {
|
||||
return AppBar(
|
||||
title: title.toText24(color: MyColors.darkTextColor),
|
||||
centerTitle: false,
|
||||
automaticallyImplyLeading: false,
|
||||
backgroundColor: Colors.white,
|
||||
|
||||
actions: [
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
icon: Icon(
|
||||
Icons.close,
|
||||
color: MyColors.darkIconColor,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,182 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart';
|
||||
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
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_mo_Item_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_Item_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_quotation_analysis_list_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class ItemHistoryScreenParams {
|
||||
String? title;
|
||||
bool isItemHistory;
|
||||
bool isMO;
|
||||
int? pItemId;
|
||||
int? pPoHeaderId;
|
||||
int? pOrgId;
|
||||
|
||||
ItemHistoryScreenParams({@required this.title, this.isItemHistory = true, this.isMO = true, this.pItemId, this.pPoHeaderId, this.pOrgId});
|
||||
}
|
||||
|
||||
class ItemHistoryScreen extends StatefulWidget {
|
||||
ItemHistoryScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ItemHistoryScreenState createState() {
|
||||
return _ItemHistoryScreenState();
|
||||
}
|
||||
}
|
||||
|
||||
class _ItemHistoryScreenState extends State<ItemHistoryScreen> {
|
||||
ItemHistoryScreenParams? _screenParams;
|
||||
|
||||
List<GetMoItemHistoryList> moItemHistoryList = [];
|
||||
List<GetPoItemHistoryList> poItemHistoryList = [];
|
||||
List<GetQuotationAnalysisList> quotationAnalysisList = [];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void loadData() {
|
||||
if (_screenParams == null) {
|
||||
_screenParams = ModalRoute.of(context)!.settings.arguments as ItemHistoryScreenParams;
|
||||
getDataFromApi();
|
||||
}
|
||||
}
|
||||
|
||||
void getDataFromApi() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
if (_screenParams!.isItemHistory) {
|
||||
if (_screenParams!.isMO) {
|
||||
moItemHistoryList = await WorkListApiClient().getMoItemHistory(_screenParams!.pItemId!, _screenParams!.pOrgId!);
|
||||
} else {
|
||||
poItemHistoryList = await WorkListApiClient().getPoItemHistory(_screenParams!.pItemId!);
|
||||
}
|
||||
} else {
|
||||
quotationAnalysisList = await WorkListApiClient().getQuotationAnalysis(_screenParams!.pItemId!, _screenParams!.pPoHeaderId!);
|
||||
}
|
||||
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
loadData();
|
||||
return Scaffold(
|
||||
appBar: AppBarWidget(context, title: _screenParams?.title ?? ""),
|
||||
backgroundColor: Colors.white,
|
||||
body: ListView(
|
||||
padding: const EdgeInsets.all(21),
|
||||
physics: const BouncingScrollPhysics(),
|
||||
children: [
|
||||
if (moItemHistoryList.isNotEmpty) loadMoItemHistoryData(),
|
||||
if (poItemHistoryList.isNotEmpty) loadPoItemHistoryData(),
|
||||
if (quotationAnalysisList.isNotEmpty) loadQuotationAnalysisData()
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget loadMoItemHistoryData() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.requestNumber.tr(), moItemHistoryList[index].rEQUESTNUMBER ?? ""),
|
||||
ItemDetailView(LocaleKeys.uom.tr(), moItemHistoryList[index].uNITOFMEASURE ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantity.tr(), moItemHistoryList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.dateRequired.tr(), moItemHistoryList[index].dATEREQUIRED ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineStatus.tr(), moItemHistoryList[index].lINESTATUSDIS ?? ""),
|
||||
ItemDetailView(LocaleKeys.statusDate.tr(), moItemHistoryList[index].sTATUSDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.transactionType.tr(), moItemHistoryList[index].tRANSACTIONTYPENAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.organization.tr(), moItemHistoryList[index].oRGANIZATIONNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.operatingCode.tr(), moItemHistoryList[index].oRGANIZATIONCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.operatingUnit.tr(), moItemHistoryList[index].oPERATINGUNITNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromSubInventory.tr(), moItemHistoryList[index].fROMSUBINVENTORYCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromLocator.tr(), moItemHistoryList[index].fROMLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.toSubInventory.tr(), moItemHistoryList[index].tOSUBINVENTORYCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.toLocator.tr(), moItemHistoryList[index].tOLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.shipToLocation.tr(), moItemHistoryList[index].sHIPTOLOCATION ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: moItemHistoryList.length);
|
||||
}
|
||||
|
||||
Widget loadPoItemHistoryData() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.operatingUnit.tr(), poItemHistoryList[index].oUNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.poNumber.tr(), poItemHistoryList[index].pONUMBER ?? ""),
|
||||
ItemDetailView(LocaleKeys.revision.tr(), poItemHistoryList[index].rEVISIONNUM?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.creationDate.tr(), poItemHistoryList[index].cREATIONDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.supplier.tr(), poItemHistoryList[index].sUPPLIER ?? ""),
|
||||
ItemDetailView(LocaleKeys.buyer.tr(), poItemHistoryList[index].bUYER ?? ""),
|
||||
ItemDetailView(LocaleKeys.uom.tr(), poItemHistoryList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantityOrdered.tr(), poItemHistoryList[index].qUANTITYORDERED?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantityReceived.tr(), poItemHistoryList[index].qUANTITYRECEIVED?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.bonusQuantity.tr(), poItemHistoryList[index].bONUSQUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.purchasePrice.tr(), poItemHistoryList[index].pURCHASEPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.discountPer.tr(), poItemHistoryList[index].dISCOUNTPERCENTAGE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.balanceQuantity.tr(), poItemHistoryList[index].bALANCEQUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.netPrice.tr(), poItemHistoryList[index].nETPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.closureStatus.tr(), poItemHistoryList[index].cLOSEDCODE ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: poItemHistoryList.length);
|
||||
}
|
||||
|
||||
Widget loadQuotationAnalysisData() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.quotationNumber.tr(), quotationAnalysisList[index].qUOTNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.vendorName.tr(), quotationAnalysisList[index].vENDORNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.itemCode.tr(), quotationAnalysisList[index].iTEMCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.description.tr(), quotationAnalysisList[index].iTEMDESC ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationQty.tr(), quotationAnalysisList[index].qUOTQTY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationUOM.tr(), quotationAnalysisList[index].qUOTUOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationNetPrice.tr(), quotationAnalysisList[index].qUOTUNITPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationLineTotal.tr(), quotationAnalysisList[index].qUOTLINETOTAL?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationBonusQuantity.tr(), quotationAnalysisList[index].qUOTBONUSQTY ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationDeliveryDate.tr(), quotationAnalysisList[index].qUOTDELIVERYDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationMFGPartNumber.tr(), quotationAnalysisList[index].qUOTMFGPARTNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.rfqNumber.tr(), quotationAnalysisList[index].rFQNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.rfqQty.tr(), quotationAnalysisList[index].rFQQTY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.rfqUOM.tr(), quotationAnalysisList[index].rFQUOM ?? ""),
|
||||
],
|
||||
).objectContainerView(title: "${quotationAnalysisList[index].iTEMCODE}-${quotationAnalysisList[index].iTEMDESC}"),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: quotationAnalysisList.length);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
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/member_information_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class DetailFragment extends StatefulWidget {
|
||||
WorkListResponseModel? workListData;
|
||||
MemberInformationListModel? memberInformationListModel;
|
||||
|
||||
DetailFragment(this.workListData, this.memberInformationListModel);
|
||||
|
||||
@override
|
||||
State<DetailFragment> createState() => _DetailFragmentState();
|
||||
}
|
||||
|
||||
class _DetailFragmentState extends State<DetailFragment> {
|
||||
bool isOpened = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.from.tr(), widget.workListData!.fROMUSER ?? ""),
|
||||
ItemDetailView(LocaleKeys.to.tr(), widget.workListData!.tOUSER ?? ""),
|
||||
ItemDetailView(LocaleKeys.sent.tr(), widget.workListData!.bEGINDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.closed.tr(), widget.workListData!.eNDDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.id.tr(), widget.workListData!.nOTIFICATIONID?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.responder.tr(), widget.workListData!.rESPONDER ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
12.height,
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.employeeNumber.tr(), widget.memberInformationListModel!.eMPLOYEENUMBER ?? ""),
|
||||
ItemDetailView(LocaleKeys.employeeName.tr(),
|
||||
(AppState().isArabic(context) ? widget.memberInformationListModel!.eMPLOYEENAMEAr : widget.memberInformationListModel!.eMPLOYEENAMEEn) ?? ""),
|
||||
ItemDetailView(LocaleKeys.jobTitle.tr(), makePositionName(widget.memberInformationListModel!.pOSITIONNAME ?? "")),
|
||||
ItemDetailView(LocaleKeys.grade.tr(), widget.memberInformationListModel!.gRADENAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.jobCategory.tr(), makePositionName(widget.memberInformationListModel!.pOSITIONNAME ?? "")),
|
||||
ItemDetailView(LocaleKeys.category.tr(), widget.memberInformationListModel!.eMPLOYMENTCATEGORYMEANING ?? ""),
|
||||
ItemDetailView(LocaleKeys.employeeEmailAddress.tr(), widget.memberInformationListModel!.eMPLOYEEEMAILADDRESS ?? ""),
|
||||
ItemDetailView(LocaleKeys.payrollBranch.tr(), widget.memberInformationListModel!.pAYROLLNAME ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
],
|
||||
).paddingAll(21);
|
||||
}
|
||||
|
||||
String makePositionName(String job) {
|
||||
String jobName = "";
|
||||
List<String> list = job.split(".").toList();
|
||||
if (list.length > 1) {
|
||||
list.removeLast();
|
||||
jobName = list.join(" ");
|
||||
}
|
||||
return jobName;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,69 +1,180 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/classes/date_uitl.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
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_absence_collection_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_item_creation_ntf_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class InfoFragment extends StatelessWidget {
|
||||
WorkListResponseModel? workListData;
|
||||
List<POHeader> poHeaderList;
|
||||
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotifications;
|
||||
List<GetStampMsNotificationBodyList>? getStampMsNotifications;
|
||||
List<GetStampNsNotificationBodyList>? getStampNsNotifications;
|
||||
List<ItemCreationHeader> itemCreationHeader;
|
||||
|
||||
InfoFragment(
|
||||
{this.workListData,
|
||||
this.poHeaderList = const <POHeader>[],
|
||||
this.itemCreationHeader = const <ItemCreationHeader>[],
|
||||
this.getAbsenceCollectionNotifications,
|
||||
this.getStampMsNotifications,
|
||||
this.getStampNsNotifications});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
List<Widget> uiList = [
|
||||
if ((workListData?.iTEMTYPE ?? "") == "INVMOA")
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.from.tr(), workListData!.fROMUSER ?? ""),
|
||||
ItemDetailView(LocaleKeys.to.tr(), workListData!.tOUSER ?? ""),
|
||||
ItemDetailView(LocaleKeys.sent.tr(), workListData!.bEGINDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.closed.tr(), workListData!.eNDDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.id.tr(), workListData!.nOTIFICATIONID?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.responder.tr(), workListData!.rESPONDER ?? ""),
|
||||
ItemDetailView(LocaleKeys.subject.tr(), workListData!.sUBJECT ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
if ((getAbsenceCollectionNotifications?.length ?? 0) > 0) getAbsenceCollectionNotificationsListView(getAbsenceCollectionNotifications ?? []).objectContainerView(title: "Absence Notifications"),
|
||||
if (getStampMsNotifications?.isNotEmpty ?? false) getStampMsNotificationsListView(getStampMsNotifications ?? []).objectContainerView(title: "Stamp Notifications"),
|
||||
if (getStampNsNotifications?.isNotEmpty ?? false) getStampNsNotificationsListView(getStampNsNotifications ?? []).objectContainerView(title: "Stamp Notifications"),
|
||||
if (poHeaderList.isNotEmpty) getPoNotificationsListView(),
|
||||
if (itemCreationHeader.isNotEmpty) getItemCreationHeaderView()
|
||||
];
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: const Color(0xff000000).withOpacity(.05),
|
||||
blurRadius: 26,
|
||||
offset: const Offset(0, -3),
|
||||
),
|
||||
child: uiList.isEmpty
|
||||
? LocaleKeys.noDataAvailable.tr().toText16().center
|
||||
: ListView(
|
||||
padding: const EdgeInsets.all(21),
|
||||
children: uiList,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget getPoNotificationsListView() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.description.tr(), workListData!.fROMUSER ?? ""),
|
||||
ItemDetailView(LocaleKeys.from.tr(), workListData!.fROMUSER ?? ""),
|
||||
ItemDetailView(LocaleKeys.to.tr(), workListData!.tOUSER ?? ""),
|
||||
ItemDetailView(LocaleKeys.sent.tr(), workListData!.bEGINDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.closed.tr(), workListData!.eNDDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.id.tr(), workListData!.nOTIFICATIONID?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.supplier.tr(), poHeaderList[index].vENDORNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.site.tr(), poHeaderList[index].vENDORSITECODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.buyer.tr(), poHeaderList[index].bUYER ?? ""),
|
||||
ItemDetailView(LocaleKeys.preparer.tr(), poHeaderList[index].pREPARER ?? ""),
|
||||
ItemDetailView(LocaleKeys.creationDate.tr(), poHeaderList[index].cREATIONDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.shipToLocation.tr(), poHeaderList[index].sHIPTOLOCATIONNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationNumber.tr(), poHeaderList[index].qUOTATIONNUMBER ?? ""),
|
||||
ItemDetailView(LocaleKeys.quotationDate.tr(), poHeaderList[index].qUOTATIONDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.paymentTerms.tr(), poHeaderList[index].pAYMENTTERMS ?? ""),
|
||||
ItemDetailView(LocaleKeys.currency.tr(), poHeaderList[index].cURRENCYNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.grossAmount.tr(), poHeaderList[index].gROSSAMOUNT?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.discountAmount.tr(), poHeaderList[index].dISCOUNTAMOUNT?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.customDuty.tr(), poHeaderList[index].cUSTOMDUTY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.shipHandle.tr(), poHeaderList[index].sHIPHANDLE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.otherCharges.tr(), poHeaderList[index].oTHERCHARGES?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.totalPOAmountWithVAT.tr(), poHeaderList[index].qUOTATIONDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.totalPOAmountInWords.tr(), poHeaderList[index].tOTPOAMTWORD ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
separatorBuilder: (cxt, index) => 4.height,
|
||||
itemCount: poHeaderList.length);
|
||||
}
|
||||
|
||||
Widget getAbsenceCollectionNotificationsListView(List<GetAbsenceCollectionNotificationBodyList> list) {
|
||||
List<CollectionNotification> dataList = list.isEmpty ? [] : (list.first.collectionNotification ?? []);
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => ItemDetailView(dataList[index].sEGMENTPROMPT!, dataList[index].sEGMENTVALUEDSP!),
|
||||
separatorBuilder: (cxt, index) => 4.height,
|
||||
itemCount: dataList.length);
|
||||
}
|
||||
|
||||
Widget getStampMsNotificationsListView(List<GetStampMsNotificationBodyList> list) {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.employeeNumber.tr(), list[index].eMPLOYEENUMBER.toString()),
|
||||
ItemDetailView(LocaleKeys.assignmentNumber.tr(), list[index].aSSIGNMENTNUMBER.toString()),
|
||||
ItemDetailView(LocaleKeys.employeeName.tr(), list[index].eMPLOYEENAME.toString()),
|
||||
ItemDetailView(LocaleKeys.scheduleDate.tr(), DateUtil.formatDateToDate(DateUtil.convertStringToDate(list[index].sCHEDULEDATE.toString()), false)),
|
||||
ItemDetailView(LocaleKeys.shiftType.tr(), list[index].sHTTYPEDESC.toString()),
|
||||
ItemDetailView(LocaleKeys.shift.tr(), list[index].sHTNAME.toString()),
|
||||
ItemDetailView(LocaleKeys.breakText.tr(), list[index].bREAKNAME.toString()),
|
||||
ItemDetailView(LocaleKeys.actualSwipeStart.tr(), list[index].sHTACTUALSTARTTIME.toString()),
|
||||
ItemDetailView(LocaleKeys.actualSwipeEnd.tr(), list[index].sHTACTUALENDTIME.toString()),
|
||||
ItemDetailView(LocaleKeys.approvedSwipeStart.tr(), list[index].aPPROVEDSTARTTIME.toString()),
|
||||
ItemDetailView(LocaleKeys.approvedSwipeStartReason.tr(), list[index].aPPROVEDSTARTREASON.toString()),
|
||||
ItemDetailView(LocaleKeys.approvedSwipeEnd.tr(), ""),
|
||||
ItemDetailView(LocaleKeys.approvedSwipeEndReason.tr(), list[index].aPPROVEDENDREASONDESC.toString()),
|
||||
],
|
||||
),
|
||||
margin: EdgeInsets.all(21),
|
||||
padding: EdgeInsets.only(top: 21, bottom: 21, right: 16, left: 16),
|
||||
child: Column(
|
||||
separatorBuilder: (cxt, index) => 18.height,
|
||||
itemCount: list.length);
|
||||
}
|
||||
|
||||
Widget getStampNsNotificationsListView(List<GetStampNsNotificationBodyList> list) {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: "Info Details".toText16(),
|
||||
),
|
||||
// Icon(Icons.keyboard_arrow_down_rounded),
|
||||
],
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
12.height,
|
||||
showItem("From:", "Alma Linde Mendoza"),
|
||||
showItem("To:", "Al Yabis, Norah"),
|
||||
showItem("Sent:", "1/26/2020 10:41:07 AM"),
|
||||
showItem("ID:", "30581045"),
|
||||
showItem("Closed:", "-"),
|
||||
],
|
||||
),
|
||||
ItemDetailView(LocaleKeys.employeeNumber.tr(), list[index].eMPLOYEENUMBER.toString()),
|
||||
ItemDetailView(LocaleKeys.assignmentNumber.tr(), list[index].aSSIGNMENTNUMBER.toString()),
|
||||
ItemDetailView(LocaleKeys.employeeName.tr(), list[index].eMPLOYEENAME.toString()),
|
||||
ItemDetailView(LocaleKeys.scheduleDate.tr(), DateUtil.formatDateToDate(DateUtil.convertStringToDate(list[index].sCHEDULEDATE.toString()), false)),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
separatorBuilder: (cxt, index) => 18.height,
|
||||
itemCount: list.length);
|
||||
}
|
||||
|
||||
Widget showItem(String title, String value) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 2, bottom: 2),
|
||||
child: Row(
|
||||
children: [
|
||||
title.toText12(isBold: true),
|
||||
6.width,
|
||||
title.toText12(isBold: false, color: MyColors.normalTextColor),
|
||||
],
|
||||
),
|
||||
);
|
||||
Widget getItemCreationHeaderView() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.operatingUnit.tr(), itemCreationHeader[index].oPERATINGUNIT?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.category.tr(), itemCreationHeader[index].cATEGORY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.requester.tr(), itemCreationHeader[index].rEQUESTER?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.analyzedBy.tr(), itemCreationHeader[index].aNALYZEDBY.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.approvedDate.tr(), itemCreationHeader[index].aPPROVEDDATE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.itemType.tr(), itemCreationHeader[index].iTEMTYPE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.relatedTo.tr(), itemCreationHeader[index].rELATEDTO?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.requestDate.tr(), DateUtil.formatDateToDate(DateUtil.convertStringToDate(itemCreationHeader[index].rEQUESTDATE.toString()), false) ?? ""),
|
||||
ItemDetailView(LocaleKeys.analyzedDate.tr(), itemCreationHeader[index].aNALYZEDDATE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.urgent.tr(), itemCreationHeader[index].uRGENTFLAGDISP.toString() ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
separatorBuilder: (cxt, index) => 18.height,
|
||||
itemCount: itemCreationHeader.length);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,87 +1,159 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/config/routes.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
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_item_creation_ntf_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_mo_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/ui/work_list/item_history_screen.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class RequestFragment extends StatefulWidget {
|
||||
@override
|
||||
State<RequestFragment> createState() => _RequestFragmentState();
|
||||
}
|
||||
class RequestFragment extends StatelessWidget {
|
||||
final List<GetMoNotificationBodyList> moNotificationBodyList;
|
||||
final List<ItemCreationLines> itemCreationLines;
|
||||
final List<POLines> poLinesList;
|
||||
|
||||
class _RequestFragmentState extends State<RequestFragment> {
|
||||
bool isOpened = false;
|
||||
RequestFragment({
|
||||
Key? key,
|
||||
this.moNotificationBodyList = const <GetMoNotificationBodyList>[],
|
||||
this.itemCreationLines = const <ItemCreationLines>[],
|
||||
this.poLinesList = const <POLines>[],
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: const Color(0xff000000).withOpacity(.05),
|
||||
blurRadius: 26,
|
||||
offset: const Offset(0, -3),
|
||||
),
|
||||
],
|
||||
),
|
||||
margin: EdgeInsets.all(21),
|
||||
padding: EdgeInsets.only(top: 21, bottom: 21, right: 16, left: 16),
|
||||
child: Column(
|
||||
return ListView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
padding: const EdgeInsets.all(21),
|
||||
children: [
|
||||
if (moNotificationBodyList.isNotEmpty) moNotificationDataView(),
|
||||
if (poLinesList.isNotEmpty) poLinesDataView(),
|
||||
if (itemCreationLines.isNotEmpty) itemCreationLinesView(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget poLinesDataView() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.code.tr(), poLinesList[index].iTEMCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.mfg.tr(), poLinesList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineType.tr(), poLinesList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.unit.tr(), poLinesList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.price.tr(), poLinesList[index].uNITPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineAmount.tr(), poLinesList[index].lINEAMOUNT?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantity.tr(), poLinesList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineDiscount.tr(), poLinesList[index].lINEDISCPERCENTAGE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.needByDate.tr(), poLinesList[index].nEEDBYDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.promisedDate.tr(), poLinesList[index].pROMISEDDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.deliverToLocation.tr(), poLinesList[index].dELIVERTOLOCATION ?? ""),
|
||||
ItemDetailView(LocaleKeys.requisitionNumber.tr(), poLinesList[index].rEQUESTOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.requester.tr(), poLinesList[index].pRNUM ?? ""),
|
||||
12.height,
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: "Hardware Mobility 161 Messenger".toText16(),
|
||||
),
|
||||
Icon(Icons.keyboard_arrow_down_rounded),
|
||||
],
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
12.height,
|
||||
showItem("Code:", "3188000067"),
|
||||
showItem("Quantity:", "1"),
|
||||
showItem("Line Status:", "Pending Approval"),
|
||||
showItem("Transection Type:", "Move Order Issue:"),
|
||||
showItem("Organization Code:", "SWD"),
|
||||
showItem("From Subinventory:", "SWD_MSPS"),
|
||||
showItem("To Subinventory:", "SWD_MSPS"),
|
||||
showItem("Ship To Location :",
|
||||
"SWD 11206-E.R. (Emergency Room)"),
|
||||
showItem("Unit:", "Each"),
|
||||
showItem("Date Required:", "12/23/2019 4:54:04 PM"),
|
||||
showItem("Status Date:", "12/23/2019 4:54:04 PM"),
|
||||
showItem("Operation Unit:", "Sehat Al Sewedi"),
|
||||
showItem("Organization:", "Sehat Al Sewedi"),
|
||||
showItem("From Locator:", "-"),
|
||||
showItem("To Locator :", "-"),
|
||||
DefaultButton(LocaleKeys.itemHistory.tr(), () {
|
||||
Navigator.pushNamed(
|
||||
cxt,
|
||||
AppRoutes.itemHistory,
|
||||
arguments: ItemHistoryScreenParams(title: LocaleKeys.itemHistory.tr(), isMO: false, pItemId: poLinesList[index].iTEMID),
|
||||
);
|
||||
}).expanded,
|
||||
12.width,
|
||||
DefaultButton(LocaleKeys.quotationAnalysis.tr(), () {
|
||||
Navigator.pushNamed(
|
||||
cxt,
|
||||
AppRoutes.itemHistory,
|
||||
arguments: ItemHistoryScreenParams(
|
||||
isItemHistory: false, isMO: false, title: LocaleKeys.quotationAnalysis.tr(), pItemId: poLinesList[index].iTEMID, pPoHeaderId: poLinesList[index].pOHEADERID),
|
||||
);
|
||||
}).expanded,
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
).objectContainerView(title: poLinesList[index].iTEMDESCRIPTION!),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: poLinesList.length);
|
||||
}
|
||||
|
||||
Widget showItem(String title, String value) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 2, bottom: 2),
|
||||
child: Row(
|
||||
children: [
|
||||
title.toText12(isBold: true),
|
||||
6.width,
|
||||
title.toText12(isBold: false, color: MyColors.normalTextColor),
|
||||
],
|
||||
),
|
||||
);
|
||||
Widget moNotificationDataView() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.code.tr(), moNotificationBodyList[index].iTEMCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.unit.tr(), moNotificationBodyList[index].uOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.quantity.tr(), moNotificationBodyList[index].qUANTITY?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.dateRequired.tr(), moNotificationBodyList[index].dATEREQUIRED ?? ""),
|
||||
ItemDetailView(LocaleKeys.lineStatus.tr(), moNotificationBodyList[index].lINESTATUS ?? ""),
|
||||
ItemDetailView(LocaleKeys.statusDate.tr(), moNotificationBodyList[index].sTATUSDATE ?? ""),
|
||||
ItemDetailView(LocaleKeys.transactionType.tr(), moNotificationBodyList[index].tRANSACTIONTYPENAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.operatingUnit.tr(), moNotificationBodyList[index].oPERATINGUNIT ?? ""),
|
||||
ItemDetailView(LocaleKeys.organizationCode.tr(), moNotificationBodyList[index].oRGANIZATIONCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.organization.tr(), moNotificationBodyList[index].oRGANIZATIONNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromSubInventory.tr(), moNotificationBodyList[index].fROMSUBINVENTORY ?? ""),
|
||||
ItemDetailView(LocaleKeys.fromLocator.tr(), moNotificationBodyList[index].fROMLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.toSubInventory.tr(), moNotificationBodyList[index].tOSUBINVENTORY ?? ""),
|
||||
ItemDetailView(LocaleKeys.toLocator.tr(), moNotificationBodyList[index].tOLOCATOR ?? ""),
|
||||
ItemDetailView(LocaleKeys.shipToLocator.tr(), moNotificationBodyList[index].sHIPTOLOCATION ?? ""),
|
||||
12.height,
|
||||
DefaultButton(LocaleKeys.itemHistory.tr(), () {
|
||||
Navigator.pushNamed(
|
||||
cxt,
|
||||
AppRoutes.itemHistory,
|
||||
arguments: ItemHistoryScreenParams(title: LocaleKeys.itemHistory.tr(), pItemId: moNotificationBodyList[index].iTEMID, pOrgId: moNotificationBodyList[index].oRGID),
|
||||
);
|
||||
})
|
||||
],
|
||||
).objectContainerView(title: moNotificationBodyList[index].dESCRIPTION ?? ""),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: moNotificationBodyList.length);
|
||||
}
|
||||
|
||||
Widget itemCreationLinesView() {
|
||||
return ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.productName.tr(), itemCreationLines[index].pRODUCTNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.productDescription.tr(), itemCreationLines[index].pRODUCTDESCRIPTION ?? ""),
|
||||
ItemDetailView(LocaleKeys.unitPrice.tr(), itemCreationLines[index].uNITPRICE?.toString() ?? ""),
|
||||
ItemDetailView(LocaleKeys.manufacturerName.tr(), itemCreationLines[index].uSERMANUFACTURERNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.manufacturerPartName.tr(), itemCreationLines[index].uSERMFGPARTNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.supplierName.tr(), itemCreationLines[index].sUPPLIERNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.supplierContact.tr(), itemCreationLines[index].sUPPLIERCONTACT ?? ""),
|
||||
ItemDetailView(LocaleKeys.chargeToPatient.tr(), itemCreationLines[index].cHARGETOPATIENT ?? ""),
|
||||
ItemDetailView(LocaleKeys.justification.tr(), itemCreationLines[index].jUSTIFICATION ?? ""),
|
||||
ItemDetailView(LocaleKeys.itemCode.tr(), itemCreationLines[index].iTEMCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.itemDescription.tr(), itemCreationLines[index].iTEMDESCRIPTION ?? ""),
|
||||
ItemDetailView(LocaleKeys.groupCode.tr(), itemCreationLines[index].iTEMGROUPCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.groupDescription.tr(), itemCreationLines[index].iTEMGROUP ?? ""),
|
||||
ItemDetailView(LocaleKeys.subgroupCode.tr(), itemCreationLines[index].iTEMSUBGROUPCODE ?? ""),
|
||||
ItemDetailView(LocaleKeys.subgroupDescription.tr(), itemCreationLines[index].iTEMSUBGROUP ?? ""),
|
||||
ItemDetailView(LocaleKeys.primaryUOM.tr(), itemCreationLines[index].pRIMARYUOM ?? ""),
|
||||
ItemDetailView(LocaleKeys.manufacturerName.tr(), itemCreationLines[index].sTANDARDMANUFACTURERNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.manufacturerPartName.tr(), itemCreationLines[index].sTANDARDMFGPARTNUM ?? ""),
|
||||
ItemDetailView(LocaleKeys.templateName.tr(), itemCreationLines[index].tEMPLATENAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.itemCreationStatus.tr(), itemCreationLines[index].iTEMCREATIONSTATUS ?? ""),
|
||||
ItemDetailView(LocaleKeys.standardizationApprovalStatus.tr(), itemCreationLines[index].sTANDARDSTATUS ?? ""),
|
||||
ItemDetailView(LocaleKeys.standardizationApprovalRejectionReason.tr(), itemCreationLines[index].sTANDARDREJECTREASON ?? ""),
|
||||
],
|
||||
).objectContainerView(title: itemCreationLines[index].iTEMDESCRIPTION!),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: itemCreationLines.length);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,98 +1,442 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart';
|
||||
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/ui/app_bar.dart';
|
||||
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
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/generic_response_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_attachement_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_item_creation_ntf_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_mo_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_notification_buttons_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_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_response_model.dart';
|
||||
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/actions_fragment.dart';
|
||||
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/attachments_fragment.dart';
|
||||
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/detail_fragment.dart';
|
||||
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/info_fragments.dart';
|
||||
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/request_fragment.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/widgets/dialogs/accept_reject_input_dialog.dart';
|
||||
|
||||
class MissingSwipeScreen extends StatefulWidget {
|
||||
MissingSwipeScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_MissingSwipeScreenState createState() {
|
||||
return _MissingSwipeScreenState();
|
||||
}
|
||||
}
|
||||
|
||||
class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
|
||||
int tabIndex = 0;
|
||||
PageController controller = PageController();
|
||||
bool showFabOptions = false;
|
||||
|
||||
WorkListResponseModel? workListData;
|
||||
MemberInformationListModel? memberInformationListModel;
|
||||
List<GetNotificationButtonsList> notificationButtonsList = [];
|
||||
List<GetActionHistoryList> actionHistoryList = [];
|
||||
List<GetAttachementList> getAttachmentList = [];
|
||||
List<GetStampMsNotificationBodyList> getStampMsNotifications = [];
|
||||
List<GetStampNsNotificationBodyList> getStampNsNotifications = [];
|
||||
List<GetMoNotificationBodyList> getMoNotificationBodyList = [];
|
||||
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotifications;
|
||||
List<NotificationGetRespondAttributesList> getNotificationRespondAttributes = [];
|
||||
NotificationGetRespondAttributesList? notificationNoteInput;
|
||||
|
||||
GenericResponseModel? getBasicNTFBody;
|
||||
GenericResponseModel? getICBody;
|
||||
GenericResponseModel? subordinatesLeavesModel;
|
||||
GetPoNotificationBodyList? getPoNotificationBody;
|
||||
GetItemCreationNtfBodyList? getItemCreationNtfBody;
|
||||
|
||||
bool isCloseAvailable = false;
|
||||
bool isApproveAvailable = false;
|
||||
bool isRejectAvailable = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void getData() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
if (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") {
|
||||
memberInformationListModel = await WorkListApiClient().getUserInformation(-999, workListData!.sELECTEDEMPLOYEENUMBER!);
|
||||
}
|
||||
if (workListData!.iTEMTYPE == "HRSSA") {
|
||||
getBasicNTFBody = await WorkListApiClient().getBasicDetNTFBody(workListData!.nOTIFICATIONID!, -999);
|
||||
getAbsenceCollectionNotifications = await WorkListApiClient().getAbsenceNotificationBody(workListData!.nOTIFICATIONID!, -999);
|
||||
subordinatesLeavesModel = await WorkListApiClient().getSubordinatesLeaves("", "");
|
||||
}
|
||||
if (workListData!.iTEMTYPE == "STAMP") {
|
||||
if (workListData!.rEQUESTTYPE == "STAMP_MS") {
|
||||
getStampMsNotifications = await WorkListApiClient().getStampMsNotificationBody(workListData!.nOTIFICATIONID!, -999);
|
||||
} else {
|
||||
getStampNsNotifications = await WorkListApiClient().getStampNsNotificationBody(workListData!.nOTIFICATIONID!, -999);
|
||||
}
|
||||
}
|
||||
if (workListData!.iTEMTYPE == "INVMOA") {
|
||||
getMoNotificationBodyList = await WorkListApiClient().getMoNotificationBody(workListData!.nOTIFICATIONID!, -999);
|
||||
}
|
||||
if (workListData!.iTEMTYPE == "INVITEM") {
|
||||
getItemCreationNtfBody = await WorkListApiClient().getItemCreationNtfBody(workListData!.nOTIFICATIONID!, -999);
|
||||
}
|
||||
if (workListData!.iTEMTYPE == "POAPPRV") {
|
||||
getPoNotificationBody = await WorkListApiClient().getPoNotificationBody(workListData!.nOTIFICATIONID!, -999);
|
||||
}
|
||||
getNotificationRespondAttributes = await WorkListApiClient().notificationGetRespondAttributes(workListData!.nOTIFICATIONID!);
|
||||
if (getNotificationRespondAttributes.isNotEmpty) {
|
||||
notificationNoteInput = getNotificationRespondAttributes.first;
|
||||
}
|
||||
notificationButtonsList = await WorkListApiClient().getNotificationButtons(workListData!.nOTIFICATIONID!);
|
||||
actionHistoryList = await WorkListApiClient().getActionHistory(workListData!.nOTIFICATIONID!);
|
||||
getAttachmentList = await WorkListApiClient().getAttachments(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");
|
||||
}
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
void getDataFromState() {
|
||||
if (workListData == null) {
|
||||
workListData = AppState().workList![AppState().workListIndex!]; // ModalRoute.of(context)!.settings.arguments as WorkListResponseModel;
|
||||
getData();
|
||||
}
|
||||
}
|
||||
|
||||
class MissingSwipeScreen extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return DefaultTabController(
|
||||
length: 4,
|
||||
child: Scaffold(
|
||||
appBar: appBar(context, title: "Missing Swipe Request"),
|
||||
body: Container(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
child: Column(
|
||||
getDataFromState();
|
||||
|
||||
return Scaffold(
|
||||
appBar: AppBarWidget(context, title: LocaleKeys.details.tr()),
|
||||
backgroundColor: Colors.white,
|
||||
body: Stack(
|
||||
children: [
|
||||
Column(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(20), bottomRight: Radius.circular(20)),
|
||||
gradient: LinearGradient(transform: GradientRotation(.46), begin: Alignment.topRight, end: Alignment.bottomRight, colors: [
|
||||
MyColors.gradiantEndColor,
|
||||
MyColors.gradiantStartColor,
|
||||
]),
|
||||
),
|
||||
clipBehavior: Clip.antiAlias,
|
||||
child: TabBar(
|
||||
indicatorColor: Colors.white,
|
||||
labelColor: Colors.white,
|
||||
tabs: [
|
||||
Tab(
|
||||
text: "Request",
|
||||
),
|
||||
Tab(
|
||||
text: "Actions",
|
||||
),
|
||||
Tab(
|
||||
text: "Attachments",
|
||||
),
|
||||
Tab(
|
||||
text: "Info.",
|
||||
),
|
||||
],
|
||||
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,
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
child: Row(
|
||||
children: [
|
||||
RequestFragment(),
|
||||
ActionsFragment(),
|
||||
AttachmentsFragment(),
|
||||
InfoFragment(),
|
||||
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),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
height: 60,
|
||||
padding: EdgeInsets.only(left: 21, right: 21),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: DefaultButton(
|
||||
"Reject",
|
||||
() {},
|
||||
colors: [
|
||||
Color(0xffEB8C90),
|
||||
Color(0xffDE6C70),
|
||||
],
|
||||
),
|
||||
),
|
||||
12.width,
|
||||
Expanded(
|
||||
child: DefaultButton(
|
||||
"Approve",
|
||||
() {},
|
||||
colors: [
|
||||
Color(0xff32D892),
|
||||
Color(0xff1AB170),
|
||||
],
|
||||
PageView(
|
||||
controller: controller,
|
||||
onPageChanged: (pageIndex) {
|
||||
setState(() {
|
||||
tabIndex = pageIndex;
|
||||
});
|
||||
},
|
||||
children: [
|
||||
InfoFragment(
|
||||
poHeaderList: getPoNotificationBody?.pOHeader ?? [],
|
||||
workListData: workListData,
|
||||
getAbsenceCollectionNotifications: getAbsenceCollectionNotifications,
|
||||
itemCreationHeader: getItemCreationNtfBody?.itemCreationHeader ?? [],
|
||||
getStampMsNotifications: getStampMsNotifications),
|
||||
(workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP")
|
||||
? DetailFragment(workListData, memberInformationListModel)
|
||||
: RequestFragment(
|
||||
moNotificationBodyList: getMoNotificationBodyList,
|
||||
poLinesList: getPoNotificationBody?.pOLines ?? [],
|
||||
itemCreationLines: getItemCreationNtfBody?.itemCreationLines ?? [],
|
||||
),
|
||||
ActionsFragment(actionHistoryList),
|
||||
AttachmentsFragment(getAttachmentList),
|
||||
],
|
||||
).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("Skip", "assets/images/skip.svg").onPress(() {
|
||||
if (AppState().workList!.length - 1 > AppState().workListIndex!) {
|
||||
AppState().setWorkListIndex = AppState().workListIndex! + 1;
|
||||
workListData = null;
|
||||
showFabOptions = false;
|
||||
getDataFromState();
|
||||
} else if (AppState().workList!.length - 1 == AppState().workListIndex!) {
|
||||
Navigator.pop(context);
|
||||
}
|
||||
}),
|
||||
12.height,
|
||||
...viewApiButtonsList(notificationButtonsList),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
).onPress(() {
|
||||
setState(() {
|
||||
showFabOptions = false;
|
||||
});
|
||||
}),
|
||||
),
|
||||
],
|
||||
),
|
||||
floatingActionButton: (!isApproveAvailable && !isRejectAvailable && !isCloseAvailable)
|
||||
? 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;
|
||||
});
|
||||
})
|
||||
: null,
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> viewApiButtonsList(List<GetNotificationButtonsList> notificationButtonsList) {
|
||||
List<Widget> fabs = [];
|
||||
for (int i = 0; i < notificationButtonsList.length; i++) {
|
||||
if (notificationButtonsList[i].bUTTONACTION! == "REJECTED" || notificationButtonsList[i].bUTTONACTION! == "APPROVED" || notificationButtonsList[i].bUTTONACTION! == "CLOSE") {
|
||||
continue;
|
||||
}
|
||||
fabs.add(myFab(notificationButtonsList[i].bUTTONLABEL!, notificationButtonsList[i].bUTTONICON ?? "", isIconAsset: false)
|
||||
.paddingOnly(bottom: 12)
|
||||
.onPress(() => handleFabAction(notificationButtonsList[i])));
|
||||
}
|
||||
return fabs;
|
||||
}
|
||||
|
||||
void handleFabAction(GetNotificationButtonsList notificationButton) {
|
||||
switch (notificationButton.bUTTONACTION) {
|
||||
case "DELEGATE":
|
||||
// do something
|
||||
break;
|
||||
case "REQUEST_INFO":
|
||||
// do something else
|
||||
break;
|
||||
case "RFC":
|
||||
// do something else
|
||||
break;
|
||||
case "UPDATE_ACTION":
|
||||
// do something else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Widget myTab(String title, int index) {
|
||||
bool isSelected = (index == tabIndex);
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
title.toText12(color: isSelected ? Colors.white : Colors.white.withOpacity(.74), isCenter: true),
|
||||
4.height,
|
||||
Container(
|
||||
height: 8,
|
||||
width: 8,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: isSelected ? Colors.white : Colors.transparent,
|
||||
),
|
||||
).onPress(() {
|
||||
setState(() {
|
||||
showFabOptions = true;
|
||||
});
|
||||
})
|
||||
],
|
||||
).onPress(() {
|
||||
controller.jumpToPage(index);
|
||||
}).expanded;
|
||||
}
|
||||
|
||||
Widget myFab(String title, String icon, {bool isIconAsset = true}) {
|
||||
return Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
title.toText16(),
|
||||
14.width,
|
||||
Container(
|
||||
height: 43,
|
||||
width: 43,
|
||||
padding: const EdgeInsets.all(12),
|
||||
decoration: const BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
gradient: LinearGradient(
|
||||
transform: GradientRotation(.46),
|
||||
begin: Alignment.topRight,
|
||||
end: Alignment.bottomLeft,
|
||||
colors: [
|
||||
MyColors.gradiantEndColor,
|
||||
MyColors.gradiantStartColor,
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
child: isIconAsset
|
||||
? SvgPicture.asset(icon)
|
||||
: Image.memory(
|
||||
base64Decode(icon),
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
void performAction(String actionMode) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (cxt) => AcceptRejectInputDialog(
|
||||
message: LocaleKeys.requestedItems.tr(),
|
||||
notificationGetRespond: notificationNoteInput,
|
||||
onTap: (note) {
|
||||
Map<String, dynamic> payload = {
|
||||
"P_ACTION_MODE": actionMode,
|
||||
"P_APPROVER_INDEX": null,
|
||||
"P_COMMENTS": "",
|
||||
"P_FORWARD_TO_USER_NAME": "",
|
||||
"P_NOTIFICATION_ID": workListData!.nOTIFICATIONID!,
|
||||
"RespondAttributeList": [
|
||||
if (notificationNoteInput != null) {notificationNoteInput!.attributeName: note}
|
||||
],
|
||||
};
|
||||
|
||||
performNotificationAction(payload);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void performNotificationAction(Map<String, dynamic> payload) async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
GenericResponseModel model = await WorkListApiClient().postNotificationActions(payload);
|
||||
Utils.hideLoading(context);
|
||||
Utils.showToast(LocaleKeys.yourChangeHasBeenSavedSuccessfully.tr());
|
||||
Navigator.pop(context, true);
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
|
||||
AppBar AppBarWidget(BuildContext context, {required String title, bool showHomeButton = false}) {
|
||||
return AppBar(
|
||||
leadingWidth: 0,
|
||||
// leading: GestureDetector(
|
||||
// behavior: HitTestBehavior.opaque,
|
||||
// onTap: Feedback.wrapForTap(() => Navigator.maybePop(context), context),
|
||||
// child: const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor),
|
||||
// ),
|
||||
//titleSpacing: -1.44,
|
||||
title: Row(
|
||||
children: [
|
||||
GestureDetector(
|
||||
behavior: HitTestBehavior.opaque,
|
||||
onTap: Feedback.wrapForTap(() => Navigator.maybePop(context), context),
|
||||
child: const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor),
|
||||
),
|
||||
4.width,
|
||||
title.toText24(color: MyColors.darkTextColor, isBold: true, considerHeight: false).expanded,
|
||||
],
|
||||
),
|
||||
centerTitle: false,
|
||||
elevation: 0,
|
||||
backgroundColor: Colors.white,
|
||||
actions: [
|
||||
if (showHomeButton)
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
// Navigator.pushAndRemoveUntil(
|
||||
// context,
|
||||
// MaterialPageRoute(builder: (context) => LandingPage()),
|
||||
// (Route<dynamic> route) => false,
|
||||
// );
|
||||
},
|
||||
icon: const Icon(Icons.home, color: MyColors.darkIconColor),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
@ -0,0 +1,103 @@
|
||||
import 'package:easy_localization/src/public_ext.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
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/notification_get_respond_attributes_list_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
import 'package:mohem_flutter_app/widgets/input_widget.dart';
|
||||
|
||||
class AcceptRejectInputDialog extends StatelessWidget {
|
||||
final String? title;
|
||||
final String? message;
|
||||
final String? okTitle;
|
||||
final NotificationGetRespondAttributesList? notificationGetRespond;
|
||||
final Function(String) onTap;
|
||||
|
||||
AcceptRejectInputDialog({Key? key, this.title, @required this.message, this.okTitle, required this.onTap, this.notificationGetRespond}) : super(key: key);
|
||||
|
||||
String note = "";
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Dialog(
|
||||
backgroundColor: Colors.white,
|
||||
shape: const RoundedRectangleBorder(),
|
||||
insetPadding: const EdgeInsets.only(left: 21, right: 21),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 20, right: 20, top: 18, bottom: 28),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(top: 16.0),
|
||||
child: Text(
|
||||
title ?? LocaleKeys.confirm.tr(),
|
||||
style: const TextStyle(fontSize: 24, fontWeight: FontWeight.w600, color: Color(0xff2B353E), height: 35 / 24, letterSpacing: -0.96),
|
||||
),
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
padding: EdgeInsets.zero,
|
||||
icon: const Icon(Icons.close),
|
||||
color: const Color(0xff2B353E),
|
||||
constraints: const BoxConstraints(),
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
)
|
||||
],
|
||||
),
|
||||
Text(
|
||||
message ?? "",
|
||||
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff808080), letterSpacing: -0.48),
|
||||
),
|
||||
if (notificationGetRespond != null) ...[
|
||||
14.height,
|
||||
InputWidget(
|
||||
"Enter a Note",
|
||||
notificationGetRespond!.attributeDisplayName!,
|
||||
TextEditingController(),
|
||||
isBackgroundEnable: true,
|
||||
lines: 3,
|
||||
onChange: (String note) {
|
||||
this.note = note;
|
||||
},
|
||||
),
|
||||
],
|
||||
28.height,
|
||||
Row(
|
||||
children: [
|
||||
DefaultButton(
|
||||
LocaleKeys.cancel.tr(),
|
||||
() => Navigator.pop(context),
|
||||
colors: const [MyColors.lightGreyEAColor, MyColors.lightGreyEAColor],
|
||||
textColor: MyColors.darkTextColor,
|
||||
).expanded,
|
||||
10.width,
|
||||
DefaultButton(
|
||||
LocaleKeys.ok.tr(),
|
||||
() {
|
||||
Navigator.pop(context);
|
||||
onTap(note);
|
||||
},
|
||||
colors: const [
|
||||
Color(0xff28C884),
|
||||
Color(0xff1BB271),
|
||||
],
|
||||
).expanded,
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
|
||||
class ItemDetailView extends StatelessWidget {
|
||||
final String title;
|
||||
final String value;
|
||||
const ItemDetailView(this.title, this.value, {Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
"$title:".toText12(isBold: true, color: const Color(0xff2D3238)),
|
||||
6.width,
|
||||
(value.isEmpty ? "--" : value).toText12(color: MyColors.normalTextColor).expanded,
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue