Merge branch 'development_sikander' into 'master'

Development sikander

See merge request mirza.shafique/mohem_flutter_app!46
merge-requests/1/merge
Sikander Saleem 2 years ago
commit 49aaa42c40

@ -30,6 +30,9 @@
"services": "خدمات",
"viewAllServices": "عرض جميع الخدمات",
"monthlyAttendance": "الحضور الشهري",
"vacationRule": "حكم اجازة",
"startDateT": "تاريخ البدء",
"endDateT": "تاريخ الانتهاء",
"workFromHome": "العمل من المنزل",
"ticketRequest": "طلب تذكرة",
"viewAllOffers": "مشاهدة جميع العروض",
@ -231,6 +234,7 @@
"myAttendance": "حضوري",
"workOnBreak": "التعويض عن العمل اثناءالاستراحه",
"next": "التالي",
"apply": "يتقدم",
"mobile": "التليفون المحمول",
"completingYear": "نحن نقدر لك لاستكمال خدمة",
"year": "سنة",
@ -272,39 +276,39 @@
"addNewFamilyMember": "اضافة عضو جديد",
"addRow": "اضافة صف جديد",
"pleaseSelect": "الرجاء اختيار",
"delete" : "حذف",
"edit" : "تعديل",
"add" : "اضافه",
"delete": "حذف",
"edit": "تعديل",
"add": "اضافه",
"myProfile": "معلوماتي",
"mowadhafhi": "موظفي",
"searchAnnouncements": "بحث الاعلانات",
"announcements": "اعلانات",
"swipeRequest": "طلب تسجيل حضور",
"serviceType":"نوع الخدمه",
"departmentName":"اسم القسم",
"serviceType": "نوع الخدمه",
"departmentName": "اسم القسم",
"selectDepartment": "اختر القسم",
"relatedSection":"قسم ذو صله",
"relatedSection": "قسم ذو صله",
"selectSection": "اختيار القسم",
"relatedTopic": "عنوان ذو صله",
"selectTopic": "اختر العنوان",
"supportingDocument":"ارفاق مستند",
"supportingDocument": "ارفاق مستند",
"mowadhafhiRequest": "طلب موظفي",
"ticketReference":"مرجع التذكره",
"ticketReference": "مرجع التذكره",
"section": "القسم",
"topic": "العنوان",
"actionBy":"الرد بواسطة",
"pending" : "معلق",
"actionBy": "الرد بواسطة",
"pending": "معلق",
"pendingTransactions": "المعاملات المعلقه",
"selectRequestType":"الرجاء اختيار نوع الطلب",
"dateFrom":"من تاريخ",
"dateTo":"الى تاريخ",
"requestName":"اسم الطلب",
"createdFor":"انشاء لأجل",
"selectRequestType": "الرجاء اختيار نوع الطلب",
"dateFrom": "من تاريخ",
"dateTo": "الى تاريخ",
"requestName": "اسم الطلب",
"createdFor": "انشاء لأجل",
"requestCreatedSuccessfully": "تم انشاء الطلب بنجاح",
"search": "بحث",
"wantToReject": "هل انت متأكد تريد الرفض",
"requestType":"نوع الطلب",
"employeeDigitalID":"هويةالموظف الرقمية",
"requestType": "نوع الطلب",
"employeeDigitalID": "هويةالموظف الرقمية",
"businessCard": "بطاقة العمل",
"profile": {
"reset_password": {

@ -30,6 +30,9 @@
"services": "Services",
"viewAllServices": "View All Services",
"monthlyAttendance": "Monthly Attendance",
"vacationRule": "Vacation Rule",
"startDateT": "Start Date",
"endDateT": "End Date",
"workFromHome": "Work From Home",
"ticketRequest": "Ticket Request",
"viewAllOffers": "View All Offers",
@ -231,6 +234,7 @@
"myAttendance": "My Attendance",
"workOnBreak": "Work On Break",
"next": "Next",
"apply": "Apply",
"mobile": "Mobile",
"year": "Year",
"month": "Month",
@ -273,38 +277,38 @@
"addNewFamilyMember": "Add New Family Member",
"addRow": "Add new row",
"pleaseSelect": "Please Select *",
"delete" : "delete",
"add" : "Add",
"edit" : "Edit",
"delete": "delete",
"add": "Add",
"edit": "Edit",
"myProfile": "My Profile",
"mowadhafhi": "Mowadhafhi",
"searchAnnouncements": "Search Announcements",
"announcements": "Announcements",
"swipeRequest": "Swipe Request",
"serviceType":"Service Type",
"departmentName":"Department Name",
"serviceType": "Service Type",
"departmentName": "Department Name",
"selectDepartment": "Select Department",
"relatedSection":"Related Section",
"relatedSection": "Related Section",
"selectSection": "Select Section",
"relatedTopic": "Related Topic",
"selectTopic": "Select Topic",
"supportingDocument":"Supporting Document",
"supportingDocument": "Supporting Document",
"mowadhafhiRequest": "Mowadhafhi Request",
"ticketReference":"Ticket Reference",
"ticketReference": "Ticket Reference",
"section": "Section",
"topic": "Topic",
"actionBy":"Action By",
"actionBy": "Action By",
"pendingTransactions": "Pending Transactions",
"selectRequestType":"Please select request type",
"dateFrom":"Date From",
"dateTo":"Date To",
"requestName":"Request Name",
"createdFor":"Created For",
"requestType":"Request Type",
"selectRequestType": "Please select request type",
"dateFrom": "Date From",
"dateTo": "Date To",
"requestName": "Request Name",
"createdFor": "Created For",
"requestType": "Request Type",
"requestCreatedSuccessfully": "Request created successfully",
"search": "Search",
"wantToReject": "Are you sure want to reject?",
"employeeDigitalID":"Employee Digital ID",
"employeeDigitalID": "Employee Digital ID",
"businessCard": "Business Card",
"profile": {
"reset_password": {

@ -0,0 +1,78 @@
import 'package:mohem_flutter_app/api/api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_item_type_notifications_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/respond_attributes_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/wf_look_up_list_model.dart';
class VacationRuleApiClient {
static final VacationRuleApiClient _instance = VacationRuleApiClient._internal();
VacationRuleApiClient._internal();
factory VacationRuleApiClient() => _instance;
Future<List<GetVacationRulesList>> getVacationRules() async {
String url = "${ApiConsts.erpRest}GET_VACATION_RULES";
Map<String, dynamic> postParams = {"P_PAGE_LIMIT": 50, "P_PAGE_NUM": 1};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getVacationRulesList ?? [];
}, url, postParams);
}
Future<List<VrItemTypesList>> getVrItemTypes() async {
String url = "${ApiConsts.erpRest}GET_VR_ITEM_TYPES";
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.vrItemTypesList ?? [];
}, url, postParams);
}
Future<List<GetItemTypeNotificationsList>> getItemTypeNotifications(String pItemType) async {
String url = "${ApiConsts.erpRest}GET_ITEM_TYPE_NOTIFICATIONS";
Map<String, dynamic> postParams = {"P_ITEM_TYPE": pItemType};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getItemTypeNotificationsList ?? [];
}, url, postParams);
}
Future<List<GetNotificationReassignModeList>> getNotificationReassignMode() async {
String url = "${ApiConsts.erpRest}GET_NOTIFICATION_REASSIGN_MODE";
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getNotificationReassignModeList ?? [];
}, url, postParams);
}
Future<List<RespondAttributesList>> getRespondAttributes(String pItemType, String pNotificationName) async {
String url = "${ApiConsts.erpRest}GET_RESPOND_ATTRIBUTES";
Map<String, dynamic> postParams = {"P_ITEM_TYPE": pItemType, "P_NOTIFICATION_NAME": pNotificationName};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.respondAttributesList ?? [];
}, url, postParams);
}
Future<List<WFLookUpList>> getWfLookup(String pLookupType) async {
String url = "${ApiConsts.erpRest}GET_WF_LOOKUP";
Map<String, dynamic> postParams = {"P_LOOKUP_TYPE": pLookupType};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.wFLookUpList ?? [];
}, url, postParams);
}
}

