mowadhafhi improvement.

merge-requests/1/merge
Sikander Saleem 3 years ago
parent 9b50c2cf31
commit fc6b923fc4

@ -18,13 +18,15 @@ import 'package:mohem_flutter_app/ui/payslip/monthly_pay_slip_screen.dart';
import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart'; import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart';
import 'package:mohem_flutter_app/ui/profile/basic_details.dart'; import 'package:mohem_flutter_app/ui/profile/basic_details.dart';
import 'package:mohem_flutter_app/ui/profile/contact_details.dart'; import 'package:mohem_flutter_app/ui/profile/contact_details.dart';
import 'package:mohem_flutter_app/ui/profile/delete_family_member.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_address_screen.dart'; import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_address_screen.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_basic_details_screen.dart'; import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_basic_details_screen.dart';
import 'package:mohem_flutter_app/ui/profile/family_members.dart'; import 'package:mohem_flutter_app/ui/profile/family_members.dart';
import 'package:mohem_flutter_app/ui/profile/personal_info.dart'; import 'package:mohem_flutter_app/ui/profile/personal_info.dart';
import 'package:mohem_flutter_app/ui/profile/profile_screen.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcement_details.dart'; import 'package:mohem_flutter_app/ui/screens/announcements/announcement_details.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcements.dart'; import 'package:mohem_flutter_app/ui/screens/announcements/announcements.dart';
import 'package:mohem_flutter_app/ui/profile/delete_family_member.dart';
// import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart'; // import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart';
import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart'; import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart';
import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_home.dart'; import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_home.dart';
@ -32,7 +34,6 @@ import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_hr_request.da
import 'package:mohem_flutter_app/ui/screens/mowadhafhi/request_details.dart'; import 'package:mohem_flutter_app/ui/screens/mowadhafhi/request_details.dart';
import 'package:mohem_flutter_app/ui/screens/pending_transactions/pending_transactions.dart'; import 'package:mohem_flutter_app/ui/screens/pending_transactions/pending_transactions.dart';
import 'package:mohem_flutter_app/ui/screens/pending_transactions/pending_transactions_details.dart'; import 'package:mohem_flutter_app/ui/screens/pending_transactions/pending_transactions_details.dart';
import 'package:mohem_flutter_app/ui/profile/profile_screen.dart';
import 'package:mohem_flutter_app/ui/screens/submenu_screen.dart'; import 'package:mohem_flutter_app/ui/screens/submenu_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/item_history_screen.dart'; import 'package:mohem_flutter_app/ui/work_list/item_history_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/itg_detail_screen.dart'; import 'package:mohem_flutter_app/ui/work_list/itg_detail_screen.dart';
@ -70,6 +71,7 @@ class AppRoutes {
static const String addDynamicInputProfile = 'addDynamicInputProfile'; static const String addDynamicInputProfile = 'addDynamicInputProfile';
static const String addDynamicAddressScreen = 'addDynamicAddressProfile'; static const String addDynamicAddressScreen = 'addDynamicAddressProfile';
//Attendance //Attendance
static const String attendance = "/attendance"; static const String attendance = "/attendance";
static const String monthlyAttendance = "/monthlyAttendance"; static const String monthlyAttendance = "/monthlyAttendance";

@ -7,6 +7,7 @@ import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.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/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/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/mowadhafhi/get_tickets_list.dart'; import 'package:mohem_flutter_app/models/mowadhafhi/get_tickets_list.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
@ -20,7 +21,7 @@ class MowadhafhiHome extends StatefulWidget {
} }
class _MowadhafhiHomeState extends State<MowadhafhiHome> { class _MowadhafhiHomeState extends State<MowadhafhiHome> {
List<GetTicketsByEmployeeList> getTicketsByEmployeeList = []; List<GetTicketsByEmployeeList>? getTicketsByEmployeeList;
@override @override
void initState() { void initState() {
@ -28,111 +29,10 @@ class _MowadhafhiHomeState extends State<MowadhafhiHome> {
super.initState(); super.initState();
} }
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: LocaleKeys.mowadhafhiRequest.tr(),
),
body: Container(
margin: const EdgeInsets.only(top: 10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: ListView.separated(
physics: const BouncingScrollPhysics(),
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
openRequestDetails(getTicketsByEmployeeList[index].ticketId!);
},
child: Container(
width: double.infinity,
// height: 100.0,
padding: const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10),
margin: const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
getTicketsByEmployeeList[index].ticketTypeName!.toText14(color: MyColors.grey57Color),
getTicketsByEmployeeList[index].created!.split(" ")[0].toText12(color: MyColors.grey70Color),
],
),
Container(
padding: const EdgeInsets.only(top: 10.0),
child: getTicketsByEmployeeList[index].description!.toText12(color: MyColors.grey57Color),
),
Container(
padding: const EdgeInsets.only(top: 10.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
getTicketsByEmployeeList[index].ticketStatusInternalName!.toText14(color: MyColors.gradiantEndColor),
SvgPicture.asset(
"assets/images/arrow_next.svg",
color: MyColors.darkIconColor,
)
],
),
),
],
),
),
);
},
separatorBuilder: (BuildContext context, int index) => 12.height,
itemCount: getTicketsByEmployeeList.length ?? 0)),
80.height
],
),
),
bottomSheet: Container(
decoration: const BoxDecoration(
color: MyColors.white,
boxShadow: [
BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3),
],
),
child: DefaultButton(LocaleKeys.createRequest.tr(), () async {
openHRRequest();
}).insideContainer,
));
}
void openRequestDetails(String itgTicketID) async {
await Navigator.pushNamed(context, AppRoutes.mowadhafhiDetails, arguments: itgTicketID);
}
void openHRRequest() async {
await Navigator.pushNamed(context, AppRoutes.mowadhafhiHRRequest).then((value) {
getOpenTickets();
});
}
void getOpenTickets() async { void getOpenTickets() async {
try { try {
Utils.showLoading(context); Utils.showLoading(context);
getTicketsByEmployeeList.clear(); getTicketsByEmployeeList?.clear();
getTicketsByEmployeeList = await MowadhafhiApiClient().getTicketsByEmployee(); getTicketsByEmployeeList = await MowadhafhiApiClient().getTicketsByEmployee();
Utils.hideLoading(context); Utils.hideLoading(context);
setState(() {}); setState(() {});
@ -141,4 +41,65 @@ class _MowadhafhiHomeState extends State<MowadhafhiHome> {
Utils.handleException(ex, context, null); Utils.handleException(ex, context, null);
} }
} }
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: LocaleKeys.mowadhafhiRequest.tr(),
),
body: getTicketsByEmployeeList == null
? const SizedBox()
: (getTicketsByEmployeeList!.isEmpty)
? Utils.getNoDataWidget(context)
: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
ListView.separated(
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.all(21),
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: () {
Navigator.pushNamed(context, AppRoutes.mowadhafhiDetails, arguments: getTicketsByEmployeeList![index].ticketId);
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
getTicketsByEmployeeList![index].ticketTypeName!.toText14(color: MyColors.darkTextColor).expanded,
getTicketsByEmployeeList![index].created!.split(" ")[0].toText12(color: MyColors.grey70Color),
],
),
getTicketsByEmployeeList![index].description!.toText12(color: MyColors.grey57Color),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
getTicketsByEmployeeList![index].ticketStatusInternalName!.toText14(color: MyColors.textMixColor),
SvgPicture.asset(
"assets/images/arrow_next.svg",
color: MyColors.darkIconColor,
)
],
),
],
).objectContainerView(),
);
},
separatorBuilder: (BuildContext context, int index) => 12.height,
itemCount: getTicketsByEmployeeList!.length)
.expanded,
DefaultButton(LocaleKeys.createRequest.tr(), () async {
await Navigator.pushNamed(context, AppRoutes.mowadhafhiHRRequest);
getOpenTickets();
}).insideContainer
],
),
);
}
} }

