From 68146ecd97b8ca00311e62c796ed746918bf03a7 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Tue, 2 Aug 2022 09:31:15 +0300 Subject: [PATCH] dynamic forms finalized & improvements --- assets/images/logos/main_mohemm_logo.png | Bin 0 -> 7448 bytes assets/images/logos/mohemm_logo.svg | 84 +++--- lib/api/my_attendance_api_client.dart | 16 +- lib/extensions/widget_extensions.dart | 2 + lib/ui/landing/dashboard_screen.dart | 39 ++- .../dynamic_screens/dynamic_input_screen.dart | 259 +++++++++--------- lib/widgets/app_logo.dart | 25 +- 7 files changed, 208 insertions(+), 217 deletions(-) create mode 100644 assets/images/logos/main_mohemm_logo.png diff --git a/assets/images/logos/main_mohemm_logo.png b/assets/images/logos/main_mohemm_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5536c07e274c6df66a968e6195f578f3a5750c97 GIT binary patch literal 7448 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 RbN_c~Z{uWLe$Y4dKLDoXdJ_Nu literal 0 HcmV?d00001 diff --git a/assets/images/logos/mohemm_logo.svg b/assets/images/logos/mohemm_logo.svg index 1cb9a0b..2fc235f 100644 --- a/assets/images/logos/mohemm_logo.svg +++ b/assets/images/logos/mohemm_logo.svg @@ -1,7 +1,6 @@ - - - + + - + - - - - - - - - - - + + + - - - - - + + + + + - - - - - + C107.1,30.8,99.6,21.8,99.2,12.7z" /> + + + + - - - - - + C80.6,30.8,73.1,21.8,72.8,12.7z" /> + + + + - + C54.1,30.8,46.6,21.8,46.3,12.7z" /> diff --git a/lib/api/my_attendance_api_client.dart b/lib/api/my_attendance_api_client.dart index b98aed4..9e58b9b 100644 --- a/lib/api/my_attendance_api_client.dart +++ b/lib/api/my_attendance_api_client.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:mohem_flutter_app/api/api_client.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/models/generic_response_model.dart'; @@ -9,8 +10,6 @@ import 'package:mohem_flutter_app/models/get_eit_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart'; import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart'; -import 'package:mohem_flutter_app/api/api_client.dart'; - class MyAttendanceApiClient { static final MyAttendanceApiClient _instance = MyAttendanceApiClient._internal(); @@ -83,12 +82,8 @@ class MyAttendanceApiClient { "P_MENU_TYPE": "E", "P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, "P_FUNCTION_NAME": pFunctionName, - // "EITTransactionTBL": list, + "EITTransactionTBL": list, }; - print(postParams); - postParams["EITTransactionTBL"] =list; - - postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject((json) { GenericResponseModel? responseData = GenericResponseModel.fromJson(json); @@ -103,13 +98,10 @@ class MyAttendanceApiClient { "P_MENU_TYPE": "E", "P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, "P_FUNCTION_NAME": pFunctionName, - //"EITTransactionTBL": list, - // "EITTransactionTBLModel": list, + "EITTransactionTBL": list, + "EITTransactionTBLModel": list, }; postParams.addAll(AppState().postParamsJson); - print("postParams:$postParams"); - postParams["EITTransactionTBL"] = list; - postParams["EITTransactionTBLModel"] = list; return await ApiClient().postJsonForObject((json) { GenericResponseModel responseData = GenericResponseModel.fromJson(json); return responseData.submitEITTransactionList!; //ESERVICESDV.fromJson(responseData.getDefaultValueList!.toJson()); diff --git a/lib/extensions/widget_extensions.dart b/lib/extensions/widget_extensions.dart index 36d523a..bbe50b4 100644 --- a/lib/extensions/widget_extensions.dart +++ b/lib/extensions/widget_extensions.dart @@ -11,6 +11,8 @@ extension WidgetExtensions on Widget { Widget get center => Center(child: this); + Widget circle(double _value) => ClipRRect(borderRadius: BorderRadius.circular(_value), child: this); + Widget paddingAll(double _value) => Padding(padding: EdgeInsets.all(_value), child: this); Widget paddingOnly({double left = 0.0, double right = 0.0, double top = 0.0, double bottom = 0.0}) => diff --git a/lib/ui/landing/dashboard_screen.dart b/lib/ui/landing/dashboard_screen.dart index e957f29..6515b78 100644 --- a/lib/ui/landing/dashboard_screen.dart +++ b/lib/ui/landing/dashboard_screen.dart @@ -3,7 +3,9 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_countdown_timer/flutter_countdown_timer.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:mohem_flutter_app/app_state/app_state.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'; @@ -13,7 +15,6 @@ import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; import 'package:mohem_flutter_app/ui/landing/widget/app_drawer.dart'; import 'package:mohem_flutter_app/ui/landing/widget/menus_widget.dart'; import 'package:mohem_flutter_app/ui/landing/widget/services_widget.dart'; -import 'package:mohem_flutter_app/widgets/circular_avatar.dart'; import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart'; import 'package:provider/provider.dart'; @@ -30,6 +31,8 @@ class _DashboardScreenState extends State { late DashboardProviderModel data; final GlobalKey _scaffoldState = GlobalKey(); + int currentIndex = 0; + @override void initState() { super.initState(); @@ -60,11 +63,19 @@ class _DashboardScreenState extends State { return Row( mainAxisSize: MainAxisSize.min, children: [ - CircularAvatar( + Image.memory( + Utils.getPostBytes( + AppState().memberInformationList!.eMPLOYEEIMAGE ?? "", + ), width: 34, height: 34, - url: "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png", - ), + fit: BoxFit.cover, + ).circle(50), + // CircularAvatar( + // width: 34, + // height: 34, + // url: "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png", + // ), 8.width, SvgPicture.asset("assets/images/side_nav.svg"), ], @@ -72,18 +83,7 @@ class _DashboardScreenState extends State { _scaffoldState.currentState!.openDrawer(); }); }), - Expanded( - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - //AppLogo(), - 8.width, - LocaleKeys.mohemm.tr().toText14() - ], - ), - ), + Image.asset("assets/images/logos/main_mohemm_logo.png", width: 134, height: 28).expanded, SizedBox( width: 36, height: 36, @@ -104,7 +104,6 @@ class _DashboardScreenState extends State { ), ).onPress(() async { await Navigator.pushNamed(context, AppRoutes.announcements); - }) ], ).paddingOnly(left: 21, right: 21, top: 48, bottom: 7), @@ -116,7 +115,7 @@ class _DashboardScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ LocaleKeys.goodMorning.tr().toText14(color: MyColors.grey77Color), - "Mahmoud Shrouf".toText24(isBold: true), + (AppState().memberInformationList!.eMPLOYEENAME ?? "").toText24(isBold: true), 16.height, Row( children: [ @@ -371,7 +370,7 @@ class _DashboardScreenState extends State { label: LocaleKeys.itemsForSale.tr(), ), ], - currentIndex: 0, + currentIndex: currentIndex, selectedLabelStyle: TextStyle( fontSize: 8, color: Color(0xff989898), @@ -385,7 +384,7 @@ class _DashboardScreenState extends State { type: BottomNavigationBarType.fixed, selectedItemColor: Colors.black, backgroundColor: Color(0xffF8F8F8), - onTap: (v) {}, + onTap: (index) {}, ), ); } diff --git a/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart b/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart index 4f18fb7..a88e041 100644 --- a/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart +++ b/lib/ui/my_attendance/dynamic_screens/dynamic_input_screen.dart @@ -88,9 +88,7 @@ class _DynamicInputScreenState extends State { values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_ACTION", nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: "NEW_ROW").toJson()); values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_EXTRA_INFO_ID", nUMBERVALUE: -1, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: null).toJson()); values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_OBJECT_VERSION_NUMBER", nUMBERVALUE: 0, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: null).toJson()); - values.forEach((element) { - print(element); - }); + genericResponseModel = await MyAttendanceApiClient().validateEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values); SubmitEITTransactionList submitEITTransactionList = await MyAttendanceApiClient().submitEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values); Utils.hideLoading(context); @@ -105,68 +103,65 @@ class _DynamicInputScreenState extends State { String descFlexConTextTitle = ""; Future calGetValueSetValues(GetEITDFFStructureList structureList) async { - // try { - Utils.showLoading(context); - String segmentId = structureList.cHILDSEGMENTSVS!; - if (dESCFLEXCONTEXTCODE.isEmpty) dESCFLEXCONTEXTCODE = structureList.dESCFLEXCONTEXTCODE!; - - List filteredList = getEitDffStructureList?.where((element) => element.cHILDSEGMENTSVS == segmentId).toList() ?? []; - List> values = filteredList - .map((e) => GetSetValuesRequestModel( - sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME) - .toJson()) - .toList(); - ESERVICESVS eServicesResponseModel = await MyAttendanceApiClient().getValueSetValues(segmentId, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values); - List abc = genericResponseModel?.getEITDFFStructureList ?? []; - getEitDffStructureList = abc; - int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == structureList.cHILDSEGMENTSVS); - getEitDffStructureList![index].eSERVICESVS!.clear(); - getEitDffStructureList![index].eSERVICESVS!.add(eServicesResponseModel); - // getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? []; - //getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList(); - Utils.hideLoading(context); - setState(() {}); - // } catch (ex) { - // Utils.hideLoading(context); - // Utils.handleException(ex, context, null); - // } - } - - Future getDefaultValues(GetEITDFFStructureList structureList) async { - // try { - Utils.showLoading(context); - for (int i = 0; i < (structureList.cHILDSEGMENTSDVSplited?.length ?? 0); i++) { - String segmentId = structureList.cHILDSEGMENTSDVSplited![i]; - print("segmentId:$segmentId"); - print("segmentName:${structureList.sEGMENTNAME}"); - GetEITDFFStructureList? parent = getEitDffStructureList!.firstWhere((element) => element.sEGMENTNAME == segmentId); - List parentDvRequired = parent.pARENTSEGMENTSDVSplited ?? []; - List parentVsRequired = parent.pARENTSEGMENTSVSSplitedVS ?? []; - - List filteredList = - getEitDffStructureList!.where((outerElement) => parentDvRequired.any((element) => outerElement.sEGMENTNAME == element.name && element.isRequired == "REQUIRED")).toList(); + try { + Utils.showLoading(context); + String segmentId = structureList.cHILDSEGMENTSVS!; + if (dESCFLEXCONTEXTCODE.isEmpty) dESCFLEXCONTEXTCODE = structureList.dESCFLEXCONTEXTCODE!; + List filteredList = getEitDffStructureList?.where((element) => element.cHILDSEGMENTSVS == segmentId).toList() ?? []; List> values = filteredList .map((e) => GetSetValuesRequestModel( sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME) .toJson()) .toList(); - print("values:${values.length}"); - List> getSetList = getDefaultValuesIonicLogic(parent); - print("getSetList:${getSetList.length}"); - if (getSetList.isNotEmpty) { - ESERVICESDV defaultValue = await MyAttendanceApiClient().getDefaultValue(segmentId, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, getSetList); - int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == segmentId); - getEitDffStructureList![index].eSERVICESDV = defaultValue; + ESERVICESVS eServicesResponseModel = await MyAttendanceApiClient().getValueSetValues(segmentId, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values); + List abc = genericResponseModel?.getEITDFFStructureList ?? []; + getEitDffStructureList = abc; + int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == structureList.cHILDSEGMENTSVS); + getEitDffStructureList![index].eSERVICESVS!.clear(); + getEitDffStructureList![index].eSERVICESVS!.add(eServicesResponseModel); + // getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? []; + //getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList(); + Utils.hideLoading(context); + setState(() {}); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + } + } + + Future getDefaultValues(GetEITDFFStructureList structureList) async { + try { + Utils.showLoading(context); + for (int i = 0; i < (structureList.cHILDSEGMENTSDVSplited?.length ?? 0); i++) { + String segmentId = structureList.cHILDSEGMENTSDVSplited![i]; + GetEITDFFStructureList? parent = getEitDffStructureList!.firstWhere((element) => element.sEGMENTNAME == segmentId); + List parentDvRequired = parent.pARENTSEGMENTSDVSplited ?? []; + List parentVsRequired = parent.pARENTSEGMENTSVSSplitedVS ?? []; + + List filteredList = + getEitDffStructureList!.where((outerElement) => parentDvRequired.any((element) => outerElement.sEGMENTNAME == element.name && element.isRequired == "REQUIRED")).toList(); + + List> values = filteredList + .map((e) => GetSetValuesRequestModel( + sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME) + .toJson()) + .toList(); + + List> getSetList = getDefaultValuesIonicLogic(parent); + if (getSetList.isNotEmpty) { + ESERVICESDV defaultValue = await MyAttendanceApiClient().getDefaultValue(segmentId, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, getSetList); + int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == segmentId); + getEitDffStructureList![index].eSERVICESDV = defaultValue; + } } + await Future.delayed(const Duration(seconds: 1)); + Utils.hideLoading(context); + setState(() {}); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); } - await Future.delayed(const Duration(seconds: 1)); - Utils.hideLoading(context); - setState(() {}); - // } catch (ex) { - // Utils.hideLoading(context); - // Utils.handleException(ex, context, null); - // } } // List> calGetValueSetValuesIonicLogic(GetEITDFFStructureList structureElement) { @@ -180,79 +175,80 @@ class _DynamicInputScreenState extends State { // } List> getDefaultValuesIonicLogic(GetEITDFFStructureList structureElement) { - // try { - // Utils.showLoading(context); - List parentValue = structureElement.pARENTSEGMENTSVSSplitedVS ?? []; - List parentsList = structureElement.pARENTSEGMENTSDVSplited ?? []; - - List> dependenciesList = []; - String? parentVal; - bool isStandardDate = false; - bool isStandardTimeDate = false; - bool isStandardTime = false; - bool isHidden = false; - bool isReadOnlyList = false; - bool isSelectElement = false; - - // isStandardDate = this.isStandardDate(obj); - // isStandardTimeDate = this.isStandardDateTime(obj); - // isStandardTime = this.isStandardTime(obj); - if (structureElement.dISPLAYFLAG == "N") isHidden = true; - if (structureElement.vALIDATIONTYPE != "N" && structureElement.rEADONLY == "Y") { - isReadOnlyList = true; - } - if (structureElement.vALIDATIONTYPE != "N" && structureElement.rEADONLY == "N") { - isSelectElement = true; - } + try { + Utils.showLoading(context); + List parentValue = structureElement.pARENTSEGMENTSVSSplitedVS ?? []; + List parentsList = structureElement.pARENTSEGMENTSDVSplited ?? []; + + List> dependenciesList = []; + String? parentVal; + bool isStandardDate = false; + bool isStandardTimeDate = false; + bool isStandardTime = false; + bool isHidden = false; + bool isReadOnlyList = false; + bool isSelectElement = false; + + // isStandardDate = this.isStandardDate(obj); + // isStandardTimeDate = this.isStandardDateTime(obj); + // isStandardTime = this.isStandardTime(obj); + if (structureElement.dISPLAYFLAG == "N") isHidden = true; + if (structureElement.vALIDATIONTYPE != "N" && structureElement.rEADONLY == "Y") { + isReadOnlyList = true; + } + if (structureElement.vALIDATIONTYPE != "N" && structureElement.rEADONLY == "N") { + isSelectElement = true; + } - if (parentValue.isNotEmpty && (structureElement.vALIDATIONTYPE == "D" || structureElement.vALIDATIONTYPE == "Y")) { - List parValue = getDependenciesParams(parentValue); + if (parentValue.isNotEmpty && (structureElement.vALIDATIONTYPE == "D" || structureElement.vALIDATIONTYPE == "Y")) { + List parValue = getDependenciesParams(parentValue); - if (parValue.isNotEmpty) { - parentVal = parValue.first.ID_COLUMN_NAME; - } + if (parValue.isNotEmpty) { + parentVal = parValue.first.ID_COLUMN_NAME; + } - if (parentVal == null) { - return []; + if (parentVal == null) { + return []; + } } - } - if (parentsList.isNotEmpty) { - if (parentValue.isNotEmpty) { - parentsList = parentsList + parentValue.map((e) => PARENTSEGMENTSDVSplited.fromJson(e.toJson())).toList(); - // parentsList.addAll(parentValue.map((e) => PARENTSEGMENTSDVSplited.fromJson(e.toJson()))); - // parentsList.concat(parentValue); + if (parentsList.isNotEmpty) { + if (parentValue.isNotEmpty) { + parentsList = parentsList + parentValue.map((e) => PARENTSEGMENTSDVSplited.fromJson(e.toJson())).toList(); + // parentsList.addAll(parentValue.map((e) => PARENTSEGMENTSDVSplited.fromJson(e.toJson()))); + // parentsList.concat(parentValue); + } + dependenciesList = getDependenciesParams(parentsList); } - dependenciesList = getDependenciesParams(parentsList); + return dependenciesList; + // for (int i = 0; i < (structureList.cHILDSEGMENTSDVSplited?.length ?? 0); i++) { + // String segmentId = structureList.cHILDSEGMENTSDVSplited![i]; + // print("segmentId:$segmentId"); + // print("segmentName:${structureList.sEGMENTNAME}"); + // GetEITDFFStructureList? parent = getEitDffStructureList!.firstWhere((element) => element.sEGMENTNAME == segmentId); + // List parentDvRequired = parent.pARENTSEGMENTSDVSplited ?? []; + // List parentVsRequired = parent.pARENTSEGMENTSVSSplitedVS ?? []; + // + // List filteredList = + // getEitDffStructureList!.where((outerElement) => parentDvRequired.any((element) => outerElement.sEGMENTNAME == element.name && element.isRequired == "REQUIRED")).toList(); + // + // List> values = filteredList + // .map((e) => GetSetValuesRequestModel( + // sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME) + // .toJson()) + // .toList(); + // print("values:$values"); + // + // ESERVICESDV defaultValue = await MyAttendanceApiClient().getDefaultValue(segmentId, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values); + // int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == segmentId); + // getEitDffStructureList![index].eSERVICESDV = defaultValue; + // } + // Utils.hideLoading(context); + // setState(() {}); + } catch (ex) { + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + return []; } - return dependenciesList; - // for (int i = 0; i < (structureList.cHILDSEGMENTSDVSplited?.length ?? 0); i++) { - // String segmentId = structureList.cHILDSEGMENTSDVSplited![i]; - // print("segmentId:$segmentId"); - // print("segmentName:${structureList.sEGMENTNAME}"); - // GetEITDFFStructureList? parent = getEitDffStructureList!.firstWhere((element) => element.sEGMENTNAME == segmentId); - // List parentDvRequired = parent.pARENTSEGMENTSDVSplited ?? []; - // List parentVsRequired = parent.pARENTSEGMENTSVSSplitedVS ?? []; - // - // List filteredList = - // getEitDffStructureList!.where((outerElement) => parentDvRequired.any((element) => outerElement.sEGMENTNAME == element.name && element.isRequired == "REQUIRED")).toList(); - // - // List> values = filteredList - // .map((e) => GetSetValuesRequestModel( - // sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME) - // .toJson()) - // .toList(); - // print("values:$values"); - // - // ESERVICESDV defaultValue = await MyAttendanceApiClient().getDefaultValue(segmentId, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values); - // int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == segmentId); - // getEitDffStructureList![index].eSERVICESDV = defaultValue; - // } - // Utils.hideLoading(context); - // setState(() {}); - // } catch (ex) { - // Utils.hideLoading(context); - // Utils.handleException(ex, context, null); - // } } List> getDependenciesParams(parentsList) { @@ -579,13 +575,14 @@ class _DynamicInputScreenState extends State { isReadOnly: model.rEADONLY == "Y", ).paddingOnly(bottom: 12), itemBuilder: (_) => >[ - for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i), + if (model.rEADONLY != "Y") + for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i), ], onSelected: (int popipIndex) async { ESERVICESDV eservicesdv = ESERVICESDV( pIDCOLUMNNAME: model.eSERVICESVS![popipIndex].iDCOLUMNNAME, pRETURNMSG: "null", - pRETURNSTATUS: getEitDffStructureList![popipIndex].dEFAULTVALUE, + pRETURNSTATUS: "null", //getEitDffStructureList![popipIndex].dEFAULTVALUE, pVALUECOLUMNNAME: model.eSERVICESVS![popipIndex].vALUECOLUMNNAME); getEitDffStructureList![index].eSERVICESDV = eservicesdv; setState(() {}); @@ -612,14 +609,12 @@ class _DynamicInputScreenState extends State { isReadOnly: model.rEADONLY == "Y", ).paddingOnly(bottom: 12), itemBuilder: (_) => >[ - for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i), + if (model.rEADONLY != "Y") + for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem(value: i, child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!)), ], onSelected: (int popipIndex) async { - ESERVICESDV eservicesdv = ESERVICESDV( - pIDCOLUMNNAME: model.eSERVICESVS![popipIndex].iDCOLUMNNAME, - pRETURNMSG: "null", - pRETURNSTATUS: getEitDffStructureList![popipIndex].dEFAULTVALUE, - pVALUECOLUMNNAME: model.eSERVICESVS![popipIndex].vALUECOLUMNNAME); + ESERVICESDV eservicesdv = + ESERVICESDV(pIDCOLUMNNAME: model.eSERVICESVS![popipIndex].iDCOLUMNNAME, pRETURNMSG: "null", pRETURNSTATUS: "null", pVALUECOLUMNNAME: model.eSERVICESVS![popipIndex].vALUECOLUMNNAME); getEitDffStructureList![index].eSERVICESDV = eservicesdv; setState(() {}); if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { diff --git a/lib/widgets/app_logo.dart b/lib/widgets/app_logo.dart index 1c0bc37..3140c29 100644 --- a/lib/widgets/app_logo.dart +++ b/lib/widgets/app_logo.dart @@ -1,19 +1,26 @@ +import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.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'; class AppLogo extends StatelessWidget { AppLogo({Key? key}) : super(key: key); @override Widget build(BuildContext context) { - // TODO: implement build - return Row(children: [ - SvgPicture.asset( - "assets/mohemm_logo.svg", - height: 100, - width: 100, - alignment: Alignment.centerRight, - ), - ],); + return Row( + children: [ + SvgPicture.asset( + "assets/mohemm_logo.svg", + height: 48, + width: 48, + alignment: Alignment.centerRight, + ), + 8.width, + LocaleKeys.mohemm.tr().toText14() + ], + ); } }