From d640ce29dec6adb2fde277f96d7505547d418d06 Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Wed, 31 Aug 2022 09:36:26 +0300 Subject: [PATCH 1/2] fix issue --- lib/api/my_team/my_team_api_client.dart | 14 ++ lib/config/routes.dart | 3 + lib/models/generic_response_model.dart | 19 +- lib/models/get_user_item_type_list.dart | 2 +- .../get_attendance_tracking_list_model.dart | 2 +- .../get_employee_subordinates_list.dart | 2 +- ...tes_leaves_total_vacations_list_model.dart | 62 +++++++ lib/models/update_item_type_success_list.dart | 2 +- lib/models/update_user_item_type_list.dart | 2 +- .../worklist/update_user_type_list.dart | 2 +- lib/ui/my_team/employee_details.dart | 8 +- lib/ui/my_team/my_team.dart | 112 ++++++----- lib/ui/my_team/subordinate_leave.dart | 175 ++++++++++++++++++ lib/ui/my_team/view_attendance.dart | 4 +- lib/ui/profile/contact_details.dart | 31 ++-- lib/ui/profile/family_members.dart | 97 +++++----- lib/widgets/app_bar_widget.dart | 14 +- 17 files changed, 416 insertions(+), 135 deletions(-) create mode 100644 lib/models/my_team/get_subordinates_leaves_total_vacations_list_model.dart create mode 100644 lib/ui/my_team/subordinate_leave.dart diff --git a/lib/api/my_team/my_team_api_client.dart b/lib/api/my_team/my_team_api_client.dart index 4a843c1..c5a78c6 100644 --- a/lib/api/my_team/my_team_api_client.dart +++ b/lib/api/my_team/my_team_api_client.dart @@ -9,6 +9,7 @@ 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/my_team/get_subordinates_leaves_total_vacations_list_model.dart'; import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart'; class MyTeamApiClient { @@ -145,5 +146,18 @@ class MyTeamApiClient { return responseData; }, url, postParams); } + + Future> getSubordinatesLeavesList(String dateFrom, String dateTo) async { + String url = "${ApiConsts.erpRest}GET_SUBORDINATES_LEAVES_TOTAL_VACATIONS"; + Map postParams = { + "P_DATE_FROM": dateFrom, + "P_DATE_TO": dateTo, + }; + postParams.addAll(AppState().postParamsJson); + return await ApiClient().postJsonForObject((json) { + GenericResponseModel responseData = GenericResponseModel.fromJson(json); + return responseData.getSubordinatesLeavesTotalVacationsList ?? []; + }, url, postParams); + } } diff --git a/lib/config/routes.dart b/lib/config/routes.dart index 023b9b9..76d5d40 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -19,6 +19,7 @@ import 'package:mohem_flutter_app/ui/my_team/create_request.dart'; import 'package:mohem_flutter_app/ui/my_team/employee_details.dart'; import 'package:mohem_flutter_app/ui/my_team/my_team.dart'; import 'package:mohem_flutter_app/ui/my_team/profile_details.dart'; +import 'package:mohem_flutter_app/ui/my_team/subordinate_leave.dart'; import 'package:mohem_flutter_app/ui/my_team/team_members.dart'; import 'package:mohem_flutter_app/ui/my_team/view_attendance.dart'; import 'package:mohem_flutter_app/ui/payslip/monthly_pay_slip_screen.dart'; @@ -124,6 +125,7 @@ class AppRoutes { static const String viewAttendance = "/viewAttendance"; static const String teamMembers = "/teamMembers"; static const String createRequest = "/createRequest"; + static const String subordinateLeave = "/subordinateLeave"; static final Map routes = { @@ -196,6 +198,7 @@ class AppRoutes { viewAttendance: (context) => ViewAttendance(), teamMembers: (context) => TeamMembers(), createRequest: (context) => CreateRequest(), + subordinateLeave: (context) => SubordinateLeave(), diff --git a/lib/models/generic_response_model.dart b/lib/models/generic_response_model.dart index 9ac23fc..436fe6c 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -49,6 +49,7 @@ import 'package:mohem_flutter_app/models/mowadhafhi/get_ticket_transactions.dart import 'package:mohem_flutter_app/models/mowadhafhi/get_ticket_types.dart'; import 'package:mohem_flutter_app/models/mowadhafhi/get_tickets_list.dart'; import 'package:mohem_flutter_app/models/my_team/get_employee_subordinates_list.dart'; +import 'package:mohem_flutter_app/models/my_team/get_subordinates_leaves_total_vacations_list_model.dart'; import 'package:mohem_flutter_app/models/notification_action_model.dart'; import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart'; import 'package:mohem_flutter_app/models/pending_transactions/get_pending_transactions_details.dart'; @@ -215,7 +216,7 @@ class GenericResponseModel { List? getStampNsNotificationBodyList; List? getSubordinatesAttdStatusList; List? getSubordinatesLeavesList; - List? getSubordinatesLeavesTotalVacationsList; + List?getSubordinatesLeavesTotalVacationsList; List? getSummaryOfPaymentList; List? getSwipesList; List? getTermColsStructureList; @@ -964,7 +965,14 @@ class GenericResponseModel { }); } - getSubordinatesLeavesTotalVacationsList = json['GetSubordinatesLeavesTotalVacationsList']; + if (json['GetSubordinatesLeavesTotalVacationsList'] != null) { + getSubordinatesLeavesTotalVacationsList = + []; + json['GetSubordinatesLeavesTotalVacationsList'].forEach((v) { + getSubordinatesLeavesTotalVacationsList! + .add(new GetSubordinatesLeavesTotalVacationsList.fromJson(v)); + }); + } if (json['GetSummaryOfPaymentList'] != null) { getSummaryOfPaymentList = []; json['GetSummaryOfPaymentList'].forEach((v) { @@ -1507,7 +1515,12 @@ class GenericResponseModel { data['GetSubordinatesLeavesList'] = this.getSubordinatesLeavesList!.map((v) => v.toJson()).toList(); } - data['GetSubordinatesLeavesTotalVacationsList'] = this.getSubordinatesLeavesTotalVacationsList; + if (this.getSubordinatesLeavesTotalVacationsList != null) { + data['GetSubordinatesLeavesTotalVacationsList'] = this + .getSubordinatesLeavesTotalVacationsList! + .map((v) => v.toJson()) + .toList(); + } if (this.getSummaryOfPaymentList != null) { data['GetSummaryOfPaymentList'] = this.getSummaryOfPaymentList!.map((v) => v.toJson()).toList(); } diff --git a/lib/models/get_user_item_type_list.dart b/lib/models/get_user_item_type_list.dart index a197c2e..29892f1 100644 --- a/lib/models/get_user_item_type_list.dart +++ b/lib/models/get_user_item_type_list.dart @@ -25,7 +25,7 @@ class GetUserItemTypesList { } Map toJson() { - final Map data = new Map(); + Map data = new Map(); data['FYA_ENABLED_FALG'] = this.fYAENABLEDFALG; data['FYI_ENABLED_FLAG'] = this.fYIENABLEDFLAG; data['ITEM_TYPE'] = this.iTEMTYPE; diff --git a/lib/models/my_team/get_attendance_tracking_list_model.dart b/lib/models/my_team/get_attendance_tracking_list_model.dart index 7670702..0fbc5f3 100644 --- a/lib/models/my_team/get_attendance_tracking_list_model.dart +++ b/lib/models/my_team/get_attendance_tracking_list_model.dart @@ -41,7 +41,7 @@ class GetAttendanceTrackingList { } Map toJson() { - final Map data = new Map(); + Map data = new Map(); data['P_BREAK_HOURS'] = this.pBREAKHOURS; data['P_LATE_IN_HOURS'] = this.pLATEINHOURS; data['P_REMAINING_HOURS'] = this.pREMAININGHOURS; diff --git a/lib/models/my_team/get_employee_subordinates_list.dart b/lib/models/my_team/get_employee_subordinates_list.dart index b90034b..1158f7d 100644 --- a/lib/models/my_team/get_employee_subordinates_list.dart +++ b/lib/models/my_team/get_employee_subordinates_list.dart @@ -232,7 +232,7 @@ class GetEmployeeSubordinatesList { } Map toJson() { - final Map data = new Map(); + Map data = new Map(); data['ACTUAL_TERMINATION_DATE'] = this.aCTUALTERMINATIONDATE; data['ASSIGNMENT_END_DATE'] = this.aSSIGNMENTENDDATE; data['ASSIGNMENT_ID'] = this.aSSIGNMENTID; diff --git a/lib/models/my_team/get_subordinates_leaves_total_vacations_list_model.dart b/lib/models/my_team/get_subordinates_leaves_total_vacations_list_model.dart new file mode 100644 index 0000000..04837d8 --- /dev/null +++ b/lib/models/my_team/get_subordinates_leaves_total_vacations_list_model.dart @@ -0,0 +1,62 @@ + + +class GetSubordinatesLeavesTotalVacationsList { + String? aBSENCEATTENDANCETYPENAME; + String? cALENDARENTRYDESC; + String? dATEEND; + String? dATESTART; + String? eMPLOYEENAME; + String? eMPLOYEENUMBER; + String? lEAVETYPE; + int? oRGANIZATIONID; + String? oRGANIZATIONNAME; + String? pOSITIONTITLE; + String? rEPLACEMENTNAME; + String? sTATUS; + + GetSubordinatesLeavesTotalVacationsList( + {this.aBSENCEATTENDANCETYPENAME, + this.cALENDARENTRYDESC, + this.dATEEND, + this.dATESTART, + this.eMPLOYEENAME, + this.eMPLOYEENUMBER, + this.lEAVETYPE, + this.oRGANIZATIONID, + this.oRGANIZATIONNAME, + this.pOSITIONTITLE, + this.rEPLACEMENTNAME, + this.sTATUS}); + + GetSubordinatesLeavesTotalVacationsList.fromJson(Map json) { + aBSENCEATTENDANCETYPENAME = json['ABSENCE_ATTENDANCE_TYPE_NAME']; + cALENDARENTRYDESC = json['CALENDAR_ENTRY_DESC']; + dATEEND = json['DATE_END']; + dATESTART = json['DATE_START']; + eMPLOYEENAME = json['EMPLOYEE_NAME']; + eMPLOYEENUMBER = json['EMPLOYEE_NUMBER']; + lEAVETYPE = json['LEAVE_TYPE']; + oRGANIZATIONID = json['ORGANIZATION_ID']; + oRGANIZATIONNAME = json['ORGANIZATION_NAME']; + pOSITIONTITLE = json['POSITION_TITLE']; + rEPLACEMENTNAME = json['REPLACEMENT_NAME']; + sTATUS = json['STATUS']; + } + + Map toJson() { + Map data = new Map(); + 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_NAME'] = this.eMPLOYEENAME; + data['EMPLOYEE_NUMBER'] = this.eMPLOYEENUMBER; + 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; + } +} \ No newline at end of file diff --git a/lib/models/update_item_type_success_list.dart b/lib/models/update_item_type_success_list.dart index f133e38..556fa42 100644 --- a/lib/models/update_item_type_success_list.dart +++ b/lib/models/update_item_type_success_list.dart @@ -15,7 +15,7 @@ class UpdateItemTypeSuccessList { } Map toJson() { - final Map data = new Map(); + Map data = new Map(); data['ItemID'] = this.itemID; data['UpdateError'] = this.updateError; data['UpdateSuccess'] = this.updateSuccess; diff --git a/lib/models/update_user_item_type_list.dart b/lib/models/update_user_item_type_list.dart index 58f4714..ceff62a 100644 --- a/lib/models/update_user_item_type_list.dart +++ b/lib/models/update_user_item_type_list.dart @@ -12,7 +12,7 @@ class UpdateUserItemTypesList { } Map toJson() { - final Map data = new Map(); + Map data = new Map(); data['P_RETURN_MSG'] = this.pRETURNMSG; data['P_RETURN_STATUS'] = this.pRETURNSTATUS; return data; diff --git a/lib/models/worklist/update_user_type_list.dart b/lib/models/worklist/update_user_type_list.dart index 4ff377f..dc05fde 100644 --- a/lib/models/worklist/update_user_type_list.dart +++ b/lib/models/worklist/update_user_type_list.dart @@ -18,7 +18,7 @@ class UpdateUserTypesList { } Map toJson() { - final Map data = new Map(); + Map data = new Map(); data['ItemID'] = this.itemID; data['P_FYAENABLED_FALG'] = this.pFYAENABLEDFALG; data['P_FYIENABLED_FALG'] = this.pFYIENABLEDFALG; diff --git a/lib/ui/my_team/employee_details.dart b/lib/ui/my_team/employee_details.dart index 2ef488b..b1252aa 100644 --- a/lib/ui/my_team/employee_details.dart +++ b/lib/ui/my_team/employee_details.dart @@ -65,8 +65,12 @@ class _EmployeeDetailsState extends State { @override Widget build(BuildContext context) { - getEmployeeSubordinates = ModalRoute.of(context)?.settings.arguments as GetEmployeeSubordinatesList; - setMenu(); + if(getEmployeeSubordinates == null) { + getEmployeeSubordinates = ModalRoute.of(context)?.settings.arguments as GetEmployeeSubordinatesList; + setMenu(); + } + + return Scaffold( extendBody: true, backgroundColor: MyColors.lightGreyEFColor, diff --git a/lib/ui/my_team/my_team.dart b/lib/ui/my_team/my_team.dart index 7366128..37ab561 100644 --- a/lib/ui/my_team/my_team.dart +++ b/lib/ui/my_team/my_team.dart @@ -55,46 +55,60 @@ class _MyTeamState extends State { appBar: AppBarWidget( context, title: LocaleKeys.myTeamMembers.tr(), + showMemberButton: true, ), backgroundColor: MyColors.backgroundColor, body: SingleChildScrollView( child: Column( children: [ - Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Expanded( - child: TextField( - onChanged: dropdownValue == "Name" - ? (String value) { - getEmployeeSListOnSearch = - getEmployeeSubordinatesList.where((GetEmployeeSubordinatesList element) => element.eMPLOYEENAME!.toLowerCase().contains(value.toLowerCase())).toList(); - setState(() {}); - } - : (String value) { - getEmployeeSListOnSearch = - getEmployeeSubordinatesList.where((GetEmployeeSubordinatesList element) => element.eMPLOYEEEMAILADDRESS!.toLowerCase().contains(value.toLowerCase())).toList(); - setState(() {}); - }, - controller: _textEditingController, - decoration: InputDecoration( - filled: true, - fillColor: Colors.white, - border: InputBorder.none, - enabledBorder: InputBorder.none, - focusedBorder: InputBorder.none, - // contentPadding: EdgeInsets.fromLTRB(10, 15, 10, 15), - hintText: LocaleKeys.searchBy.tr() + " $dropdownValue", - hintStyle: TextStyle(fontSize: 14.0, color: MyColors.grey57Color, fontWeight: FontWeight.w600), + Container( + margin: EdgeInsets.only(left: 21, right: 21, top: 20, bottom: 6), + padding: EdgeInsets.only(left: 14, right: 14, top: 21, bottom: 21), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(15), + color: Color(0xffFFFFFF), + border: Border.all( + color: Color(0xffefefef), + width: 1, ), - )), - Row( + ), + child: Row( children: [ - "|".toText16(color: MyColors.greyC4Color), + Expanded( + child: TextField( + onChanged: dropdownValue == "Name" + ? (String value) { + getEmployeeSListOnSearch = + getEmployeeSubordinatesList.where((GetEmployeeSubordinatesList element) => element.eMPLOYEENAME!.toLowerCase().contains(value.toLowerCase())).toList(); + setState(() {}); + } + : (String value) { + getEmployeeSListOnSearch = + getEmployeeSubordinatesList.where((GetEmployeeSubordinatesList element) => element.eMPLOYEEEMAILADDRESS!.toLowerCase().contains(value.toLowerCase())).toList(); + setState(() {}); + }, + controller: _textEditingController, + decoration: InputDecoration( + filled: true, + fillColor: Colors.white, + border: InputBorder.none, + enabledBorder: InputBorder.none, + focusedBorder: InputBorder.none, + // contentPadding: EdgeInsets.fromLTRB(10, 15, 10, 15), + hintText: LocaleKeys.searchBy.tr() + " $dropdownValue", + hintStyle: TextStyle(fontSize: 14.0, color: MyColors.grey57Color, fontWeight: FontWeight.w600), + ), + )), + Container( + height: 36, + width: 1, + color: Color(0xffC4C4C4), + ), 10.width, dropDown(), ], - ) - ]).objectContainerBorderView(), - // ), + ), + ), Container( margin: EdgeInsets.only(left: 21, right: 21), width: MediaQuery.of(context).size.width, @@ -162,23 +176,25 @@ class _MyTeamState extends State { } Widget dropDown() { - return DropdownButton( - value: dropdownValue, - icon: const Icon(Icons.keyboard_arrow_down, - color: MyColors.grey57Color), - elevation: 16, - onChanged: (String? newValue) { - setState(() { - dropdownValue = newValue!; - }); - }, - items: ['Name', 'Email'].map>((String value) { - return DropdownMenuItem( - value: value, - child: Text(value), - ); - }).toList(), - style: TextStyle(fontSize: 14.0, color: MyColors.grey57Color, fontWeight: FontWeight.w600), - ); + return + DropdownButton( + value: dropdownValue, + icon: const Icon(Icons.keyboard_arrow_down, + color: MyColors.grey57Color).paddingOnly(left: 4), + elevation: 16, + onChanged: (String? newValue) { + setState(() { + dropdownValue = newValue!; + }); + }, + items: ['Name', 'Email'].map>((String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + style: TextStyle(fontSize: 14.0, color: MyColors.grey57Color, + fontWeight: FontWeight.w600), + ); } } diff --git a/lib/ui/my_team/subordinate_leave.dart b/lib/ui/my_team/subordinate_leave.dart new file mode 100644 index 0000000..c5adb17 --- /dev/null +++ b/lib/ui/my_team/subordinate_leave.dart @@ -0,0 +1,175 @@ + +import 'dart:io'; + +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:mohem_flutter_app/api/my_team/my_team_api_client.dart'; +import 'package:mohem_flutter_app/classes/colors.dart'; +import 'package:mohem_flutter_app/classes/date_uitl.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/my_team/get_subordinates_leaves_total_vacations_list_model.dart'; +import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; +import 'package:mohem_flutter_app/widgets/button/default_button.dart'; +import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart'; + + +class SubordinateLeave extends StatefulWidget { + const SubordinateLeave({Key? key}) : super(key: key); + + @override + _SubordinateLeaveState createState() => _SubordinateLeaveState(); +} + +class _SubordinateLeaveState extends State { + List getSubordinatesLeavesTotalList = []; + DateTime selectedDateFrom = DateTime.now(); + DateTime selectedDateTo = DateTime.now(); + bool showList = false; + // DateTime dateFrom = DateFormat("MMM/DD/YYYY").format(selectedDateFrom) as DateTime; + // DateTime dateTo = DateFormat("MMM/DD/YYYY").format(selectedDateTo) as DateTime; + + + + @override + void initState() { + super.initState(); + } + + void getSubordinatesLeaves()async { + try { + Utils.showLoading(context); + getSubordinatesLeavesTotalList = await MyTeamApiClient().getSubordinatesLeavesList(selectedDateFrom.toIso8601String(), selectedDateTo.toIso8601String()); + Utils.hideLoading(context); + } catch (ex) {da + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + } + } + + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBarWidget( + context, + title: "Subordinate Leave", + ), + backgroundColor: MyColors.backgroundColor, + body: Column( + children: [ + Expanded( + child: Column( + children: [ + Column( + children: [ + DynamicTextFieldWidget( + LocaleKeys.dateFrom.tr(), + selectedDateFrom.toString().split(" ")[0], + suffixIconData: Icons.calendar_today, + isEnable: false, + onTap: () async { + selectedDateFrom = await _selectDate(context, DateTime.now()); + setState(() {}); + }, + ), + 12.height, + DynamicTextFieldWidget( + LocaleKeys.dateTo.tr(), + selectedDateTo.toString().split(" ")[0], + suffixIconData: Icons.calendar_today, + isEnable: false, + onTap: () async { + selectedDateTo = await _selectDate(context, DateTime.now()); + setState(() {}); + }, + ) + ], + ).objectContainerView(), + !showList? + SingleChildScrollView( + child: ListView.separated( + scrollDirection: Axis.vertical, + shrinkWrap: true, + physics: ScrollPhysics(), + separatorBuilder: (cxt, index) => 12.height, + itemCount: getSubordinatesLeavesTotalList.length, + itemBuilder: (context, index) { + var diffDays = selectedDateTo.difference(selectedDateFrom).inDays; + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + // CircleAvatar( + // radius: 25, + // backgroundImage: MemoryImage(Utils.getPostBytes(getSubordinatesLeavesTotalList[index].eMPLOYEEIMAGE)), + // backgroundColor: Colors.black, + // ), + SvgPicture.asset("assets/images/clock.svg"), + 10.width, + "${getSubordinatesLeavesTotalList[index].eMPLOYEENAME}".toText16(isBold: true, color: MyColors.grey3AColor), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + "From: ${getSubordinatesLeavesTotalList[index].dATESTART}".toText10(isBold: true, color: MyColors.grey57Color), + "To: ${getSubordinatesLeavesTotalList[index].dATEEND}".toText10(isBold: true, color: MyColors.grey57Color), + ], + ).expanded, + "Number of days: $diffDays".toText13(color: MyColors.grey3AColor), + ], + ).objectContainerView(); + }), + ).objectContainerView() + :Container(), + ], + ), + ), + DefaultButton( + LocaleKeys.submit.tr(), () async { + getSubordinatesLeaves(); + setState(() { + showList= true; + }); + showList= true; + }).insideContainer + ], + ), + ); + } + + + + Future _selectDate(BuildContext context, DateTime selectedDate) async { + DateTime time = selectedDate; + if (!Platform.isIOS) { + await showCupertinoModalPopup( + context: context, + builder: (cxt) => Container( + height: 250, + color: Colors.white, + child: CupertinoDatePicker( + backgroundColor: Colors.white, + mode: CupertinoDatePickerMode.date, + onDateTimeChanged: (value) { + if (value != null && value != selectedDate) { + time = value; + } + }, + initialDateTime: selectedDate, + ), + ), + ); + } else { + DateTime? picked = await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101)); + if (picked != null && picked != selectedDate) { + time = picked; + } + } + return time; + } +} diff --git a/lib/ui/my_team/view_attendance.dart b/lib/ui/my_team/view_attendance.dart index b24a895..3f978c3 100644 --- a/lib/ui/my_team/view_attendance.dart +++ b/lib/ui/my_team/view_attendance.dart @@ -447,7 +447,7 @@ class _ViewAttendanceState extends State { List _getDataSource() { - final List meetings = []; + List meetings = []; return meetings; } @@ -545,7 +545,7 @@ class MeetingDataSource extends CalendarDataSource { } Meeting _getMeetingData(int index) { - final dynamic meeting = appointments; + dynamic meeting = appointments; Meeting meetingData; if (meeting is Meeting) { meetingData = meeting; diff --git a/lib/ui/profile/contact_details.dart b/lib/ui/profile/contact_details.dart index 9eda586..4d223cf 100644 --- a/lib/ui/profile/contact_details.dart +++ b/lib/ui/profile/contact_details.dart @@ -83,7 +83,6 @@ class _ContactDetailsState extends State { title: LocaleKeys.profile_contactDetails.tr(), ), backgroundColor: MyColors.backgroundColor, - // bottomSheet: footer(), body: SingleChildScrollView( child: Column(children: [ Container( @@ -187,21 +186,21 @@ class _ContactDetailsState extends State { ]))); } - Widget footer() { - return Container( - decoration: BoxDecoration( - // borderRadius: BorderRadius.circular(10), - color: MyColors.white, - boxShadow: [ - BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3), - ], - ), - child: DefaultButton(LocaleKeys.update.tr(), () async { - // context.setLocale(const Locale("en", "US")); // to change Loacle - ProfileScreen(); - }).insideContainer, - ); - } + // Widget footer() { + // return Container( + // decoration: BoxDecoration( + // // borderRadius: BorderRadius.circular(10), + // color: MyColors.white, + // boxShadow: [ + // BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3), + // ], + // ), + // child: DefaultButton(LocaleKeys.update.tr(), () async { + // // context.setLocale(const Locale("en", "US")); // to change Loacle + // ProfileScreen(); + // }).insideContainer, + // ); + // } void updatePhone() { Navigator.push( diff --git a/lib/ui/profile/family_members.dart b/lib/ui/profile/family_members.dart index 3aef900..c2b1e2f 100644 --- a/lib/ui/profile/family_members.dart +++ b/lib/ui/profile/family_members.dart @@ -4,7 +4,9 @@ import 'package:mohem_flutter_app/api/profile_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/dashboard/menu_entries.dart'; import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart'; @@ -58,29 +60,23 @@ class _FamilyMembersState extends State { backgroundColor: MyColors.backgroundColor, body: Column( children: [ + 20.height, Expanded( child: getEmployeeContactsList.length != 0 ? SingleChildScrollView( scrollDirection: Axis.vertical, - child: ListView.builder( + child: ListView.separated( scrollDirection: Axis.vertical, shrinkWrap: true, physics: ScrollPhysics(), + separatorBuilder: (cxt, index) => 12.height, itemCount: getEmployeeContactsList.length, itemBuilder: (context, index) { return Container( width: double.infinity, - margin: EdgeInsets.only( - top: 20, - left: 21, - right: 21, + margin: EdgeInsets.only(left: 21, right: 21, ), - padding: EdgeInsets.only( - left: 14, - right: 14, - top: 13, - ), - height: 110, + // padding: EdgeInsets.only(left: 14, right: 14, top: 13, bottom: 10), decoration: BoxDecoration( boxShadow: [ BoxShadow( @@ -90,32 +86,33 @@ class _FamilyMembersState extends State { offset: Offset(0, 3), ), ], - color: MyColors.whiteColor, + color: Colors.white, borderRadius: BorderRadius.circular(10.0), ), - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - "${getEmployeeContactsList[index].cONTACTNAME}".toText16(isBold: true, color: MyColors.grey3AColor), - "${getEmployeeContactsList[index].rELATIONSHIP}".toText11(isBold: true, color: MyColors.textMixColor), - SizedBox( - height: 5, - ), - Divider( - color: MyColors.lightGreyEFColor, - height: 20, - thickness: 1, - indent: 0, - endIndent: 0, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Container( - child: menuEntries.updateButton == 'Y' + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + "${getEmployeeContactsList[index].cONTACTNAME}".toText16(isBold: true, color: MyColors.grey3AColor), + "${getEmployeeContactsList[index].rELATIONSHIP}".toText11(isBold: true, color: MyColors.textMixColor), + ]).paddingOnly(left: 14, right: 14, top: 13, bottom: 11), + const Divider( + color: Color(0xffEFEFEF), + thickness: 1, + indent: 0, + endIndent: 0, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + menuEntries.updateButton == 'Y' ? InkWell( onTap: () async{ relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt(); showUpdateAlertDialog(context, relationId!.toInt(), 2, LocaleKeys.update.tr()); - }, + }, child: RichText( text: TextSpan( children: [ @@ -136,8 +133,8 @@ class _FamilyMembersState extends State { ), ], ), - ), - ) + ), + ) : RichText( text: TextSpan( children: [ @@ -158,23 +155,18 @@ class _FamilyMembersState extends State { ), ], ), - ) ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 8), - child: SizedBox( - child: Container( - width: 3, - color: MyColors.lightGreyEFColor, ), - ), - ), - Container( - child: InkWell( - onTap: () { + Container( + height: 35, + width: 1, + color: Color(0xffEFEFEF), + ), + InkWell( + onTap: () { relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt(); showRemoveAlertDialog(context, relationId!.toInt()); - }, - child: RichText( + }, + child: RichText( text: TextSpan( children: [ WidgetSpan( @@ -194,11 +186,12 @@ class _FamilyMembersState extends State { ), ], ), - ), - )), - ], - ), - ]), + ), + ), + ], + ).paddingOnly(left: 14, right: 14), + ], + ), ); }), ) diff --git a/lib/widgets/app_bar_widget.dart b/lib/widgets/app_bar_widget.dart index 806fe6b..770494e 100644 --- a/lib/widgets/app_bar_widget.dart +++ b/lib/widgets/app_bar_widget.dart @@ -5,7 +5,7 @@ import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; -AppBar AppBarWidget(BuildContext context, {required String title, bool showHomeButton = false, bool showNotificationButton = false}) { +AppBar AppBarWidget(BuildContext context, {required String title, bool showHomeButton = false, bool showNotificationButton = false, bool showMemberButton = false}) { return AppBar( leadingWidth: 0, // leading: GestureDetector( @@ -44,14 +44,16 @@ AppBar AppBarWidget(BuildContext context, {required String title, bool showHomeB IconButton( onPressed: () { Navigator.pushNamed(context, AppRoutes.worklistSettings); - // Navigator.pushAndRemoveUntil( - // context, - // MaterialPageRoute(builder: (context) => LandingPage()), - // (Route route) => false, - // ); }, icon: const Icon(Icons.notifications, color: MyColors.textMixColor), ), + if(showMemberButton) + IconButton( + onPressed: () { + Navigator.pushNamed(context, AppRoutes.subordinateLeave); + }, + icon: const Icon(Icons.people, color: MyColors.textMixColor), + ), ], ); } From 907b205d2108fbe8e4efdad29f6b6eb67976e30a Mon Sep 17 00:00:00 2001 From: Fatimah Alshammari Date: Thu, 1 Sep 2022 14:16:38 +0300 Subject: [PATCH 2/2] added subordinate leave --- assets/images/user.svg | 6 ++ assets/langs/ar-SA.json | 2 + assets/langs/en-US.json | 2 + lib/generated/codegen_loader.g.dart | 4 + lib/generated/locale_keys.g.dart | 2 + lib/ui/my_team/employee_details.dart | 4 +- lib/ui/my_team/my_team.dart | 1 - lib/ui/my_team/profile_details.dart | 6 +- lib/ui/my_team/subordinate_leave.dart | 150 ++++++++++++++------------ lib/ui/my_team/team_members.dart | 25 +++-- lib/ui/my_team/view_attendance.dart | 10 +- lib/ui/profile/family_members.dart | 2 - 12 files changed, 114 insertions(+), 100 deletions(-) create mode 100644 assets/images/user.svg diff --git a/assets/images/user.svg b/assets/images/user.svg new file mode 100644 index 0000000..13d9aed --- /dev/null +++ b/assets/images/user.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 7e2048d..1ba7218 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -356,6 +356,8 @@ "hours": "ساعات", "approvalStatus": "حالة القبول", "absenceStatus": "حالة الغياب", + "subordinateLeave": "إجازة التابعيين", + "numberDays": "عدد الأيام", "profile": { "reset_password": { "label": "Reset Password", diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index 38765dd..47d33b9 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -356,6 +356,8 @@ "hours": "Hours", "approvalStatus": "Approval Status", "absenceStatus": "Absence Status", + "subordinateLeave": "Subordinate Leave", + "numberDays": "Number of days", "profile": { "reset_password": { "label": "Reset Password", diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 53499b8..7452524 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -371,6 +371,8 @@ class CodegenLoader extends AssetLoader{ "hours": "ساعات", "approvalStatus": "حالة القبول", "absenceStatus": "حالة الغياب", + "subordinateLeave": "إجازة التابعيين", + "numberDays": "عدد الأيام", "profile": { "reset_password": { "label": "Reset Password", @@ -762,6 +764,8 @@ static const Map en_US = { "hours": "Hours", "approvalStatus": "Approval Status", "absenceStatus": "Absence Status", + "subordinateLeave": "Subordinate Leave", + "numberDays": "Number of days", "profile": { "reset_password": { "label": "Reset Password", diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 43165af..12fb29a 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -356,6 +356,8 @@ abstract class LocaleKeys { static const hours = 'hours'; static const approvalStatus = 'approvalStatus'; static const absenceStatus = 'absenceStatus'; + static const subordinateLeave = 'subordinateLeave'; + static const numberDays = 'numberDays'; static const profile_reset_password_label = 'profile.reset_password.label'; static const profile_reset_password_username = 'profile.reset_password.username'; static const profile_reset_password_password = 'profile.reset_password.password'; diff --git a/lib/ui/my_team/employee_details.dart b/lib/ui/my_team/employee_details.dart index b1252aa..26c844f 100644 --- a/lib/ui/my_team/employee_details.dart +++ b/lib/ui/my_team/employee_details.dart @@ -129,7 +129,6 @@ class _EmployeeDetailsState extends State { child: Stack(children: [ Container( width: _width, - //height: 150, margin: EdgeInsets.only(top: 50), //padding: EdgeInsets.only(right: 17, left: 17), decoration: BoxDecoration( @@ -168,7 +167,6 @@ class _EmployeeDetailsState extends State { color: MyColors.green9CColor, ), ), - // Container(height: 100, alignment: Alignment.center, child: ProfileImage()), InkWell( onTap:() { launchUrl(phoneNumber); @@ -185,7 +183,7 @@ class _EmployeeDetailsState extends State { customLabel(getEmployeeSubordinates!.eMPLOYEENUMBER.toString() + ' | ' + getEmployeeSubordinates!.jOBNAME.toString(), 13, MyColors.grey80Color, true), customLabel(getEmployeeSubordinates!.eMPLOYEEEMAILADDRESS.toString(), 13, MyColors.grey3AColor, true), ], - ).paddingOnly(bottom: 10), + ).paddingOnly(bottom: 10, left: 35,right: 31), ], ), ), diff --git a/lib/ui/my_team/my_team.dart b/lib/ui/my_team/my_team.dart index 37ab561..15ce3d2 100644 --- a/lib/ui/my_team/my_team.dart +++ b/lib/ui/my_team/my_team.dart @@ -123,7 +123,6 @@ class _MyTeamState extends State { : ListView.separated( scrollDirection: Axis.vertical, shrinkWrap: true, - // padding: EdgeInsets.only(left: 21, right: 21), physics: ScrollPhysics(), separatorBuilder: (cxt, index) => 12.height, itemCount: _textEditingController!.text.isNotEmpty ? getEmployeeSListOnSearch.length : getEmployeeSubordinatesList.length, diff --git a/lib/ui/my_team/profile_details.dart b/lib/ui/my_team/profile_details.dart index 419f897..cfc1730 100644 --- a/lib/ui/my_team/profile_details.dart +++ b/lib/ui/my_team/profile_details.dart @@ -1,15 +1,12 @@ import 'package:easy_localization/easy_localization.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/generated/locale_keys.g.dart'; -import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart'; -import 'package:mohem_flutter_app/models/member_information_list_model.dart'; import 'package:mohem_flutter_app/models/my_team/get_employee_subordinates_list.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; -import 'package:mohem_flutter_app/widgets/button/default_button.dart'; + class ProfileDetails extends StatefulWidget { const ProfileDetails({Key? key}) : super(key: key); @@ -19,7 +16,6 @@ class ProfileDetails extends StatefulWidget { } class _ProfileDetailsState extends State { - GetEmployeeSubordinatesList? getEmployeeSubordinates; diff --git a/lib/ui/my_team/subordinate_leave.dart b/lib/ui/my_team/subordinate_leave.dart index c5adb17..9e69fdc 100644 --- a/lib/ui/my_team/subordinate_leave.dart +++ b/lib/ui/my_team/subordinate_leave.dart @@ -32,8 +32,7 @@ class _SubordinateLeaveState extends State { DateTime selectedDateFrom = DateTime.now(); DateTime selectedDateTo = DateTime.now(); bool showList = false; - // DateTime dateFrom = DateFormat("MMM/DD/YYYY").format(selectedDateFrom) as DateTime; - // DateTime dateTo = DateFormat("MMM/DD/YYYY").format(selectedDateTo) as DateTime; + @@ -45,9 +44,11 @@ class _SubordinateLeaveState extends State { void getSubordinatesLeaves()async { try { Utils.showLoading(context); - getSubordinatesLeavesTotalList = await MyTeamApiClient().getSubordinatesLeavesList(selectedDateFrom.toIso8601String(), selectedDateTo.toIso8601String()); + getSubordinatesLeavesTotalList = await MyTeamApiClient().getSubordinatesLeavesList(DateUtil.convertDateToStringLocation(selectedDateFrom), DateUtil.convertDateToStringLocation(selectedDateTo)); + showList= true; Utils.hideLoading(context); - } catch (ex) {da + setState(() {}); + } catch (ex) { Utils.hideLoading(context); Utils.handleException(ex, context, null); } @@ -59,83 +60,94 @@ class _SubordinateLeaveState extends State { return Scaffold( appBar: AppBarWidget( context, - title: "Subordinate Leave", + title: LocaleKeys.subordinateLeave.tr(), ), backgroundColor: MyColors.backgroundColor, body: Column( children: [ Expanded( - child: Column( - children: [ - Column( + child: SingleChildScrollView( + scrollDirection: Axis.vertical, + child: Column( children: [ - DynamicTextFieldWidget( - LocaleKeys.dateFrom.tr(), - selectedDateFrom.toString().split(" ")[0], - suffixIconData: Icons.calendar_today, - isEnable: false, - onTap: () async { - selectedDateFrom = await _selectDate(context, DateTime.now()); - setState(() {}); - }, - ), - 12.height, - DynamicTextFieldWidget( - LocaleKeys.dateTo.tr(), - selectedDateTo.toString().split(" ")[0], - suffixIconData: Icons.calendar_today, - isEnable: false, - onTap: () async { - selectedDateTo = await _selectDate(context, DateTime.now()); - setState(() {}); - }, - ) - ], - ).objectContainerView(), - !showList? - SingleChildScrollView( - child: ListView.separated( + Column( + children: [ + DynamicTextFieldWidget( + LocaleKeys.dateFrom.tr(), + selectedDateFrom.toString().split(" ")[0], + suffixIconData: Icons.calendar_today, + isEnable: false, + onTap: () async { + selectedDateFrom = await _selectDate(context, DateTime.now()); + setState(() {}); + }, + ), + 12.height, + DynamicTextFieldWidget( + LocaleKeys.dateTo.tr(), + selectedDateTo.toString().split(" ")[0], + suffixIconData: Icons.calendar_today, + isEnable: false, + onTap: () async { + selectedDateTo = await _selectDate(context, DateTime.now()); + setState(() {}); + }, + ) + ], + ).objectContainerView(), + Container( + margin: EdgeInsets.only(left: 21, right: 21), + width: MediaQuery.of(context).size.width, + child: SingleChildScrollView( scrollDirection: Axis.vertical, - shrinkWrap: true, - physics: ScrollPhysics(), - separatorBuilder: (cxt, index) => 12.height, - itemCount: getSubordinatesLeavesTotalList.length, - itemBuilder: (context, index) { - var diffDays = selectedDateTo.difference(selectedDateFrom).inDays; - return Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - // CircleAvatar( - // radius: 25, - // backgroundImage: MemoryImage(Utils.getPostBytes(getSubordinatesLeavesTotalList[index].eMPLOYEEIMAGE)), - // backgroundColor: Colors.black, - // ), - SvgPicture.asset("assets/images/clock.svg"), - 10.width, - "${getSubordinatesLeavesTotalList[index].eMPLOYEENAME}".toText16(isBold: true, color: MyColors.grey3AColor), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - "From: ${getSubordinatesLeavesTotalList[index].dATESTART}".toText10(isBold: true, color: MyColors.grey57Color), - "To: ${getSubordinatesLeavesTotalList[index].dATEEND}".toText10(isBold: true, color: MyColors.grey57Color), - ], - ).expanded, - "Number of days: $diffDays".toText13(color: MyColors.grey3AColor), - ], - ).objectContainerView(); - }), - ).objectContainerView() - :Container(), - ], + child: Column( + children: [ + showList? ListView.separated( + scrollDirection: Axis.vertical, + shrinkWrap: true, + physics: ScrollPhysics(), + separatorBuilder: (BuildContext cxt,int index) => 12.height, + itemCount: getSubordinatesLeavesTotalList.length, + itemBuilder: (BuildContext context,int index) { + var diffDays = DateUtil.convertStringToDate(getSubordinatesLeavesTotalList[index].dATEEND!).difference(DateUtil.convertStringToDate(getSubordinatesLeavesTotalList[index].dATESTART!)).inDays; + return getSubordinatesLeavesTotalList.isEmpty + ? Utils.getNoDataWidget(context) + : Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + SvgPicture.asset("assets/images/user.svg"), + 14.width, + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + "${getSubordinatesLeavesTotalList[index].eMPLOYEENAME}".toText16(isBold: true, color: MyColors.grey3AColor), + 10.height, + Row( + children: [ + (LocaleKeys.from.tr() + ': ${DateUtil.getFormattedDate(DateUtil.convertStringToDate(getSubordinatesLeavesTotalList[index].dATESTART!), "MMM dd yyyy")}').toText10(isBold: true, color: MyColors.grey57Color), + 14.width, + (LocaleKeys.to.tr() + ': ${DateUtil.getFormattedDate(DateUtil.convertStringToDate(getSubordinatesLeavesTotalList[index].dATEEND!), "MMM dd yyyy")}').toText10(isBold: true, color: MyColors.grey57Color), + ], + ), + (LocaleKeys.numberDays.tr()+ ": $diffDays").toText10(color: MyColors.grey3AColor), + ], + ).expanded + ], + ).objectContainerView(); + } + ) + :Container(), + ], + ), + ), + ), + ], + ), ), ), DefaultButton( LocaleKeys.submit.tr(), () async { getSubordinatesLeaves(); - setState(() { - showList= true; - }); - showList= true; }).insideContainer ], ), diff --git a/lib/ui/my_team/team_members.dart b/lib/ui/my_team/team_members.dart index f36a13b..37a779d 100644 --- a/lib/ui/my_team/team_members.dart +++ b/lib/ui/my_team/team_members.dart @@ -58,15 +58,16 @@ class _TeamMembersState extends State { scrollDirection: Axis.vertical, child: Column( children: [ - getEmployeeSubordinatesList != 0 - ? ListView.separated( + getEmployeeSubordinatesList.isEmpty + ? Utils.getNoDataWidget(context): + ListView.separated( scrollDirection: Axis.vertical, shrinkWrap: true, padding: EdgeInsets.all(21), physics: ScrollPhysics(), separatorBuilder: (cxt, index) => 12.height, itemCount: getEmployeeSubordinatesList.length, - itemBuilder: (context, index) { + itemBuilder: (BuildContext context, int index) { var phoneNumber = Uri.parse('tel:${getEmployeeSubordinatesList[index].eMPLOYEEMOBILENUMBER}'); return Container( child: Row( @@ -89,18 +90,20 @@ class _TeamMembersState extends State { Column( children: [ IconButton( - onPressed: () { - launchUrl(phoneNumber); + onPressed: () { + launchUrl(phoneNumber); }, icon: Icon( Icons.whatsapp, color: Colors.green, - ),),], - ),], - ),).objectContainerView(); - }): Container( - child: LocaleKeys.noResultsFound.tr().toText16(color: MyColors.blackColor), - ).paddingOnly(top: 10), + ), + ), + ], + ), + ], + ), + ).objectContainerView(); + }), ], ) )); diff --git a/lib/ui/my_team/view_attendance.dart b/lib/ui/my_team/view_attendance.dart index 06b0bce..28ab0f6 100644 --- a/lib/ui/my_team/view_attendance.dart +++ b/lib/ui/my_team/view_attendance.dart @@ -1,21 +1,17 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; -import 'package:mohem_flutter_app/api/monthly_attendance_api_client.dart'; import 'package:mohem_flutter_app/api/my_team/my_team_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/dashboard/get_attendance_tracking_list_model.dart'; import 'package:mohem_flutter_app/models/get_day_hours_type_details_list_model.dart'; -import 'package:mohem_flutter_app/models/get_schedule_shifts_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/widgets/app_bar_widget.dart'; -import 'package:mohem_flutter_app/widgets/circular_step_progress_bar.dart'; import 'package:month_picker_dialog/month_picker_dialog.dart'; import 'package:pie_chart/pie_chart.dart'; import 'package:syncfusion_flutter_calendar/calendar.dart'; @@ -54,7 +50,6 @@ class _ViewAttendanceState extends State { super.initState(); formattedDate = date; callTimeCardAndHourDetails(date.day, searchMonth, searchYear); - // setState(() {}); } @@ -86,8 +81,7 @@ class _ViewAttendanceState extends State { "Present": getTimeCardSummaryList?.aTTENDEDDAYS != null ? getTimeCardSummaryList!.aTTENDEDDAYS!.toDouble() : 0, "Absent": getTimeCardSummaryList?.aBSENTDAYS != null ? getTimeCardSummaryList!.aBSENTDAYS!.toDouble() : 0, }; - //if(getTimeCardSummaryList ==null) - // callTimeCardAndHourDetails(date.day, searchMonth, searchYear); + return Scaffold( appBar: AppBarWidget( context, @@ -193,7 +187,6 @@ class _ViewAttendanceState extends State { searchMonth = getMonth(selectedDate.month); searchYear = selectedDate.year; formattedDate = selectedDate; //DateFormat('MMMM-yyyy').format(selectedDate); - // _calendarController.selectedDate = formattedDate; callTimeCardAndHourDetails(selectedDate.day, searchMonth, searchYear); } }); @@ -322,7 +315,6 @@ class _ViewAttendanceState extends State { dayFormat: 'EEE', showTrailingAndLeadingDates: false, showAgenda: false, - //navigationDirection: MonthNavigationDirection.vertical, monthCellStyle: MonthCellStyle( textStyle: TextStyle( fontStyle: FontStyle.normal, diff --git a/lib/ui/profile/family_members.dart b/lib/ui/profile/family_members.dart index c2b1e2f..f81a288 100644 --- a/lib/ui/profile/family_members.dart +++ b/lib/ui/profile/family_members.dart @@ -11,7 +11,6 @@ import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart'; import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart'; import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; -import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart'; import 'package:mohem_flutter_app/ui/profile/profile_screen.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; @@ -76,7 +75,6 @@ class _FamilyMembersState extends State { width: double.infinity, margin: EdgeInsets.only(left: 21, right: 21, ), - // padding: EdgeInsets.only(left: 14, right: 14, top: 13, bottom: 10), decoration: BoxDecoration( boxShadow: [ BoxShadow(