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:flutter/material.dart';
|
||||||
import 'package:mohem_flutter_app/classes/colors.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/int_extensions.dart';
|
||||||
import 'package:mohem_flutter_app/extensions/string_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 {
|
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
|
@override
|
||||||
Widget build(BuildContext context) {
|
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(
|
return Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: double.infinity,
|
height: double.infinity,
|
||||||
child: Column(
|
child: uiList.isEmpty
|
||||||
children: [
|
? LocaleKeys.noDataAvailable.tr().toText16().center
|
||||||
Container(
|
: ListView(
|
||||||
width: double.infinity,
|
padding: const EdgeInsets.all(21),
|
||||||
decoration: BoxDecoration(
|
children: uiList,
|
||||||
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),
|
Widget getPoNotificationsListView() {
|
||||||
child: Column(
|
return ListView.separated(
|
||||||
children: [
|
shrinkWrap: true,
|
||||||
Row(
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
itemBuilder: (cxt, index) => Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
ItemDetailView(LocaleKeys.description.tr(), workListData!.fROMUSER ?? ""),
|
||||||
child: "Info Details".toText16(),
|
ItemDetailView(LocaleKeys.from.tr(), workListData!.fROMUSER ?? ""),
|
||||||
),
|
ItemDetailView(LocaleKeys.to.tr(), workListData!.tOUSER ?? ""),
|
||||||
// Icon(Icons.keyboard_arrow_down_rounded),
|
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(),
|
||||||
Column(
|
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: [
|
children: [
|
||||||
12.height,
|
ItemDetailView(LocaleKeys.employeeNumber.tr(), list[index].eMPLOYEENUMBER.toString()),
|
||||||
showItem("From:", "Alma Linde Mendoza"),
|
ItemDetailView(LocaleKeys.assignmentNumber.tr(), list[index].aSSIGNMENTNUMBER.toString()),
|
||||||
showItem("To:", "Al Yabis, Norah"),
|
ItemDetailView(LocaleKeys.employeeName.tr(), list[index].eMPLOYEENAME.toString()),
|
||||||
showItem("Sent:", "1/26/2020 10:41:07 AM"),
|
ItemDetailView(LocaleKeys.scheduleDate.tr(), DateUtil.formatDateToDate(DateUtil.convertStringToDate(list[index].sCHEDULEDATE.toString()), false)),
|
||||||
showItem("ID:", "30581045"),
|
ItemDetailView(LocaleKeys.shiftType.tr(), list[index].sHTTYPEDESC.toString()),
|
||||||
showItem("Closed:", "-"),
|
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()),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
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: [
|
||||||
|
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) {
|
Widget getItemCreationHeaderView() {
|
||||||
return Padding(
|
return ListView.separated(
|
||||||
padding: const EdgeInsets.only(top: 2, bottom: 2),
|
shrinkWrap: true,
|
||||||
child: Row(
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
itemBuilder: (cxt, index) => Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
title.toText12(isBold: true),
|
ItemDetailView(LocaleKeys.operatingUnit.tr(), itemCreationHeader[index].oPERATINGUNIT?.toString() ?? ""),
|
||||||
6.width,
|
ItemDetailView(LocaleKeys.category.tr(), itemCreationHeader[index].cATEGORY?.toString() ?? ""),
|
||||||
title.toText12(isBold: false, color: MyColors.normalTextColor),
|
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:flutter/material.dart';
|
||||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
import 'package:mohem_flutter_app/config/routes.dart';
|
||||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
|
||||||
import 'package:mohem_flutter_app/extensions/int_extensions.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 {
|
class RequestFragment extends StatelessWidget {
|
||||||
@override
|
final List<GetMoNotificationBodyList> moNotificationBodyList;
|
||||||
State<RequestFragment> createState() => _RequestFragmentState();
|
final List<ItemCreationLines> itemCreationLines;
|
||||||
}
|
final List<POLines> poLinesList;
|
||||||
|
|
||||||
class _RequestFragmentState extends State<RequestFragment> {
|
RequestFragment({
|
||||||
bool isOpened = false;
|
Key? key,
|
||||||
|
this.moNotificationBodyList = const <GetMoNotificationBodyList>[],
|
||||||
|
this.itemCreationLines = const <ItemCreationLines>[],
|
||||||
|
this.poLinesList = const <POLines>[],
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return ListView(
|
||||||
width: double.infinity,
|
physics: const BouncingScrollPhysics(),
|
||||||
height: double.infinity,
|
padding: const EdgeInsets.all(21),
|
||||||
child: Column(
|
|
||||||
children: [
|
children: [
|
||||||
Container(
|
if (moNotificationBodyList.isNotEmpty) moNotificationDataView(),
|
||||||
width: double.infinity,
|
if (poLinesList.isNotEmpty) poLinesDataView(),
|
||||||
decoration: BoxDecoration(
|
if (itemCreationLines.isNotEmpty) itemCreationLinesView(),
|
||||||
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(
|
Widget poLinesDataView() {
|
||||||
|
return ListView.separated(
|
||||||
|
shrinkWrap: true,
|
||||||
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
itemBuilder: (cxt, index) => Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
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(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
DefaultButton(LocaleKeys.itemHistory.tr(), () {
|
||||||
child: "Hardware Mobility 161 Messenger".toText16(),
|
Navigator.pushNamed(
|
||||||
),
|
cxt,
|
||||||
Icon(Icons.keyboard_arrow_down_rounded),
|
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,
|
||||||
],
|
],
|
||||||
),
|
)
|
||||||
Column(
|
],
|
||||||
|
).objectContainerView(title: poLinesList[index].iTEMDESCRIPTION!),
|
||||||
|
separatorBuilder: (cxt, index) => 12.height,
|
||||||
|
itemCount: poLinesList.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget moNotificationDataView() {
|
||||||
|
return ListView.separated(
|
||||||
|
shrinkWrap: true,
|
||||||
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
itemBuilder: (cxt, index) => Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
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,
|
12.height,
|
||||||
showItem("Code:", "3188000067"),
|
DefaultButton(LocaleKeys.itemHistory.tr(), () {
|
||||||
showItem("Quantity:", "1"),
|
Navigator.pushNamed(
|
||||||
showItem("Line Status:", "Pending Approval"),
|
cxt,
|
||||||
showItem("Transection Type:", "Move Order Issue:"),
|
AppRoutes.itemHistory,
|
||||||
showItem("Organization Code:", "SWD"),
|
arguments: ItemHistoryScreenParams(title: LocaleKeys.itemHistory.tr(), pItemId: moNotificationBodyList[index].iTEMID, pOrgId: moNotificationBodyList[index].oRGID),
|
||||||
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 :", "-"),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
})
|
||||||
|
],
|
||||||
|
).objectContainerView(title: moNotificationBodyList[index].dESCRIPTION ?? ""),
|
||||||
|
separatorBuilder: (cxt, index) => 12.height,
|
||||||
|
itemCount: moNotificationBodyList.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget showItem(String title, String value) {
|
Widget itemCreationLinesView() {
|
||||||
return Padding(
|
return ListView.separated(
|
||||||
padding: const EdgeInsets.only(top: 2, bottom: 2),
|
shrinkWrap: true,
|
||||||
child: Row(
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
itemBuilder: (cxt, index) => Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
title.toText12(isBold: true),
|
ItemDetailView(LocaleKeys.productName.tr(), itemCreationLines[index].pRODUCTNAME ?? ""),
|
||||||
6.width,
|
ItemDetailView(LocaleKeys.productDescription.tr(), itemCreationLines[index].pRODUCTDESCRIPTION ?? ""),
|
||||||
title.toText12(isBold: false, color: MyColors.normalTextColor),
|
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/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/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/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/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/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/info_fragments.dart';
|
||||||
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/request_fragment.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/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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return DefaultTabController(
|
getDataFromState();
|
||||||
length: 4,
|
|
||||||
child: Scaffold(
|
return Scaffold(
|
||||||
appBar: appBar(context, title: "Missing Swipe Request"),
|
appBar: AppBarWidget(context, title: LocaleKeys.details.tr()),
|
||||||
body: Container(
|
backgroundColor: Colors.white,
|
||||||
width: double.infinity,
|
body: Stack(
|
||||||
height: double.infinity,
|
children: [
|
||||||
child: Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
decoration: BoxDecoration(
|
padding: const EdgeInsets.only(left: 21, right: 21, top: 16, bottom: 16),
|
||||||
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(20), bottomRight: Radius.circular(20)),
|
decoration: const BoxDecoration(
|
||||||
gradient: LinearGradient(transform: GradientRotation(.46), begin: Alignment.topRight, end: Alignment.bottomRight, colors: [
|
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.gradiantEndColor,
|
||||||
MyColors.gradiantStartColor,
|
MyColors.gradiantStartColor,
|
||||||
]),
|
],
|
||||||
),
|
),
|
||||||
clipBehavior: Clip.antiAlias,
|
|
||||||
child: TabBar(
|
|
||||||
indicatorColor: Colors.white,
|
|
||||||
labelColor: Colors.white,
|
|
||||||
tabs: [
|
|
||||||
Tab(
|
|
||||||
text: "Request",
|
|
||||||
),
|
),
|
||||||
Tab(
|
child: Row(
|
||||||
text: "Actions",
|
children: [
|
||||||
|
myTab(LocaleKeys.info.tr(), 0),
|
||||||
|
(workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") ? myTab(LocaleKeys.details.tr(), 1) : myTab(LocaleKeys.request.tr(), 1),
|
||||||
|
myTab(LocaleKeys.actions.tr(), 2),
|
||||||
|
myTab(LocaleKeys.attachments.tr(), 3),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
Tab(
|
|
||||||
text: "Attachments",
|
|
||||||
),
|
),
|
||||||
Tab(
|
PageView(
|
||||||
text: "Info.",
|
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,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
child: Row(
|
||||||
child: TabBarView(
|
|
||||||
children: [
|
children: [
|
||||||
RequestFragment(),
|
if (isRejectAvailable)
|
||||||
ActionsFragment(),
|
DefaultButton(
|
||||||
AttachmentsFragment(),
|
LocaleKeys.reject.tr(),
|
||||||
InfoFragment(),
|
() => 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;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
],
|
||||||
),
|
),
|
||||||
Container(
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
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,
|
width: double.infinity,
|
||||||
height: 60,
|
height: double.infinity,
|
||||||
padding: EdgeInsets.only(left: 21, right: 21),
|
color: Colors.white.withOpacity(.67),
|
||||||
child: Row(
|
alignment: Alignment.bottomRight,
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
myFab("Skip", "assets/images/skip.svg").onPress(() {
|
||||||
child: DefaultButton(
|
if (AppState().workList!.length - 1 > AppState().workListIndex!) {
|
||||||
"Reject",
|
AppState().setWorkListIndex = AppState().workListIndex! + 1;
|
||||||
() {},
|
workListData = null;
|
||||||
colors: [
|
showFabOptions = false;
|
||||||
Color(0xffEB8C90),
|
getDataFromState();
|
||||||
Color(0xffDE6C70),
|
} else if (AppState().workList!.length - 1 == AppState().workListIndex!) {
|
||||||
|
Navigator.pop(context);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
12.height,
|
||||||
|
...viewApiButtonsList(notificationButtonsList),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
12.width,
|
).onPress(() {
|
||||||
Expanded(
|
setState(() {
|
||||||
child: DefaultButton(
|
showFabOptions = false;
|
||||||
"Approve",
|
});
|
||||||
() {},
|
}),
|
||||||
colors: [
|
),
|
||||||
Color(0xff32D892),
|
|
||||||
Color(0xff1AB170),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
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