Merge branch 'master' into development_haroon

merge-requests/28/head
haroon amjad 3 years ago
commit 588e8f51f0

@ -421,6 +421,8 @@
"fieldIsEmpty": "'{data}' الحقل فارغ. الرجاء التحديد",
"pleaseEnterComments": "الرجاء إدخال التعليقات",
"skip": "يتخطى",
"typeCurrentPasswordBelow": "اكتب كلمة المرور الحاليه",
"currentPassword": "كلمة المرور الحاليه",
"profile": {
"reset_password": {
"label": "Reset Password",

@ -421,6 +421,8 @@
"fieldIsEmpty": "'{data}' Field is empty. Please select",
"pleaseEnterComments": "Please enter comments",
"skip": "skip",
"typeCurrentPasswordBelow": "Type Your Current password below",
"currentPassword": "Current password",
"profile": {
"reset_password": {
"label": "Reset Password",

@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:convert';
import 'package:mohem_flutter_app/api/api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
@ -377,7 +378,7 @@ class ProfileApiClient {
}, url, postParams);
}
Future<SubmitContactTransactionList?> submitContactTransactionAddAndUpdate(String actionType, int relationId, List<Map<String, dynamic>> list) async {
Future<SubmitContactTransactionList?> submitContactTransactionAddAndUpdate(String actionType, relationId, List<Map<String, dynamic>> list) async {
String url = "${ApiConsts.erpRest}SUBMIT_CONTACT_TRANSACTION";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
@ -386,8 +387,14 @@ class ProfileApiClient {
"P_ACTION": actionType,
"P_CONTACT_RELATIONSHIP_ID": relationId,
};
postParams["EITTransactionTBL"] = list;
postParams.addAll(AppState().postParamsJson);
print("postParam:${json.encode(postParams)}");
postParams["EITTransactionTBL"] = list;
list.forEach((element) {
print(json.encode(element));
});
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.submitContactTransactionList;

@ -435,6 +435,8 @@ class CodegenLoader extends AssetLoader{
"adult": "بالغ",
"updateMember": "هل انت متأكد تريد تحديث بيانات هذا العضو؟",
"fieldIsEmpty": "'{data}' الحقل فارغ. الرجاء التحديد",
"typeCurrentPasswordBelow": "اكتب كلمة المرور الحاليه",
"currentPassword": "كلمة المرور الحاليه",
"profile": {
"reset_password": {
"label": "Reset Password",
@ -904,6 +906,8 @@ static const Map<String,dynamic> en_US = {
"adult": "Adult",
"updateMember": "Are You Sure You Want to Update this Member?",
"fieldIsEmpty": "'{data}' Field is empty. Please select",
"typeCurrentPasswordBelow": "Type Your Current password below",
"currentPassword": "Current password",
"profile": {
"reset_password": {
"label": "Reset Password",

@ -422,6 +422,8 @@ abstract class LocaleKeys {
static const fieldIsEmpty = 'fieldIsEmpty';
static const pleaseEnterComments = 'pleaseEnterComments';
static const skip = 'skip';
static const typeCurrentPasswordBelow = 'typeCurrentPasswordBelow';
static const currentPassword = 'currentPassword';
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';

@ -790,30 +790,13 @@ class GenericResponseModel {
getCEIDFFStructureList = json['GetCEIDFFStructureList'];
getCEITransactionList = json['GetCEITransactionList'];
getCcpTransactionsList = json['GetCcpTransactionsList'];
if (json['GetContactDetailsList'] != null) {
getContactDetailsList = <GetContactDetailsList>[];
json['GetContactDetailsList'].forEach((v) {
getContactDetailsList!.add(GetContactDetailsList.fromJson(v));
});
}
if (json['GetContactColsStructureList'] != null) {
getContactColsStructureList = <GetContactColsStructureList>[];
json['GetContactColsStructureList'].forEach((v) {
getContactColsStructureList!.add(GetContactColsStructureList.fromJson(v));
});
}
getContactColsStructureList = json['GetContactColsStructureList'];
getContactDetailsList = json['GetContactDetailsList'];
getContactDffStructureList = json['GetContactDffStructureList'];
getContactNotificationBodyList = json["GetContactNotificationBodyList"] == null ? null : 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) {
@ -826,8 +809,6 @@ class GenericResponseModel {
getContactDffStructureList!.add(GetContactDffStructureList.fromJson(v));
});
}
// getContactDetailsList = json['GetContactDetailsList'];
// getContactDffStructureList = json['GetContactDffStructureList'];
getContactNotificationBodyList = json["GetContactNotificationBodyList"] == null ? null : GetContactNotificationBodyList.fromJson(json["GetContactNotificationBodyList"]);
if (json['GetCountriesList'] != null) {

@ -64,11 +64,11 @@ class _ChangePasswordScreenState extends State<ChangePasswordScreen> {
ListView(
padding: const EdgeInsets.all(21),
children: [
"Change Password".toText24(isBold: true),
"Type Your Current password below".toText16(),
LocaleKeys.changePassword.tr().toText24(isBold: true),
LocaleKeys.typeCurrentPasswordBelow.tr().toText16(),
16.height,
InputWidget(
"Current password",
LocaleKeys.currentPassword.tr(),
"**********",
oldPassword,
onChange: (value) {

@ -38,7 +38,8 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
SubmitContactTransactionList? submitContactTransactionList;
dynamic args;
String? date = "MM/DD/YYYY";
var dateTime = DateTime.now().timeZoneOffset;
var dateTime1 = DateTime.now().timeZoneName;
GetApprovesList? getApprovesList;
@ -89,11 +90,13 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
Widget build(BuildContext context) {
if (args == null) {
args = ModalRoute.of(context)!.settings.arguments;
callAddAndUpdateFamilyMember();}
callAddAndUpdateFamilyMember();
}
return Scaffold(
appBar: AppBarWidget(
context,
title: LocaleKeys.profile_familyDetails.tr(),),
title: LocaleKeys.profile_familyDetails.tr(),
),
backgroundColor: MyColors.backgroundColor,
body: args['flag'] == 1
? Column(
@ -125,11 +128,9 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
separatorBuilder: (cxt, index) => 0.height,
itemCount: getContactDffStructureList!.length),
]).expanded,
DefaultButton(
LocaleKeys.next.tr(), () async {
DefaultButton(LocaleKeys.next.tr(), () async {
submitUpdateForm();
}
).insideContainer,
}).insideContainer,
],
)
: args['flag'] == 2
@ -163,11 +164,9 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
separatorBuilder: (cxt, index) => 0.height,
itemCount: getContactDffStructureList!.length),
]).expanded,
DefaultButton(
LocaleKeys.next.tr(), () async {
DefaultButton(LocaleKeys.next.tr(), () async {
submitUpdateForm();
}
).insideContainer,
}).insideContainer,
],
)
: Container(),
@ -199,13 +198,23 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
});
} else {
return DynamicTextFieldWidget(
(model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : "") ,
( model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "")+ (model!.aPPLICATIONCOLUMNNAME == "NATIONAL_IDENTIFIER" ? "1-1111-1111-1" : ""),
(model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : ""),
(model!.getContactDetailsList!.sEGMENTVALUEDSP ?? ""),
//isInputTypeNum: true,
onChange: (text) {
model!.getContactDetailsList!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
}
} else if (model.dATATYPE == "NUMBER") {
return DynamicTextFieldWidget(
(model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : ""),
(model!.getContactDetailsList!.sEGMENTVALUEDSP ?? ""),
isInputTypeNum: true,
onChange: (text) {
model!.getContactDetailsList!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
} else if (model.dATATYPE == "DATE") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
@ -214,8 +223,13 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
isEnable: false,
onTap: () async {
DateTime dateValue = await _selectDate(context);
date = DateFormat('yyyy/MM/dd').format(dateValue);
//date = DateFormat('yyyy/MM/dd').format(dateValue);
date = "2022-10-23T09:17:38.653+03:00";
// date = (DateFormat('yyyy-MM-dd').format(dateValue)+"T"+ dateTime.toString() + dateTime1.toString());
model!.getContactDetailsList!.sEGMENTVALUEDSP = date;
print(dateTime);
print(dateTime1);
print(date);
setState(() {});
},
).paddingOnly(bottom: 12);
@ -251,11 +265,21 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
// isInputTypeNum: true,
onChange: (text) {
model.getContactDetailsList!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
}
} else if (model.fORMATTYPE == "N") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
isInputTypeNum: true,
onChange: (text) {
model.getContactDetailsList!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
} else if (model.fORMATTYPE == "X") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
@ -264,7 +288,9 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
isEnable: false,
onTap: () async {
DateTime dateValue = await _selectDate(context);
date = DateFormat('yyyy/MM/dd').format(dateValue);
date = "2022-10-23T09:17:38.653+03:00";
// date = (DateFormat('yyyy-MM-dd').format(dateValue) +"T"+ dateTime.toString() + dateTime1.toString());
// date = DateFormat('yyyy/MM/dd').format(dateValue);
model!.getContactDetailsList!.sEGMENTVALUEDSP = date;
setState(() {});
},
@ -300,11 +326,21 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
// isInputTypeNum: true,
onChange: (text) {
model.getContactDetailsList!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
}
} else if (model.fORMATTYPE == "N") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
model.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
isInputTypeNum: true,
onChange: (text) {
model.getContactDetailsList!.sEGMENTVALUEDSP = text;
},
).paddingOnly(bottom: 12);
} else if (model.fORMATTYPE == "X") {
return DynamicTextFieldWidget(
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
@ -313,7 +349,9 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
isEnable: false,
onTap: () async {
DateTime dateValue = await _selectDate(context);
date = DateFormat('yyyy/MM/dd').format(dateValue);
date = "2022-10-23T09:17:38.653+03:00";
// date = (DateFormat('yyyy-MM-dd').format(dateValue)+"T"+ dateTime.toString() + dateTime1.toString());
// date = DateFormat('yyyy/MM/dd').format(dateValue);
model!.getContactDetailsList!.sEGMENTVALUEDSP = date;
setState(() {});
},
@ -345,8 +383,7 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
),
);
} else {
DateTime? picked =
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
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;
}
@ -354,10 +391,8 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
return time;
}
void submitUpdateForm() async {
try {
// try {
List<Map<String, dynamic>> values1 = getBasicDetDffStructureList!.map((e) {
String? dateVal = '';
String? vatcherVal = '';
@ -365,14 +400,14 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
if (e!.fORMATTYPE == 'N') {
dateVal = null;
vatcherVal = null;
numberVal = e!.getContactDetailsList!.nUMBERVALUE;
numberVal = int.parse(e.getContactDetailsList!.sEGMENTVALUEDSP??"0");
} else if (e.fORMATTYPE == 'X') {
dateVal = e!.getContactDetailsList!.dATEVALUE.toString();
dateVal = e!.getContactDetailsList!.sEGMENTVALUEDSP.toString();
vatcherVal = null;
numberVal = null;
} else {
dateVal = null;
vatcherVal = e!.getContactDetailsList!.vARCHAR2VALUE.toString();
vatcherVal = e!.getContactDetailsList!.sEGMENTVALUEDSP;
numberVal = null;
}
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal.toString()).toJson();
@ -384,15 +419,15 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
if (e!.fORMATTYPE == 'N') {
dateVal = null;
vatcherVal = null;
numberVal = e!.getContactDetailsList!.nUMBERVALUE;
numberVal = int.parse(e.getContactDetailsList!.sEGMENTVALUEDSP??"0");
} else if (e.fORMATTYPE == 'X') {
dateVal = e!.getContactDetailsList!.dATEVALUE.toString();
dateVal = e!.getContactDetailsList!.sEGMENTVALUEDSP;
vatcherVal = null;
numberVal = null;
} else {
dateVal = null;
numberVal = null;
vatcherVal = e!.getContactDetailsList!.vARCHAR2VALUE.toString();
vatcherVal = e!.getContactDetailsList!.sEGMENTVALUEDSP;
}
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal.toString()).toJson();
}).toList();
@ -401,33 +436,36 @@ class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
String? dateVal = '';
String? vatcherVal = '';
int? numberVal;
print("e.dATATYPE:${e?.dATATYPE}");
if (e!.dATATYPE == 'VARCHAR2') {
dateVal = null;
numberVal = null;
vatcherVal = e!.getContactDetailsList!.vARCHAR2VALUE.toString();
vatcherVal = e.getContactDetailsList?.sEGMENTVALUEDSP ?? "";
} else if (e.dATATYPE == 'DATE') {
dateVal = e!.getContactDetailsList!.dATEVALUE.toString();
dateVal = e.getContactDetailsList!.sEGMENTVALUEDSP.toString();
print("dateVal:${dateVal ?? ""}");
vatcherVal = null;
numberVal = null;
} else if (e.dATATYPE == 'NUMBER') {
dateVal = null;
vatcherVal = null;
numberVal = e!.getContactDetailsList!.nUMBERVALUE;
numberVal = int.parse(e.getContactDetailsList!.sEGMENTVALUEDSP??"0");
} else {}
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal.toString()).toJson();
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal).toJson();
}).toList();
List<Map<String, dynamic>> valuesFinal = [...values1, ...values2, ...values3];
Utils.showLoading(context);
submitContactTransactionList = await ProfileApiClient().submitContactTransactionAddAndUpdate(args['actionType'], args['relationID'] ?? 0, valuesFinal);
submitContactTransactionList = await ProfileApiClient().submitContactTransactionAddAndUpdate(args['actionType'], args['relationID'] ?? null, valuesFinal);
var transactionId = submitContactTransactionList!.pTRANSACTIONID;
var itemKey = submitContactTransactionList!.pITEMKEY;
Utils.hideLoading(context);
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,
arguments: RequestSubmitScreenParams(LocaleKeys.profile_familyDetails.tr(), transactionId!.toInt(), itemKey.toString(), 'family_member'));
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
// } catch (ex) {
// Utils.hideLoading(context);
// Utils.handleException(ex, context, null);
// }
}
}

