|  |  |  | @ -1,4 +1,7 @@ | 
		
	
		
			
				|  |  |  |  | import 'dart:io'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import 'package:easy_localization/src/public_ext.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/cupertino.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/material.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter_svg/svg.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart'; | 
		
	
	
		
			
				
					|  |  |  | @ -18,6 +21,9 @@ import 'package:mohem_flutter_app/models/worklist_item_type_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/models/worklist_response_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/bottom_sheet.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/button/default_button.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:provider/provider.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:pull_to_refresh/pull_to_refresh.dart'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -87,12 +93,36 @@ class _WorkListScreenState extends State<WorkListScreen> { | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   final RefreshController _refreshController = RefreshController(initialRefresh: false); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   final Map<int, String> advancedSearchViews = {}; | 
		
	
		
			
				|  |  |  |  |   final Map<int, String> advancedSearchSearchBy = {}; | 
		
	
		
			
				|  |  |  |  |   final Map<String, String> advancedSearchItemType = {}; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   int selectedViewID = 1; | 
		
	
		
			
				|  |  |  |  |   String? selectedViewName; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   int selectedSearchByID = 0; | 
		
	
		
			
				|  |  |  |  |   String? selectedSearchByName; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   String selectedItemTypeID = ""; | 
		
	
		
			
				|  |  |  |  |   String? selectedItemTypeName; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   String searchByInput = ""; | 
		
	
		
			
				|  |  |  |  |   String searchByDate = ""; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   DateTime selectedDate = DateTime.now(); | 
		
	
		
			
				|  |  |  |  |   final ScrollController _controller = ScrollController(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
		
			
				|  |  |  |  |   void initState() { | 
		
	
		
			
				|  |  |  |  |     super.initState(); | 
		
	
		
			
				|  |  |  |  |     providerData = Provider.of<DashboardProviderModel>(context, listen: false); | 
		
	
		
			
				|  |  |  |  |     calculateCounter(); | 
		
	
		
			
				|  |  |  |  |     getWorkList(); | 
		
	
		
			
				|  |  |  |  |     setupAdvancedSearchParams(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void setupAdvancedSearchParams() { | 
		
	
		
			
				|  |  |  |  |     advancedSearchViews.addAll({1: LocaleKeys.openNot.tr(), 2: LocaleKeys.fyi.tr(), 3: LocaleKeys.toDo.tr(), 4: LocaleKeys.all.tr(), 5: LocaleKeys.meNot.tr()}); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void calculateCounter() { | 
		
	
	
		
			
				
					|  |  |  | @ -132,7 +162,7 @@ class _WorkListScreenState extends State<WorkListScreen> { | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |       } else { | 
		
	
		
			
				|  |  |  |  |         itgRequestTypeIndex = null; | 
		
	
		
			
				|  |  |  |  |         workList = await WorkListApiClient().getWorkList(pageNumber, workListItemTypes[workListItemIndex].key); | 
		
	
		
			
				|  |  |  |  |         workList = await WorkListApiClient().getWorkList(pageNumber, workListItemTypes[workListItemIndex].key, selectedViewID.toString()); | 
		
	
		
			
				|  |  |  |  |         AppState().setWorkList = workList; | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |       if (showLoading) Utils.hideLoading(context); | 
		
	
	
		
			
				
					|  |  |  | @ -183,6 +213,7 @@ class _WorkListScreenState extends State<WorkListScreen> { | 
		
	
		
			
				|  |  |  |  |             SizedBox( | 
		
	
		
			
				|  |  |  |  |               height: 40, | 
		
	
		
			
				|  |  |  |  |               child: ListView.separated( | 
		
	
		
			
				|  |  |  |  |                 controller: _controller, | 
		
	
		
			
				|  |  |  |  |                 itemBuilder: (context, index) { | 
		
	
		
			
				|  |  |  |  |                   return Container( | 
		
	
		
			
				|  |  |  |  |                     padding: const EdgeInsets.only(left: 21, right: 21, top: 8, bottom: 8), | 
		
	
	
		
			
				
					|  |  |  | @ -213,7 +244,15 @@ class _WorkListScreenState extends State<WorkListScreen> { | 
		
	
		
			
				|  |  |  |  |                 padding: const EdgeInsets.only(left: 21, right: 21), | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |             ).paddingOnly(top: 21, bottom: 21), | 
		
	
		
			
				|  |  |  |  |             workListItemTypes[workListItemIndex].fullName.toSectionHeading().paddingOnly(left: 21, right: 21), | 
		
	
		
			
				|  |  |  |  |             Row( | 
		
	
		
			
				|  |  |  |  |               mainAxisAlignment: MainAxisAlignment.spaceBetween, | 
		
	
		
			
				|  |  |  |  |               children: [ | 
		
	
		
			
				|  |  |  |  |                 workListItemTypes[workListItemIndex].fullName.toSectionHeading().paddingOnly(left: 21, right: 21), | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.advancedSearch.tr().toText14(isUnderLine: true).onPress(() { | 
		
	
		
			
				|  |  |  |  |                   openBottomSheet(context); | 
		
	
		
			
				|  |  |  |  |                 }).paddingOnly(left: 21, right: 21) | 
		
	
		
			
				|  |  |  |  |               ], | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |             SmartRefresher( | 
		
	
		
			
				|  |  |  |  |                 enablePullDown: true, | 
		
	
		
			
				|  |  |  |  |                 enablePullUp: false, | 
		
	
	
		
			
				
					|  |  |  | @ -364,6 +403,147 @@ class _WorkListScreenState extends State<WorkListScreen> { | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void openBottomSheet(BuildContext context) { | 
		
	
		
			
				|  |  |  |  |     showMyBottomSheet( | 
		
	
		
			
				|  |  |  |  |       context, | 
		
	
		
			
				|  |  |  |  |       child: Padding( | 
		
	
		
			
				|  |  |  |  |         padding: const EdgeInsets.all(21.0), | 
		
	
		
			
				|  |  |  |  |         child: Column( | 
		
	
		
			
				|  |  |  |  |           crossAxisAlignment: CrossAxisAlignment.start, | 
		
	
		
			
				|  |  |  |  |           children: [ | 
		
	
		
			
				|  |  |  |  |             Row( | 
		
	
		
			
				|  |  |  |  |               mainAxisAlignment: MainAxisAlignment.spaceBetween, | 
		
	
		
			
				|  |  |  |  |               children: [ | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.advancedSearch.tr().toText18(), | 
		
	
		
			
				|  |  |  |  |                 IconButton( | 
		
	
		
			
				|  |  |  |  |                   icon: const Icon(Icons.close, color: MyColors.darkIconColor), | 
		
	
		
			
				|  |  |  |  |                   onPressed: () => Navigator.pop(context), | 
		
	
		
			
				|  |  |  |  |                 ), | 
		
	
		
			
				|  |  |  |  |               ], | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |             12.height, | 
		
	
		
			
				|  |  |  |  |             PopupMenuButton( | 
		
	
		
			
				|  |  |  |  |               child: DynamicTextFieldWidget( | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.view.tr(), | 
		
	
		
			
				|  |  |  |  |                 selectedViewName != null ? selectedViewName! : LocaleKeys.view.tr(), | 
		
	
		
			
				|  |  |  |  |                 isEnable: false, | 
		
	
		
			
				|  |  |  |  |                 isPopup: true, | 
		
	
		
			
				|  |  |  |  |                 isInputTypeNum: true, | 
		
	
		
			
				|  |  |  |  |                 isReadOnly: false, | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |               itemBuilder: (_) => <PopupMenuItem<int>>[ | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 1, child: Text(LocaleKeys.openNot.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 2, child: Text(LocaleKeys.fyi.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 3, child: Text(LocaleKeys.toDo.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 4, child: Text(LocaleKeys.all.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 5, child: Text(LocaleKeys.meNot.tr())), | 
		
	
		
			
				|  |  |  |  |               ], | 
		
	
		
			
				|  |  |  |  |               onSelected: (int popupIndex) { | 
		
	
		
			
				|  |  |  |  |                 selectedViewID = popupIndex; | 
		
	
		
			
				|  |  |  |  |                 selectedViewName = getSelectedViewName(popupIndex); | 
		
	
		
			
				|  |  |  |  |                 setState(() {}); | 
		
	
		
			
				|  |  |  |  |               }, | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |             12.height, | 
		
	
		
			
				|  |  |  |  |             PopupMenuButton( | 
		
	
		
			
				|  |  |  |  |               child: DynamicTextFieldWidget( | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.searchBy.tr(), | 
		
	
		
			
				|  |  |  |  |                 selectedSearchByName != null ? selectedSearchByName! : LocaleKeys.searchBy.tr(), | 
		
	
		
			
				|  |  |  |  |                 isEnable: false, | 
		
	
		
			
				|  |  |  |  |                 isPopup: true, | 
		
	
		
			
				|  |  |  |  |                 isInputTypeNum: true, | 
		
	
		
			
				|  |  |  |  |                 isReadOnly: false, | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |               itemBuilder: (_) => <PopupMenuItem<int>>[ | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 1, child: Text(LocaleKeys.fromUserName.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 2, child: Text(LocaleKeys.subject.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 3, child: Text(LocaleKeys.sentDate.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 4, child: Text(LocaleKeys.itemTypeDisplayName.tr())), | 
		
	
		
			
				|  |  |  |  |                 PopupMenuItem<int>(value: 5, child: Text(LocaleKeys.none.tr())), | 
		
	
		
			
				|  |  |  |  |               ], | 
		
	
		
			
				|  |  |  |  |               onSelected: (int popupIndex) { | 
		
	
		
			
				|  |  |  |  |                 selectedSearchByID = popupIndex; | 
		
	
		
			
				|  |  |  |  |                 selectedSearchByName = getSelectedSearchByName(popupIndex); | 
		
	
		
			
				|  |  |  |  |                 setState(() {}); | 
		
	
		
			
				|  |  |  |  |               }, | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |             12.height, | 
		
	
		
			
				|  |  |  |  |             if (selectedSearchByID == 1 || selectedSearchByID == 2 || selectedSearchByID == 4) | 
		
	
		
			
				|  |  |  |  |               DynamicTextFieldWidget( | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.searchBy.tr(), | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.searchBy.tr(), | 
		
	
		
			
				|  |  |  |  |                 isEnable: true, | 
		
	
		
			
				|  |  |  |  |                 isPopup: false, | 
		
	
		
			
				|  |  |  |  |                 lines: 1, | 
		
	
		
			
				|  |  |  |  |                 isInputTypeNum: false, | 
		
	
		
			
				|  |  |  |  |                 isReadOnly: false, | 
		
	
		
			
				|  |  |  |  |                 onChange: (String value) { | 
		
	
		
			
				|  |  |  |  |                   debugPrint(value); | 
		
	
		
			
				|  |  |  |  |                   searchByInput = value; | 
		
	
		
			
				|  |  |  |  |                 }, | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |             if (selectedSearchByID == 3) | 
		
	
		
			
				|  |  |  |  |               DynamicTextFieldWidget( | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.searchBy.tr(), | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.sentDate.tr(), | 
		
	
		
			
				|  |  |  |  |                 suffixIconData: Icons.calendar_today, | 
		
	
		
			
				|  |  |  |  |                 isEnable: false, | 
		
	
		
			
				|  |  |  |  |                 onTap: () async { | 
		
	
		
			
				|  |  |  |  |                   selectedDate = await _selectDate(context, DateTime.now()); | 
		
	
		
			
				|  |  |  |  |                   searchByDate = selectedDate.day.toString() + "-" + getMonth(selectedDate.month) + "-" + selectedDate.year.toString(); | 
		
	
		
			
				|  |  |  |  |                   setState(() {}); | 
		
	
		
			
				|  |  |  |  |                 }, | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |             12.height, | 
		
	
		
			
				|  |  |  |  |             PopupMenuButton( | 
		
	
		
			
				|  |  |  |  |               child: DynamicTextFieldWidget( | 
		
	
		
			
				|  |  |  |  |                 LocaleKeys.itemType.tr(), | 
		
	
		
			
				|  |  |  |  |                 selectedItemTypeName != null ? selectedItemTypeName! : LocaleKeys.itemType.tr(), | 
		
	
		
			
				|  |  |  |  |                 isEnable: false, | 
		
	
		
			
				|  |  |  |  |                 isPopup: true, | 
		
	
		
			
				|  |  |  |  |                 isInputTypeNum: true, | 
		
	
		
			
				|  |  |  |  |                 isReadOnly: false, | 
		
	
		
			
				|  |  |  |  |               ), | 
		
	
		
			
				|  |  |  |  |               itemBuilder: (_) => <PopupMenuItem<String>>[ | 
		
	
		
			
				|  |  |  |  |                 const PopupMenuItem<String>(value: "HRSSA", child: Text("HR")), | 
		
	
		
			
				|  |  |  |  |                 const PopupMenuItem<String>(value: "POAPPRV", child: Text("PO")), | 
		
	
		
			
				|  |  |  |  |                 const PopupMenuItem<String>(value: "REQAPPRV", child: Text("PR")), | 
		
	
		
			
				|  |  |  |  |                 const PopupMenuItem<String>(value: "INVMOA", child: Text("MR")), | 
		
	
		
			
				|  |  |  |  |                 const PopupMenuItem<String>(value: "INVITEM", child: Text("IC")), | 
		
	
		
			
				|  |  |  |  |                 const PopupMenuItem<String>(value: "STAMP", child: Text("STAMP")), | 
		
	
		
			
				|  |  |  |  |               ], | 
		
	
		
			
				|  |  |  |  |               onSelected: (String popupIndex) { | 
		
	
		
			
				|  |  |  |  |                 selectedItemTypeID = popupIndex; | 
		
	
		
			
				|  |  |  |  |                 selectedItemTypeName = getSelectedItemType(popupIndex); | 
		
	
		
			
				|  |  |  |  |                 setState(() {}); | 
		
	
		
			
				|  |  |  |  |               }, | 
		
	
		
			
				|  |  |  |  |             ), | 
		
	
		
			
				|  |  |  |  |             20.height, | 
		
	
		
			
				|  |  |  |  |             DefaultButton(LocaleKeys.search.tr(), () async { | 
		
	
		
			
				|  |  |  |  |               Navigator.pop(context); | 
		
	
		
			
				|  |  |  |  |               itgRequestTypeIndex = null; | 
		
	
		
			
				|  |  |  |  |               int index = -1; | 
		
	
		
			
				|  |  |  |  |               for (int i = 0; i < workListItemTypes.length; i++) { | 
		
	
		
			
				|  |  |  |  |                 if (workListItemTypes[i].key == selectedItemTypeID) { | 
		
	
		
			
				|  |  |  |  |                   index = i; | 
		
	
		
			
				|  |  |  |  |                   break; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |               } | 
		
	
		
			
				|  |  |  |  |               Utils.showLoading(context); | 
		
	
		
			
				|  |  |  |  |               workList = await WorkListApiClient().getWorkList(pageNumber, selectedItemTypeID, selectedViewID.toString(), | 
		
	
		
			
				|  |  |  |  |                   pSearchUser: searchByInput, pSearchSubject: searchByInput, pSentDate: searchByDate, pSearchItemType: searchByInput); | 
		
	
		
			
				|  |  |  |  |               workListItemIndex = index; | 
		
	
		
			
				|  |  |  |  |               AppState().setWorkList = workList; | 
		
	
		
			
				|  |  |  |  |               _animateToIndex(index, 50.0); | 
		
	
		
			
				|  |  |  |  |               Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |               setState(() {}); | 
		
	
		
			
				|  |  |  |  |             }) | 
		
	
		
			
				|  |  |  |  |           ], | 
		
	
		
			
				|  |  |  |  |         ), | 
		
	
		
			
				|  |  |  |  |       ), | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Widget rowItem(WorkListItemTypeModelData data, WorkListResponseModel workData, int index) { | 
		
	
		
			
				|  |  |  |  |     return InkWell( | 
		
	
		
			
				|  |  |  |  |       onTap: () async { | 
		
	
	
		
			
				
					|  |  |  | @ -442,4 +622,141 @@ class _WorkListScreenState extends State<WorkListScreen> { | 
		
	
		
			
				|  |  |  |  |       ), | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void _animateToIndex(int index, double width) { | 
		
	
		
			
				|  |  |  |  |     _controller.animateTo( | 
		
	
		
			
				|  |  |  |  |       index * width, | 
		
	
		
			
				|  |  |  |  |       duration: const Duration(seconds: 1), | 
		
	
		
			
				|  |  |  |  |       curve: Curves.fastOutSlowIn, | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   String getSelectedViewName(int index) { | 
		
	
		
			
				|  |  |  |  |     String returnVal = ""; | 
		
	
		
			
				|  |  |  |  |     switch (index) { | 
		
	
		
			
				|  |  |  |  |       case 1: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.openNot.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 2: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.fyi.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 3: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.toDo.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 4: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.all.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 5: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.meNot.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     return returnVal; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   String getSelectedSearchByName(int index) { | 
		
	
		
			
				|  |  |  |  |     String returnVal = ""; | 
		
	
		
			
				|  |  |  |  |     switch (index) { | 
		
	
		
			
				|  |  |  |  |       case 1: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.fromUserName.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 2: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.subject.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 3: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.sentDate.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 4: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.itemType.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case 5: | 
		
	
		
			
				|  |  |  |  |         returnVal = LocaleKeys.none.tr(); | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     return returnVal; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   String getSelectedItemType(String index) { | 
		
	
		
			
				|  |  |  |  |     String returnVal = ""; | 
		
	
		
			
				|  |  |  |  |     switch (index) { | 
		
	
		
			
				|  |  |  |  |       case "HRSSA": | 
		
	
		
			
				|  |  |  |  |         returnVal = "HR"; | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case "POAPPRV": | 
		
	
		
			
				|  |  |  |  |         returnVal = "PO"; | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case "REQAPPRV": | 
		
	
		
			
				|  |  |  |  |         returnVal = "PR"; | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case "INVMOA": | 
		
	
		
			
				|  |  |  |  |         returnVal = "MR"; | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case "INVITEM": | 
		
	
		
			
				|  |  |  |  |         returnVal = "IC"; | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |       case "STAMP": | 
		
	
		
			
				|  |  |  |  |         returnVal = "STAMP"; | 
		
	
		
			
				|  |  |  |  |         break; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     return returnVal; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<DateTime> _selectDate(BuildContext context, DateTime selectedDate) async { | 
		
	
		
			
				|  |  |  |  |     DateTime time = selectedDate; | 
		
	
		
			
				|  |  |  |  |     if (!Platform.isIOS) { | 
		
	
		
			
				|  |  |  |  |       await showCupertinoModalPopup( | 
		
	
		
			
				|  |  |  |  |         context: context, | 
		
	
		
			
				|  |  |  |  |         builder: (cxt) => Container( | 
		
	
		
			
				|  |  |  |  |           height: 250, | 
		
	
		
			
				|  |  |  |  |           color: Colors.white, | 
		
	
		
			
				|  |  |  |  |           child: CupertinoDatePicker( | 
		
	
		
			
				|  |  |  |  |             backgroundColor: Colors.white, | 
		
	
		
			
				|  |  |  |  |             mode: CupertinoDatePickerMode.date, | 
		
	
		
			
				|  |  |  |  |             onDateTimeChanged: (value) { | 
		
	
		
			
				|  |  |  |  |               if (value != null && value != selectedDate) { | 
		
	
		
			
				|  |  |  |  |                 time = value; | 
		
	
		
			
				|  |  |  |  |               } | 
		
	
		
			
				|  |  |  |  |             }, | 
		
	
		
			
				|  |  |  |  |             initialDateTime: selectedDate, | 
		
	
		
			
				|  |  |  |  |           ), | 
		
	
		
			
				|  |  |  |  |         ), | 
		
	
		
			
				|  |  |  |  |       ); | 
		
	
		
			
				|  |  |  |  |     } else { | 
		
	
		
			
				|  |  |  |  |       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; | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     return time; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   String getMonth(int month) { | 
		
	
		
			
				|  |  |  |  |     switch (month) { | 
		
	
		
			
				|  |  |  |  |       case 1: | 
		
	
		
			
				|  |  |  |  |         return "Jan"; | 
		
	
		
			
				|  |  |  |  |       case 2: | 
		
	
		
			
				|  |  |  |  |         return "Feb"; | 
		
	
		
			
				|  |  |  |  |       case 3: | 
		
	
		
			
				|  |  |  |  |         return "Mar"; | 
		
	
		
			
				|  |  |  |  |       case 4: | 
		
	
		
			
				|  |  |  |  |         return "Apr"; | 
		
	
		
			
				|  |  |  |  |       case 5: | 
		
	
		
			
				|  |  |  |  |         return "May"; | 
		
	
		
			
				|  |  |  |  |       case 6: | 
		
	
		
			
				|  |  |  |  |         return "June"; | 
		
	
		
			
				|  |  |  |  |       case 7: | 
		
	
		
			
				|  |  |  |  |         return "July"; | 
		
	
		
			
				|  |  |  |  |       case 8: | 
		
	
		
			
				|  |  |  |  |         return "Aug"; | 
		
	
		
			
				|  |  |  |  |       case 9: | 
		
	
		
			
				|  |  |  |  |         return "Sep"; | 
		
	
		
			
				|  |  |  |  |       case 10: | 
		
	
		
			
				|  |  |  |  |         return "Oct"; | 
		
	
		
			
				|  |  |  |  |       case 11: | 
		
	
		
			
				|  |  |  |  |         return "Nov"; | 
		
	
		
			
				|  |  |  |  |       case 12: | 
		
	
		
			
				|  |  |  |  |         return "Dec"; | 
		
	
		
			
				|  |  |  |  |       default: | 
		
	
		
			
				|  |  |  |  |         return ""; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
	
		
			
				
					|  |  |  | 
 |