diff --git a/assets/images/call.svg b/assets/images/call.svg
new file mode 100644
index 0000000..f98d059
--- /dev/null
+++ b/assets/images/call.svg
@@ -0,0 +1,7 @@
+
diff --git a/assets/images/create_request.svg b/assets/images/create_request.svg
new file mode 100644
index 0000000..c5bdeea
--- /dev/null
+++ b/assets/images/create_request.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/images/profile_details.svg b/assets/images/profile_details.svg
new file mode 100644
index 0000000..9daf5ad
--- /dev/null
+++ b/assets/images/profile_details.svg
@@ -0,0 +1,14 @@
+
diff --git a/assets/images/team.svg b/assets/images/team.svg
new file mode 100644
index 0000000..aff9c19
--- /dev/null
+++ b/assets/images/team.svg
@@ -0,0 +1,34 @@
+
diff --git a/assets/images/view_attendance.svg b/assets/images/view_attendance.svg
new file mode 100644
index 0000000..256bf7a
--- /dev/null
+++ b/assets/images/view_attendance.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index da047f3..7e2048d 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -339,6 +339,17 @@
"pleaseSelectEmployeeForReplacement": "الرجاء تحديد موظف للاستبدال",
"pleaseSelectAction": "الرجاء تحديد الإجراء",
"pleaseSelectDate": "الرجاء تحديد التاريخ",
+ "todayAttendance": "حضور اليوم",
+ "viewAttendance": "عرض الحضور",
+ "teamMembers":"اعضاءالفريق",
+ "profileDetails": "الملف الشخصي",
+ "noResultsFound" : "لايوجد نتائج",
+ "searchBy": "بحث بواسطة",
+ "myTeamMembers": "اعضاء فريقي",
+ "save": "حفظ",
+ "itemType": "نوع العنصر",
+ "TurnNotificationsFor": "تفعيل الاشعارات",
+ "worklistSettings": "اعدادات الاشعارات",
"absenceType": "نوع الغياب",
"absenceCategory": "فئة الغياب",
"days": "أيام",
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index ad1c8ee..38765dd 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -339,6 +339,17 @@
"pleaseSelectEmployeeForReplacement": "Please select employee for replacement",
"pleaseSelectAction": "Please select action",
"pleaseSelectDate": "Please select date",
+ "todayAttendance": "Today's Attendance",
+ "viewAttendance": "View Attendance",
+ "teamMembers":"Team Members",
+ "profileDetails": "Profile Details",
+ "noResultsFound" : "No Results Found",
+ "searchBy": "Search by",
+ "myTeamMembers": "My Team Members",
+ "save": "Save",
+ "itemType": "Item Type",
+ "TurnNotificationsFor": "Turn on notifications for",
+ "worklistSettings": "Worklist Settings",
"absenceType": "Absence Type",
"absenceCategory": "Absence Category",
"days": "Days",
diff --git a/lib/api/monthly_attendance_api_client.dart b/lib/api/monthly_attendance_api_client.dart
index 543addb..00d444f 100644
--- a/lib/api/monthly_attendance_api_client.dart
+++ b/lib/api/monthly_attendance_api_client.dart
@@ -10,7 +10,6 @@ import 'package:mohem_flutter_app/models/get_schedule_shifts_details_list_model.
import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'package:mohem_flutter_app/api/api_client.dart';
-// todo '@fatima' change file name according to structure
class MonthlyAttendanceApiClient {
static final MonthlyAttendanceApiClient _instance = MonthlyAttendanceApiClient._internal();
diff --git a/lib/api/my_team/my_team_api_client.dart b/lib/api/my_team/my_team_api_client.dart
new file mode 100644
index 0000000..4a843c1
--- /dev/null
+++ b/lib/api/my_team/my_team_api_client.dart
@@ -0,0 +1,149 @@
+
+
+import 'package:mohem_flutter_app/api/api_client.dart';
+import 'package:mohem_flutter_app/app_state/app_state.dart';
+import 'package:mohem_flutter_app/classes/consts.dart';
+import 'package:mohem_flutter_app/models/dashboard/get_attendance_tracking_list_model.dart';
+import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
+import 'package:mohem_flutter_app/models/generic_response_model.dart';
+import 'package:mohem_flutter_app/models/get_day_hours_type_details_list_model.dart';
+import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
+import 'package:mohem_flutter_app/models/my_team/get_employee_subordinates_list.dart';
+import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart';
+
+class MyTeamApiClient {
+ static final MyTeamApiClient _instance = MyTeamApiClient._internal();
+
+ MyTeamApiClient._internal();
+
+ factory MyTeamApiClient() => _instance;
+
+
+ Future> getEmployeeSubordinates(String searchEmpEmail, String searchEmpName, String searchEmpNo) async {
+ String url = "${ApiConsts.erpRest}GET_EMPLOYEE_SUBORDINATES";
+ Map postParams = {
+ "P_PAGE_LIMIT": 50,
+ "P_PAGE_NUM": 1,
+ "P_SEARCH_EMAIL_ADDRESS": searchEmpEmail,
+ "P_SEARCH_EMPLOYEE_DISPLAY_NAME": searchEmpName,
+ "P_SEARCH_EMPLOYEE_NUMBER": searchEmpNo,
+ };
+ postParams.addAll(AppState().postParamsJson);
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
+ return responseData.getEmployeeSubordinatesList ?? [];
+ }, url, postParams);
+ }
+
+ Future getTimeCardSummary(String month, int year, String? empID) async {
+ String url = "${ApiConsts.erpRest}GET_TIME_CARD_SUMMARY";
+ Map postParams = {
+ "P_MENU_TYPE": "M",
+ "P_SELECTED_RESP_ID": -999,
+ "SearchMonth": month,
+ "SearchYear": year,
+ };
+
+ postParams.addAll(AppState().postParamsJson);
+ postParams['P_SELECTED_EMPLOYEE_NUMBER'] = empID;
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
+ return (responseData.getTimeCardSummaryList?.length ?? 0) > 0 ? responseData.getTimeCardSummaryList!.first : null;
+ }, url, postParams);
+ }
+
+ Future> getDayHoursTypeDetails(String month, int year, String? empID) async {
+ String url = "${ApiConsts.erpRest}GET_DAY_HOURS_TYPE_DETAILS";
+ Map postParams = {
+ "P_MENU_TYPE": "M",
+ "P_PAGE_LIMIT": 100,
+ "P_PAGE_NUM": 1,
+ "P_SELECTED_RESP_ID": -999,
+ "SearchMonth": month,
+ "SearchYear": year,
+ };
+ postParams.addAll(AppState().postParamsJson);
+ postParams['P_SELECTED_EMPLOYEE_NUMBER'] = empID;
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
+ print(responseData.getDayHoursTypeDetailsList!.length);
+ return responseData.getDayHoursTypeDetailsList ?? [];
+ }, url, postParams);
+ }
+
+
+ Future getAttendanceTracking(String? empID) async {
+ String url = "${ApiConsts.erpRest}GET_Attendance_Tracking";
+ Map postParams = {};
+ postParams.addAll(AppState().postParamsJson);
+ postParams['P_SELECTED_EMPLOYEE_NUMBER'] = empID;
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
+ print(responseData.getAttendanceTrackingList);
+ return responseData.getAttendanceTrackingList;
+ }, url, postParams);
+ }
+
+ Future> employeeSubordinates(String searchEmpEmail, String searchEmpName, String searchEmpNo, String? empID) async {
+ String url = "${ApiConsts.erpRest}GET_EMPLOYEE_SUBORDINATES";
+ Map postParams = {
+ "P_PAGE_LIMIT": 50,
+ "P_PAGE_NUM": 1,
+ "P_SEARCH_EMAIL_ADDRESS": searchEmpEmail,
+ "P_SEARCH_EMPLOYEE_DISPLAY_NAME": searchEmpName,
+ "P_SEARCH_EMPLOYEE_NUMBER": searchEmpNo,
+ };
+ postParams.addAll(AppState().postParamsJson);
+ postParams['P_SELECTED_EMPLOYEE_NUMBER'] = empID;
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
+ return responseData.getEmployeeSubordinatesList ?? [];
+ }, url, postParams);
+ }
+
+ Future> employeeSubordinatesRequest(String? empID) async {
+ String url = "${ApiConsts.erpRest}GET_MENU_ENTRIES";
+ Map postParams = {
+ "P_MENU_TYPE": "M",
+ "P_SELECTED_RESP_ID": -999,
+ };
+ postParams.addAll(AppState().postParamsJson);
+ postParams['P_SELECTED_EMPLOYEE_NUMBER'] = empID;
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
+ return responseData.getMenuEntriesList ?? [];
+ }, url, postParams);
+ }
+
+ Future?> getFavoriteReplacement() async {
+ String url = "${ApiConsts.erpRest}Mohemm_GetFavoriteReplacements";
+ Map postParams = {
+ };
+ postParams.addAll(AppState().postParamsJson);
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel responseData = GenericResponseModel.fromJson(json);
+ return responseData.mohemmGetFavoriteReplacementsList;
+ }, url, postParams);
+ }
+
+ Future changeFavoriteReplacements({required String email, required String employeName, required String image, required String userName, bool isFav = false}) async {
+ String url = "${ApiConsts.erpRest}Mohemm_ChangeFavoriteReplacements";
+ Map postParamsObj = {
+ "EMAIL_ADDRESS": email,
+ "EMPLOYEE_DISPLAY_NAME": employeName,
+ "EMPLOYEE_IMAGE": image,
+ "IsFavorite": isFav,
+ "USER_NAME": userName,
+ };
+ Map postParams = {
+ "Mohemm_ChangeReplacementsInputList": [postParamsObj],
+ //postParams["Mohemm_ChangeReplacementsInputList"] = list;
+ };
+ postParams.addAll(AppState().postParamsJson);
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel responseData = GenericResponseModel.fromJson(json);
+ return responseData;
+ }, url, postParams);
+ }
+}
+
diff --git a/lib/api/worklist/worklist_api_client.dart b/lib/api/worklist/worklist_api_client.dart
index bc05627..f1f9408 100644
--- a/lib/api/worklist/worklist_api_client.dart
+++ b/lib/api/worklist/worklist_api_client.dart
@@ -17,15 +17,18 @@ import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dar
import 'package:mohem_flutter_app/models/get_quotation_analysis_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart';
+import 'package:mohem_flutter_app/models/get_user_item_type_list.dart';
import 'package:mohem_flutter_app/models/itg_forms_models/itg_request_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/update_user_item_type_list.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';
import 'package:mohem_flutter_app/models/worklist/hr/get_basic_det_ntf_body_list_model.dart';
import 'package:mohem_flutter_app/models/worklist/hr/get_contact_notification_body_list_model.dart';
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/update_user_type_list.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
class WorkListApiClient {
@@ -445,4 +448,31 @@ class WorkListApiClient {
return responseData;
}, url, postParams);
}
+
+
+ Future> getUserItemTypes() async {
+ String url = "${ApiConsts.erpRest}GET_USER_ITEM_TYPES";
+ Map postParams = {
+
+ };
+ postParams.addAll(AppState().postParamsJson);
+ return await ApiClient().postJsonForObject((json) {
+ GenericResponseModel responseData = GenericResponseModel.fromJson(json);
+ return responseData.getUserItemTypesList ?? [];
+ }, url, postParams);
+ }
+
+ Future updateUserItemTypes(List