Merge branch 'master' into development_mirza

# Conflicts:
#	assets/langs/ar-SA.json
#	assets/langs/en-US.json
#	lib/generated/locale_keys.g.dart
#	lib/ui/login/login_screen.dart
faiz_marathon_signalR_critical
devmirza121 2 years ago
commit 2887894330

@ -68,6 +68,37 @@
"reject": "يرفض", "reject": "يرفض",
"approve": "يوافق", "approve": "يوافق",
"attendanceDetails": "تفاصيل الحضور", "attendanceDetails": "تفاصيل الحضور",
"request": "طلب",
"actions": "أجراءات",
"delegate": "مندوب",
"request_info": "اطلب معلومات",
"attachments": "المرفقات",
"info": "معلومات",
"employeeNumber": "رقم الموظف",
"assignmentNumber": "رقم الواجب",
"employeeName": "اسم الموظف",
"scheduleDate": "تاريخ الجدول الزمني",
"shiftType": "نوع التحول",
"shift": "يحول",
"breakText": "استراحة",
"actualSwipeStart": "بدء التمرير الفعلي",
"actualSwipeEnd": "التمرير الفعلي للنهاية",
"approvedSwipeStart": "وافق انتقاد البدء",
"approvedSwipeStartReason": "تمت الموافقة على سبب بدء التمرير السريع",
"approvedSwipeEnd": "تمت الموافقة على تمرير النهاية",
"approvedSwipeEndReason": "الموافقة على سبب إنهاء التمرير",
"from": "من",
"to": "ل",
"sent": "أرسلت",
"closed": "مغلق",
"id": "هوية شخصية",
"responder": "المستجيب",
"jobTitle": "عنوان وظيفي",
"grade": "درجة",
"jobCategory": "تصنيف الوظيفة",
"category": "فئة",
"employeeEmailAddress": "عنوان البريد الإلكتروني للموظف",
"payrollBranch": "فرع الرواتب",
"msg": "Hello {} in the {} world ", "msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language", "msg_named": "{} are written in the {lang} language",
"clickMe": "Click me", "clickMe": "Click me",

@ -67,6 +67,37 @@
"reject": "Reject", "reject": "Reject",
"approve": "Approve", "approve": "Approve",
"attendanceDetails": "Attendence Details", "attendanceDetails": "Attendence Details",
"request": "Request",
"actions": "Actions",
"delegate": "Delegate",
"request_info": "Request Info",
"attachments": "Attachments",
"info": "Info.",
"employeeNumber": "Employee Number",
"assignmentNumber": "Assignment Number",
"employeeName": "Employee Name",
"scheduleDate": "Schedule Date",
"shiftType": "Shift Type",
"shift": "Shift",
"breakText": "Break",
"actualSwipeStart": "Actual Swipe Start",
"actualSwipeEnd": "Actual Swipe End",
"approvedSwipeStart": "Approved Swipe Start",
"approvedSwipeStartReason": "Approved Swipe Start Reason",
"approvedSwipeEnd": "Approved Swipe End",
"approvedSwipeEndReason": "Approved Swipe End Reason",
"from": "From",
"to": "To",
"sent": "Sent",
"closed": "Closed",
"id": "ID",
"responder": "Responder",
"jobTitle": "Job Title",
"grade": "Grade",
"jobCategory": "Job Category",
"category": "Category",
"employeeEmailAddress": "Employee Email Address",
"payrollBranch": "Payroll Branch",
"msg": "Hello {} in the {} world ", "msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language", "msg_named": "{} are written in the {lang} language",
"clickMe": "Click me", "clickMe": "Click me",

@ -5,6 +5,13 @@ import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.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/dashboard/itg_forms_model.dart';
import 'package:mohem_flutter_app/models/generic_response_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_notification_buttons_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ms_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/subordinates_on_leaves_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart'; import 'package:mohem_flutter_app/models/worklist_response_model.dart';
class WorkListApiClient { class WorkListApiClient {
@ -29,7 +36,7 @@ class WorkListApiClient {
}, url, postParams); }, url, postParams);
} }
Future<ItgFormsModel?> GetITGTaskCountRequestType() async { Future<ItgFormsModel?> getITGTaskCountRequestType() async {
String url = "${ApiConsts.cocRest}ITGGetTaskCountRequestType"; String url = "${ApiConsts.cocRest}ITGGetTaskCountRequestType";
Map<String, dynamic> postParams = {}; Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson); postParams.addAll(AppState().postParamsJson);
@ -38,4 +45,117 @@ class WorkListApiClient {
return responseData; return responseData;
}, url, postParams); }, 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<String>> 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) 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);
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<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);
}
} }

