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": "يرفض",
"approve": "يوافق",
"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_named": "{} are written in the {lang} language",
"clickMe": "Click me",

@ -67,6 +67,37 @@
"reject": "Reject",
"approve": "Approve",
"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_named": "{} are written in the {lang} language",
"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/models/dashboard/itg_forms_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_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';
class WorkListApiClient {
@ -29,7 +36,7 @@ class WorkListApiClient {
}, url, postParams);
}
Future<ItgFormsModel?> GetITGTaskCountRequestType() async {
Future<ItgFormsModel?> getITGTaskCountRequestType() async {
String url = "${ApiConsts.cocRest}ITGGetTaskCountRequestType";
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
@ -38,4 +45,117 @@ class WorkListApiClient {
return responseData;
}, url, postParams);
}
Future<GenericResponseModel> getSubordinatesLeaves(String fromDate, String toDate) async {
String url = "${ApiConsts.erpRest}GET_SUBORDINATES_LEAVES";
Map<String, dynamic> postParams = {"P_DATE_FROM": "/Date(1639861200000+0300)/", "P_DATE_TO": "/Date(1640120400000+0300)/"};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<List<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 lightTextColor = Color(0xffBFBFBF);
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 backgroundColor = Color(0xffF8F8F8);
static const Color grey57Color = Color(0xff575757);
static const Color grey67Color = Color(0xff676767);
static const Color grey77Color = Color(0xff777777);
static const Color grey70Color = Color(0xff707070);
static const Color greyACColor = Color(0xffACACAC);

@ -23,6 +23,10 @@ class DateUtil {
return DateFormat("MM/dd/yyyy hh:mm:ss").parse(date);
}
static DateTime convertSimpleStringDateToDateddMMyyyy(String date) {
return DateFormat("MM/dd/yyyy hh:mm:ss").parse(date);
}
static DateTime convertStringToDateNoTimeZone(String date) {
// /Date(1585774800000+0300)/
if (date != null) {

@ -1,5 +1,7 @@
import 'package:flutter/material.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';
extension WidgetExtensions on Widget {
@ -36,4 +38,30 @@ extension WidgetExtensions on Widget {
switchOutCurve: Curves.linearToEaseOut,
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;
class CodegenLoader extends AssetLoader {
class CodegenLoader extends AssetLoader{
const CodegenLoader();
@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()]);
}
static const Map<String, dynamic> ar_SA = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "تسجيل الدخول",
"pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول",
"username": "اسم المستخدم",
"password": "كلمة المرور",
"welcomeBack": "مرحبا بعودتك",
"wouldYouLikeToLoginWithCurrentUsername": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟",
"lastLoginDetails": "تفاصيل تسجيل الدخول الأخير:",
"verificationType": "نوع التحقق:",
"pleaseVerify": "ارجوك تحقق",
"verifyThroughFace": "تحقق من خلال الوجه",
"verifyThroughFingerprint": "تحقق من خلال بصمة الإصبع",
"verifyThroughSMS": "تحقق من خلال الرسائل القصيرة",
"verifyThroughWhatsapp": "تحقق من خلال Whatsapp",
"useAnotherAccount": "استخدم حسابا آخر",
"pleaseEnterTheVerificationCodeSentTo": "الرجاء إدخال رمز التحقق المرسل إلى ",
"theVerificationCodeWillExpireIn": "ستنتهي صلاحية رمز التحقق في ",
"goodMorning": "صباح الخير",
"markAttendance": "علامة الحضور",
"timeLeftToday": "الوقت المتبقي اليوم",
"checkIn": "تحقق في",
"workList": "قائمة العمل",
"leaveBalance": "رصيد الاجازات",
"missingSwipes": "الضربات الشديدة في عداد المفقودين",
"ticketBalance": "رصيد التذكرة",
"other": "آخر",
"services": "خدمات",
"viewAllServices": "عرض جميع الخدمات",
"monthlyAttendance": "الحضور الشهري",
"workFromHome": "العمل من المنزل",
"ticketRequest": "طلب تذكرة",
"viewAllOffers": "مشاهدة جميع العروض",
"offers": "عروض & ",
"discounts": "الخصومات",
"newString": "جديد",
"setTheNewPassword": "قم بتعيين كلمة المرور الجديدة",
"typeYourNewPasswordBelow": "اكتب كلمة المرور الجديدة أدناه",
"confirmPassword": "تأكيد كلمة المرور",
"update": "تحديث",
"title": "عنوان",
"home": "مسكن",
"mySalary": "راتبي",
"createRequest": "إنشاء طلب",
"forgotPassword": "هل نسيت كلمة السر",
"employeeId": "هوية الموظف",
"loginCodeWillSentToMobileNumber": "الرجاء إدخال معرف الموظف الخاص بك ، وسيتم إرسال رمز تسجيل الدخول إلى رقم هاتفك المحمول",
"changePassword": "تغيير كلمة المرور",
"ok": "موافق",
"confirm": "تؤكد",
"passwordChangedSuccessfully": "تم تغيير الرقم السري بنجاح",
"itemsForSale": "سلع للبيع",
"doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة",
"atLeastOneLowercase": "حرف صغير واحد على الأقل",
"atLeastOneUppercase": "حرف كبير واحد على الأقل",
"atLeastOneNumeric": "رقم واحد على الأقل",
"minimum8Characters": "8 أحرف على الأقل",
"doNotAddRepeatingLetters": "لا تقم بإضافة أحرف متكررة",
"itShouldContainSpecialCharacter": "يجب أن يحتوي على طابع خاص",
"confirmPasswordMustMatch": "يجب أن يتطابق تأكيد كلمة المرور",
"sms": "رسالة قصيرة",
"fingerPrint": "بصمة",
"face": "التعرف على الوجه",
"whatsapp": "واتس اب",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "Human",
"resources": "Resources",
"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, dynamic> en_US = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "Login",
"pleaseEnterLoginDetails": "Please enter the detail below to login",
"username": "Username",
"password": "Password",
"welcomeBack": "Welcome back",
"wouldYouLikeToLoginWithCurrentUsername": "Would you like to login with current Username?",
"lastLoginDetails": "Last Login Details:",
"verificationType": "Verification Type:",
"pleaseVerify": "Please Verify",
"verifyThroughFace": "Verify Through Face",
"verifyThroughFingerprint": "Verify Through Fingerprint",
"verifyThroughSMS": "Verify Through SMS",
"verifyThroughWhatsapp": "Verify Through Whatsapp",
"useAnotherAccount": "Use Another Account",
"pleaseEnterTheVerificationCodeSentTo": "Please enter the verification code sent to ",
"theVerificationCodeWillExpireIn": "The verification code will expire in ",
"goodMorning": "Good Morning",
"markAttendance": "Mark Attendance",
"timeLeftToday": "Time Left Today",
"checkIn": "Check In",
"workList": "Work List",
"leaveBalance": "Leave Balance",
"missingSwipes": "Missing Swipes",
"ticketBalance": "Ticket Balance",
"other": "Other",
"services": "Services",
"viewAllServices": "View All Services",
"monthlyAttendance": "Monthly Attendance",
"workFromHome": "Work From Home",
"ticketRequest": "Ticket Request",
"viewAllOffers": "View All Offers",
"offers": "Offers & ",
"discounts": "Discounts",
"newString": "New",
"setTheNewPassword": "Set the new password",
"typeYourNewPasswordBelow": "Type your new password below",
"confirmPassword": "Confirm Password",
"update": "Update",
"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",
"msg": "Hello {} in the {} world ",
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "Human",
"resources": "Resources",
"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};
static const Map<String,dynamic> ar_SA = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "تسجيل الدخول",
"pleaseEnterLoginDetails": "الرجاء إدخال التفاصيل أدناه لتسجيل الدخول",
"username": "اسم المستخدم",
"password": "كلمة المرور",
"welcomeBack": "مرحبا بعودتك",
"wouldYouLikeToLoginWithCurrentUsername": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟",
"lastLoginDetails": "تفاصيل تسجيل الدخول الأخير:",
"verificationType": "نوع التحقق:",
"pleaseVerify": "ارجوك تحقق",
"verifyThroughFace": "تحقق من خلال الوجه",
"verifyThroughFingerprint": "تحقق من خلال بصمة الإصبع",
"verifyThroughSMS": "تحقق من خلال الرسائل القصيرة",
"verifyThroughWhatsapp": "تحقق من خلال Whatsapp",
"useAnotherAccount": "استخدم حسابا آخر",
"pleaseEnterTheVerificationCodeSentTo": "الرجاء إدخال رمز التحقق المرسل إلى ",
"theVerificationCodeWillExpireIn": "ستنتهي صلاحية رمز التحقق في ",
"goodMorning": "صباح الخير",
"markAttendance": "علامة الحضور",
"timeLeftToday": "الوقت المتبقي اليوم",
"checkIn": "تحقق في",
"workList": "قائمة العمل",
"leaveBalance": "رصيد الاجازات",
"missingSwipes": "الضربات الشديدة في عداد المفقودين",
"ticketBalance": "رصيد التذكرة",
"other": "آخر",
"services": "خدمات",
"viewAllServices": "عرض جميع الخدمات",
"monthlyAttendance": "الحضور الشهري",
"workFromHome": "العمل من المنزل",
"ticketRequest": "طلب تذكرة",
"viewAllOffers": "مشاهدة جميع العروض",
"offers": "عروض & ",
"discounts": "الخصومات",
"newString": "جديد",
"setTheNewPassword": "قم بتعيين كلمة المرور الجديدة",
"typeYourNewPasswordBelow": "اكتب كلمة المرور الجديدة أدناه",
"confirmPassword": "تأكيد كلمة المرور",
"update": "تحديث",
"title": "عنوان",
"home": "مسكن",
"mySalary": "راتبي",
"createRequest": "إنشاء طلب",
"forgotPassword": "هل نسيت كلمة السر",
"employeeId": "هوية الموظف",
"loginCodeWillSentToMobileNumber": "الرجاء إدخال معرف الموظف الخاص بك ، وسيتم إرسال رمز تسجيل الدخول إلى رقم هاتفك المحمول",
"changePassword": "تغيير كلمة المرور",
"ok": "موافق",
"confirm": "تؤكد",
"passwordChangedSuccessfully": "تم تغيير الرقم السري بنجاح",
"itemsForSale": "سلع للبيع",
"doNotUseRecentPassword": "لا تستخدم كلمة مرور حديثة",
"atLeastOneLowercase": "حرف صغير واحد على الأقل",
"atLeastOneUppercase": "حرف كبير واحد على الأقل",
"atLeastOneNumeric": "رقم واحد على الأقل",
"minimum8Characters": "8 أحرف على الأقل",
"doNotAddRepeatingLetters": "لا تقم بإضافة أحرف متكررة",
"itShouldContainSpecialCharacter": "يجب أن يحتوي على طابع خاص",
"confirmPasswordMustMatch": "يجب أن يتطابق تأكيد كلمة المرور",
"sms": "رسالة قصيرة",
"fingerPrint": "بصمة",
"face": "التعرف على الوجه",
"whatsapp": "واتس اب",
"reject": "يرفض",
"approve": "يوافق",
"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_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"human": "بشري",
"resources": "موارد",
"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,dynamic> en_US = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "Arabic",
"login": "Login",
"pleaseEnterLoginDetails": "Please enter the detail below to login",
"username": "Username",
"password": "Password",
"welcomeBack": "Welcome back",
"wouldYouLikeToLoginWithCurrentUsername": "Would you like to login with current Username?",
"lastLoginDetails": "Last Login Details:",
"verificationType": "Verification Type:",
"pleaseVerify": "Please Verify",
"verifyThroughFace": "Verify Through Face",
"verifyThroughFingerprint": "Verify Through Fingerprint",
"verifyThroughSMS": "Verify Through SMS",
"verifyThroughWhatsapp": "Verify Through Whatsapp",
"useAnotherAccount": "Use Another Account",
"pleaseEnterTheVerificationCodeSentTo": "Please enter the verification code sent to ",
"theVerificationCodeWillExpireIn": "The verification code will expire in ",
"goodMorning": "Good Morning",
"markAttendance": "Mark Attendance",
"timeLeftToday": "Time Left Today",
"checkIn": "Check In",
"workList": "Work List",
"leaveBalance": "Leave Balance",
"missingSwipes": "Missing Swipes",
"ticketBalance": "Ticket Balance",
"other": "Other",
"services": "Services",
"viewAllServices": "View All Services",
"monthlyAttendance": "Monthly Attendance",
"workFromHome": "Work From Home",
"ticketRequest": "Ticket Request",
"viewAllOffers": "View All Offers",
"offers": "Offers & ",
"discounts": "Discounts",
"newString": "New",
"setTheNewPassword": "Set the new password",
"typeYourNewPasswordBelow": "Type your new password below",
"confirmPassword": "Confirm Password",
"update": "Update",
"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/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 'basic_member_information_model.dart';
import 'get_mobile_login_info_list_model.dart';
import 'dashboard/get_accrual_balances_list_model.dart';
import 'dashboard/get_attendance_tracking_list_model.dart';
import 'dashboard/get_open_missing_swipes_list_model.dart';
import 'dashboard/get_open_notifications_list.dart';
import 'dashboard/list_menu.dart';
import 'dashboard/menu_entries.dart';
import 'get_mobile_login_info_list_model.dart';
import 'member_information_list_model.dart';
import 'privilege_list_model.dart';
@ -62,11 +70,11 @@ class GenericResponseModel {
String? forgetPasswordTokenID;
List<String>? getAbsenceAttachmentsList;
List<String>? getAbsenceAttendanceTypesList;
List<String>? getAbsenceCollectionNotificationBodyList;
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotificationBodyList;
List<String>? getAbsenceDffStructureList;
List<String>? getAbsenceTransactionList;
List<GetAccrualBalancesList>? getAccrualBalancesList;
List<String>? getActionHistoryList;
List<GetActionHistoryList>? getActionHistoryList;
List<String>? getAddressDffStructureList;
List<String>? getAddressNotificationBodyList;
List<String>? getApprovesList;
@ -74,7 +82,7 @@ class GenericResponseModel {
GetAttendanceTracking? getAttendanceTrackingList;
List<String>? getBasicDetColsStructureList;
List<String>? getBasicDetDffStructureList;
List<String>? getBasicDetNtfBodyList;
List<GetBasicDetNtfBodyList>? getBasicDetNtfBodyList;
List<String>? getCEICollectionNotificationBodyList;
List<String>? getCEIDFFStructureList;
List<String>? getCEITransactionList;
@ -109,8 +117,8 @@ class GenericResponseModel {
List<String>? getLookupValuesList;
List<GetMenuEntriesList>? getMenuEntriesList;
List<String>? getMoItemHistoryList;
List<String>? getMoNotificationBodyList;
List<String>? getNotificationButtonsList;
List<GetMoNotificationBodyList>? getMoNotificationBodyList;
List<GetNotificationButtonsList>? getNotificationButtonsList;
List<String>? getNotificationReassignModeList;
List<String>? getObjectValuesList;
GetOpenMissingSwipesList? getOpenMissingSwipesList;
@ -135,10 +143,10 @@ class GenericResponseModel {
List<String>? getSITTransactionList;
List<String>? getScheduleShiftsDetailsList;
List<String>? getShiftTypesList;
List<String>? getStampMsNotificationBodyList;
List<GetStampMsNotificationBodyList>? getStampMsNotificationBodyList;
List<String>? getStampNsNotificationBodyList;
List<String>? getSubordinatesAttdStatusList;
List<String>? getSubordinatesLeavesList;
List<SubordinatesLeavesList>? getSubordinatesLeavesList;
List<String>? getSubordinatesLeavesTotalVacationsList;
List<String>? getSummaryOfPaymentList;
List<String>? getSwipesList;
@ -190,15 +198,15 @@ class GenericResponseModel {
String? mohemmWifiPassword;
String? mohemmWifiSSID;
String? notificationAction;
String? notificationGetRespondAttributesList;
String? notificationRespondRolesList;
List<NotificationGetRespondAttributesList>? notificationGetRespondAttributesList;
List<String>? notificationRespondRolesList;
int? oracleOutPutNumber;
String? pASSWORDEXPIREDMSG;
String? pCOUNTRYCODE;
String? pCOUNTRYNAME;
String? pDESCFLEXCONTEXTCODE;
String? pDESCFLEXCONTEXTNAME;
Null? pForm;
String? pForm;
String? pINFORMATION;
int? pMBLID;
String? pNUMOFSUBORDINATES;
@ -239,7 +247,7 @@ class GenericResponseModel {
String? submitPhonesTransactionList;
String? submitSITTransactionList;
String? submitTermTransactionList;
String? subordinatesOnLeavesList;
List<SubordinatesLeavesList>? subordinatesOnLeavesList;
String? sumbitAbsenceTransactionList;
String? tokenID;
String? updateAttachmentList;
@ -568,11 +576,25 @@ class GenericResponseModel {
forgetPasswordTokenID = json['ForgetPasswordTokenID'];
getAbsenceAttachmentsList = json['GetAbsenceAttachmentsList'];
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'];
getAbsenceTransactionList = json['GetAbsenceTransactionList'];
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'];
getAddressNotificationBodyList = json['GetAddressNotificationBodyList'];
getApprovesList = json['GetApprovesList'];
@ -580,7 +602,14 @@ class GenericResponseModel {
getAttendanceTrackingList = json["GetAttendanceTrackingList"] == null ? null : GetAttendanceTracking.fromMap(json["GetAttendanceTrackingList"]);
getBasicDetColsStructureList = json['GetBasicDetColsStructureList'];
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'];
getCEIDFFStructureList = json['GetCEIDFFStructureList'];
getCEITransactionList = json['GetCEITransactionList'];
@ -615,8 +644,21 @@ class GenericResponseModel {
getLookupValuesList = json['GetLookupValuesList'];
getMenuEntriesList = json["GetMenuEntriesList"] == null ? null : List<GetMenuEntriesList>.from(json["GetMenuEntriesList"].map((x) => GetMenuEntriesList.fromJson(x)));
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'];
getObjectValuesList = json['GetObjectValuesList'];
getOpenMissingSwipesList = json["GetOpenMissingSwipesList"] == null ? null : GetOpenMissingSwipesList.fromJson(json["GetOpenMissingSwipesList"]);
@ -641,10 +683,24 @@ class GenericResponseModel {
getSITTransactionList = json['GetSITTransactionList'];
getScheduleShiftsDetailsList = json['GetScheduleShiftsDetailsList'];
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'];
getSubordinatesAttdStatusList = json['GetSubordinatesAttdStatusList'];
getSubordinatesLeavesList = json['GetSubordinatesLeavesList'];
if (json['GetSubordinatesLeavesList'] != null) {
getSubordinatesLeavesList = <SubordinatesLeavesList>[];
json['GetSubordinatesLeavesList'].forEach((v) {
getSubordinatesLeavesList!.add(SubordinatesLeavesList.fromJson(v));
});
}
getSubordinatesLeavesTotalVacationsList = json['GetSubordinatesLeavesTotalVacationsList'];
getSummaryOfPaymentList = json['GetSummaryOfPaymentList'];
getSwipesList = json['GetSwipesList'];
@ -703,7 +759,7 @@ class GenericResponseModel {
if (json['Mohemm_GetMobileLoginInfoList'] != null) {
mohemmGetMobileLoginInfoList = <GetMobileLoginInfoListModel>[];
json['Mohemm_GetMobileLoginInfoList'].forEach((v) {
mohemmGetMobileLoginInfoList!.add(new GetMobileLoginInfoListModel.fromJson(v));
mohemmGetMobileLoginInfoList!.add(GetMobileLoginInfoListModel.fromJson(v));
});
}
mohemmGetPatientIDList = json['Mohemm_GetPatientID_List'];
@ -713,8 +769,21 @@ class GenericResponseModel {
mohemmWifiPassword = json['Mohemm_Wifi_Password'];
mohemmWifiSSID = json['Mohemm_Wifi_SSID'];
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'];
pASSWORDEXPIREDMSG = json['PASSWORD_EXPIRED_MSG'];
pCOUNTRYCODE = json['P_COUNTRY_CODE'];
@ -769,7 +838,14 @@ class GenericResponseModel {
submitPhonesTransactionList = json['SubmitPhonesTransactionList'];
submitSITTransactionList = json['SubmitSITTransactionList'];
submitTermTransactionList = json['SubmitTermTransactionList'];
subordinatesOnLeavesList = json['SubordinatesOnLeavesList'];
if (json['SubordinatesOnLeavesList'] != null) {
subordinatesOnLeavesList = <SubordinatesLeavesList>[];
json['GetSubordinatesLeavesList'].forEach((v) {
subordinatesOnLeavesList!.add(SubordinatesLeavesList.fromJson(v));
});
}
sumbitAbsenceTransactionList = json['SumbitAbsenceTransactionList'];
tokenID = json['TokenID'];
updateAttachmentList = json['UpdateAttachmentList'];
@ -849,11 +925,19 @@ class GenericResponseModel {
data['ForgetPasswordTokenID'] = this.forgetPasswordTokenID;
data['GetAbsenceAttachmentsList'] = this.getAbsenceAttachmentsList;
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['GetAbsenceTransactionList'] = this.getAbsenceTransactionList;
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['GetAddressNotificationBodyList'] = this.getAddressNotificationBodyList;
data['GetApprovesList'] = this.getApprovesList;
@ -861,7 +945,11 @@ class GenericResponseModel {
data['GetAttendanceTrackingList'] = this.getAttendanceTrackingList;
data['GetBasicDetColsStructureList'] = this.getBasicDetColsStructureList;
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['GetCEIDFFStructureList'] = this.getCEIDFFStructureList;
data['GetCEITransactionList'] = this.getCEITransactionList;
@ -896,8 +984,15 @@ class GenericResponseModel {
data['GetLookupValuesList'] = this.getLookupValuesList;
data['GetMenuEntriesList'] = this.getMenuEntriesList;
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['GetObjectValuesList'] = this.getObjectValuesList;
data['GetOpenMissingSwipesList'] = this.getOpenMissingSwipesList;
@ -922,10 +1017,19 @@ class GenericResponseModel {
data['GetSITTransactionList'] = this.getSITTransactionList;
data['GetScheduleShiftsDetailsList'] = this.getScheduleShiftsDetailsList;
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['GetSubordinatesAttdStatusList'] = this.getSubordinatesAttdStatusList;
data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList;
if (this.getSubordinatesLeavesList != null) {
data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList!.map((v) => v.toJson()).toList();
}
data['GetSubordinatesLeavesTotalVacationsList'] = this.getSubordinatesLeavesTotalVacationsList;
data['GetSummaryOfPaymentList'] = this.getSummaryOfPaymentList;
data['GetSwipesList'] = this.getSwipesList;
@ -985,8 +1089,15 @@ class GenericResponseModel {
data['Mohemm_Wifi_Password'] = this.mohemmWifiPassword;
data['Mohemm_Wifi_SSID'] = this.mohemmWifiSSID;
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['PASSWORD_EXPIRED_MSG'] = this.pASSWORDEXPIREDMSG;
data['P_COUNTRY_CODE'] = this.pCOUNTRYCODE;
@ -1037,6 +1148,11 @@ class GenericResponseModel {
data['SubmitSITTransactionList'] = this.submitSITTransactionList;
data['SubmitTermTransactionList'] = this.submitTermTransactionList;
data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList;
if (this.subordinatesOnLeavesList != null) {
data['SubordinatesOnLeavesList'] = this.subordinatesOnLeavesList!.map((v) => v.toJson()).toList();
}
data['SumbitAbsenceTransactionList'] = this.sumbitAbsenceTransactionList;
data['TokenID'] = this.tokenID;
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";
// password.text = "Xy12345@";
username.text = "287742";
password.text = "509@Shafi";
return Scaffold(
body: Column(
children: [

@ -1,39 +1,46 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/date_uitl.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_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/request_more_info_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/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 {
List<GetActionHistoryList> actionHistoryList;
ActionsFragment(this.actionHistoryList, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: double.infinity,
child: ListView.separated(
itemCount: actionsList.length,
itemCount: actionHistoryList.length,
padding: EdgeInsets.all(21),
itemBuilder: (context, index) {
return showItem(context, actionsList[index]);
return showItem(context, actionHistoryList[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(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
@ -47,94 +54,54 @@ class ActionsFragment extends StatelessWidget {
clipBehavior: Clip.antiAlias,
children: [
Positioned(
left: -21,
left: -20,
top: -10,
child: Transform.rotate(
angle: 125,
angle: 15,
child: Container(
width: 60,
height: 20,
color: color,
width: 50,
height: 30,
color: getStatusColor(actionHistory.aCTIONCODE!),
),
),
),
Column(
children: [
Padding(
padding: const EdgeInsets.only(left: 12, right: 12, top: 12),
child: Column(
children: [
Row(
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircularAvatar(url: actionHistory.eMPLOYEEIMAGE ?? "", isImageBase64: true, height: 34, width: 34),
9.width,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircularAvatar(),
12.width,
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Mahmoud Shrouf".toText16(),
6.height,
"Missing Swipe Request for Hussain, Mohammad has been approved"
.toText12(),
3.height,
Row(
children: [
"Submitted".toText10(),
12.width,
"On 07 Jan 2021"
.toText12(color: MyColors.lightTextColor)
],
)
],
),
actionHistory.nAME!.toText16(),
if ((actionHistory.nOTE ?? "").isNotEmpty) actionHistory.nOTE!.toText12(color: MyColors.grey57Color),
4.height,
Row(
children: [
actionHistory.aCTION!.toText10(),
8.width,
if (actionHistory.nOTIFICATIONDATE!.isNotEmpty)
DateUtil.formatDateToDate(DateUtil.convertSimpleStringDateToDateddMMyyyy(actionHistory.nOTIFICATIONDATE!), false).toText12(color: MyColors.lightTextColor),
],
)
],
),
],
),
),
12.height,
Container(
width: double.infinity,
height: 1,
color: MyColors.lightTextColor,
),
)
],
).paddingOnly(top: 19, left: 16, right: 16, bottom: 12),
Container(width: double.infinity, height: 1, color: MyColors.lightGreyEFColor),
Row(
children: [
Expanded(
child: InkWell(
onTap: () {
showMyBottomSheet(context,
child: RequestMoreInfoSheet());
},
child: Center(
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),
),
),
),
LocaleKeys.request_info.tr().toText12(color: MyColors.grey67Color).center.paddingOnly(top: 6, bottom: 6).onPress(() {
showMyBottomSheet(context, child: RequestMoreInfoSheet());
}).expanded,
Container(width: 1, height: 30, color: MyColors.lightGreyEFColor),
LocaleKeys.delegate.tr().toText12(color: MyColors.gradiantEndColor).center.paddingOnly(top: 6, bottom: 6).onPress(() {
showMyBottomSheet(context, child: DelegateSheet());
}).expanded,
],
),
],
@ -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 = [

@ -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:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/date_uitl.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
class InfoFragment extends StatelessWidget {
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotifications;
List<GetStampMsNotificationBodyList>? getStampNotifications;
InfoFragment({this.getAbsenceCollectionNotifications, this.getStampNotifications});
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: double.infinity,
child: Column(
child: ListView(
padding: const EdgeInsets.all(21),
children: [
Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
margin: EdgeInsets.all(21),
padding: EdgeInsets.only(top: 21, bottom: 21, right: 16, left: 16),
child: Column(
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:", "-"),
],
),
],
),
),
if ((getAbsenceCollectionNotifications?.length ?? 0) > 0)
getAbsenceCollectionNotificationsListView(getAbsenceCollectionNotifications ?? []).objectContainerView(title: "Absence Notifications"),
if ((getStampNotifications?.length ?? 0) > 0) getStampNotificationsListView(getStampNotifications ?? []).objectContainerView(title: "Stamp Notifications")
],
),
);
}
Widget showItem(String title, String value) {
return Padding(
padding: const EdgeInsets.only(top: 2, bottom: 2),
child: Row(
children: [
title.toText12(isBold: true),
6.width,
title.toText12(isBold: false, color: MyColors.normalTextColor),
],
),
Widget getAbsenceCollectionNotificationsListView(List<GetAbsenceCollectionNotificationBodyList> list) {
List<CollectionNotification> dataList = list.isEmpty ? [] : (list.first.collectionNotification ?? []);
return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (cxt, index) => detailListItem(dataList[index].sEGMENTPROMPT!, dataList[index].sEGMENTVALUEDSP!),
separatorBuilder: (cxt, index) => 4.height,
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: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/string_extensions.dart';
class RequestFragment extends StatefulWidget {
@override
@ -53,8 +53,7 @@ class _RequestFragmentState extends State<RequestFragment> {
showItem("Organization Code:", "SWD"),
showItem("From Subinventory:", "SWD_MSPS"),
showItem("To Subinventory:", "SWD_MSPS"),
showItem("Ship To Location :",
"SWD 11206-E.R. (Emergency Room)"),
showItem("Ship To Location :", "SWD 11206-E.R. (Emergency Room)"),
showItem("Unit:", "Each"),
showItem("Date Required:", "12/23/2019 4:54:04 PM"),
showItem("Status Date:", "12/23/2019 4:54:04 PM"),

@ -1,13 +1,26 @@
import 'dart:convert';
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart';
import 'package:mohem_flutter_app/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/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_absence_collection_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_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/attachments_fragment.dart';
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/detail_fragment.dart';
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/info_fragments.dart';
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/fragments/request_fragment.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
@ -27,6 +40,22 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
PageController controller = PageController();
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
void initState() {
super.initState();
@ -37,8 +66,44 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
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
Widget build(BuildContext context) {
if (workListData == null) {
workListData = ModalRoute.of(context)!.settings.arguments as WorkListResponseModel;
getData();
}
return Scaffold(
appBar: AppBarWidget(context, title: LocaleKeys.details.tr()),
backgroundColor: Colors.white,
@ -65,76 +130,86 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
),
child: Row(
children: [
myTab("Request", 0),
myTab("Actions", 1),
myTab("Attachments", 2),
myTab("Info.", 3),
myTab(LocaleKeys.info.tr(), 0),
(workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") ? myTab(LocaleKeys.details.tr(), 1) : myTab(LocaleKeys.request.tr(), 1),
myTab(LocaleKeys.actions.tr(), 2),
myTab(LocaleKeys.attachments.tr(), 3),
],
),
),
Expanded(
child: PageView(
controller: controller,
onPageChanged: (pageIndex) {
setState(() {
tabIndex = pageIndex;
});
},
children: [
RequestFragment(),
ActionsFragment(),
AttachmentsFragment(),
InfoFragment(),
],
),
),
Container(
padding: const EdgeInsets.only(top: 14, bottom: 14, left: 21, right: 21),
decoration: const BoxDecoration(
color: Colors.white,
border: Border(
top: BorderSide(
color: MyColors.lightGreyEFColor,
width: 1.0,
PageView(
controller: controller,
onPageChanged: (pageIndex) {
setState(() {
tabIndex = pageIndex;
});
},
children: [
InfoFragment(getAbsenceCollectionNotifications: getAbsenceCollectionNotifications, getStampNotifications: getStampNotifications),
(workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP") ? DetailFragment(workListData, memberInformationListModel) : RequestFragment(),
ActionsFragment(actionHistoryList),
AttachmentsFragment(),
],
).expanded,
if (isApproveAvailable || isRejectAvailable || isCloseAvailable)
Container(
padding: const EdgeInsets.only(top: 14, bottom: 14, left: 21, right: 21),
decoration: const BoxDecoration(
color: Colors.white,
border: Border(
top: BorderSide(
color: MyColors.lightGreyEFColor,
width: 1.0,
),
),
),
),
child: Row(
children: [
DefaultButton(
LocaleKeys.reject.tr(),
() {},
colors: const [
Color(0xffEB8C90),
Color(0xffDE6C70),
],
).expanded,
8.width,
DefaultButton(
LocaleKeys.approve.tr(),
() {},
colors: const [
Color(0xff32D892),
Color(0xff1AB170),
],
).expanded,
8.width,
Container(
height: 43,
width: 43,
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: MyColors.lightGreyE6Color,
),
child: Icon(showFabOptions ? Icons.more_vert_rounded : Icons.more_horiz_rounded, color: MyColors.darkIconColor),
).onPress(() {
setState(() {
showFabOptions = true;
});
})
],
),
)
child: Row(
children: [
if (isRejectAvailable)
DefaultButton(
LocaleKeys.reject.tr(),
() {},
colors: const [
Color(0xffEB8C90),
Color(0xffDE6C70),
],
).expanded,
if (isApproveAvailable && isRejectAvailable) 8.width,
if (isApproveAvailable)
DefaultButton(
LocaleKeys.approve.tr(),
() {},
colors: const [
Color(0xff32D892),
Color(0xff1AB170),
],
).expanded,
if (isCloseAvailable)
DefaultButton(
LocaleKeys.ok.tr(),
() {},
colors: const [
Color(0xff32D892),
Color(0xff1AB170),
],
).expanded,
8.width,
Container(
height: 43,
width: 43,
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: MyColors.lightGreyE6Color,
),
child: Icon(showFabOptions ? Icons.more_vert_rounded : Icons.more_horiz_rounded, color: MyColors.darkIconColor),
).onPress(() {
setState(() {
showFabOptions = true;
});
})
],
),
)
],
),
IgnorePointer(
@ -143,7 +218,7 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
opacity: showFabOptions ? 1 : 0,
duration: const Duration(milliseconds: 250),
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,
height: double.infinity,
color: Colors.white.withOpacity(.67),
@ -154,9 +229,7 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
children: [
myFab("Skip", "assets/images/skip.svg"),
12.height,
myFab("Request Info", "assets/images/request_info.svg"),
12.height,
myFab("Delegate", "assets/images/delegate.svg"),
...viewApiButtonsList(notificationButtonsList),
],
),
),
@ -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) {
bool isSelected = (index == tabIndex);
return Column(
@ -197,7 +315,7 @@ class _MissingSwipeScreenState extends State<MissingSwipeScreen> {
}).expanded;
}
Widget myFab(String title, String icon) {
Widget myFab(String title, String icon, {bool isIconAsset = true}) {
return Row(
mainAxisSize: MainAxisSize.min,
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 {
Utils.showLoading(context);
if (workListItemTypes[workListItemIndex].key == "ITG") {
itgFormsModel = await WorkListApiClient().GetITGTaskCountRequestType();
itgFormsModel = await WorkListApiClient().getITGTaskCountRequestType();
List<RequestDetails> requestAllList = [];
for (int i = 0; i < (itgFormsModel?.requestType!.length ?? 0); i++) {
requestAllList = requestAllList + (itgFormsModel?.requestType![i].requestDetails ?? []);
@ -274,7 +274,7 @@ class _WorkListScreenState extends State<WorkListScreen> {
Widget rowItem(WorkListItemTypeModelData data, WorkListResponseModel workData) {
return InkWell(
onTap: () {
Navigator.pushNamed(context, AppRoutes.missingSwipe);
Navigator.pushNamed(context, AppRoutes.missingSwipe, arguments: workData);
},
child: Container(
width: double.infinity,

@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:flutter/material.dart';
class CircularAvatar extends StatelessWidget {
@ -5,8 +7,9 @@ class CircularAvatar extends StatelessWidget {
final double radius;
final double width;
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
Widget build(BuildContext context) {
@ -15,10 +18,23 @@ class CircularAvatar extends StatelessWidget {
height: height,
decoration: BoxDecoration(
shape: BoxShape.circle,
image: DecorationImage(
fit: BoxFit.cover,
image: NetworkImage(url ?? "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png"),
),
image: isImageBase64
? null
: 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