@ -1,5 +1,7 @@
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/ui/attendance/monthly_attendance.dart';
import 'package:mohem_flutter_app/ui/attendance/add_vacation_rule_screen.dart';
import 'package:mohem_flutter_app/ui/attendance/monthly_attendance_screen.dart';
import 'package:mohem_flutter_app/ui/attendance/vacation_rule_screen.dart';
import 'package:mohem_flutter_app/ui/bottom_sheets/attendence_details_bottom_sheet.dart';
import 'package:mohem_flutter_app/ui/landing/dashboard_screen.dart';
import 'package:mohem_flutter_app/ui/landing/today_attendance_screen.dart';
@ -13,6 +15,7 @@ import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_input
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/my_attendance_screen.dart';
import 'package:mohem_flutter_app/ui/payslip/monthly_pay_slip_screen.dart';
import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart';
import 'package:mohem_flutter_app/ui/profile/basic_details.dart';
import 'package:mohem_flutter_app/ui/profile/contact_details.dart';
import 'package:mohem_flutter_app/ui/profile/delete_family_member.dart';
@ -21,7 +24,7 @@ import 'package:mohem_flutter_app/ui/profile/family_members.dart';
import 'package:mohem_flutter_app/ui/profile/personal_info.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcement_details.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcements.dart';
import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart';
// import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart';
import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart';
import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_home.dart';
@ -70,6 +73,8 @@ class AppRoutes {
//Attendance
static const String attendance = "/attendance";
static const String monthlyAttendance = "/monthlyAttendance";
static const String vacationRule = "/vacationRule";
static const String addVacationRule = "/addVacationRule";
//Bottom Sheet
static const String attendanceDetailsBottomSheet = "/attendanceDetailsBottomSheet";
@ -124,7 +129,9 @@ class AppRoutes {
// addWorkFromHome: (context) => AddWorkFromHomeScreen(),
profile: (context) => ProfileScreen(),
//Attendance
monthlyAttendance: (context) => MonthlyAttendance(),
monthlyAttendance: (context) => MonthlyAttendanceScreen(),
vacationRule: (context) => VacationRuleScreen(),
addVacationRule: (context) => AddVacationRuleScreen(),
//Bottom Sheet
attendanceDetailsBottomSheet: (context) => AttendenceDetailsBottomSheet(),

@ -46,6 +46,7 @@ class CodegenLoader extends AssetLoader{
"services": "خدمات",
"viewAllServices": "عرض جميع الخدمات",
"monthlyAttendance": "الحضور الشهري",
"vacationRule": "حكم اجازة",
"workFromHome": "العمل من المنزل",
"ticketRequest": "طلب تذكرة",
"viewAllOffers": "مشاهدة جميع العروض",
@ -385,6 +386,7 @@ static const Map<String,dynamic> en_US = {
"services": "Services",
"viewAllServices": "View All Services",
"monthlyAttendance": "Monthly Attendance",
"vacationRule": "Vacation Rule",
"workFromHome": "Work From Home",
"ticketRequest": "Ticket Request",
"viewAllOffers": "View All Offers",

@ -31,6 +31,9 @@ abstract class LocaleKeys {
static const services = 'services';
static const viewAllServices = 'viewAllServices';
static const monthlyAttendance = 'monthlyAttendance';
static const vacationRule = 'vacationRule';
static const startDateT = 'startDateT';
static const endDateT = 'endDateT';
static const workFromHome = 'workFromHome';
static const ticketRequest = 'ticketRequest';
static const viewAllOffers = 'viewAllOffers';
@ -232,6 +235,7 @@ abstract class LocaleKeys {
static const myAttendance = 'myAttendance';
static const workOnBreak = 'workOnBreak';
static const next = 'next';
static const apply = 'apply';
static const mobile = 'mobile';
static const completingYear = 'completingYear';
static const year = 'year';

@ -56,11 +56,17 @@ import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.d
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_clos_structure_list.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
import 'package:mohem_flutter_app/models/profile/submit_phone_transactions.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/models/profile/submit_contact_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart';
import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/subordinates_on_leaves_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_item_type_notifications_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/respond_attributes_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/wf_look_up_list_model.dart';
import 'package:mohem_flutter_app/models/validate_eit_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart';
import 'package:mohem_flutter_app/models/worklist/hr/eit_otification_body_model.dart';
@ -69,7 +75,6 @@ import 'package:mohem_flutter_app/models/worklist/hr/get_contact_notification_bo
import 'package:mohem_flutter_app/models/worklist/hr/get_phones_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
import 'package:mohem_flutter_app/models/profile/submit_contact_transaction_list_model.dart';
class GenericResponseModel {
String? date;
@ -163,14 +168,14 @@ class GenericResponseModel {
List<String>? getHrCollectionNotificationBodyList;
List<String>? getHrTransactionList;
GetItemCreationNtfBodyList? getItemCreationNtfBodyList;
List<String>? getItemTypeNotificationsList;
List<GetItemTypeNotificationsList>? getItemTypeNotificationsList;
List<String>? getItemTypesList;
List<String>? getLookupValuesList;
List<GetMenuEntriesList>? getMenuEntriesList;
List<GetMoItemHistoryList>? getMoItemHistoryList;
List<GetMoNotificationBodyList>? getMoNotificationBodyList;
List<GetNotificationButtonsList>? getNotificationButtonsList;
List<String>? getNotificationReassignModeList;
List<GetNotificationReassignModeList>? getNotificationReassignModeList;
List<GetPhoneNumberTypesModel>? getObjectValuesList;
GetOpenMissingSwipesList? getOpenMissingSwipesList;
List<GetOpenNotificationsList>? getOpenNotificationsList;
@ -217,7 +222,7 @@ class GenericResponseModel {
List<GetPendingTransactionsFunctions>? getPendingTransactionsFunctions;
List<GetPendingTransactionsDetails>? getPendingTransactionsDetails;
List<String>? getUserItemTypesList;
List<String>? getVacationRulesList;
List<GetVacationRulesList>? getVacationRulesList;
List<String>? getVaccinationOnHandList;
List<String>? getVaccinationsList;
List<ESERVICESVS>? getValueSetValuesList;
@ -282,7 +287,7 @@ class GenericResponseModel {
String? processTransactions;
String? registerUserNameList;
List<ReplacementList>? replacementList;
String? respondAttributesList;
List<RespondAttributesList>? respondAttributesList;
String? respondRolesList;
String? resubmitAbsenceTransactionList;
String? resubmitEITTransactionList;
@ -325,8 +330,8 @@ class GenericResponseModel {
String? validateAbsenceTransactionList;
ValidateEITTransactionList? validateEITTransactionList;
String? validatePhonesTransactionList;
String? vrItemTypesList;
String? wFLookUpList;
List<VrItemTypesList>? vrItemTypesList;
List<WFLookUpList>? wFLookUpList;
String? eLearningGETEMPLOYEEPROFILEList;
String? eLearningLOGINList;
String? eLearningValidateLoginList;
@ -733,8 +738,7 @@ class GenericResponseModel {
if (json['GetContactColsStructureList'] != null) {
getContactColsStructureList = <GetContactColsStructureList>[];
json['GetContactColsStructureList'].forEach((v) {
getContactColsStructureList!
.add(new GetContactColsStructureList.fromJson(v));
getContactColsStructureList!.add(new GetContactColsStructureList.fromJson(v));
});
}
getContactNotificationBodyList = json["GetContactNotificationBodyList"] == null ? null : GetContactNotificationBodyList.fromJson(json["GetContactNotificationBodyList"]);
@ -806,7 +810,13 @@ class GenericResponseModel {
getItemCreationNtfBodyList = json['GetItemCreationNtfBodyList'] != null ? new GetItemCreationNtfBodyList.fromJson(json['GetItemCreationNtfBodyList']) : null;
getItemTypeNotificationsList = json['GetItemTypeNotificationsList'];
if (json['GetItemTypeNotificationsList'] != null) {
getItemTypeNotificationsList = <GetItemTypeNotificationsList>[];
json['GetItemTypeNotificationsList'].forEach((v) {
getItemTypeNotificationsList!.add(new GetItemTypeNotificationsList.fromJson(v));
});
}
getItemTypesList = json['GetItemTypesList'];
getLookupValuesList = json['GetLookupValuesList'];
getMenuEntriesList = json["GetMenuEntriesList"] == null ? null : List<GetMenuEntriesList>.from(json["GetMenuEntriesList"].map((x) => GetMenuEntriesList.fromJson(x)));
@ -827,14 +837,21 @@ class GenericResponseModel {
if (json['GetNotificationButtonsList'] != null) {
getNotificationButtonsList = <GetNotificationButtonsList>[];
json['GetNotificationButtonsList'].forEach((v) {
getNotificationButtonsList!.add(new GetNotificationButtonsList.fromJson(v));
getNotificationButtonsList!.add(GetNotificationButtonsList.fromJson(v));
});
}
if (json['GetNotificationReassignModeList'] != null) {
getNotificationReassignModeList = <GetNotificationReassignModeList>[];
json['GetNotificationReassignModeList'].forEach((v) {
getNotificationReassignModeList!.add(GetNotificationReassignModeList.fromJson(v));
});
}
if (json['GetObjectValuesList'] != null) {
getObjectValuesList = <GetPhoneNumberTypesModel>[];
json['GetObjectValuesList'].forEach((v) {
getObjectValuesList!.add(new GetPhoneNumberTypesModel.fromJson(v));
getObjectValuesList!.add(GetPhoneNumberTypesModel.fromJson(v));
});
}
@ -1001,7 +1018,12 @@ class GenericResponseModel {
}
getUserItemTypesList = json['GetUserItemTypesList'];
getVacationRulesList = json['GetVacationRulesList'];
if (json['GetVacationRulesList'] != null) {
getVacationRulesList = <GetVacationRulesList>[];
json['GetVacationRulesList'].forEach((v) {
getVacationRulesList!.add(GetVacationRulesList.fromJson(v));
});
}
getVaccinationOnHandList = json['GetVaccinationOnHandList'];
getVaccinationsList = json['GetVaccinationsList'];
@ -1110,7 +1132,13 @@ class GenericResponseModel {
processTransactions = json['ProcessTransactions'];
registerUserNameList = json['RegisterUserNameList'];
replacementList = json["ReplacementList"] == null ? null : List<ReplacementList>.from(json["ReplacementList"].map((x) => ReplacementList.fromJson(x)));
respondAttributesList = json['RespondAttributesList'];
if (json['RespondAttributesList'] != null) {
respondAttributesList = <RespondAttributesList>[];
json['RespondAttributesList'].forEach((v) {
respondAttributesList!.add(new RespondAttributesList.fromJson(v));
});
}
respondRolesList = json['RespondRolesList'];
resubmitAbsenceTransactionList = json['ResubmitAbsenceTransactionList'];
resubmitEITTransactionList = json['ResubmitEITTransactionList'];
@ -1132,10 +1160,7 @@ class GenericResponseModel {
submitBasicDetTransactionList = json['SubmitBasicDetTransactionList'];
submitCEITransactionList = json['SubmitCEITransactionList'];
submitCcpTransactionList = json['SubmitCcpTransactionList'];
submitContactTransactionList = json['SubmitContactTransactionList'] != null
? new SubmitContactTransactionList.fromJson(
json['SubmitContactTransactionList'])
: null;
submitContactTransactionList = json['SubmitContactTransactionList'] != null ? new SubmitContactTransactionList.fromJson(json['SubmitContactTransactionList']) : null;
submitEITTransactionList = json['SubmitEITTransactionList'] != null ? new SubmitEITTransactionList.fromJson(json['SubmitEITTransactionList']) : null;
submitHrTransactionList = json['SubmitHrTransactionList'];
@ -1168,8 +1193,18 @@ class GenericResponseModel {
validateEITTransactionList = json['ValidateEITTransactionList'] != null ? new ValidateEITTransactionList.fromJson(json['ValidateEITTransactionList']) : null;
validatePhonesTransactionList = json['ValidatePhonesTransactionList'];
vrItemTypesList = json['VrItemTypesList'];
wFLookUpList = json['WFLookUpList'];
if (json['VrItemTypesList'] != null) {
vrItemTypesList = <VrItemTypesList>[];
json['VrItemTypesList'].forEach((v) {
vrItemTypesList!.add(VrItemTypesList.fromJson(v));
});
}
if (json['WFLookUpList'] != null) {
wFLookUpList = <WFLookUpList>[];
json['WFLookUpList'].forEach((v) {
wFLookUpList!.add(new WFLookUpList.fromJson(v));
});
}
eLearningGETEMPLOYEEPROFILEList = json['eLearning_GET_EMPLOYEE_PROFILEList'];
eLearningLOGINList = json['eLearning_LOGINList'];
eLearningValidateLoginList = json['eLearning_ValidateLoginList'];
@ -1279,16 +1314,13 @@ class GenericResponseModel {
data['GetCcpTransactionsList_New'] = this.getCcpTransactionsListNew;
data['GetConcurrentProgramsList'] = this.getConcurrentProgramsList;
if (this.getContactDetailsList != null) {
data['GetContactDetailsList'] =
this.getContactDetailsList!.map((v) => v.toJson()).toList();
data['GetContactDetailsList'] = this.getContactDetailsList!.map((v) => v.toJson()).toList();
}
if (this.getContactColsStructureList != null) {
data['GetContactColsStructureList'] =
this.getContactColsStructureList!.map((v) => v.toJson()).toList();
data['GetContactColsStructureList'] = this.getContactColsStructureList!.map((v) => v.toJson()).toList();
}
if (this.getContactDffStructureList != null) {
data['GetContactDffStructureList'] =
this.getContactDffStructureList!.map((v) => v.toJson()).toList();
data['GetContactDffStructureList'] = this.getContactDffStructureList!.map((v) => v.toJson()).toList();
}
data['GetContactNotificationBodyList'] = this.getContactNotificationBodyList;
data['GetCountriesList'] = this.getCountriesList;
@ -1334,7 +1366,10 @@ class GenericResponseModel {
data['GetItemCreationNtfBodyList'] = this.getItemCreationNtfBodyList!.toJson();
}
data['GetItemTypeNotificationsList'] = this.getItemTypeNotificationsList;
if (this.getItemTypeNotificationsList != null) {
data['GetItemTypeNotificationsList'] = this.getItemTypeNotificationsList!.map((v) => v.toJson()).toList();
}
data['GetItemTypesList'] = this.getItemTypesList;
data['GetLookupValuesList'] = this.getLookupValuesList;
data['GetMenuEntriesList'] = this.getMenuEntriesList;
@ -1350,7 +1385,10 @@ class GenericResponseModel {
data['GetNotificationButtonsList'] = this.getNotificationButtonsList!.map((v) => v.toJson()).toList();
}
data['GetNotificationReassignModeList'] = this.getNotificationReassignModeList;
if (getNotificationReassignModeList != null) {
data['GetNotificationReassignModeList'] = getNotificationReassignModeList!.map((v) => v.toJson()).toList();
}
data['GetObjectValuesList'] = this.getObjectValuesList;
data['GetOpenMissingSwipesList'] = this.getOpenMissingSwipesList;
data['GetOpenNotificationsList'] = this.getOpenNotificationsList;
@ -1416,7 +1454,9 @@ class GenericResponseModel {
data['GetTimeCardSummaryList'] = this.getTimeCardSummaryList!.map((v) => v.toJson()).toList();
}
data['GetUserItemTypesList'] = this.getUserItemTypesList;
data['GetVacationRulesList'] = this.getVacationRulesList;
if (this.getVacationRulesList != null) {
data['GetVacationRulesList'] = this.getVacationRulesList!.map((v) => v.toJson()).toList();
}
data['GetVaccinationOnHandList'] = this.getVaccinationOnHandList;
data['GetVaccinationsList'] = this.getVaccinationsList;
if (getValueSetValuesList != null) {
@ -1501,7 +1541,10 @@ class GenericResponseModel {
data['ProcessTransactions'] = this.processTransactions;
data['RegisterUserNameList'] = this.registerUserNameList;
data['ReplacementList'] = this.replacementList;
data['RespondAttributesList'] = this.respondAttributesList;
if (respondAttributesList != null) {
data['RespondAttributesList'] = respondAttributesList!.map((v) => v.toJson()).toList();
}
data['RespondRolesList'] = this.respondRolesList;
data['ResubmitAbsenceTransactionList'] = this.resubmitAbsenceTransactionList;
data['ResubmitEITTransactionList'] = this.resubmitEITTransactionList;
@ -1555,13 +1598,16 @@ class GenericResponseModel {
data['VHR_IsVerificationCodeValid'] = this.vHRIsVerificationCodeValid;
data['ValidateAbsenceTransactionList'] = this.validateAbsenceTransactionList;
if (this.validateEITTransactionList != null) {
data['ValidateEITTransactionList'] = this.validateEITTransactionList!.toJson();
if (validateEITTransactionList != null) {
data['ValidateEITTransactionList'] = validateEITTransactionList!.toJson();
}
data['ValidatePhonesTransactionList'] = this.validatePhonesTransactionList;
data['VrItemTypesList'] = this.vrItemTypesList;
data['WFLookUpList'] = this.wFLookUpList;
if (vrItemTypesList != null) {
data['VrItemTypesList'] = vrItemTypesList!.map((v) => v.toJson()).toList();
}
if (wFLookUpList != null) {
data['WFLookUpList'] = wFLookUpList!.map((v) => v.toJson()).toList();
}
data['eLearning_GET_EMPLOYEE_PROFILEList'] = this.eLearningGETEMPLOYEEPROFILEList;
data['eLearning_LOGINList'] = this.eLearningLOGINList;
data['eLearning_ValidateLoginList'] = this.eLearningValidateLoginList;

@ -0,0 +1,28 @@
class GetItemTypeNotificationsList {
String? fYIFLAG;
String? nOTIFICATIONDISPLAYNAME;
String? nOTIFICATIONNAME;
String? nOTIFICATIONSUBJECT;
GetItemTypeNotificationsList(
{this.fYIFLAG,
this.nOTIFICATIONDISPLAYNAME,
this.nOTIFICATIONNAME,
this.nOTIFICATIONSUBJECT});
GetItemTypeNotificationsList.fromJson(Map<String, dynamic> json) {
fYIFLAG = json['FYI_FLAG'];
nOTIFICATIONDISPLAYNAME = json['NOTIFICATION_DISPLAY_NAME'];
nOTIFICATIONNAME = json['NOTIFICATION_NAME'];
nOTIFICATIONSUBJECT = json['NOTIFICATION_SUBJECT'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['FYI_FLAG'] = this.fYIFLAG;
data['NOTIFICATION_DISPLAY_NAME'] = this.nOTIFICATIONDISPLAYNAME;
data['NOTIFICATION_NAME'] = this.nOTIFICATIONNAME;
data['NOTIFICATION_SUBJECT'] = this.nOTIFICATIONSUBJECT;
return data;
}
}

@ -0,0 +1,22 @@
class GetNotificationReassignModeList {
String? rADIOBUTTONACTION;
String? rADIOBUTTONLABEL;
int? rADIOBUTTONSEQ;
GetNotificationReassignModeList(
{this.rADIOBUTTONACTION, this.rADIOBUTTONLABEL, this.rADIOBUTTONSEQ});
GetNotificationReassignModeList.fromJson(Map<String, dynamic> json) {
rADIOBUTTONACTION = json['RADIO_BUTTON_ACTION'];
rADIOBUTTONLABEL = json['RADIO_BUTTON_LABEL'];
rADIOBUTTONSEQ = json['RADIO_BUTTON_SEQ'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['RADIO_BUTTON_ACTION'] = this.rADIOBUTTONACTION;
data['RADIO_BUTTON_LABEL'] = this.rADIOBUTTONLABEL;
data['RADIO_BUTTON_SEQ'] = this.rADIOBUTTONSEQ;
return data;
}
}

@ -0,0 +1,92 @@
class GetVacationRulesList {
String? aCTION;
String? aCTIONDISPLAY;
String? bEGINDATE;
String? eNDDATE;
int? fROMROWNUM;
String? fYIFLAG;
String? iTEMTYPE;
String? iTEMTYPEDISPLAYNAME;
String? mESSAGE;
String? nOTIFICATIONDISPLAYNAME;
String? nOTIFICATIONNAME;
String? nOTIFICATIONSUBJECT;
int? nOOFROWS;
String? rEPLACEMENTUSERNAME;
int? rOWNUM;
int? rULEID;
String? rULENAME;
String? rULESTATUS;
String? rULETIPMESSAGE;
int? tOROWNUM;
GetVacationRulesList(
{this.aCTION,
this.aCTIONDISPLAY,
this.bEGINDATE,
this.eNDDATE,
this.fROMROWNUM,
this.fYIFLAG,
this.iTEMTYPE,
this.iTEMTYPEDISPLAYNAME,
this.mESSAGE,
this.nOTIFICATIONDISPLAYNAME,
this.nOTIFICATIONNAME,
this.nOTIFICATIONSUBJECT,
this.nOOFROWS,
this.rEPLACEMENTUSERNAME,
this.rOWNUM,
this.rULEID,
this.rULENAME,
this.rULESTATUS,
this.rULETIPMESSAGE,
this.tOROWNUM});
GetVacationRulesList.fromJson(Map<String, dynamic> json) {
aCTION = json['ACTION'];
aCTIONDISPLAY = json['ACTION_DISPLAY'];
bEGINDATE = json['BEGIN_DATE'];
eNDDATE = json['END_DATE'];
fROMROWNUM = json['FROM_ROW_NUM'];
fYIFLAG = json['FYI_FLAG'];
iTEMTYPE = json['ITEM_TYPE'];
iTEMTYPEDISPLAYNAME = json['ITEM_TYPE_DISPLAY_NAME'];
mESSAGE = json['MESSAGE'];
nOTIFICATIONDISPLAYNAME = json['NOTIFICATION_DISPLAY_NAME'];
nOTIFICATIONNAME = json['NOTIFICATION_NAME'];
nOTIFICATIONSUBJECT = json['NOTIFICATION_SUBJECT'];
nOOFROWS = json['NO_OF_ROWS'];
rEPLACEMENTUSERNAME = json['REPLACEMENT_USER_NAME'];
rOWNUM = json['ROW_NUM'];
rULEID = json['RULE_ID'];
rULENAME = json['RULE_NAME'];
rULESTATUS = json['RULE_STATUS'];
rULETIPMESSAGE = json['RULE_TIP_MESSAGE'];
tOROWNUM = json['TO_ROW_NUM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ACTION'] = this.aCTION;
data['ACTION_DISPLAY'] = this.aCTIONDISPLAY;
data['BEGIN_DATE'] = this.bEGINDATE;
data['END_DATE'] = this.eNDDATE;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['FYI_FLAG'] = this.fYIFLAG;
data['ITEM_TYPE'] = this.iTEMTYPE;
data['ITEM_TYPE_DISPLAY_NAME'] = this.iTEMTYPEDISPLAYNAME;
data['MESSAGE'] = this.mESSAGE;
data['NOTIFICATION_DISPLAY_NAME'] = this.nOTIFICATIONDISPLAYNAME;
data['NOTIFICATION_NAME'] = this.nOTIFICATIONNAME;
data['NOTIFICATION_SUBJECT'] = this.nOTIFICATIONSUBJECT;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['REPLACEMENT_USER_NAME'] = this.rEPLACEMENTUSERNAME;
data['ROW_NUM'] = this.rOWNUM;
data['RULE_ID'] = this.rULEID;
data['RULE_NAME'] = this.rULENAME;
data['RULE_STATUS'] = this.rULESTATUS;
data['RULE_TIP_MESSAGE'] = this.rULETIPMESSAGE;
data['TO_ROW_NUM'] = this.tOROWNUM;
return data;
}
}

@ -0,0 +1,28 @@
class RespondAttributesList {
String? aTTRIBUTEDISPLAYNAME;
String? aTTRIBUTEFORMAT;
String? aTTRIBUTENAME;
String? aTTRIBUTETYPE;
RespondAttributesList(
{this.aTTRIBUTEDISPLAYNAME,
this.aTTRIBUTEFORMAT,
this.aTTRIBUTENAME,
this.aTTRIBUTETYPE});
RespondAttributesList.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 = new Map<String, dynamic>();
data['ATTRIBUTE_DISPLAY_NAME'] = this.aTTRIBUTEDISPLAYNAME;
data['ATTRIBUTE_FORMAT'] = this.aTTRIBUTEFORMAT;
data['ATTRIBUTE_NAME'] = this.aTTRIBUTENAME;
data['ATTRIBUTE_TYPE'] = this.aTTRIBUTETYPE;
return data;
}
}

@ -0,0 +1,18 @@
class VrItemTypesList {
String? iTEMTYPE;
String? iTEMTYPEDISPLAYNAME;
VrItemTypesList({this.iTEMTYPE, this.iTEMTYPEDISPLAYNAME});
VrItemTypesList.fromJson(Map<String, dynamic> json) {
iTEMTYPE = json['ITEM_TYPE'];
iTEMTYPEDISPLAYNAME = json['ITEM_TYPE_DISPLAY_NAME'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ITEM_TYPE'] = this.iTEMTYPE;
data['ITEM_TYPE_DISPLAY_NAME'] = this.iTEMTYPEDISPLAYNAME;
return data;
}
}

@ -0,0 +1,21 @@
class WFLookUpList {
String? lOOKUPCODE;
String? lOOKUPDESCRIPTION;
String? lOOKUPMEANING;
WFLookUpList({this.lOOKUPCODE, this.lOOKUPDESCRIPTION, this.lOOKUPMEANING});
WFLookUpList.fromJson(Map<String, dynamic> json) {
lOOKUPCODE = json['LOOKUP_CODE'];
lOOKUPDESCRIPTION = json['LOOKUP_DESCRIPTION'];
lOOKUPMEANING = json['LOOKUP_MEANING'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['LOOKUP_CODE'] = this.lOOKUPCODE;
data['LOOKUP_DESCRIPTION'] = this.lOOKUPDESCRIPTION;
data['LOOKUP_MEANING'] = this.lOOKUPMEANING;
return data;
}
}

@ -1,9 +1,11 @@
import 'dart:convert';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/dashboard_api_client.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/main.dart';
import 'package:mohem_flutter_app/models/dashboard/get_attendance_tracking_list_model.dart';
import 'package:mohem_flutter_app/models/dashboard/get_open_notifications_list.dart';
@ -159,7 +161,11 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
try {
GenericResponseModel? genericResponseModel = await DashboardApiClient().getGetMenuEntries();
getMenuEntriesList = genericResponseModel!.getMenuEntriesList;
homeMenus = parseMenues(getMenuEntriesList ?? []);
homeMenus = parseMenus(getMenuEntriesList ?? []);
if (homeMenus!.isNotEmpty) {
homeMenus!.first.menuEntiesList.insert(0, GetMenuEntriesList(requestType: "MONTHLY_ATTENDANCE", prompt: LocaleKeys.monthlyAttendance.tr()));
homeMenus!.first.menuEntiesList.add(GetMenuEntriesList(requestType: "VACATION_RULE", prompt: LocaleKeys.vacationRule.tr()));
}
isServicesMenusLoading = false;
notifyListeners();
} catch (ex) {
@ -169,21 +175,13 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
}
}
List<Menus> parseMenues(List<GetMenuEntriesList> getMenuEntriesList) {
List<Menus> parseMenus(List<GetMenuEntriesList> getMenuEntriesList) {
List<Menus> menus = [];
for (int i = 0; i < getMenuEntriesList.length; i++) {
if (getMenuEntriesList[i].parentMenuName!.isEmpty) {
menus.add(Menus(getMenuEntriesList[i], getMenuEntriesList.where((element) => getMenuEntriesList[i].menuName == element.parentMenuName).toList()));
}
}
// Verify Menus by printing in log
// for(int i=0;i<menus.length;i++){
// logger.i(jsonEncode(menus[i].menuEntry.prompt));
// for(int j=0;j<menus[i].menuEntiesList.length;j++){
// logger.e(menus[i].menuEntiesList[j].prompt);
// }
// }
return menus;
}

@ -0,0 +1,124 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/vacation_rule_api_client.dart';
import 'package:mohem_flutter_app/classes/utils.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/vacation_rule/get_item_type_notifications_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/respond_attributes_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/wf_look_up_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
class AddVacationRuleScreen extends StatefulWidget {
AddVacationRuleScreen({Key? key}) : super(key: key);
@override
_AddVacationRuleScreenState createState() {
return _AddVacationRuleScreenState();
}
}
class _AddVacationRuleScreenState extends State<AddVacationRuleScreen> {
List<VrItemTypesList>? vrItemTypesList;
List<GetItemTypeNotificationsList>? itemTypeNotificationsList;
List<GetNotificationReassignModeList>? notificationReassignModeList;
List<RespondAttributesList>? respondAttributesList;
List<WFLookUpList>? wfLookupList;
int currentStage = 0;
@override
void initState() {
super.initState();
getVacationRulesList();
}
void getVacationRulesList() async {
try {
Utils.showLoading(context);
vrItemTypesList = await VacationRuleApiClient().getVrItemTypes();
Utils.hideLoading(context);
currentStage = 1;
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void getItemTypeNotificationsList() async {
try {
Utils.showLoading(context);
//itemTypeNotificationsList = await VacationRuleApiClient().getItemTypeNotifications();
Utils.hideLoading(context);
currentStage = 2;
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void callCombineApis() async {
try {
Utils.showLoading(context);
List results = await Future.wait([
// VacationRuleApiClient().getNotificationReassignMode(),
// VacationRuleApiClient().getRespondAttributes("", ""),
// VacationRuleApiClient().getWfLookup(P_LOOKUP_TYPE),
]);
notificationReassignModeList = results[0];
respondAttributesList = results[1];
wfLookupList = results[2];
Utils.hideLoading(context);
currentStage = 3;
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: LocaleKeys.vacationRule.tr(),
),
body: vrItemTypesList == null
? const SizedBox()
: (vrItemTypesList!.isEmpty
? Utils.getNoDataWidget(context)
: Column(
children: [
ListView(
padding: const EdgeInsets.all(21),
physics: const BouncingScrollPhysics(),
children: [],
).expanded,
DefaultButton(
currentStage == 3 ? LocaleKeys.apply.tr() : LocaleKeys.next.tr(),
() {
if (currentStage == 1) {
getItemTypeNotificationsList();
} else if (currentStage == 2) {
callCombineApis();
}
},
).insideContainer,
],
)),
);
}
}

@ -4,7 +4,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:intl/intl.dart';
import 'package:mohem_flutter_app/api/monthlyAttendance_api_client.dart';
import 'package:mohem_flutter_app/api/monthly_attendance_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';
@ -19,18 +19,18 @@ import 'package:month_picker_dialog/month_picker_dialog.dart';
import 'package:pie_chart/pie_chart.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';
class MonthlyAttendance extends StatefulWidget {
MonthlyAttendance({Key? key}) : super(key: key);
class MonthlyAttendanceScreen extends StatefulWidget {
MonthlyAttendanceScreen({Key? key}) : super(key: key);
@override
_MonthlyAttendanceState createState() {
return _MonthlyAttendanceState();
_MonthlyAttendanceScreenState createState() {
return _MonthlyAttendanceScreenState();
}
}
// todo '@fatima' use extension methods for widgets
class _MonthlyAttendanceState extends State<MonthlyAttendance> {
class _MonthlyAttendanceScreenState extends State<MonthlyAttendanceScreen> {
bool isPresent = false;
bool isAbsent = false;
bool isMissing = false;
@ -135,7 +135,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
],
).paddingOnly(left: 21, right: 21),
18.height,
AspectRatio(aspectRatio: 333 / 270, child: calendarWidget()).paddingOnly(left: 18, right: 25),
AspectRatio(aspectRatio: 333 / 270, child: calendarWidget()).paddingOnly(left: 21, right: 21),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
@ -285,6 +285,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
view: CalendarView.month,
showDatePickerButton: false,
controller: _calendarController,
backgroundColor: Colors.white,
headerHeight: 0,
viewNavigationMode: ViewNavigationMode.none,
todayHighlightColor: MyColors.grey3AColor,

@ -0,0 +1,146 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/vacation_rule_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.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/vacation_rule/get_vacation_rules_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
class VacationRuleScreen extends StatefulWidget {
VacationRuleScreen({Key? key}) : super(key: key);
@override
_VacationRuleScreenState createState() {
return _VacationRuleScreenState();
}
}
class _VacationRuleScreenState extends State<VacationRuleScreen> {
List<GetVacationRulesList>? vacationRuleList;
@override
void initState() {
super.initState();
getVacationRulesList();
}
void getVacationRulesList() async {
try {
Utils.showLoading(context);
vacationRuleList = await VacationRuleApiClient().getVacationRules();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: LocaleKeys.vacationRule.tr(),
),
body: vacationRuleList == null
? const SizedBox()
: (vacationRuleList!.isEmpty
? Utils.getNoDataWidget(context)
: ListView.separated(
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.all(21),
itemBuilder: (cxt, int parentIndex) => Container(
width: double.infinity,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
clipBehavior: Clip.antiAlias,
child: Stack(
clipBehavior: Clip.antiAlias,
children: [
Positioned(
left: -20,
top: -10,
child: Transform.rotate(
angle: 15,
child: Container(
width: 50,
height: 30,
color: getStatusColor(vacationRuleList![parentIndex].rULESTATUS!),
),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
("${vacationRuleList![parentIndex].rULENAME!} | ${vacationRuleList![parentIndex].iTEMTYPEDISPLAYNAME!}").toText16(),
4.height,
ItemDetailView(LocaleKeys.startDateT.tr(), getParsedTime(vacationRuleList![parentIndex].bEGINDATE!)),
ItemDetailView(LocaleKeys.endDateT.tr(), getParsedTime(vacationRuleList![parentIndex].eNDDATE!)),
4.height,
vacationRuleList![parentIndex].rULESTATUS!.toText12(color: getStatusColor(vacationRuleList![parentIndex].rULESTATUS!)),
],
).paddingOnly(top: 16, left: 16, right: 16, bottom: 16),
],
),
),
separatorBuilder: (cxt, index) => 12.height,
itemCount: vacationRuleList!.length)),
floatingActionButton: Container(
height: 54,
width: 54,
decoration: const BoxDecoration(
shape: BoxShape.circle,
gradient: LinearGradient(transform: GradientRotation(.83), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [
MyColors.gradiantEndColor,
MyColors.gradiantStartColor,
]),
),
child: const Icon(Icons.add, color: Colors.white, size: 30),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.addVacationRule);
}),
);
}
Color getStatusColor(String code) {
if (code == "SUBMIT") {
return const Color(0xff2E303A);
} else if (code == "Inactive") {
return const Color(0xffD02127);
} else if (code == "active") {
return const Color(0xff1FA269);
} else if (code == "REQUEST_INFO") {
return const Color(0xff2E303A);
} else {
return const Color(0xff2E303A);
}
}
String getParsedTime(String time) {
DateTime date = DateFormat("mm/dd/yyyy").parse(time);
return DateFormat("d MMM yyyy").format(date);
}
}

@ -18,9 +18,9 @@ class ServicesWidget extends StatelessWidget {
List<String> namesT = [LocaleKeys.monthlyAttendance.tr(), LocaleKeys.workFromHome.tr(), LocaleKeys.ticketRequest.tr(), LocaleKeys.monthlyAttendance.tr()];
List<String> iconT = [
"assets/images/monthly_attendance.svg",
"assets/images/dynamic_screens.svg",
"assets/images/monthly_attendance.svg",
"assets/images/ticket_request.svg",
"assets/images/ticket_request.svg",
"assets/images/dynamic_screens.svg",
"assets/images/dynamic_screens.svg",
"assets/images/dynamic_screens.svg",
"assets/images/dynamic_screens.svg",
@ -109,6 +109,13 @@ class ServicesWidget extends StatelessWidget {
void handleOnPress(context, GetMenuEntriesList menuEntry) {
var pro = Provider.of<DashboardProviderModel>(context, listen: false);
if (menuEntry.requestType == "MONTHLY_ATTENDANCE") {
Navigator.pushNamed(context, AppRoutes.monthlyAttendance);
return;
} else if (menuEntry.requestType == "VACATION_RULE") {
Navigator.pushNamed(context, AppRoutes.vacationRule);
return;
}
List<GetMenuEntriesList> menuList = pro.getMenuEntriesList?.where((element) => element.parentMenuName == menuEntry.menuName && element.menuEntryType == "FUNCTION").toList() ?? [];
menuEntry.icon = "";
print(menuEntry.toJson());

@ -91,8 +91,8 @@ class _DynamicListViewScreenState extends State<DynamicListViewScreen> {
separatorBuilder: (cxt, index) => 12.height,
itemCount: getEITTransactionList!.length)),
floatingActionButton: Container(
height: 50,
width: 50,
height: 54,
width: 54,
decoration: const BoxDecoration(
shape: BoxShape.circle,
gradient: LinearGradient(transform: GradientRotation(.83), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [

@ -27,34 +27,18 @@ class MyAttendanceScreen extends StatelessWidget {
title: LocaleKeys.myAttendance.tr(),
),
body: SizedBox(
width: double.infinity,
height: double.infinity,
child: list.isEmpty
? Utils.getNoDataWidget(context)
: Column(
children: [
// commenting this because missing wipe coming as duplicate in the screen
itemView(
"assets/images/pdf.svg",
LocaleKeys.myAttendance.tr(),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.monthlyAttendance, arguments: DynamicListViewParams(LocaleKeys.missingSwipes.tr(), "HMG_OTL_MISSING_SWIPE_EIT_SS"));
}).paddingOnly(left: 21, right: 21),
12.height,
ListView.separated(
padding: const EdgeInsets.all(21),
itemBuilder: (cxt, index) => itemView(
"assets/images/pdf.svg",
//LocaleKeys.missingSwipes.tr(),
list[index].prompt!,
).onPress(() {
Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(list[index].prompt!, list[index].functionName!));
}),
separatorBuilder: (cxt, index) => 12.height,
itemCount: list.length)
.expanded
],
)),
width: double.infinity,
height: double.infinity,
child: list.isEmpty
? Utils.getNoDataWidget(context)
: ListView.separated(
padding: const EdgeInsets.all(21),
itemBuilder: (cxt, index) => itemView("assets/images/pdf.svg", list[index].prompt!).onPress(() {
Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(list[index].prompt!, list[index].functionName!));
}),
separatorBuilder: (cxt, index) => 12.height,
itemCount: list.length),
),
);
}

@ -8,7 +8,6 @@ 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';
@ -126,9 +125,3 @@ class ActionsFragment extends StatelessWidget {
}
}
}
List<Color> actionsList = [
Colors.black,
Colors.red,
Colors.green,
];

Loading…
Cancel
Save