@ -6,10 +6,11 @@ class MyColors {
static const Color normalTextColor = Color(0xff5A5A5A); static const Color normalTextColor = Color(0xff5A5A5A);
static const Color lightTextColor = Color(0xffBFBFBF); static const Color lightTextColor = Color(0xffBFBFBF);
static const Color gradiantStartColor = Color(0xff33c0a5); static const Color gradiantStartColor = Color(0xff33c0a5);
static const Color gradiantEndColor = Color(0xff259db7 ); static const Color gradiantEndColor = Color(0xff259db7);
static const Color textMixColor = Color(0xff2BB8A6); static const Color textMixColor = Color(0xff2BB8A6);
static const Color backgroundColor = Color(0xffF8F8F8); static const Color backgroundColor = Color(0xffF8F8F8);
static const Color grey57Color = Color(0xff575757); static const Color grey57Color = Color(0xff575757);
static const Color grey67Color = Color(0xff676767);
static const Color grey77Color = Color(0xff777777); static const Color grey77Color = Color(0xff777777);
static const Color grey70Color = Color(0xff707070); static const Color grey70Color = Color(0xff707070);
static const Color greyACColor = Color(0xffACACAC); static const Color greyACColor = Color(0xffACACAC);

@ -23,6 +23,10 @@ class DateUtil {
return DateFormat("MM/dd/yyyy hh:mm:ss").parse(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) { static DateTime convertStringToDateNoTimeZone(String date) {
// /Date(1585774800000+0300)/ // /Date(1585774800000+0300)/
if (date != null) { if (date != null) {

@ -1,5 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:shimmer/shimmer.dart'; import 'package:shimmer/shimmer.dart';
extension WidgetExtensions on Widget { extension WidgetExtensions on Widget {
@ -36,4 +38,30 @@ extension WidgetExtensions on Widget {
switchOutCurve: Curves.linearToEaseOut, switchOutCurve: Curves.linearToEaseOut,
child: this, child: this,
); );
Widget objectContainerView({String title = ""}) {
return Container(
padding: const EdgeInsets.only(top: 15, bottom: 15, left: 14, right: 14),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
if (title.isNotEmpty) title.toText16(),
if (title.isNotEmpty) 12.height,
this,
],
),
);
}
} }

@ -6,193 +6,289 @@ import 'dart:ui';
import 'package:easy_localization/easy_localization.dart' show AssetLoader; import 'package:easy_localization/easy_localization.dart' show AssetLoader;
class CodegenLoader extends AssetLoader { class CodegenLoader extends AssetLoader{
const CodegenLoader(); const CodegenLoader();
@override @override
Future<Map<String, dynamic>> load(String fullPath, Locale locale) { Future<Map<String, dynamic>> load(String fullPath, Locale locale ) {
return Future.value(mapLocales[locale.toString()]); return Future.value(mapLocales[locale.toString()]);
} }
static const Map<String, dynamic> ar_SA = { static const Map<String,dynamic> ar_SA = {
"mohemm": "Mohemm", "mohemm": "Mohemm",
"english": "English", "english": "English",
"arabic": "Arabic", "arabic": "Arabic",
"login": "تسجيل الدخول", "login": "تسجيل الدخول",
"pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول", "pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول",
"username": "اسم المستخدم", "username": "اسم المستخدم",
"password": "كلمة المرور", "password": "كلمة المرور",
"welcomeBack": "مرحبا بعودتك", "welcomeBack": "مرحبا بعودتك",
"wouldYouLikeToLoginWithCurrentUsername": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟", "wouldYouLikeToLoginWithCurrentUsername": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟",
"lastLoginDetails": "تفاصيل تسجيل الدخول الأخير:", "lastLoginDetails": "تفاصيل تسجيل الدخول الأخير:",
"verificationType": "نوع التحقق:", "verificationType": "نوع التحقق:",
"pleaseVerify": "ارجوك تحقق", "pleaseVerify": "ارجوك تحقق",
"verifyThroughFace": "تحقق من خلال الوجه", "verifyThroughFace": "تحقق من خلال الوجه",
"verifyThroughFingerprint": "تحقق من خلال بصمة الإصبع", "verifyThroughFingerprint": "تحقق من خلال بصمة الإصبع",
"verifyThroughSMS": "تحقق من خلال الرسائل القصيرة", "verifyThroughSMS": "تحقق من خلال الرسائل القصيرة",
"verifyThroughWhatsapp": "تحقق من خلال Whatsapp", "verifyThroughWhatsapp": "تحقق من خلال Whatsapp",
"useAnotherAccount": "استخدم حسابا آخر", "useAnotherAccount": "استخدم حسابا آخر",
"pleaseEnterTheVerificationCodeSentTo": "الرجاء إدخال رمز التحقق المرسل إلى ", "pleaseEnterTheVerificationCodeSentTo": "الرجاء إدخال رمز التحقق المرسل إلى ",
"theVerificationCodeWillExpireIn": "ستنتهي صلاحية رمز التحقق في ", "theVerificationCodeWillExpireIn": "ستنتهي صلاحية رمز التحقق في ",
"goodMorning": "صباح الخير", "goodMorning": "صباح الخير",
"markAttendance": "علامة الحضور", "markAttendance": "علامة الحضور",
"timeLeftToday": "الوقت المتبقي اليوم", "timeLeftToday": "الوقت المتبقي اليوم",
"checkIn": "تحقق في", "checkIn": "تحقق في",
"workList": "قائمة العمل", "workList": "قائمة العمل",
"leaveBalance": "رصيد الاجازات", "leaveBalance": "رصيد الاجازات",
"missingSwipes": "الضربات الشديدة في عداد المفقودين", "missingSwipes": "الضربات الشديدة في عداد المفقودين",
"ticketBalance": "رصيد التذكرة", "ticketBalance": "رصيد التذكرة",
"other": "آخر", "other": "آخر",
"services": "خدمات", "services": "خدمات",
"viewAllServices": "عرض جميع الخدمات", "viewAllServices": "عرض جميع الخدمات",
"monthlyAttendance": "الحضور الشهري", "monthlyAttendance": "الحضور الشهري",
"workFromHome": "العمل من المنزل", "workFromHome": "العمل من المنزل",
"ticketRequest": "طلب تذكرة", "ticketRequest": "طلب تذكرة",
"viewAllOffers": "مشاهدة جميع العروض", "viewAllOffers": "مشاهدة جميع العروض",
"offers": "عروض & ", "offers": "عروض & ",
"discounts": "الخصومات", "discounts": "الخصومات",
"newString": "جديد", "newString": "جديد",
"setTheNewPassword": "قم بتعيين كلمة المرور الجديدة", "setTheNewPassword": "قم بتعيين كلمة المرور الجديدة",
"typeYourNewPasswordBelow": "اكتب كلمة المرور الجديدة أدناه", "typeYourNewPasswordBelow": "اكتب كلمة المرور الجديدة أدناه",
"confirmPassword": "تأكيد كلمة المرور", "confirmPassword": "تأكيد كلمة المرور",
"update": "تحديث", "update": "تحديث",
"title": "عنوان", "title": "عنوان",
"home": "مسكن", "home": "مسكن",
"mySalary": "راتبي", "mySalary": "راتبي",
"createRequest": "إنشاء طلب", "createRequest": "إنشاء طلب",
"forgotPassword": "هل نسيت كلمة السر", "forgotPassword": "هل نسيت كلمة السر",
"employeeId": "هوية الموظف", "employeeId": "هوية الموظف",
"loginCodeWillSentToMobileNumber": "الرجاء إدخال معرف الموظف الخاص بك ، وسيتم إرسال رمز تسجيل الدخول إلى رقم هاتفك المحمول", "loginCodeWillSentToMobileNumber": "الرجاء إدخال معرف الموظف الخاص بك ، وسيتم إرسال رمز تسجيل الدخول إلى رقم هاتفك المحمول",
"changePassword": "تغيير كلمة المرور", "changePassword": "تغيير كلمة المرور",
"ok": "موافق", "ok": "موافق",
"confirm": "تؤكد", "confirm": "تؤكد",
"passwordChangedSuccessfully": "تم تغيير الرقم السري بنجاح", "passwordChangedSuccessfully": "تم تغيير الرقم السري بنجاح",
"itemsForSale": "سلع للبيع", "itemsForSale": "سلع للبيع",
"doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة", "doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة",
"atLeastOneLowercase": "حرف صغير واحد على الأقل", "atLeastOneLowercase": "حرف صغير واحد على الأقل",
"atLeastOneUppercase": "حرف كبير واحد على الأقل", "atLeastOneUppercase": "حرف كبير واحد على الأقل",
"atLeastOneNumeric": "رقم واحد على الأقل", "atLeastOneNumeric": "رقم واحد على الأقل",
"minimum8Characters": "8 أحرف على الأقل", "minimum8Characters": "8 أحرف على الأقل",
"doNotAddRepeatingLetters": "لا تقم بإضافة أحرف متكررة", "doNotAddRepeatingLetters": "لا تقم بإضافة أحرف متكررة",
"itShouldContainSpecialCharacter": "يجب أن يحتوي على طابع خاص", "itShouldContainSpecialCharacter": "يجب أن يحتوي على طابع خاص",
"confirmPasswordMustMatch": "يجب أن يتطابق تأكيد كلمة المرور", "confirmPasswordMustMatch": "يجب أن يتطابق تأكيد كلمة المرور",
"sms": "رسالة قصيرة", "sms": "رسالة قصيرة",
"fingerPrint": "بصمة", "fingerPrint": "بصمة",
"face": "التعرف على الوجه", "face": "التعرف على الوجه",
"whatsapp": "واتس اب", "whatsapp": "واتس اب",
"msg": "Hello {} in the {} world ", "reject": "يرفض",
"msg_named": "{} are written in the {lang} language", "approve": "يوافق",
"clickMe": "Click me", "request": "طلب",
"human": "Human", "actions": "أجراءات",
"resources": "Resources", "delegate": "مندوب",
"profile": { "request_info": "اطلب معلومات",
"reset_password": {"label": "Reset Password", "username": "Username", "password": "password"} "attachments": "المرفقات",
}, "info": "معلومات",
"clicked": { "employeeNumber": "رقم الموظف",
"zero": "You clicked {} times!", "assignmentNumber": "رقم الواجب",
"one": "You clicked {} time!", "employeeName": "اسم الموظف",
"two": "You clicked {} times!", "scheduleDate": "تاريخ الجدول الزمني",
"few": "You clicked {} times!", "shiftType": "نوع التحول",
"many": "You clicked {} times!", "shift": "يحول",
"other": "You clicked {} times!" "breakText": "استراحة",
}, "actualSwipeStart": "بدء التمرير الفعلي",
"amount": {"zero": "Your amount : {} ", "one": "Your amount : {} ", "two": "Your amount : {} ", "few": "Your amount : {} ", "many": "Your amount : {} ", "other": "Your amount : {} "}, "actualSwipeEnd": "التمرير الفعلي للنهاية",
"gender": { "approvedSwipeStart": "وافق انتقاد البدء",
"male": "Hi man ;) ", "approvedSwipeStartReason": "تمت الموافقة على سبب بدء التمرير السريع",
"female": "Hello girl :)", "approvedSwipeEnd": "تمت الموافقة على تمرير النهاية",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"} "approvedSwipeEndReason": "الموافقة على سبب إنهاء التمرير",
}, "from": "من",
"reset_locale": "Reset Language" "to": "ل",
}; "sent": "أرسلت",
static const Map<String, dynamic> en_US = { "closed": "مغلق",
"mohemm": "Mohemm", "id": "هوية شخصية",
"english": "English", "responder": "المستجيب",
"arabic": "Arabic", "jobTitle": "عنوان وظيفي",
"login": "Login", "grade": "درجة",
"pleaseEnterLoginDetails": "Please enter the detail below to login", "jobCategory": "تصنيف الوظيفة",
"username": "Username", "category": "فئة",
"password": "Password", "employeeEmailAddress": "عنوان البريد الإلكتروني للموظف",
"welcomeBack": "Welcome back", "payrollBranch": "فرع الرواتب",
"wouldYouLikeToLoginWithCurrentUsername": "Would you like to login with current Username?", "msg": "Hello {} in the {} world ",
"lastLoginDetails": "Last Login Details:", "msg_named": "{} are written in the {lang} language",
"verificationType": "Verification Type:", "clickMe": "Click me",
"pleaseVerify": "Please Verify", "human": "بشري",
"verifyThroughFace": "Verify Through Face", "resources": "موارد",
"verifyThroughFingerprint": "Verify Through Fingerprint", "details": "تفاصيل",
"verifyThroughSMS": "Verify Through SMS", "profile": {
"verifyThroughWhatsapp": "Verify Through Whatsapp", "reset_password": {
"useAnotherAccount": "Use Another Account", "label": "Reset Password",
"pleaseEnterTheVerificationCodeSentTo": "Please enter the verification code sent to ", "username": "Username",
"theVerificationCodeWillExpireIn": "The verification code will expire in ", "password": "password"
"goodMorning": "Good Morning", }
"markAttendance": "Mark Attendance", },
"timeLeftToday": "Time Left Today", "clicked": {
"checkIn": "Check In", "zero": "You clicked {} times!",
"workList": "Work List", "one": "You clicked {} time!",
"leaveBalance": "Leave Balance", "two": "You clicked {} times!",
"missingSwipes": "Missing Swipes", "few": "You clicked {} times!",
"ticketBalance": "Ticket Balance", "many": "You clicked {} times!",
"other": "Other", "other": "You clicked {} times!"
"services": "Services", },
"viewAllServices": "View All Services", "amount": {
"monthlyAttendance": "Monthly Attendance", "zero": "Your amount : {} ",
"workFromHome": "Work From Home", "one": "Your amount : {} ",
"ticketRequest": "Ticket Request", "two": "Your amount : {} ",
"viewAllOffers": "View All Offers", "few": "Your amount : {} ",
"offers": "Offers & ", "many": "Your amount : {} ",
"discounts": "Discounts", "other": "Your amount : {} "
"newString": "New", },
"setTheNewPassword": "Set the new password", "gender": {
"typeYourNewPasswordBelow": "Type your new password below", "male": "Hi man ;) ",
"confirmPassword": "Confirm Password", "female": "Hello girl :)",
"update": "Update", "with_arg": {
"title": "Title", "male": "Hi man ;) {}",
"home": "Home", "female": "Hello girl :) {}"
"mySalary": "My Salary", }
"createRequest": "Create Request", },
"forgotPassword": "Forgot Password", "reset_locale": "Reset Language"
"employeeId": "Employee ID", };
"loginCodeWillSentToMobileNumber": "Please Enter your Employee ID, A login code will be sent to your mobile number", static const Map<String,dynamic> en_US = {
"changePassword": "Change Password", "mohemm": "Mohemm",
"ok": "OK", "english": "English",
"confirm": "Confirm", "arabic": "Arabic",
"passwordChangedSuccessfully": "Password changed successfully", "login": "Login",
"itemsForSale": "Items for Sale", "pleaseEnterLoginDetails": "Please enter the detail below to login",
"doNotUseRecentPassword": "Do not use recent password", "username": "Username",
"atLeastOneLowercase": "At least one lowercase", "password": "Password",
"atLeastOneUppercase": "At least one uppercase", "welcomeBack": "Welcome back",
"atLeastOneNumeric": "At least one numeric", "wouldYouLikeToLoginWithCurrentUsername": "Would you like to login with current Username?",
"minimum8Characters": "Minimum 8 characters", "lastLoginDetails": "Last Login Details:",
"doNotAddRepeatingLetters": "Do not add repeating letters", "verificationType": "Verification Type:",
"itShouldContainSpecialCharacter": "It should contain special character", "pleaseVerify": "Please Verify",
"confirmPasswordMustMatch": "Confirm password must match", "verifyThroughFace": "Verify Through Face",
"sms": "SMS", "verifyThroughFingerprint": "Verify Through Fingerprint",
"fingerPrint": "Fingerprint", "verifyThroughSMS": "Verify Through SMS",
"face": "Face", "verifyThroughWhatsapp": "Verify Through Whatsapp",
"whatsapp": "Whatsapp", "useAnotherAccount": "Use Another Account",
"msg": "Hello {} in the {} world ", "pleaseEnterTheVerificationCodeSentTo": "Please enter the verification code sent to ",
"msg_named": "{} are written in the {lang} language", "theVerificationCodeWillExpireIn": "The verification code will expire in ",
"clickMe": "Click me", "goodMorning": "Good Morning",
"human": "Human", "markAttendance": "Mark Attendance",
"resources": "Resources", "timeLeftToday": "Time Left Today",
"profile": { "checkIn": "Check In",
"reset_password": {"label": "Reset Password", "username": "Username", "password": "password"} "workList": "Work List",
}, "leaveBalance": "Leave Balance",
"clicked": { "missingSwipes": "Missing Swipes",
"zero": "You clicked {} times!", "ticketBalance": "Ticket Balance",
"one": "You clicked {} time!", "other": "Other",
"two": "You clicked {} times!", "services": "Services",
"few": "You clicked {} times!", "viewAllServices": "View All Services",
"many": "You clicked {} times!", "monthlyAttendance": "Monthly Attendance",
"other": "You clicked {} times!" "workFromHome": "Work From Home",
}, "ticketRequest": "Ticket Request",
"amount": {"zero": "Your amount : {} ", "one": "Your amount : {} ", "two": "Your amount : {} ", "few": "Your amount : {} ", "many": "Your amount : {} ", "other": "Your amount : {} "}, "viewAllOffers": "View All Offers",
"gender": { "offers": "Offers & ",
"male": "Hi man ;) ", "discounts": "Discounts",
"female": "Hello girl :)", "newString": "New",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"} "setTheNewPassword": "Set the new password",
}, "typeYourNewPasswordBelow": "Type your new password below",
"reset_locale": "Reset Language" "confirmPassword": "Confirm Password",
}; "update": "Update",
static const Map<String, Map<String, dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; "title": "Title",
"home": "Home",
"mySalary": "My Salary",
"createRequest": "Create Request",
"forgotPassword": "Forgot Password",
"employeeId": "Employee ID",
"loginCodeWillSentToMobileNumber": "Please Enter your Employee ID, A login code will be sent to your mobile number",
"changePassword": "Change Password",
"ok": "OK",
"confirm": "Confirm",
"passwordChangedSuccessfully": "Password changed successfully",
"itemsForSale": "Items for Sale",
"doNotUseRecentPassword": "Do not use recent password",
"atLeastOneLowercase": "At least one lowercase",
"atLeastOneUppercase": "At least one uppercase",
"atLeastOneNumeric": "At least one numeric",
"minimum8Characters": "Minimum 8 characters",
"doNotAddRepeatingLetters": "Do not add repeating letters",
"itShouldContainSpecialCharacter": "It should contain special character",
"confirmPasswordMustMatch": "Confirm password must match",
"sms": "SMS",
"fingerPrint": "Fingerprint",
"face": "Face",
"whatsapp": "Whatsapp",
"reject": "Reject",
"approve": "Approve",
"request": "Request",
"actions": "Actions",
"delegate": "Delegate",
"request_info": "Request Info",
"attachments": "Attachments",
"info": "Info.",
"employeeNumber": "Employee Number",
"assignmentNumber": "Assignment Number",
"employeeName": "Employee Name",
"scheduleDate": "Schedule Date",
"shiftType": "Shift Type",
"shift": "Shift",
"breakText": "Break",
"actualSwipeStart": "Actual Swipe Start",
"actualSwipeEnd": "Actual Swipe End",
"approvedSwipeStart": "Approved Swipe Start",
"approvedSwipeStartReason": "Approved Swipe Start Reason",
"approvedSwipeEnd": "Approved Swipe End",
"approvedSwipeEndReason": "Approved Swipe End Reason",
"from": "From",
"to": "To",
"sent": "Sent",
"closed": "Closed",
"id": "ID",
"responder": "Responder",
"jobTitle": "Job Title",
"grade": "Grade",
"jobCategory": "Job Category",
"category": "Category",
"employeeEmailAddress": "Employee Email Address",
"payrollBranch": "Payroll Branch",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "Human",
"resources": "Resources",
"details": "Details",
"profile": {
"reset_password": {
"label": "Reset Password",
"username": "Username",
"password": "password"
}
},
"clicked": {
"zero": "You clicked {} times!",
"one": "You clicked {} time!",
"two": "You clicked {} times!",
"few": "You clicked {} times!",
"many": "You clicked {} times!",
"other": "You clicked {} times!"
},
"amount": {
"zero": "Your amount : {} ",
"one": "Your amount : {} ",
"two": "Your amount : {} ",
"few": "Your amount : {} ",
"many": "Your amount : {} ",
"other": "Your amount : {} "
},
"gender": {
"male": "Hi man ;) ",
"female": "Hello girl :)",
"with_arg": {
"male": "Hi man ;) {}",
"female": "Hello girl :) {}"
}
},
"reset_locale": "Reset Language"
};
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
} }

@ -1,14 +1,22 @@
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_basic_det_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_stamp_ms_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart'; import 'package:mohem_flutter_app/models/member_login_list_model.dart';
import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart';
import 'package:mohem_flutter_app/models/subordinates_on_leaves_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart'; import 'package:mohem_flutter_app/models/worklist_response_model.dart';
import 'basic_member_information_model.dart'; import 'basic_member_information_model.dart';
import 'get_mobile_login_info_list_model.dart';
import 'dashboard/get_accrual_balances_list_model.dart'; import 'dashboard/get_accrual_balances_list_model.dart';
import 'dashboard/get_attendance_tracking_list_model.dart'; import 'dashboard/get_attendance_tracking_list_model.dart';
import 'dashboard/get_open_missing_swipes_list_model.dart'; import 'dashboard/get_open_missing_swipes_list_model.dart';
import 'dashboard/get_open_notifications_list.dart'; import 'dashboard/get_open_notifications_list.dart';
import 'dashboard/list_menu.dart'; import 'dashboard/list_menu.dart';
import 'dashboard/menu_entries.dart'; import 'dashboard/menu_entries.dart';
import 'get_mobile_login_info_list_model.dart';
import 'member_information_list_model.dart'; import 'member_information_list_model.dart';
import 'privilege_list_model.dart'; import 'privilege_list_model.dart';
@ -62,11 +70,11 @@ class GenericResponseModel {
String? forgetPasswordTokenID; String? forgetPasswordTokenID;
List<String>? getAbsenceAttachmentsList; List<String>? getAbsenceAttachmentsList;
List<String>? getAbsenceAttendanceTypesList; List<String>? getAbsenceAttendanceTypesList;
List<String>? getAbsenceCollectionNotificationBodyList; List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotificationBodyList;
List<String>? getAbsenceDffStructureList; List<String>? getAbsenceDffStructureList;
List<String>? getAbsenceTransactionList; List<String>? getAbsenceTransactionList;
List<GetAccrualBalancesList>? getAccrualBalancesList; List<GetAccrualBalancesList>? getAccrualBalancesList;
List<String>? getActionHistoryList; List<GetActionHistoryList>? getActionHistoryList;
List<String>? getAddressDffStructureList; List<String>? getAddressDffStructureList;
List<String>? getAddressNotificationBodyList; List<String>? getAddressNotificationBodyList;
List<String>? getApprovesList; List<String>? getApprovesList;
@ -74,7 +82,7 @@ class GenericResponseModel {
GetAttendanceTracking? getAttendanceTrackingList; GetAttendanceTracking? getAttendanceTrackingList;
List<String>? getBasicDetColsStructureList; List<String>? getBasicDetColsStructureList;
List<String>? getBasicDetDffStructureList; List<String>? getBasicDetDffStructureList;
List<String>? getBasicDetNtfBodyList; List<GetBasicDetNtfBodyList>? getBasicDetNtfBodyList;
List<String>? getCEICollectionNotificationBodyList; List<String>? getCEICollectionNotificationBodyList;
List<String>? getCEIDFFStructureList; List<String>? getCEIDFFStructureList;
List<String>? getCEITransactionList; List<String>? getCEITransactionList;
@ -109,8 +117,8 @@ class GenericResponseModel {
List<String>? getLookupValuesList; List<String>? getLookupValuesList;
List<GetMenuEntriesList>? getMenuEntriesList; List<GetMenuEntriesList>? getMenuEntriesList;
List<String>? getMoItemHistoryList; List<String>? getMoItemHistoryList;
List<String>? getMoNotificationBodyList; List<GetMoNotificationBodyList>? getMoNotificationBodyList;
List<String>? getNotificationButtonsList; List<GetNotificationButtonsList>? getNotificationButtonsList;
List<String>? getNotificationReassignModeList; List<String>? getNotificationReassignModeList;
List<String>? getObjectValuesList; List<String>? getObjectValuesList;
GetOpenMissingSwipesList? getOpenMissingSwipesList; GetOpenMissingSwipesList? getOpenMissingSwipesList;
@ -135,10 +143,10 @@ class GenericResponseModel {
List<String>? getSITTransactionList; List<String>? getSITTransactionList;
List<String>? getScheduleShiftsDetailsList; List<String>? getScheduleShiftsDetailsList;
List<String>? getShiftTypesList; List<String>? getShiftTypesList;
List<String>? getStampMsNotificationBodyList; List<GetStampMsNotificationBodyList>? getStampMsNotificationBodyList;
List<String>? getStampNsNotificationBodyList; List<String>? getStampNsNotificationBodyList;
List<String>? getSubordinatesAttdStatusList; List<String>? getSubordinatesAttdStatusList;
List<String>? getSubordinatesLeavesList; List<SubordinatesLeavesList>? getSubordinatesLeavesList;
List<String>? getSubordinatesLeavesTotalVacationsList; List<String>? getSubordinatesLeavesTotalVacationsList;
List<String>? getSummaryOfPaymentList; List<String>? getSummaryOfPaymentList;
List<String>? getSwipesList; List<String>? getSwipesList;
@ -190,15 +198,15 @@ class GenericResponseModel {
String? mohemmWifiPassword; String? mohemmWifiPassword;
String? mohemmWifiSSID; String? mohemmWifiSSID;
String? notificationAction; String? notificationAction;
String? notificationGetRespondAttributesList; List<NotificationGetRespondAttributesList>? notificationGetRespondAttributesList;
String? notificationRespondRolesList; List<String>? notificationRespondRolesList;
int? oracleOutPutNumber; int? oracleOutPutNumber;
String? pASSWORDEXPIREDMSG; String? pASSWORDEXPIREDMSG;
String? pCOUNTRYCODE; String? pCOUNTRYCODE;
String? pCOUNTRYNAME; String? pCOUNTRYNAME;
String? pDESCFLEXCONTEXTCODE; String? pDESCFLEXCONTEXTCODE;
String? pDESCFLEXCONTEXTNAME; String? pDESCFLEXCONTEXTNAME;
Null? pForm; String? pForm;
String? pINFORMATION; String? pINFORMATION;
int? pMBLID; int? pMBLID;
String? pNUMOFSUBORDINATES; String? pNUMOFSUBORDINATES;
@ -239,7 +247,7 @@ class GenericResponseModel {
String? submitPhonesTransactionList; String? submitPhonesTransactionList;
String? submitSITTransactionList; String? submitSITTransactionList;
String? submitTermTransactionList; String? submitTermTransactionList;
String? subordinatesOnLeavesList; List<SubordinatesLeavesList>? subordinatesOnLeavesList;
String? sumbitAbsenceTransactionList; String? sumbitAbsenceTransactionList;
String? tokenID; String? tokenID;
String? updateAttachmentList; String? updateAttachmentList;
@ -568,11 +576,25 @@ class GenericResponseModel {
forgetPasswordTokenID = json['ForgetPasswordTokenID']; forgetPasswordTokenID = json['ForgetPasswordTokenID'];
getAbsenceAttachmentsList = json['GetAbsenceAttachmentsList']; getAbsenceAttachmentsList = json['GetAbsenceAttachmentsList'];
getAbsenceAttendanceTypesList = json['GetAbsenceAttendanceTypesList']; getAbsenceAttendanceTypesList = json['GetAbsenceAttendanceTypesList'];
getAbsenceCollectionNotificationBodyList = json['GetAbsenceCollectionNotificationBodyList'];
if (json['GetAbsenceCollectionNotificationBodyList'] != null) {
getAbsenceCollectionNotificationBodyList = <GetAbsenceCollectionNotificationBodyList>[];
json['GetAbsenceCollectionNotificationBodyList'].forEach((v) {
getAbsenceCollectionNotificationBodyList!.add(new GetAbsenceCollectionNotificationBodyList.fromJson(v));
});
}
getAbsenceDffStructureList = json['GetAbsenceDffStructureList']; getAbsenceDffStructureList = json['GetAbsenceDffStructureList'];
getAbsenceTransactionList = json['GetAbsenceTransactionList']; getAbsenceTransactionList = json['GetAbsenceTransactionList'];
getAccrualBalancesList = json["GetAccrualBalancesList"] == null ? null : List<GetAccrualBalancesList>.from(json["GetAccrualBalancesList"].map((x) => GetAccrualBalancesList.fromJson(x))); getAccrualBalancesList = json["GetAccrualBalancesList"] == null ? null : List<GetAccrualBalancesList>.from(json["GetAccrualBalancesList"].map((x) => GetAccrualBalancesList.fromJson(x)));
getActionHistoryList = json['GetActionHistoryList'];
if (json['GetActionHistoryList'] != null) {
getActionHistoryList = <GetActionHistoryList>[];
json['GetActionHistoryList'].forEach((v) {
getActionHistoryList!.add(GetActionHistoryList.fromJson(v));
});
}
getAddressDffStructureList = json['GetAddressDffStructureList']; getAddressDffStructureList = json['GetAddressDffStructureList'];
getAddressNotificationBodyList = json['GetAddressNotificationBodyList']; getAddressNotificationBodyList = json['GetAddressNotificationBodyList'];
getApprovesList = json['GetApprovesList']; getApprovesList = json['GetApprovesList'];
@ -580,7 +602,14 @@ class GenericResponseModel {
getAttendanceTrackingList = json["GetAttendanceTrackingList"] == null ? null : GetAttendanceTracking.fromMap(json["GetAttendanceTrackingList"]); getAttendanceTrackingList = json["GetAttendanceTrackingList"] == null ? null : GetAttendanceTracking.fromMap(json["GetAttendanceTrackingList"]);
getBasicDetColsStructureList = json['GetBasicDetColsStructureList']; getBasicDetColsStructureList = json['GetBasicDetColsStructureList'];
getBasicDetDffStructureList = json['GetBasicDetDffStructureList']; getBasicDetDffStructureList = json['GetBasicDetDffStructureList'];
getBasicDetNtfBodyList = json['GetBasicDetNtfBodyList'];
if (json['GetBasicDetNtfBodyList'] != null) {
getBasicDetNtfBodyList = <GetBasicDetNtfBodyList>[];
json['GetBasicDetNtfBodyList'].forEach((v) {
getBasicDetNtfBodyList!.add(new GetBasicDetNtfBodyList.fromJson(v));
});
}
getCEICollectionNotificationBodyList = json['GetCEICollectionNotificationBodyList']; getCEICollectionNotificationBodyList = json['GetCEICollectionNotificationBodyList'];
getCEIDFFStructureList = json['GetCEIDFFStructureList']; getCEIDFFStructureList = json['GetCEIDFFStructureList'];
getCEITransactionList = json['GetCEITransactionList']; getCEITransactionList = json['GetCEITransactionList'];
@ -615,8 +644,21 @@ class GenericResponseModel {
getLookupValuesList = json['GetLookupValuesList']; getLookupValuesList = json['GetLookupValuesList'];
getMenuEntriesList = json["GetMenuEntriesList"] == null ? null : List<GetMenuEntriesList>.from(json["GetMenuEntriesList"].map((x) => GetMenuEntriesList.fromJson(x))); getMenuEntriesList = json["GetMenuEntriesList"] == null ? null : List<GetMenuEntriesList>.from(json["GetMenuEntriesList"].map((x) => GetMenuEntriesList.fromJson(x)));
getMoItemHistoryList = json['GetMoItemHistoryList']; getMoItemHistoryList = json['GetMoItemHistoryList'];
getMoNotificationBodyList = json['GetMoNotificationBodyList'];
getNotificationButtonsList = json['GetNotificationButtonsList']; if (json['GetMoNotificationBodyList'] != null) {
getMoNotificationBodyList = <GetMoNotificationBodyList>[];
json['GetMoNotificationBodyList'].forEach((v) {
getMoNotificationBodyList!.add(new GetMoNotificationBodyList.fromJson(v));
});
}
if (json['GetNotificationButtonsList'] != null) {
getNotificationButtonsList = <GetNotificationButtonsList>[];
json['GetNotificationButtonsList'].forEach((v) {
getNotificationButtonsList!.add(new GetNotificationButtonsList.fromJson(v));
});
}
getNotificationReassignModeList = json['GetNotificationReassignModeList']; getNotificationReassignModeList = json['GetNotificationReassignModeList'];
getObjectValuesList = json['GetObjectValuesList']; getObjectValuesList = json['GetObjectValuesList'];
getOpenMissingSwipesList = json["GetOpenMissingSwipesList"] == null ? null : GetOpenMissingSwipesList.fromJson(json["GetOpenMissingSwipesList"]); getOpenMissingSwipesList = json["GetOpenMissingSwipesList"] == null ? null : GetOpenMissingSwipesList.fromJson(json["GetOpenMissingSwipesList"]);
@ -641,10 +683,24 @@ class GenericResponseModel {
getSITTransactionList = json['GetSITTransactionList']; getSITTransactionList = json['GetSITTransactionList'];
getScheduleShiftsDetailsList = json['GetScheduleShiftsDetailsList']; getScheduleShiftsDetailsList = json['GetScheduleShiftsDetailsList'];
getShiftTypesList = json['GetShiftTypesList']; getShiftTypesList = json['GetShiftTypesList'];
getStampMsNotificationBodyList = json['GetStampMsNotificationBodyList'];
if (json['GetStampMsNotificationBodyList'] != null) {
getStampMsNotificationBodyList = <GetStampMsNotificationBodyList>[];
json['GetStampMsNotificationBodyList'].forEach((v) {
getStampMsNotificationBodyList!.add(new GetStampMsNotificationBodyList.fromJson(v));
});
}
getStampNsNotificationBodyList = json['GetStampNsNotificationBodyList']; getStampNsNotificationBodyList = json['GetStampNsNotificationBodyList'];
getSubordinatesAttdStatusList = json['GetSubordinatesAttdStatusList']; getSubordinatesAttdStatusList = json['GetSubordinatesAttdStatusList'];
getSubordinatesLeavesList = json['GetSubordinatesLeavesList'];
if (json['GetSubordinatesLeavesList'] != null) {
getSubordinatesLeavesList = <SubordinatesLeavesList>[];
json['GetSubordinatesLeavesList'].forEach((v) {
getSubordinatesLeavesList!.add(SubordinatesLeavesList.fromJson(v));
});
}
getSubordinatesLeavesTotalVacationsList = json['GetSubordinatesLeavesTotalVacationsList']; getSubordinatesLeavesTotalVacationsList = json['GetSubordinatesLeavesTotalVacationsList'];
getSummaryOfPaymentList = json['GetSummaryOfPaymentList']; getSummaryOfPaymentList = json['GetSummaryOfPaymentList'];
getSwipesList = json['GetSwipesList']; getSwipesList = json['GetSwipesList'];
@ -703,7 +759,7 @@ class GenericResponseModel {
if (json['Mohemm_GetMobileLoginInfoList'] != null) { if (json['Mohemm_GetMobileLoginInfoList'] != null) {
mohemmGetMobileLoginInfoList = <GetMobileLoginInfoListModel>[]; mohemmGetMobileLoginInfoList = <GetMobileLoginInfoListModel>[];
json['Mohemm_GetMobileLoginInfoList'].forEach((v) { json['Mohemm_GetMobileLoginInfoList'].forEach((v) {
mohemmGetMobileLoginInfoList!.add(new GetMobileLoginInfoListModel.fromJson(v)); mohemmGetMobileLoginInfoList!.add(GetMobileLoginInfoListModel.fromJson(v));
}); });
} }
mohemmGetPatientIDList = json['Mohemm_GetPatientID_List']; mohemmGetPatientIDList = json['Mohemm_GetPatientID_List'];
@ -713,8 +769,21 @@ class GenericResponseModel {
mohemmWifiPassword = json['Mohemm_Wifi_Password']; mohemmWifiPassword = json['Mohemm_Wifi_Password'];
mohemmWifiSSID = json['Mohemm_Wifi_SSID']; mohemmWifiSSID = json['Mohemm_Wifi_SSID'];
notificationAction = json['NotificationAction']; notificationAction = json['NotificationAction'];
notificationGetRespondAttributesList = json['NotificationGetRespondAttributesList'];
notificationRespondRolesList = json['NotificationRespondRolesList']; if (json['NotificationGetRespondAttributesList'] != null) {
notificationGetRespondAttributesList = <NotificationGetRespondAttributesList>[];
json['NotificationGetRespondAttributesList'].forEach((v) {
notificationGetRespondAttributesList!.add(NotificationGetRespondAttributesList.fromJson(v));
});
}
if (json['NotificationRespondRolesList'] != null) {
notificationRespondRolesList = <String>[];
json['NotificationGetRespondAttributesList'].forEach((v) {
// notificationRespondRolesList!.add(v);
});
}
oracleOutPutNumber = json['OracleOutPutNumber']; oracleOutPutNumber = json['OracleOutPutNumber'];
pASSWORDEXPIREDMSG = json['PASSWORD_EXPIRED_MSG']; pASSWORDEXPIREDMSG = json['PASSWORD_EXPIRED_MSG'];
pCOUNTRYCODE = json['P_COUNTRY_CODE']; pCOUNTRYCODE = json['P_COUNTRY_CODE'];
@ -769,7 +838,14 @@ class GenericResponseModel {
submitPhonesTransactionList = json['SubmitPhonesTransactionList']; submitPhonesTransactionList = json['SubmitPhonesTransactionList'];
submitSITTransactionList = json['SubmitSITTransactionList']; submitSITTransactionList = json['SubmitSITTransactionList'];
submitTermTransactionList = json['SubmitTermTransactionList']; submitTermTransactionList = json['SubmitTermTransactionList'];
subordinatesOnLeavesList = json['SubordinatesOnLeavesList'];
if (json['SubordinatesOnLeavesList'] != null) {
subordinatesOnLeavesList = <SubordinatesLeavesList>[];
json['GetSubordinatesLeavesList'].forEach((v) {
subordinatesOnLeavesList!.add(SubordinatesLeavesList.fromJson(v));
});
}
sumbitAbsenceTransactionList = json['SumbitAbsenceTransactionList']; sumbitAbsenceTransactionList = json['SumbitAbsenceTransactionList'];
tokenID = json['TokenID']; tokenID = json['TokenID'];
updateAttachmentList = json['UpdateAttachmentList']; updateAttachmentList = json['UpdateAttachmentList'];
@ -849,11 +925,19 @@ class GenericResponseModel {
data['ForgetPasswordTokenID'] = this.forgetPasswordTokenID; data['ForgetPasswordTokenID'] = this.forgetPasswordTokenID;
data['GetAbsenceAttachmentsList'] = this.getAbsenceAttachmentsList; data['GetAbsenceAttachmentsList'] = this.getAbsenceAttachmentsList;
data['GetAbsenceAttendanceTypesList'] = this.getAbsenceAttendanceTypesList; data['GetAbsenceAttendanceTypesList'] = this.getAbsenceAttendanceTypesList;
data['GetAbsenceCollectionNotificationBodyList'] = this.getAbsenceCollectionNotificationBodyList;
if (this.getAbsenceCollectionNotificationBodyList != null) {
data['GetAbsenceCollectionNotificationBodyList'] = this.getAbsenceCollectionNotificationBodyList!.map((v) => v.toJson()).toList();
}
data['GetAbsenceDffStructureList'] = this.getAbsenceDffStructureList; data['GetAbsenceDffStructureList'] = this.getAbsenceDffStructureList;
data['GetAbsenceTransactionList'] = this.getAbsenceTransactionList; data['GetAbsenceTransactionList'] = this.getAbsenceTransactionList;
data['GetAccrualBalancesList'] = this.getAccrualBalancesList; data['GetAccrualBalancesList'] = this.getAccrualBalancesList;
data['GetActionHistoryList'] = this.getActionHistoryList;
if (this.getActionHistoryList != null) {
data['GetActionHistoryList'] = this.getActionHistoryList!.map((v) => v.toJson()).toList();
}
data['GetAddressDffStructureList'] = this.getAddressDffStructureList; data['GetAddressDffStructureList'] = this.getAddressDffStructureList;
data['GetAddressNotificationBodyList'] = this.getAddressNotificationBodyList; data['GetAddressNotificationBodyList'] = this.getAddressNotificationBodyList;
data['GetApprovesList'] = this.getApprovesList; data['GetApprovesList'] = this.getApprovesList;
@ -861,7 +945,11 @@ class GenericResponseModel {
data['GetAttendanceTrackingList'] = this.getAttendanceTrackingList; data['GetAttendanceTrackingList'] = this.getAttendanceTrackingList;
data['GetBasicDetColsStructureList'] = this.getBasicDetColsStructureList; data['GetBasicDetColsStructureList'] = this.getBasicDetColsStructureList;
data['GetBasicDetDffStructureList'] = this.getBasicDetDffStructureList; data['GetBasicDetDffStructureList'] = this.getBasicDetDffStructureList;
data['GetBasicDetNtfBodyList'] = this.getBasicDetNtfBodyList;
if (this.getBasicDetNtfBodyList != null) {
data['GetBasicDetNtfBodyList'] = this.getBasicDetNtfBodyList!.map((v) => v.toJson()).toList();
}
data['GetCEICollectionNotificationBodyList'] = this.getCEICollectionNotificationBodyList; data['GetCEICollectionNotificationBodyList'] = this.getCEICollectionNotificationBodyList;
data['GetCEIDFFStructureList'] = this.getCEIDFFStructureList; data['GetCEIDFFStructureList'] = this.getCEIDFFStructureList;
data['GetCEITransactionList'] = this.getCEITransactionList; data['GetCEITransactionList'] = this.getCEITransactionList;
@ -896,8 +984,15 @@ class GenericResponseModel {
data['GetLookupValuesList'] = this.getLookupValuesList; data['GetLookupValuesList'] = this.getLookupValuesList;
data['GetMenuEntriesList'] = this.getMenuEntriesList; data['GetMenuEntriesList'] = this.getMenuEntriesList;
data['GetMoItemHistoryList'] = this.getMoItemHistoryList; data['GetMoItemHistoryList'] = this.getMoItemHistoryList;
data['GetMoNotificationBodyList'] = this.getMoNotificationBodyList;
data['GetNotificationButtonsList'] = this.getNotificationButtonsList; if (this.getMoNotificationBodyList != null) {
data['GetMoNotificationBodyList'] = this.getMoNotificationBodyList!.map((v) => v.toJson()).toList();
}
if (this.getNotificationButtonsList != null) {
data['GetNotificationButtonsList'] = this.getNotificationButtonsList!.map((v) => v.toJson()).toList();
}
data['GetNotificationReassignModeList'] = this.getNotificationReassignModeList; data['GetNotificationReassignModeList'] = this.getNotificationReassignModeList;
data['GetObjectValuesList'] = this.getObjectValuesList; data['GetObjectValuesList'] = this.getObjectValuesList;
data['GetOpenMissingSwipesList'] = this.getOpenMissingSwipesList; data['GetOpenMissingSwipesList'] = this.getOpenMissingSwipesList;
@ -922,10 +1017,19 @@ class GenericResponseModel {
data['GetSITTransactionList'] = this.getSITTransactionList; data['GetSITTransactionList'] = this.getSITTransactionList;
data['GetScheduleShiftsDetailsList'] = this.getScheduleShiftsDetailsList; data['GetScheduleShiftsDetailsList'] = this.getScheduleShiftsDetailsList;
data['GetShiftTypesList'] = this.getShiftTypesList; data['GetShiftTypesList'] = this.getShiftTypesList;
data['GetStampMsNotificationBodyList'] = this.getStampMsNotificationBodyList;
if (this.getStampMsNotificationBodyList != null) {
data['GetStampMsNotificationBodyList'] = this.getStampMsNotificationBodyList!.map((v) => v.toJson()).toList();
}
data['GetStampNsNotificationBodyList'] = this.getStampNsNotificationBodyList; data['GetStampNsNotificationBodyList'] = this.getStampNsNotificationBodyList;
data['GetSubordinatesAttdStatusList'] = this.getSubordinatesAttdStatusList; data['GetSubordinatesAttdStatusList'] = this.getSubordinatesAttdStatusList;
data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList; data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList;
if (this.getSubordinatesLeavesList != null) {
data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList!.map((v) => v.toJson()).toList();
}
data['GetSubordinatesLeavesTotalVacationsList'] = this.getSubordinatesLeavesTotalVacationsList; data['GetSubordinatesLeavesTotalVacationsList'] = this.getSubordinatesLeavesTotalVacationsList;
data['GetSummaryOfPaymentList'] = this.getSummaryOfPaymentList; data['GetSummaryOfPaymentList'] = this.getSummaryOfPaymentList;
data['GetSwipesList'] = this.getSwipesList; data['GetSwipesList'] = this.getSwipesList;
@ -985,8 +1089,15 @@ class GenericResponseModel {
data['Mohemm_Wifi_Password'] = this.mohemmWifiPassword; data['Mohemm_Wifi_Password'] = this.mohemmWifiPassword;
data['Mohemm_Wifi_SSID'] = this.mohemmWifiSSID; data['Mohemm_Wifi_SSID'] = this.mohemmWifiSSID;
data['NotificationAction'] = this.notificationAction; data['NotificationAction'] = this.notificationAction;
data['NotificationGetRespondAttributesList'] = this.notificationGetRespondAttributesList;
data['NotificationRespondRolesList'] = this.notificationRespondRolesList; if (notificationGetRespondAttributesList != null) {
data['NotificationGetRespondAttributesList'] = notificationGetRespondAttributesList!.map((v) => v.toJson()).toList();
}
if (notificationRespondRolesList != null) {
data['NotificationRespondRolesList'] = notificationRespondRolesList!.map((v) => v).toList();
}
data['OracleOutPutNumber'] = this.oracleOutPutNumber; data['OracleOutPutNumber'] = this.oracleOutPutNumber;
data['PASSWORD_EXPIRED_MSG'] = this.pASSWORDEXPIREDMSG; data['PASSWORD_EXPIRED_MSG'] = this.pASSWORDEXPIREDMSG;
data['P_COUNTRY_CODE'] = this.pCOUNTRYCODE; data['P_COUNTRY_CODE'] = this.pCOUNTRYCODE;
@ -1037,6 +1148,11 @@ class GenericResponseModel {
data['SubmitSITTransactionList'] = this.submitSITTransactionList; data['SubmitSITTransactionList'] = this.submitSITTransactionList;
data['SubmitTermTransactionList'] = this.submitTermTransactionList; data['SubmitTermTransactionList'] = this.submitTermTransactionList;
data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList; data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList;
if (this.subordinatesOnLeavesList != null) {
data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList!.map((v) => v.toJson()).toList();
}
data['SumbitAbsenceTransactionList'] = this.sumbitAbsenceTransactionList; data['SumbitAbsenceTransactionList'] = this.sumbitAbsenceTransactionList;
data['TokenID'] = this.tokenID; data['TokenID'] = this.tokenID;
data['UpdateAttachmentList'] = this.updateAttachmentList; data['UpdateAttachmentList'] = this.updateAttachmentList;

@ -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,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,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,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,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;
}
}

@ -131,8 +131,7 @@ class _LoginScreenState extends State<LoginScreen> {
// username.text = "15153"; // username.text = "15153";
// password.text = "Xy12345@"; // password.text = "Xy12345@";
username.text = "287742";
password.text = "509@Shafi";
return Scaffold( return Scaffold(
body: Column( body: Column(
children: [ children: [

@ -1,39 +1,46 @@
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/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_action_history_list_model.dart';
import 'package:mohem_flutter_app/ui/work_list/sheets/delegate_sheet.dart'; import 'package:mohem_flutter_app/ui/work_list/sheets/delegate_sheet.dart';
import 'package:mohem_flutter_app/ui/work_list/sheets/request_more_info_sheet.dart'; import 'package:mohem_flutter_app/ui/work_list/sheets/request_more_info_sheet.dart';
import 'package:mohem_flutter_app/widgets/bottom_sheet.dart'; import 'package:mohem_flutter_app/widgets/bottom_sheet.dart';
import 'package:mohem_flutter_app/widgets/circular_avatar.dart'; import 'package:mohem_flutter_app/widgets/circular_avatar.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/widget_extensions.dart';
import 'dart:math' as math;
class ActionsFragment extends StatelessWidget { class ActionsFragment extends StatelessWidget {
List<GetActionHistoryList> actionHistoryList;
ActionsFragment(this.actionHistoryList, {Key? key}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
child: ListView.separated( child: ListView.separated(
itemCount: actionsList.length, itemCount: actionHistoryList.length,
padding: EdgeInsets.all(21), padding: EdgeInsets.all(21),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return showItem(context, actionsList[index]); return showItem(context, actionHistoryList[index]);
}, },
separatorBuilder: (BuildContext context, int index) { separatorBuilder: (BuildContext context, int index) {
return 16.height; return 12.height;
}, },
), ),
); );
} }
Widget showItem(BuildContext context, Color color) { Widget showItem(BuildContext context, GetActionHistoryList actionHistory) {
return Container( return Container(
width: double.infinity, width: double.infinity,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(10),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: const Color(0xff000000).withOpacity(.05), color: const Color(0xff000000).withOpacity(.05),
@ -47,94 +54,54 @@ class ActionsFragment extends StatelessWidget {
clipBehavior: Clip.antiAlias, clipBehavior: Clip.antiAlias,
children: [ children: [
Positioned( Positioned(
left: -21, left: -20,
top: -10,
child: Transform.rotate( child: Transform.rotate(
angle: 125, angle: 15,
child: Container( child: Container(
width: 60, width: 50,
height: 20, height: 30,
color: color, color: getStatusColor(actionHistory.aCTIONCODE!),
), ),
), ),
), ),
Column( Column(
children: [ children: [
Padding( Row(
padding: const EdgeInsets.only(left: 12, right: 12, top: 12), crossAxisAlignment: CrossAxisAlignment.start,
child: Column( children: [
children: [ CircularAvatar(url: actionHistory.eMPLOYEEIMAGE ?? "", isImageBase64: true, height: 34, width: 34),
Row( 9.width,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
CircularAvatar(), actionHistory.nAME!.toText16(),
12.width, if ((actionHistory.nOTE ?? "").isNotEmpty) actionHistory.nOTE!.toText12(color: MyColors.grey57Color),
Expanded( 4.height,
child: Column( Row(
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [ actionHistory.aCTION!.toText10(),
"Mahmoud Shrouf".toText16(), 8.width,
6.height, if (actionHistory.nOTIFICATIONDATE!.isNotEmpty)
"Missing Swipe Request for Hussain, Mohammad has been approved" DateUtil.formatDateToDate(DateUtil.convertSimpleStringDateToDateddMMyyyy(actionHistory.nOTIFICATIONDATE!), false).toText12(color: MyColors.lightTextColor),
.toText12(), ],
3.height,
Row(
children: [
"Submitted".toText10(),
12.width,
"On 07 Jan 2021"
.toText12(color: MyColors.lightTextColor)
],
)
],
),
) )
], ],
), ),
], )
), ],
), ).paddingOnly(top: 19, left: 16, right: 16, bottom: 12),
12.height, Container(width: double.infinity, height: 1, color: MyColors.lightGreyEFColor),
Container(
width: double.infinity,
height: 1,
color: MyColors.lightTextColor,
),
Row( Row(
children: [ children: [
Expanded( LocaleKeys.request_info.tr().toText12(color: MyColors.grey67Color).center.paddingOnly(top: 6, bottom: 6).onPress(() {
child: InkWell( showMyBottomSheet(context, child: RequestMoreInfoSheet());
onTap: () { }).expanded,
showMyBottomSheet(context, Container(width: 1, height: 30, color: MyColors.lightGreyEFColor),
child: RequestMoreInfoSheet()); LocaleKeys.delegate.tr().toText12(color: MyColors.gradiantEndColor).center.paddingOnly(top: 6, bottom: 6).onPress(() {
}, showMyBottomSheet(context, child: DelegateSheet());
child: Center( }).expanded,
child: "Request Info"
.toText12(isBold: true)
.paddingOnly(
left: 21, right: 21, top: 8, bottom: 8),
),
),
),
Center(
child: Container(
width: 1,
height: 45,
color: MyColors.lightTextColor,
),
),
Expanded(
child: InkWell(
onTap: () {
showMyBottomSheet(context, child: DelegateSheet());
},
child: Center(
child: "Delegate"
.toText12(
color: MyColors.gradiantEndColor, isBold: true)
.paddingOnly(
left: 21, right: 21, top: 8, bottom: 8),
),
),
),
], ],
), ),
], ],
@ -143,6 +110,20 @@ class ActionsFragment extends StatelessWidget {
), ),
); );
} }
Color getStatusColor(String code) {
if (code == "SUBMIT") {
return const Color(0xff2E303A);
} else if (code == "REJECTED") {
return const Color(0xffD02127);
} else if (code == "APPROVED") {
return const Color(0xff1FA269);
} else if (code == "REQUEST_INFO") {
return const Color(0xff2E303A);
} else {
return const Color(0xff2E303A);
}
}
} }
List<Color> actionsList = [ List<Color> actionsList = [

@ -0,0 +1,69 @@
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';
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: [
detailListItem(LocaleKeys.from.tr(), widget.workListData!.fROMUSER ?? ""),
detailListItem(LocaleKeys.to.tr(), widget.workListData!.tOUSER ?? ""),
detailListItem(LocaleKeys.sent.tr(), widget.workListData!.bEGINDATE ?? ""),
detailListItem(LocaleKeys.closed.tr(), widget.workListData!.eNDDATE ?? ""),
detailListItem(LocaleKeys.id.tr(), widget.workListData!.nOTIFICATIONID?.toString() ?? ""),
detailListItem(LocaleKeys.responder.tr(), widget.workListData!.rESPONDER ?? ""),
],
).objectContainerView(),
12.height,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
detailListItem(LocaleKeys.employeeNumber.tr(), widget.memberInformationListModel!.eMPLOYEENUMBER ?? ""),
detailListItem(LocaleKeys.employeeName.tr(),
(AppState().isArabic(context) ? widget.memberInformationListModel!.eMPLOYEEDISPLAYNAMEAr : widget.memberInformationListModel!.eMPLOYEEDISPLAYNAMEEn) ?? ""),
detailListItem(LocaleKeys.jobTitle.tr(), widget.memberInformationListModel!.pOSITIONNAME ?? ""),
detailListItem(LocaleKeys.grade.tr(), widget.memberInformationListModel!.gRADENAME ?? ""),
detailListItem(LocaleKeys.jobCategory.tr(), widget.memberInformationListModel!.pOSITIONNAME?.toString() ?? ""),
detailListItem(LocaleKeys.category.tr(), widget.memberInformationListModel!.eMPLOYMENTCATEGORYMEANING ?? ""),
detailListItem(LocaleKeys.employeeEmailAddress.tr(), widget.memberInformationListModel!.eMPLOYEEEMAILADDRESS ?? ""),
detailListItem(LocaleKeys.payrollBranch.tr(), widget.memberInformationListModel!.pAYROLLNAME ?? ""),
],
).objectContainerView(),
],
).paddingAll(21);
}
Widget detailListItem(String title, String value) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"$title:".toText12(isBold: true, color: const Color(0xff2D3238)),
6.width,
(value.isEmpty ? "--" : value).toText12(color: MyColors.normalTextColor).expanded,
],
);
}
}

@ -1,69 +1,80 @@
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_stamp_ms_notification_body_list_model.dart';
class InfoFragment extends StatelessWidget { class InfoFragment extends StatelessWidget {
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotifications;
List<GetStampMsNotificationBodyList>? getStampNotifications;
InfoFragment({this.getAbsenceCollectionNotifications, this.getStampNotifications});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
child: Column( child: ListView(
padding: const EdgeInsets.all(21),
children: [ children: [
Container( if ((getAbsenceCollectionNotifications?.length ?? 0) > 0)
width: double.infinity, getAbsenceCollectionNotificationsListView(getAbsenceCollectionNotifications ?? []).objectContainerView(title: "Absence Notifications"),
decoration: BoxDecoration( if ((getStampNotifications?.length ?? 0) > 0) getStampNotificationsListView(getStampNotifications ?? []).objectContainerView(title: "Stamp Notifications")
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(
children: [
Row(
children: [
Expanded(
child: "Info Details".toText16(),
),
// Icon(Icons.keyboard_arrow_down_rounded),
],
),
Column(
children: [
12.height,
showItem("From:", "Alma Linde Mendoza"),
showItem("To:", "Al Yabis, Norah"),
showItem("Sent:", "1/26/2020 10:41:07 AM"),
showItem("ID:", "30581045"),
showItem("Closed:", "-"),
],
),
],
),
),
], ],
), ),
); );
} }
Widget showItem(String title, String value) { Widget getAbsenceCollectionNotificationsListView(List<GetAbsenceCollectionNotificationBodyList> list) {
return Padding( List<CollectionNotification> dataList = list.isEmpty ? [] : (list.first.collectionNotification ?? []);
padding: const EdgeInsets.only(top: 2, bottom: 2), return ListView.separated(
child: Row( shrinkWrap: true,
children: [ physics: const NeverScrollableScrollPhysics(),
title.toText12(isBold: true), itemBuilder: (cxt, index) => detailListItem(dataList[index].sEGMENTPROMPT!, dataList[index].sEGMENTVALUEDSP!),
6.width, separatorBuilder: (cxt, index) => 4.height,
title.toText12(isBold: false, color: MyColors.normalTextColor), itemCount: dataList.length);
], }
),
Widget getStampNotificationsListView(List<GetStampMsNotificationBodyList> list) {
return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (cxt, index) => Column(
mainAxisSize: MainAxisSize.min,
children: [
detailListItem(LocaleKeys.employeeNumber.tr(), list[index].eMPLOYEENUMBER.toString()),
detailListItem(LocaleKeys.assignmentNumber.tr(), list[index].aSSIGNMENTNUMBER.toString()),
detailListItem(LocaleKeys.employeeName.tr(), list[index].eMPLOYEENAME.toString()),
detailListItem(LocaleKeys.scheduleDate.tr(), DateUtil.formatDateToDate(DateUtil.convertStringToDate(list[index].sCHEDULEDATE.toString()), false)),
detailListItem(LocaleKeys.shiftType.tr(), list[index].sHTTYPEDESC.toString()),
detailListItem(LocaleKeys.shift.tr(), list[index].sHTNAME.toString()),
detailListItem(LocaleKeys.breakText.tr(), list[index].bREAKNAME.toString()),
detailListItem(LocaleKeys.actualSwipeStart.tr(), list[index].sHTACTUALSTARTTIME.toString()),
detailListItem(LocaleKeys.actualSwipeEnd.tr(), list[index].sHTACTUALENDTIME.toString()),
detailListItem(LocaleKeys.approvedSwipeStart.tr(), list[index].aPPROVEDSTARTTIME.toString()),
detailListItem(LocaleKeys.approvedSwipeStartReason.tr(), list[index].aPPROVEDSTARTREASON.toString()),
detailListItem(LocaleKeys.approvedSwipeEnd.tr(), ""),
detailListItem(LocaleKeys.approvedSwipeEndReason.tr(), list[index].aPPROVEDENDREASONDESC.toString()),
],
),
separatorBuilder: (cxt, index) => 18.height,
itemCount: list.length);
}
Widget detailListItem(String title, String value) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"$title:".toText12(isBold: true, color: const Color(0xff2D3238)),
6.width,
(value.isEmpty ? "--" : value).toText12(color: MyColors.normalTextColor).expanded,
],
); );
} }
} }

@ -1,7 +1,7 @@
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/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/string_extensions.dart';
class RequestFragment extends StatefulWidget { class RequestFragment extends StatefulWidget {
@override @override
@ -53,8 +53,7 @@ class _RequestFragmentState extends State<RequestFragment> {
showItem("Organization Code:", "SWD"), showItem("Organization Code:", "SWD"),
showItem("From Subinventory:", "SWD_MSPS"), showItem("From Subinventory:", "SWD_MSPS"),
showItem("To Subinventory:", "SWD_MSPS"), showItem("To Subinventory:", "SWD_MSPS"),
showItem("Ship To Location :", showItem("Ship To Location :", "SWD 11206-E.R. (Emergency Room)"),
"SWD 11206-E.R. (Emergency Room)"),
showItem("Unit:", "Each"), showItem("Unit:", "Each"),
showItem("Date Required:", "12/23/2019 4:54:04 PM"), showItem("Date Required:", "12/23/2019 4:54:04 PM"),
showItem("Status Date:", "12/23/2019 4:54:04 PM"), showItem("Status Date:", "12/23/2019 4:54:04 PM"),

@ -1,13 +1,26 @@
import 'dart:convert';
import 'package:easy_localization/src/public_ext.dart'; 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:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.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/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.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_notification_buttons_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ms_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/app_bar_widget.dart';
@ -27,6 +40,22 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
PageController controller = PageController(); PageController controller = PageController();
bool showFabOptions = false; bool showFabOptions = false;
WorkListResponseModel? workListData;
MemberInformationListModel? memberInformationListModel;
List<GetNotificationButtonsList> notificationButtonsList = [];
List<GetActionHistoryList> actionHistoryList = [];
List<GetStampMsNotificationBodyList> getStampNotifications = [];
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotifications;
List<NotificationGetRespondAttributesList> getNotificationRespondAttributes = [];
GenericResponseModel? getBasicNTFBody;
GenericResponseModel? getICBody;
GenericResponseModel? subordinatesLeavesModel;
bool isCloseAvailable = false;
bool isApproveAvailable = false;
bool isRejectAvailable = false;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -37,8 +66,44 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
super.dispose(); super.dispose();
} }
void getData() async {
try {
Utils.showLoading(context);
if (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") {
memberInformationListModel = await WorkListApiClient().getUserInformation(-999);
}
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") {
getStampNotifications = await WorkListApiClient().getStampMsNotificationBody(workListData!.nOTIFICATIONID!, -999);
}
getNotificationRespondAttributes = await WorkListApiClient().notificationGetRespondAttributes(workListData!.nOTIFICATIONID!);
notificationButtonsList = await WorkListApiClient().getNotificationButtons(workListData!.nOTIFICATIONID!);
actionHistoryList = await WorkListApiClient().getActionHistory(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, null);
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (workListData == null) {
workListData = ModalRoute.of(context)!.settings.arguments as WorkListResponseModel;
getData();
}
return Scaffold( return Scaffold(
appBar: AppBarWidget(context, title: LocaleKeys.details.tr()), appBar: AppBarWidget(context, title: LocaleKeys.details.tr()),
backgroundColor: Colors.white, backgroundColor: Colors.white,
@ -65,76 +130,86 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
), ),
child: Row( child: Row(
children: [ children: [
myTab("Request", 0), myTab(LocaleKeys.info.tr(), 0),
myTab("Actions", 1), (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") ? myTab(LocaleKeys.details.tr(), 1) : myTab(LocaleKeys.request.tr(), 1),
myTab("Attachments", 2), myTab(LocaleKeys.actions.tr(), 2),
myTab("Info.", 3), myTab(LocaleKeys.attachments.tr(), 3),
], ],
), ),
), ),
Expanded( PageView(
child: PageView( controller: controller,
controller: controller, onPageChanged: (pageIndex) {
onPageChanged: (pageIndex) { setState(() {
setState(() { tabIndex = pageIndex;
tabIndex = pageIndex; });
}); },
}, children: [
children: [ InfoFragment(getAbsenceCollectionNotifications: getAbsenceCollectionNotifications, getStampNotifications: getStampNotifications),
RequestFragment(), (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") ? DetailFragment(workListData, memberInformationListModel) : RequestFragment(),
ActionsFragment(), ActionsFragment(actionHistoryList),
AttachmentsFragment(), AttachmentsFragment(),
InfoFragment(), ],
], ).expanded,
), if (isApproveAvailable || isRejectAvailable || isCloseAvailable)
), Container(
Container( padding: const EdgeInsets.only(top: 14, bottom: 14, left: 21, right: 21),
padding: const EdgeInsets.only(top: 14, bottom: 14, left: 21, right: 21), decoration: const BoxDecoration(
decoration: const BoxDecoration( color: Colors.white,
color: Colors.white, border: Border(
border: Border( top: BorderSide(
top: BorderSide( color: MyColors.lightGreyEFColor,
color: MyColors.lightGreyEFColor, width: 1.0,
width: 1.0, ),
), ),
), ),
), child: Row(
child: Row( children: [
children: [ if (isRejectAvailable)
DefaultButton( DefaultButton(
LocaleKeys.reject.tr(), LocaleKeys.reject.tr(),
() {}, () {},
colors: const [ colors: const [
Color(0xffEB8C90), Color(0xffEB8C90),
Color(0xffDE6C70), Color(0xffDE6C70),
], ],
).expanded, ).expanded,
8.width, if (isApproveAvailable && isRejectAvailable) 8.width,
DefaultButton( if (isApproveAvailable)
LocaleKeys.approve.tr(), DefaultButton(
() {}, LocaleKeys.approve.tr(),
colors: const [ () {},
Color(0xff32D892), colors: const [
Color(0xff1AB170), Color(0xff32D892),
], Color(0xff1AB170),
).expanded, ],
8.width, ).expanded,
Container( if (isCloseAvailable)
height: 43, DefaultButton(
width: 43, LocaleKeys.ok.tr(),
decoration: const BoxDecoration( () {},
shape: BoxShape.circle, colors: const [
color: MyColors.lightGreyE6Color, Color(0xff32D892),
), Color(0xff1AB170),
child: Icon(showFabOptions ? Icons.more_vert_rounded : Icons.more_horiz_rounded, color: MyColors.darkIconColor), ],
).onPress(() { ).expanded,
setState(() { 8.width,
showFabOptions = true; Container(
}); height: 43,
}) width: 43,
], decoration: const BoxDecoration(
), shape: BoxShape.circle,
) color: MyColors.lightGreyE6Color,
),
child: Icon(showFabOptions ? Icons.more_vert_rounded : Icons.more_horiz_rounded, color: MyColors.darkIconColor),
).onPress(() {
setState(() {
showFabOptions = true;
});
})
],
),
)
], ],
), ),
IgnorePointer( IgnorePointer(
@ -143,7 +218,7 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
opacity: showFabOptions ? 1 : 0, opacity: showFabOptions ? 1 : 0,
duration: const Duration(milliseconds: 250), duration: const Duration(milliseconds: 250),
child: Container( child: Container(
padding: const EdgeInsets.only(left: 21, right: 21, bottom: 75), padding: const EdgeInsets.only(left: 21, right: 21, bottom: 75 - 12),
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
color: Colors.white.withOpacity(.67), color: Colors.white.withOpacity(.67),
@ -154,9 +229,7 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
children: [ children: [
myFab("Skip", "assets/images/skip.svg"), myFab("Skip", "assets/images/skip.svg"),
12.height, 12.height,
myFab("Request Info", "assets/images/request_info.svg"), ...viewApiButtonsList(notificationButtonsList),
12.height,
myFab("Delegate", "assets/images/delegate.svg"),
], ],
), ),
), ),
@ -168,9 +241,54 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
), ),
], ],
), ),
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) { Widget myTab(String title, int index) {
bool isSelected = (index == tabIndex); bool isSelected = (index == tabIndex);
return Column( return Column(
@ -197,7 +315,7 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
}).expanded; }).expanded;
} }
Widget myFab(String title, String icon) { Widget myFab(String title, String icon, {bool isIconAsset = true}) {
return Row( return Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
@ -220,7 +338,12 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
], ],
), ),
), ),
child: SvgPicture.asset(icon), child: isIconAsset
? SvgPicture.asset(icon)
: Image.memory(
base64Decode(icon),
fit: BoxFit.cover,
),
) )
], ],
); );

