diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 5f40cbc..dc2b5d5 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -279,7 +279,7 @@ "enterNewInfo": " أدخل معلومات جديدة بسبب تغيير حقيقي في التفاصيل الحالية (على سبيل المثال بسبب تغيير في الحالة الاجتماعية", "endDate": "تاريخ الانتهاء", "removeThisMember": "هل انت متأكد تريد ازالة هذا العضو؟", - "updateThisMember ": "هل انت متأكد تريد تحديث بيانات هذا العضو؟", + "wantUpdateThisMember ": "هل انت متأكد تريد تحديث بيانات هذا العضو؟", "addNewFamilyMember": "اضافة عضو جديد", "addRow": "اضافة صف جديد", "pleaseSelect": "الرجاء اختيار", @@ -407,6 +407,15 @@ "rateUI": ".1 كيف تريد تقييم التطبيق", "submitSurvey":"ارسال الاستبيان", "typeHere": "اكتب هنا", + "currentBalance": "الرصيد الحالي", + "currentLeaveBalance" : "رصيد الاجازات الحالي", + "calculatedDays": "الايام المحسوبه", + "totalDays": "مجموع الأيام", + "usedBalance": "المستخدم", + "infants":"رضيع", + "child":"طفل", + "adult": "بالغ", + "updateMember": "هل انت متأكد تريد تحديث بيانات هذا العضو؟", "profile": { "reset_password": { "label": "Reset Password", diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index c0cf46d..ec30ecc 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -276,7 +276,7 @@ "enterNewInfo": "Enter new Information because of a real change to the current details (e.g because of a change in marital status)", "endDate": "*End Date", "removeThisMember": "Are You Sure You Want to Remove this Member?", - "updateThisMember": "Are You Sure You Want to Update this Member?", + "wantUpdateThisMember": "Are You Sure You Want to Update this Member?", "addNewFamilyMember": "Add New Family Member", "addRow": "Add new row", "pleaseSelect": "Please Select *", @@ -407,6 +407,15 @@ "rateUI": "1. How would you rate this UI?", "submitSurvey":"Submit Survey", "typeHere": "Type here", + "currentBalance": "Current Balance", + "currentLeaveBalance" : "Current Leave Balance", + "calculatedDays": "Calculated Days", + "totalDays": "Total Days", + "usedBalance": "Used", + "infants":"Infants", + "child":"Child", + "adult": "Adult", + "updateMember": "Are You Sure You Want to Update this Member?", "profile": { "reset_password": { "label": "Reset Password", diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 4688cd3..117011b 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -295,7 +295,7 @@ class CodegenLoader extends AssetLoader{ "enterNewInfo": " أدخل معلومات جديدة بسبب تغيير حقيقي في التفاصيل الحالية (على سبيل المثال بسبب تغيير في الحالة الاجتماعية", "endDate": "تاريخ الانتهاء", "removeThisMember": "هل انت متأكد تريد ازالة هذا العضو؟", - "updateThisMember ": "هل انت متأكد تريد تحديث بيانات هذا العضو؟", + "wantUpdateThisMember ": "هل انت متأكد تريد تحديث بيانات هذا العضو؟", "addNewFamilyMember": "اضافة عضو جديد", "addRow": "اضافة صف جديد", "pleaseSelect": "الرجاء اختيار", @@ -423,6 +423,15 @@ class CodegenLoader extends AssetLoader{ "rateUI": ".1 كيف تريد تقييم التطبيق", "submitSurvey": "ارسال الاستبيان", "typeHere": "اكتب هنا", + "currentBalance": "الرصيد الحالي", + "currentLeaveBalance": "رصيد الاجازات الحالي", + "calculatedDays": "الايام المحسوبه", + "totalDays": "مجموع الأيام", + "usedBalance": "المستخدم", + "infants": "رضيع", + "child": "طفل", + "adult": "بالغ", + "updateMember": "هل انت متأكد تريد تحديث بيانات هذا العضو؟", "profile": { "reset_password": { "label": "Reset Password", @@ -735,7 +744,7 @@ static const Map en_US = { "enterNewInfo": "Enter new Information because of a real change to the current details (e.g because of a change in marital status)", "endDate": "*End Date", "removeThisMember": "Are You Sure You Want to Remove this Member?", - "updateThisMember": "Are You Sure You Want to Update this Member?", + "wantUpdateThisMember": "Are You Sure You Want to Update this Member?", "addNewFamilyMember": "Add New Family Member", "addRow": "Add new row", "pleaseSelect": "Please Select *", @@ -866,6 +875,15 @@ static const Map en_US = { "rateUI": "1. How would you rate this UI?", "submitSurvey": "Submit Survey", "typeHere": "Type here", + "currentBalance": "Current Balance", + "currentLeaveBalance": "Current Leave Balance", + "calculatedDays": "Calculated Days", + "totalDays": "Total Days", + "usedBalance": "Used", + "infants": "Infants", + "child": "Child", + "adult": "Adult", + "updateMember": "Are You Sure You Want to Update this Member?", "profile": { "reset_password": { "label": "Reset Password", diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 0934ff4..9ede892 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -280,7 +280,7 @@ abstract class LocaleKeys { static const enterNewInfo = 'enterNewInfo'; static const endDate = 'endDate'; static const removeThisMember = 'removeThisMember'; - static const updateThisMember = 'updateThisMember '; + static const wantUpdateThisMember = 'wantUpdateThisMember '; static const addNewFamilyMember = 'addNewFamilyMember'; static const addRow = 'addRow'; static const pleaseSelect = 'pleaseSelect'; @@ -408,6 +408,15 @@ abstract class LocaleKeys { static const rateUI = 'rateUI'; static const submitSurvey = 'submitSurvey'; static const typeHere = 'typeHere'; + static const currentBalance = 'currentBalance'; + static const currentLeaveBalance = 'currentLeaveBalance'; + static const calculatedDays = 'calculatedDays'; + static const totalDays = 'totalDays'; + static const usedBalance = 'usedBalance'; + static const infants = 'infants'; + static const child = 'child'; + static const adult = 'adult'; + static const updateMember = 'updateMember'; 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/models/generic_response_model.dart b/lib/models/generic_response_model.dart index bca78fe..d12cb09 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -833,6 +833,34 @@ class GenericResponseModel { : GetContactNotificationBodyList.fromJson( json["GetContactNotificationBodyList"]); + if (json['GetContactColsStructureList'] != null) { + getContactColsStructureList = []; + json['GetContactColsStructureList'].forEach((v) { + getContactColsStructureList! + .add(GetContactColsStructureList.fromJson(v)); + }); + } + + if (json['GetContactDetailsList'] != null) { + getContactDetailsList = []; + json['GetContactDetailsList'].forEach((v) { + getContactDetailsList!.add(GetContactDetailsList.fromJson(v)); + }); + } + if (json['GetContactDffStructureList'] != null) { + getContactDffStructureList = []; + json['GetContactDffStructureList'].forEach((v) { + getContactDffStructureList!.add(GetContactDffStructureList.fromJson(v)); + }); + } + // getContactDetailsList = json['GetContactDetailsList']; + // getContactDffStructureList = json['GetContactDffStructureList']; + getContactNotificationBodyList = + json["GetContactNotificationBodyList"] == null + ? null + : GetContactNotificationBodyList.fromJson( + json["GetContactNotificationBodyList"]); + if (json['GetCountriesList'] != null) { getCountriesList = []; json['GetCountriesList'].forEach((v) { diff --git a/lib/ui/leave_balance/add_leave_balance_screen.dart b/lib/ui/leave_balance/add_leave_balance_screen.dart index dc44085..fbb2198 100644 --- a/lib/ui/leave_balance/add_leave_balance_screen.dart +++ b/lib/ui/leave_balance/add_leave_balance_screen.dart @@ -205,7 +205,7 @@ class _AddLeaveBalanceScreenState extends State { ), 12.height, DynamicTextFieldWidget( - "Total Days", + LocaleKeys.totalDays.tr(), totalDays?.toString() ?? "Calculated days", isInputTypeNum: true, isEnable: false, diff --git a/lib/ui/leave_balance/leave_balance_screen.dart b/lib/ui/leave_balance/leave_balance_screen.dart index cb33825..f3a1f91 100644 --- a/lib/ui/leave_balance/leave_balance_screen.dart +++ b/lib/ui/leave_balance/leave_balance_screen.dart @@ -62,7 +62,7 @@ class _LeaveBalanceState extends State { physics: const BouncingScrollPhysics(), padding: const EdgeInsets.all(21), children: [ - const BalancesDashboardWidget("Current Leave Balance", true), + BalancesDashboardWidget(LocaleKeys.currentLeaveBalance.tr(), true), 12.height, absenceTransList == null ? const SizedBox() diff --git a/lib/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart b/lib/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart index 648f14d..1f03683 100644 --- a/lib/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart +++ b/lib/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart @@ -60,48 +60,51 @@ class _DynamicListViewScreenState extends State { super.dispose(); } + late bool isTicketRequest; + @override Widget build(BuildContext context) { if (dynamicParams == null) { dynamicParams = ModalRoute.of(context)!.settings.arguments as DynamicListViewParams; + isTicketRequest = dynamicParams!.dynamicId == "HMG_TKT_NEW_EIT_SS"; getTransactions(); } + Widget dataWidget = ListView( + physics: const BouncingScrollPhysics(), + shrinkWrap: true, + padding: const EdgeInsets.all(21), + children: [ + // HMG_TKT_NEW_EIT_SS Id used for ticket balance dashboard + if (isTicketRequest) ...[const BalancesDashboardWidget("Current Ticket Balance", false), 12.height], + getEITTransactionList == null + ? const SizedBox() + : (getEITTransactionList!.isEmpty + ? Utils.getNoDataWidget(context).paddingOnly(top: isTicketRequest ? 50 : 0) + : ListView.separated( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemBuilder: (cxt, int parentIndex) => getEITTransactionList![parentIndex].collectionTransaction!.isEmpty + ? const SizedBox() + : Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + for (int t = 0; t < (getEITTransactionList![parentIndex].collectionTransaction ?? []).length; t++) + if (getEITTransactionList![parentIndex].collectionTransaction![t].dISPLAYFLAG == "Y") + ItemDetailView(getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTPROMPT!, + getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTVALUEDSP ?? ""), + ], + ).objectContainerView(), + separatorBuilder: (cxt, index) => 12.height, + itemCount: getEITTransactionList!.length)), + ], + ); + return Scaffold( backgroundColor: Colors.white, appBar: AppBarWidget(context, title: dynamicParams!.title), - body: Center( - child: ListView( - physics: const BouncingScrollPhysics(), - shrinkWrap: true, - padding: const EdgeInsets.all(21), - children: [ - // HMG_TKT_NEW_EIT_SS Id used for ticket balance dashboard - if (dynamicParams!.dynamicId == "HMG_TKT_NEW_EIT_SS") ...[const BalancesDashboardWidget("Current Ticket Balance", false), 12.height], - getEITTransactionList == null - ? const SizedBox() - : (getEITTransactionList!.isEmpty - ? Utils.getNoDataWidget(context) - : ListView.separated( - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemBuilder: (cxt, int parentIndex) => getEITTransactionList![parentIndex].collectionTransaction!.isEmpty - ? const SizedBox() - : Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - for (int t = 0; t < (getEITTransactionList![parentIndex].collectionTransaction ?? []).length; t++) - if (getEITTransactionList![parentIndex].collectionTransaction![t].dISPLAYFLAG == "Y") - ItemDetailView(getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTPROMPT!, - getEITTransactionList![parentIndex].collectionTransaction![t].sEGMENTVALUEDSP ?? ""), - ], - ).objectContainerView(), - separatorBuilder: (cxt, index) => 12.height, - itemCount: getEITTransactionList!.length)), - ], - ), - ), + body: isTicketRequest ? dataWidget : dataWidget.center, floatingActionButton: Container( height: 54, width: 54, diff --git a/lib/ui/my_team/team_members.dart b/lib/ui/my_team/team_members.dart index 6240b0e..7ba015f 100644 --- a/lib/ui/my_team/team_members.dart +++ b/lib/ui/my_team/team_members.dart @@ -73,7 +73,7 @@ class _TeamMembersState extends State { var phoneNumber = Uri.parse('tel:${getEmployeeSubordinatesList[index].eMPLOYEEMOBILENUMBER}'); return InkWell( onTap: () async { - // Navigator.pushNamed(context, AppRoutes.employeeDetails, arguments: getEmployeeSubordinatesList[index]); + Navigator.pushNamed(context, AppRoutes.employeeDetails, arguments: getEmployeeSubordinatesList[index]); }, child: Row( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/ui/profile/add_update_family_member.dart b/lib/ui/profile/add_update_family_member.dart index fa01e30..5e5efee 100644 --- a/lib/ui/profile/add_update_family_member.dart +++ b/lib/ui/profile/add_update_family_member.dart @@ -48,7 +48,7 @@ class _AddUpdateFamilyMemberState extends State { } void callAddAndUpdateFamilyMember() async { - try { + try { Utils.showLoading(context); getBasicDetDffStructureList = await ProfileApiClient().getBasicDetDffStructure(); getContactColsStructureList = await ProfileApiClient().getContactColsStructureList(args['actionType']); @@ -199,8 +199,8 @@ class _AddUpdateFamilyMemberState extends State { }); } else { return DynamicTextFieldWidget( - (model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : ""), - model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "", + (model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : "") , + ( model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "")+ (model!.aPPLICATIONCOLUMNNAME == "NATIONAL_IDENTIFIER" ? "1-1111-1111-1" : ""), onChange: (text) { model!.getContactDetailsList!.sEGMENTVALUEDSP = text; }, @@ -357,7 +357,7 @@ class _AddUpdateFamilyMemberState extends State { void submitUpdateForm() async { - try { + try { List> values1 = getBasicDetDffStructureList!.map((e) { String? dateVal = ''; String? vatcherVal = ''; @@ -418,12 +418,7 @@ class _AddUpdateFamilyMemberState extends State { }).toList(); List> valuesFinal = [...values1, ...values2, ...values3]; Utils.showLoading(context); - if (args['actionType'] == "ADD") { - var relationID = null; - submitContactTransactionList = await ProfileApiClient().submitContactTransactionAddAndUpdate(args['actionType'], relationID, valuesFinal); - } else if (args['actionType'] == "UPDATE") { - submitContactTransactionList = await ProfileApiClient().submitContactTransactionAddAndUpdate(args['actionType'], args['relationID'], valuesFinal); - } + submitContactTransactionList = await ProfileApiClient().submitContactTransactionAddAndUpdate(args['actionType'], args['relationID'] ?? 0, valuesFinal); var transactionId = submitContactTransactionList!.pTRANSACTIONID; var itemKey = submitContactTransactionList!.pITEMKEY; Utils.hideLoading(context); diff --git a/lib/ui/profile/family_members.dart b/lib/ui/profile/family_members.dart index 0a0bb0c..52a6277 100644 --- a/lib/ui/profile/family_members.dart +++ b/lib/ui/profile/family_members.dart @@ -98,7 +98,7 @@ class _FamilyMembersState extends State { recognizer: TapGestureRecognizer() ..onTap = () async { relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt(); - menuEntries.updateButton == 'Y'? showUpdateAlertDialog(context, relationId!.toInt(), 2, LocaleKeys.update.tr()):null; + menuEntries.updateButton == 'Y'? showUpdateAlertDialog(context, relationId!.toInt(), 2, "UPDATE"):null; } ) ], @@ -161,7 +161,7 @@ class _FamilyMembersState extends State { title: Text( LocaleKeys.confirm.tr(), ), - content: Text(LocaleKeys.updateThisMember.tr()), + content: Text(LocaleKeys.updateMember.tr()), actions: [ cancelButton, continueButton, diff --git a/lib/ui/screens/pending_transactions/pending_transactions.dart b/lib/ui/screens/pending_transactions/pending_transactions.dart index 0a69c60..da57214 100644 --- a/lib/ui/screens/pending_transactions/pending_transactions.dart +++ b/lib/ui/screens/pending_transactions/pending_transactions.dart @@ -45,7 +45,8 @@ class _PendingTransactionsState extends State { ), body: Column( children: [ - Column( + ListView( + padding: const EdgeInsets.all(21), children: [ PopupMenuButton( child: DynamicTextFieldWidget( @@ -86,7 +87,7 @@ class _PendingTransactionsState extends State { }, ) ], - ).objectContainerView().expanded, + ).expanded, DefaultButton( LocaleKeys.submit.tr(), selectedFunction == null diff --git a/lib/widgets/balances_dashboard_widget.dart b/lib/widgets/balances_dashboard_widget.dart index 2fd4b52..e546acf 100644 --- a/lib/widgets/balances_dashboard_widget.dart +++ b/lib/widgets/balances_dashboard_widget.dart @@ -8,6 +8,7 @@ import 'package:mohem_flutter_app/classes/utils.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; +import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/models/dashboard/get_accrual_balances_list_model.dart'; import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; import 'package:pie_chart/pie_chart.dart'; @@ -64,14 +65,14 @@ class _BalancesDashboardWidgetState extends State { if (widget.isLeaveBalance) { leaveBalanceAccrual = accrualList[0]; chartModelList = [ - PieChartModel("Current Balance", leaveBalanceAccrual?.accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), - PieChartModel("Used", leaveBalanceAccrual?.accrualUsedEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), + PieChartModel(LocaleKeys.currentBalance.tr(), leaveBalanceAccrual?.accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), + PieChartModel(LocaleKeys.usedBalance.tr(), leaveBalanceAccrual?.accrualUsedEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), ]; } else { chartModelList = [ - PieChartModel("Adult", accrualList[1].accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), - PieChartModel("Child", accrualList[2].accrualNetEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), - PieChartModel("infants", accrualList[3].accrualNetEntitlement?.toDouble() ?? 0, MyColors.pinkColor, titleAppend: ""), + PieChartModel(LocaleKeys.adult.tr(), accrualList[1].accrualNetEntitlement ?? 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: ""), ]; } } @@ -88,8 +89,8 @@ class _BalancesDashboardWidgetState extends State { if (leaveBalanceAccrual == null && widget.isLeaveBalance) { leaveBalanceAccrual = Provider.of(context, listen: false).leaveBalanceAccrual; chartModelList = [ - PieChartModel("Current Balance", leaveBalanceAccrual?.accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), - PieChartModel("Used", leaveBalanceAccrual?.accrualUsedEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), + PieChartModel(LocaleKeys.currentBalance.tr(), leaveBalanceAccrual?.accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), + PieChartModel(LocaleKeys.usedBalance.tr(), leaveBalanceAccrual?.accrualUsedEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), ]; } @@ -97,9 +98,9 @@ class _BalancesDashboardWidgetState extends State { ticketBalanceAccrualList = Provider.of(context, listen: false).accrualList ?? []; if (ticketBalanceAccrualList!.isNotEmpty) { chartModelList = [ - PieChartModel("Adult", ticketBalanceAccrualList![1].accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), - PieChartModel("Child", ticketBalanceAccrualList![2].accrualNetEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), - PieChartModel("infants", ticketBalanceAccrualList![3].accrualNetEntitlement?.toDouble() ?? 0, MyColors.pinkColor, titleAppend: ""), + PieChartModel(LocaleKeys.adult.tr(), ticketBalanceAccrualList![1].accrualNetEntitlement ?? 0, MyColors.textMixColor, titleAppend: ""), + PieChartModel(LocaleKeys.child.tr(), ticketBalanceAccrualList![2].accrualNetEntitlement?.toDouble() ?? 0, MyColors.backgroundBlackColor, titleAppend: ""), + PieChartModel(LocaleKeys.infants.tr(), ticketBalanceAccrualList![3].accrualNetEntitlement?.toDouble() ?? 0, MyColors.pinkColor, titleAppend: ""), ]; } }