From b073399ef4970e88706055e1176bf7d9f73db0bb Mon Sep 17 00:00:00 2001 From: Sultan khan <> Date: Thu, 25 May 2023 17:23:04 +0300 Subject: [PATCH] MOE bug fixes --- lib/generated/codegen_loader.g.dart | 14 ++++++- lib/generated/locale_keys.g.dart | 2 + lib/provider/dashboard_provider_model.dart | 7 +++- lib/ui/landing/widget/menus_widget.dart | 9 ++-- .../add_leave_balance_screen.dart | 42 +++++++++---------- .../leave_balance/leave_balance_screen.dart | 5 ++- lib/ui/login/login_screen.dart | 2 +- lib/widgets/balances_dashboard_widget.dart | 37 ++++++++-------- 8 files changed, 72 insertions(+), 46 deletions(-) diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index a800ab5..947d6b8 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -551,7 +551,12 @@ class CodegenLoader extends AssetLoader{ "attendanceType": "نوع الحضور", "help": "يساعد", "dear": "عزيزي", - "assistant": "للحصول على المساعدة ، يمكنك تقديم الطلب على نظام سعيد أو الاتصال بمركز الاتصال الموحد على 8310200" + "assistant": "للحصول على المساعدة ، يمكنك تقديم الطلب على نظام سعيد أو الاتصال بمركز الاتصال الموحد على 8310200", + "employee_leaves_calender": "تقويم أوراق الموظفين", + "view_your_leave_information": "عرض معلومات إجازتك", + "view_details": "عرض التفاصيل", + "create_absence_request": "إنشاء طلب الغياب", + "business_mission": "طلب مهمة العمل" }; static const Map en_US = { "mohemm": "Mohemm", @@ -1090,7 +1095,12 @@ static const Map en_US = { "attendanceType": "Attendance Type", "help": "Help", "dear": "Dear", - "assistant": "For assistance, you can submit the request on the Saeed system or call the unified call center on 8310200" + "assistant": "For assistance, you can submit the request on the Saeed system or call the unified call center on 8310200", + "employee_leaves_calender": "Employee Leaves Calender", + "view_your_leave_information": "View Your Leave Information", + "view_details": "View Details", + "create_absence_request": "Create Absence Request", + "business_mission": "Business Mission Request" }; static const Map> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; } diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 3aab5c7..be65f7a 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -525,5 +525,7 @@ abstract class LocaleKeys { static const employee_leaves_calender = 'employee_leaves_calender'; static const view_your_leave_information = 'view_your_leave_information'; static const view_details = 'view_details'; + static const create_absence_request = 'create_absence_request'; + static const business_mission = 'business_mission'; } diff --git a/lib/provider/dashboard_provider_model.dart b/lib/provider/dashboard_provider_model.dart index f3febdf..46b3eea 100644 --- a/lib/provider/dashboard_provider_model.dart +++ b/lib/provider/dashboard_provider_model.dart @@ -49,8 +49,10 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin { List? accrualList; GetAccrualBalancesList? leaveBalanceAccrual; + GetAccrualBalancesList? oldLeaveBalanceAccrual; - double get leaveBalance => leaveBalanceAccrual?.accrualNetEntitlement ?? 0; + + double? get leaveBalance => ((leaveBalanceAccrual?.accrualNetEntitlement! ?? 0) + (oldLeaveBalanceAccrual?.accrualNetEntitlement! ??0)); GetAccrualBalancesList? businessTripAccrual; @@ -107,6 +109,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin { isLeaveTicketBalanceLoading = true; accrualList = null; leaveBalanceAccrual = null; + oldLeaveBalanceAccrual = null; businessTripAccrual = null; ticketBalance = 0; @@ -209,6 +212,8 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin { accrualList = await DashboardApiClient().getAccrualBalances(DateFormat("MM/dd/yyyy", "en_US").format(date)); isLeaveTicketBalanceLoading = false; leaveBalanceAccrual = accrualList!.singleWhere((element) => element.accuralPlanName == 'Annual Vacation Accrual' || element.accuralPlanName == "خطة استحقاق الاجازة الاعتيادية", orElse: null); + oldLeaveBalanceAccrual = accrualList!.singleWhere((element) => element.accuralPlanName == 'Old Leave Balance' || element.accuralPlanName == "خطة فصل الارصدة 1439", orElse: null); + businessTripAccrual = accrualList!.singleWhere((element) => element.accuralPlanName == 'Business Trip Accrual' || element.accuralPlanName == "خطة استحقاق الإنتدابات", orElse: null); ticketBalance = (accrualList![1].accrualNetEntitlement ?? 0.0) + (accrualList![2].accrualNetEntitlement ?? 0.0) + (accrualList![3].accrualNetEntitlement ?? 0.0); notifyListeners(); diff --git a/lib/ui/landing/widget/menus_widget.dart b/lib/ui/landing/widget/menus_widget.dart index abcddf2..521c2a3 100644 --- a/lib/ui/landing/widget/menus_widget.dart +++ b/lib/ui/landing/widget/menus_widget.dart @@ -99,7 +99,7 @@ class MenusWidget extends StatelessWidget { Row( children: [ Expanded( - child: data.leaveBalance.toStringAsFixed(2).toText16(color: Colors.white, isBold: true, maxlines: 1), + child: (data.leaveBalance)!.toStringAsFixed(0).toText16(color: Colors.white, isBold: true, maxlines: 1), ), RotatedBox(quarterTurns: AppState().isArabic(context) ? 2 : 4, child: SvgPicture.asset("assets/images/arrow_next.svg", color: Colors.white)), ], @@ -126,7 +126,7 @@ class MenusWidget extends StatelessWidget { Row( children: [ Expanded( - child: data.businessTrip.toStringAsFixed(2).toText16(color: Colors.white, isBold: true, maxlines: 1), + child: data.businessTrip.toStringAsFixed(0).toText16(color: Colors.white, isBold: true, maxlines: 1), ), RotatedBox(quarterTurns: AppState().isArabic(context) ? 2 : 4, child: SvgPicture.asset("assets/images/arrow_next.svg", color: Colors.white)), ], @@ -134,7 +134,10 @@ class MenusWidget extends StatelessWidget { ], ).paddingOnly(left: 10, right: 10, bottom: 6, top: 6), ).onPress(() { - Navigator.pushNamed(context, AppRoutes.leaveBalance); + //Navigator.pushNamed(context, AppRoutes.leaveBalance); + Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.business_mission.tr(), "XXX_HR_EIT_BUSINESS_MISSION_SS")); + + }), if (env.dashboard.ticketBalance) data.isLeaveTicketBalanceLoading diff --git a/lib/ui/leave_balance/add_leave_balance_screen.dart b/lib/ui/leave_balance/add_leave_balance_screen.dart index d8ba32f..1d803f2 100644 --- a/lib/ui/leave_balance/add_leave_balance_screen.dart +++ b/lib/ui/leave_balance/add_leave_balance_screen.dart @@ -236,27 +236,27 @@ class _AddLeaveBalanceScreenState extends State { }, ), 12.height, - DynamicTextFieldWidget( - LocaleKeys.selectEmployee.tr(), - selectedReplacementEmployee == null ? LocaleKeys.searchForEmployee.tr() : selectedReplacementEmployee!.employeeDisplayName ?? "", - isEnable: false, - onTap: () { - showMyBottomSheet( - context, - callBackFunc: () {}, - child: SearchEmployeeBottomSheet( - title: LocaleKeys.searchForEmployee.tr(), - apiMode: LocaleKeys.delegate.tr(), - fromChat: false, - onSelectEmployee: (_selectedEmployee) { - // Navigator.pop(context); - selectedReplacementEmployee = _selectedEmployee; - setState(() {}); - }, - ), - ); - }, - ), + // DynamicTextFieldWidget( + // LocaleKeys.selectEmployee.tr(), + // selectedReplacementEmployee == null ? LocaleKeys.searchForEmployee.tr() : selectedReplacementEmployee!.employeeDisplayName ?? "", + // isEnable: false, + // onTap: () { + // showMyBottomSheet( + // context, + // callBackFunc: () {}, + // child: SearchEmployeeBottomSheet( + // title: LocaleKeys.searchForEmployee.tr(), + // apiMode: LocaleKeys.delegate.tr(), + // fromChat: false, + // onSelectEmployee: (_selectedEmployee) { + // // Navigator.pop(context); + // selectedReplacementEmployee = _selectedEmployee; + // setState(() {}); + // }, + // ), + // ); + // }, + // ), 12.height, DynamicTextFieldWidget( LocaleKeys.comments.tr(), diff --git a/lib/ui/leave_balance/leave_balance_screen.dart b/lib/ui/leave_balance/leave_balance_screen.dart index 9fb925c..ca3529f 100644 --- a/lib/ui/leave_balance/leave_balance_screen.dart +++ b/lib/ui/leave_balance/leave_balance_screen.dart @@ -8,6 +8,7 @@ import 'package:mohem_flutter_app/extensions/int_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/leave_balance/get_absence_transaction_list_model.dart'; +import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/balances_dashboard_widget.dart'; import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart'; @@ -117,7 +118,9 @@ class _LeaveBalanceState extends State { ), child: const Icon(Icons.add, color: Colors.white, size: 30), ).onPress(() { - Navigator.pushNamed(context, AppRoutes.addLeaveBalance, arguments: employeeId); + //Navigator.pushNamed(context, AppRoutes.addLeaveBalance, arguments: employeeId); + + Navigator.pushNamed(context, AppRoutes.dynamicScreen, arguments: DynamicListViewParams(LocaleKeys.create_absence_request.tr(), "XXX_HR_EIT_LOA_CREATE_SS")); }), ); } diff --git a/lib/ui/login/login_screen.dart b/lib/ui/login/login_screen.dart index b9cfce9..86ecaa4 100644 --- a/lib/ui/login/login_screen.dart +++ b/lib/ui/login/login_screen.dart @@ -191,7 +191,7 @@ class _LoginScreenState extends State { // username.text = "1100313582"; // password.text = "moe123456"; - username.text = "1002528733"; + username.text = "1024056812"; password.text = "moe123456"; // 1) Normal user : diff --git a/lib/widgets/balances_dashboard_widget.dart b/lib/widgets/balances_dashboard_widget.dart index 9c1fafe..da84f08 100644 --- a/lib/widgets/balances_dashboard_widget.dart +++ b/lib/widgets/balances_dashboard_widget.dart @@ -45,8 +45,8 @@ class BalancesDashboardWidget extends StatefulWidget { class _BalancesDashboardWidgetState extends State { List chartModelList = []; late DateTime accrualDateTime; - GetAccrualBalancesList? leaveBalanceAccrual; - List? ticketBalanceAccrualList; + List? leaveBalanceAccrual =[]; + List? ticketBalanceAccrualList =[]; @override void initState() { @@ -66,17 +66,20 @@ class _BalancesDashboardWidgetState extends State { List accrualList = await DashboardApiClient().getAccrualBalances(DateFormat("MM/dd/yyyy", "en_US").format(accrualDateTime), empID: widget.selectedEmp); if (accrualList.isNotEmpty) { if (widget.isLeaveBalance) { - leaveBalanceAccrual = accrualList[0]; + leaveBalanceAccrual = accrualList; chartModelList = [ - PieChartModel(LocaleKeys.currentBalance.tr(), leaveBalanceAccrual?.accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), - PieChartModel(LocaleKeys.usedBalance.tr(), leaveBalanceAccrual?.accrualUsedEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), + PieChartModel(LocaleKeys.currentBalance.tr(), ((leaveBalanceAccrual![0]?.accrualNetEntitlement! ?? 0)! + (leaveBalanceAccrual![1]?.accrualNetEntitlement! ??0)!).toDouble() , MyColors.textMixColor, titleAppend: ""), + PieChartModel(LocaleKeys.usedBalance.tr(), ((leaveBalanceAccrual![0]?.accrualUsedEntitlement! ?? 0)! + (leaveBalanceAccrual![1]?.accrualUsedEntitlement! ??0)!).toDouble() , MyColors.backgroundBlackColor, titleAppend: ""), ]; - } else { + } + + else if(accrualList.isNotEmpty){ chartModelList = [ PieChartModel(LocaleKeys.adult.tr(), accrualList[1].accrualNetEntitlement?.toDouble() ?? 0, MyColors.textMixColor, titleAppend: ""), PieChartModel(LocaleKeys.child.tr(), accrualList[2].accrualNetEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), PieChartModel(LocaleKeys.infants.tr(), accrualList[3].accrualNetEntitlement?.toDouble() ?? 0, MyColors.pinkColor, titleAppend: ""), ]; + } } if (showLoading) Utils.hideLoading(context); @@ -89,15 +92,15 @@ class _BalancesDashboardWidgetState extends State { @override Widget build(BuildContext context) { - if (leaveBalanceAccrual == null && widget.isLeaveBalance) { - leaveBalanceAccrual = Provider.of(context, listen: false).leaveBalanceAccrual; - chartModelList = [ - PieChartModel(LocaleKeys.currentBalance.tr(), leaveBalanceAccrual?.accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), - PieChartModel(LocaleKeys.usedBalance.tr(), leaveBalanceAccrual?.accrualUsedEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), - ]; - } - - if (ticketBalanceAccrualList == null && !widget.isLeaveBalance) { + // if (leaveBalanceAccrual == null && widget.isLeaveBalance) { + // leaveBalanceAccrual = Provider.of(context, listen: false).leaveBalanceAccrual; + // chartModelList = [ + // PieChartModel(LocaleKeys.currentBalance.tr(), leaveBalanceAccrual?.accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), + // PieChartModel(LocaleKeys.usedBalance.tr(), leaveBalanceAccrual?.accrualUsedEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), + // ]; + // } + + if (ticketBalanceAccrualList!.isEmpty && !widget.isLeaveBalance) { ticketBalanceAccrualList = Provider.of(context, listen: false).accrualList ?? []; if (ticketBalanceAccrualList!.isNotEmpty) { chartModelList = [ @@ -130,7 +133,7 @@ class _BalancesDashboardWidgetState extends State { ], ), 8.height, - Row( + (leaveBalanceAccrual!.isNotEmpty || ticketBalanceAccrualList!.isNotEmpty) ? Row( children: [ ListView.separated( shrinkWrap: true, @@ -144,7 +147,7 @@ class _BalancesDashboardWidgetState extends State { .expanded, getChart(chartModelList) ], - ) + ) :const Center(child:CircularProgressIndicator(backgroundColor:MyColors.gradiantStartColor,)) ], ).paddingOnly(top: 19, bottom: 11, right: 6, left: 14).objectContainerView(disablePadding: true, radius: 10); }