@ -76,7 +76,7 @@ class _WorkListScreenState extends State<WorkListScreen> {
try { try {
Utils.showLoading(context); Utils.showLoading(context);
if (workListItemTypes[workListItemIndex].key == "ITG") { if (workListItemTypes[workListItemIndex].key == "ITG") {
itgFormsModel = await WorkListApiClient().GetITGTaskCountRequestType(); itgFormsModel = await WorkListApiClient().getITGTaskCountRequestType();
List<RequestDetails> requestAllList = []; List<RequestDetails> requestAllList = [];
for (int i = 0; i < (itgFormsModel?.requestType!.length ?? 0); i++) { for (int i = 0; i < (itgFormsModel?.requestType!.length ?? 0); i++) {
requestAllList = requestAllList + (itgFormsModel?.requestType![i].requestDetails ?? []); requestAllList = requestAllList + (itgFormsModel?.requestType![i].requestDetails ?? []);
@ -274,7 +274,7 @@ class _WorkListScreenState extends State<WorkListScreen> {
Widget rowItem(WorkListItemTypeModelData data, WorkListResponseModel workData) { Widget rowItem(WorkListItemTypeModelData data, WorkListResponseModel workData) {
return InkWell( return InkWell(
onTap: () { onTap: () {
Navigator.pushNamed(context, AppRoutes.missingSwipe); Navigator.pushNamed(context, AppRoutes.missingSwipe, arguments: workData);
}, },
child: Container( child: Container(
width: double.infinity, width: double.infinity,

@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class CircularAvatar extends StatelessWidget { class CircularAvatar extends StatelessWidget {
@ -5,8 +7,9 @@ class CircularAvatar extends StatelessWidget {
final double radius; final double radius;
final double width; final double width;
final double height; final double height;
final bool isImageBase64;
CircularAvatar({Key? key, this.radius = 70.0, this.width = 70, this.height = 60, this.url}) : super(key: key); CircularAvatar({Key? key, this.radius = 70.0, this.width = 70, this.height = 60, this.url, this.isImageBase64 = false}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -15,10 +18,23 @@ class CircularAvatar extends StatelessWidget {
height: height, height: height,
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.circle, shape: BoxShape.circle,
image: DecorationImage( image: isImageBase64
fit: BoxFit.cover, ? null
image: NetworkImage(url ?? "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png"), : DecorationImage(
), fit: BoxFit.cover,
image: NetworkImage(url ?? "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png"),
),
),
child: isImageBase64 ? imageFromBase64String(url!) : null,
);
}
Widget imageFromBase64String(String base64String) {
return ClipRRect(
borderRadius: BorderRadius.circular(100),
child: Image.memory(
base64Decode(base64String),
fit: BoxFit.cover,
), ),
); );
} }

Loading…
Cancel
Save