@ -78,13 +78,14 @@ class _BasicDetailsState extends State<BasicDetails> {
backgroundColor: MyColors.backgroundColor,
body: Column(
children: [
ListView(
Expanded(
child: ListView(
padding: const EdgeInsets.all(21),
children: [
getEmployeeBasicDetailsList == null
? const SizedBox().expanded
? const SizedBox()
: (getEmployeeBasicDetailsList!.isEmpty
? Utils.getNoDataWidget(context).expanded
? Utils.getNoDataWidget(context)
: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: getEmployeeBasicDetailsList!
@ -102,7 +103,8 @@ class _BasicDetailsState extends State<BasicDetails> {
.toList())
.objectContainerView())
],
).expanded,
),
),
DefaultButton(
LocaleKeys.update.tr(),
menuEntries.updateButton == 'Y'

@ -1,6 +1,7 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.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';
@ -98,7 +99,12 @@ class _ContactDetailsState extends State<ContactDetails> {
separatorBuilder: (cxt, index) => 12.height,
itemCount: getEmployeePhonesList.length),
if (menuEntriesPhone.updateButton == 'Y')
Positioned(
AppState().isArabic(context)? Positioned(
top: 1,
left: 1,
child: const Icon(Icons.edit_location_alt_outlined, size: 20).onPress(updatePhone),
)
:Positioned(
top: 1,
right: 1,
child: const Icon(Icons.edit_location_alt_outlined, size: 20).onPress(updatePhone),

@ -27,7 +27,7 @@ class FamilyMembers extends StatefulWidget {
class _FamilyMembersState extends State<FamilyMembers> {
List<GetEmployeeContactsList> getEmployeeContactsList = [];
int? relationId;
dynamic? relationId;
int? flag;
GetMenuEntriesList menuEntries = GetMenuEntriesList();
@ -97,8 +97,8 @@ class _FamilyMembersState extends State<FamilyMembers> {
style:TextStyle(color: menuEntries.updateButton == 'Y' ? MyColors.grey67Color : MyColors.lightGreyColor, fontSize: 12, letterSpacing: -0.36, fontWeight: FontWeight.w600),
recognizer: TapGestureRecognizer()
..onTap = () async {
relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
menuEntries.updateButton == 'Y'? showUpdateAlertDialog(context, relationId!.toInt(), 2, "UPDATE"):null;
relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID;
menuEntries.updateButton == 'Y'? showUpdateAlertDialog(context, relationId, 2, "UPDATE"):null;
}
)
],
@ -118,8 +118,8 @@ class _FamilyMembersState extends State<FamilyMembers> {
),
],
),
).onPress(() { relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
showRemoveAlertDialog(context, relationId!.toInt());}),
).onPress(() { relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID;
showRemoveAlertDialog(context, relationId);}),
],
),
],
@ -136,7 +136,7 @@ class _FamilyMembersState extends State<FamilyMembers> {
));
}
void showUpdateAlertDialog(BuildContext context, int relationId, int flag, String actionType) {
void showUpdateAlertDialog(BuildContext context, relationId, int flag, String actionType) {
Widget cancelButton = TextButton(
child: Text(
LocaleKeys.cancel.tr(),
@ -175,7 +175,7 @@ class _FamilyMembersState extends State<FamilyMembers> {
);
}
void showRemoveAlertDialog(BuildContext context, int relationId) {
void showRemoveAlertDialog(BuildContext context, relationId) {
Widget cancelButton = TextButton(
child: Text(
LocaleKeys.cancel.tr(),

@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:mohem_flutter_app/api/items_for_sale/items_for_sale_api_client.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';
@ -98,7 +99,9 @@ class _ItemsForSaleFragmentState extends State<ItemsForSaleFragment> {
currentCategoryID == getSaleCategoriesList[index].categoryID ? const Icon(Icons.check_circle_rounded, color: MyColors.greenColor, size: 16.0) : Container(),
],
).expanded,
getSaleCategoriesList[index].title!.toText10()
AppState().isArabic(context)
?getSaleCategoriesList[index].titleAr!.toText10()
:getSaleCategoriesList[index].title!.toText10()
],
).paddingOnly(left: 10, right: 10, bottom: 10, top: 12).expanded.objectContainerView(disablePadding: true),
),

Loading…
Cancel
Save