@ -21,7 +21,6 @@ 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/button/default_button.dart';
import 'package:mohem_flutter_app/widgets/button/simple_button.dart'; import 'package:mohem_flutter_app/widgets/button/simple_button.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart'; import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
import 'package:mohem_flutter_app/widgets/radio/show_radio.dart';
class MowadhafhiHRRequest extends StatefulWidget { class MowadhafhiHRRequest extends StatefulWidget {
const MowadhafhiHRRequest({Key? key}) : super(key: key); const MowadhafhiHRRequest({Key? key}) : super(key: key);
@ -42,7 +41,9 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
GetSectionTopics? selectedTopic; GetSectionTopics? selectedTopic;
List<File> attachmentFiles = []; List<File> attachmentFiles = [];
String selectedServiceType = ""; GetTicketTypes? selectedServiceType;
// String selectedServiceType = "";
String description = ""; String description = "";
int? projectID; int? projectID;
@ -58,69 +59,40 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
backgroundColor: Colors.white, backgroundColor: Colors.white,
appBar: AppBarWidget( appBar: AppBarWidget(
context, context,
title: LocaleKeys.mowadhafhiRequest.tr(), title: LocaleKeys.createRequest.tr(),
), ),
body: SingleChildScrollView( body: getTicketTypesList.isNotEmpty
child: getTicketTypesList.isNotEmpty ? Column(
? Container( children: [
width: double.infinity, ListView(
padding: const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10), padding: const EdgeInsets.all(21),
margin: const EdgeInsets.only(left: 12, right: 12, top: 10, bottom: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
LocaleKeys.serviceType.tr().toText16(), PopupMenuButton(
12.height, child: DynamicTextFieldWidget(
Row( LocaleKeys.serviceType.tr(),
mainAxisAlignment: MainAxisAlignment.spaceBetween, selectedServiceType?.typeName ?? LocaleKeys.selectTypeT.tr(),
children: [ isEnable: false,
SizedBox( isPopup: true,
height: 40, isInputTypeNum: true,
child: ListView.separated( isReadOnly: false,
itemBuilder: (context, index) {
return Container(
padding: const EdgeInsets.only(right: 6, top: 8, bottom: 8),
child: ShowRadio(
title: getTicketTypesList[index].typeName!,
value: getTicketTypesList[index].ticketTypeId!.toString(),
groupValue: selectedServiceType,
selectedColor: MyColors.gradiantStartColor),
).onPress(() {
selectedServiceType = getTicketTypesList[index].ticketTypeId!.toString();
setState(() {});
});
},
separatorBuilder: (context, index) => 1.width,
shrinkWrap: true,
itemCount: getTicketTypesList.length ?? 0,
scrollDirection: Axis.horizontal,
),
), ),
], itemBuilder: (_) => <PopupMenuItem<int>>[
), for (int i = 0; i < getTicketTypesList.length; i++) PopupMenuItem<int>(child: Text(getTicketTypesList[i].typeName!), value: i),
12.height, ],
LocaleKeys.departmentName.tr().toText16(), onSelected: (int popupIndex) {
selectedServiceType = getTicketTypesList[popupIndex]; //.ticketTypeId!.toString();
setState(() {});
}),
12.height, 12.height,
PopupMenuButton( PopupMenuButton(
child: DynamicTextFieldWidget( child: DynamicTextFieldWidget(
LocaleKeys.selectDepartment.tr(), LocaleKeys.departmentName.tr(),
selectedDepartment?.departmentName ?? "", selectedDepartment?.departmentName ?? LocaleKeys.selectDepartment.tr(),
isEnable: false, isEnable: false,
isPopup: true, isPopup: true,
isInputTypeNum: true, isInputTypeNum: true,
isReadOnly: false, isReadOnly: false,
).paddingOnly(bottom: 12), ),
itemBuilder: (_) => <PopupMenuItem<int>>[ itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < getProjectDepartmentsList!.length; i++) PopupMenuItem<int>(child: Text(getProjectDepartmentsList![i].departmentName!), value: i), for (int i = 0; i < getProjectDepartmentsList!.length; i++) PopupMenuItem<int>(child: Text(getProjectDepartmentsList![i].departmentName!), value: i),
], ],
@ -130,17 +102,15 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
setState(() {}); setState(() {});
}), }),
12.height, 12.height,
LocaleKeys.relatedSection.tr().toText16(),
12.height,
PopupMenuButton( PopupMenuButton(
child: DynamicTextFieldWidget( child: DynamicTextFieldWidget(
LocaleKeys.selectSection.tr(), LocaleKeys.relatedSection.tr(),
selectedSection?.sectionName ?? "", selectedSection?.sectionName ?? LocaleKeys.selectSection.tr(),
isEnable: false, isEnable: false,
isPopup: true, isPopup: true,
isInputTypeNum: true, isInputTypeNum: true,
isReadOnly: false, isReadOnly: false,
).paddingOnly(bottom: 12), ),
itemBuilder: (_) => <PopupMenuItem<int>>[ itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < getDepartmentSectionsList!.length; i++) PopupMenuItem<int>(child: Text(getDepartmentSectionsList![i].sectionName!), value: i), for (int i = 0; i < getDepartmentSectionsList!.length; i++) PopupMenuItem<int>(child: Text(getDepartmentSectionsList![i].sectionName!), value: i),
], ],
@ -150,35 +120,29 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
setState(() {}); setState(() {});
}), }),
12.height, 12.height,
LocaleKeys.relatedTopic.tr().toText16(),
12.height,
PopupMenuButton( PopupMenuButton(
child: DynamicTextFieldWidget( child: DynamicTextFieldWidget(
LocaleKeys.selectTopic.tr(), LocaleKeys.relatedTopic.tr(),
selectedTopic?.topicName ?? "", selectedTopic?.topicName ?? LocaleKeys.selectTopic.tr(),
isEnable: false, isEnable: false,
isPopup: true, isPopup: true,
isInputTypeNum: true, isInputTypeNum: true,
isReadOnly: false, isReadOnly: false,
).paddingOnly(bottom: 12), ),
itemBuilder: (_) => <PopupMenuItem<int>>[ itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < getSectionTopicsList!.length; i++) PopupMenuItem<int>(child: Text(getSectionTopicsList![i].topicName!), value: i), for (int i = 0; i < getSectionTopicsList.length; i++) PopupMenuItem<int>(child: Text(getSectionTopicsList[i].topicName!), value: i),
], ],
onSelected: (int popupIndex) { onSelected: (int popupIndex) {
selectedTopic = getSectionTopicsList![popupIndex]; selectedTopic = getSectionTopicsList[popupIndex];
// getDepartmentSections(selectedSection?.departmentSectionId); // getDepartmentSections(selectedSection?.departmentSectionId);
setState(() {}); setState(() {});
}), }),
12.height, 12.height,
LocaleKeys.supportingDocument.tr().toText16(), attachmentView("Attachments").objectContainerView(title: LocaleKeys.supportingDocument.tr()),
12.height,
attachmentView("Attachments"),
12.height,
LocaleKeys.description.tr().toText16(),
12.height, 12.height,
DynamicTextFieldWidget( DynamicTextFieldWidget(
"", LocaleKeys.description.tr(),
"", LocaleKeys.writeAMessage.tr(),
isEnable: true, isEnable: true,
isPopup: false, isPopup: false,
lines: 4, lines: 4,
@ -189,40 +153,25 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
description = value; description = value;
}, },
), ),
50.height
], ],
), ).expanded,
) DefaultButton(
: Container(), LocaleKeys.submit.tr(),
), !checkValidation()
bottomSheet: Container( ? null
padding: const EdgeInsets.only(top: 8.0, bottom: 8.0), : () {
decoration: const BoxDecoration( submitHRRequest();
color: MyColors.white, },
), color: const Color(0xFFD02127),
child: Row( ).insideContainer
children: [ ],
12.width, )
Expanded( : Container(),
child: DefaultButton(
LocaleKeys.submit.tr(),
!checkValidation()
? null
: () {
submitHRRequest();
},
color: const Color(0xFFD02127),
),
),
12.width,
],
),
),
); );
} }
bool checkValidation() { bool checkValidation() {
if (selectedServiceType == "" || selectedDepartment == null || selectedSection == null || selectedTopic == null) { if (selectedServiceType == null || selectedDepartment == null || selectedSection == null || selectedTopic == null) {
return false; return false;
} else { } else {
return true; return true;
@ -230,69 +179,55 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
} }
Widget attachmentView(String title) { Widget attachmentView(String title) {
return Container( return Column(
padding: const EdgeInsets.only(top: 15, bottom: 15, left: 14, right: 14), crossAxisAlignment: CrossAxisAlignment.start,
decoration: BoxDecoration( mainAxisSize: MainAxisSize.min,
color: Colors.white, children: [
borderRadius: BorderRadius.circular(15), Row(
boxShadow: [ mainAxisSize: MainAxisSize.min,
BoxShadow( crossAxisAlignment: CrossAxisAlignment.center,
color: const Color(0xff000000).withOpacity(.05), children: [
blurRadius: 26, title.toText16().expanded,
offset: const Offset(0, -3), 6.width,
), SimpleButton(LocaleKeys.add.tr(), () async {
], FilePickerResult? result = await FilePicker.platform.pickFiles(allowMultiple: true);
), if (result != null) {
child: Column( attachmentFiles = attachmentFiles + result.paths.map((path) => File(path!)).toList();
crossAxisAlignment: CrossAxisAlignment.start, attachmentFiles = attachmentFiles.toSet().toList();
mainAxisSize: MainAxisSize.min, setState(() {});
children: [ }
Row( }, fontSize: 14),
mainAxisSize: MainAxisSize.min, ],
crossAxisAlignment: CrossAxisAlignment.center, ),
children: [ if (attachmentFiles.isNotEmpty) 12.height,
title.toText16().expanded, if (attachmentFiles.isNotEmpty)
6.width, ListView.separated(
SimpleButton(LocaleKeys.add.tr(), () async { shrinkWrap: true,
FilePickerResult? result = await FilePicker.platform.pickFiles(allowMultiple: true); physics: const NeverScrollableScrollPhysics(),
if (result != null) { itemBuilder: (cxt, index) {
attachmentFiles = attachmentFiles + result.paths.map((path) => File(path!)).toList(); String fileName = attachmentFiles[index].path.split('/').last;
attachmentFiles = attachmentFiles.toSet().toList();
setState(() {});
}
}, fontSize: 14),
],
),
if (attachmentFiles.isNotEmpty) 12.height,
if (attachmentFiles.isNotEmpty)
ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (cxt, index) {
String fileName = attachmentFiles[index].path.split('/').last;
return Row( return Row(
children: [ children: [
fileName.toText13().expanded, fileName.toText13().expanded,
6.width, 6.width,
IconButton( IconButton(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
iconSize: 20, iconSize: 20,
icon: const Icon(Icons.cancel_rounded), icon: const Icon(Icons.cancel_rounded),
color: MyColors.redColor, color: MyColors.redColor,
constraints: const BoxConstraints(), constraints: const BoxConstraints(),
onPressed: () async { onPressed: () async {
attachmentFiles.removeAt(index); attachmentFiles.removeAt(index);
setState(() {}); setState(() {});
}, },
) )
], ],
); );
}, },
separatorBuilder: (cxt, index) => 6.height, separatorBuilder: (cxt, index) => 6.height,
itemCount: attachmentFiles.length), itemCount: attachmentFiles.length),
], ],
),
); );
} }
@ -376,7 +311,7 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
} }
} }
int? messageStatus = await MowadhafhiApiClient().submitRequest(selectedDepartment?.projectDepartmentId, description, projectID, selectedSection?.departmentSectionId.toString(), int? messageStatus = await MowadhafhiApiClient().submitRequest(selectedDepartment?.projectDepartmentId, description, projectID, selectedSection?.departmentSectionId.toString(),
selectedTopic?.sectionTopicId.toString(), int.parse(selectedServiceType), list); selectedTopic?.sectionTopicId.toString(), selectedServiceType!.ticketTypeId, list);
Utils.showToast(LocaleKeys.requestCreatedSuccessfully.tr()); Utils.showToast(LocaleKeys.requestCreatedSuccessfully.tr());
Utils.hideLoading(context); Utils.hideLoading(context);
Navigator.pop(context); Navigator.pop(context);

Loading…
Cancel
Save