|  |  |  | @ -21,6 +21,8 @@ import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart' | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/ui/misc/request_submit_screen.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.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/bottom_sheets/search_employee_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'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -37,7 +39,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> { | 
		
	
		
			
				|  |  |  |  |   GenericResponseModel? genericResponseModel; | 
		
	
		
			
				|  |  |  |  |   List<GetEITDFFStructureList>? getEitDffStructureList; | 
		
	
		
			
				|  |  |  |  |   DynamicListViewParams? dynamicParams; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   String? selectedReplacementEmployee; | 
		
	
		
			
				|  |  |  |  |   @override | 
		
	
		
			
				|  |  |  |  |   void initState() { | 
		
	
		
			
				|  |  |  |  |     super.initState(); | 
		
	
	
		
			
				
					|  |  |  | @ -686,7 +688,51 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> { | 
		
	
		
			
				|  |  |  |  |       } else { | 
		
	
		
			
				|  |  |  |  |         //condition need to be added here. | 
		
	
		
			
				|  |  |  |  |         if(model.vSSRCHFLAG =='Y'){ | 
		
	
		
			
				|  |  |  |  |           return DynamicTextFieldWidget( | 
		
	
		
			
				|  |  |  |  |             LocaleKeys.selectEmployee.tr(), | 
		
	
		
			
				|  |  |  |  |             "", | 
		
	
		
			
				|  |  |  |  |             // selectedReplacementEmployee == null ? LocaleKeys.searchForEmployee | 
		
	
		
			
				|  |  |  |  |             //     .tr() : selectedReplacementEmployee!.employeeDisplayName ?? "", | 
		
	
		
			
				|  |  |  |  |             isEnable: false, | 
		
	
		
			
				|  |  |  |  |             onTap: () { | 
		
	
		
			
				|  |  |  |  |               showMyBottomSheet( | 
		
	
		
			
				|  |  |  |  |                 context, | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |                 callBackFunc: () {}, | 
		
	
		
			
				|  |  |  |  |                 child: SearchEmployeeBottomSheet( | 
		
	
		
			
				|  |  |  |  |                   title: LocaleKeys.searchForEmployee.tr(), | 
		
	
		
			
				|  |  |  |  |                   apiMode: LocaleKeys.delegate.tr(), | 
		
	
		
			
				|  |  |  |  |                   fromDynamicScreen: true, | 
		
	
		
			
				|  |  |  |  |                   fromChat: false, | 
		
	
		
			
				|  |  |  |  |                   onSelectEmployee: (_selectedEmployee) { | 
		
	
		
			
				|  |  |  |  |                     //   Navigator.pop(context); | 
		
	
		
			
				|  |  |  |  |                     // selectedReplacementEmployee = _selectedEmployee; | 
		
	
		
			
				|  |  |  |  |                     ESERVICESDV eservicesdv = ESERVICESDV( | 
		
	
		
			
				|  |  |  |  |                         pIDCOLUMNNAME:_selectedEmployee.userName, | 
		
	
		
			
				|  |  |  |  |                         pRETURNMSG: "null", | 
		
	
		
			
				|  |  |  |  |                         pRETURNSTATUS: "null", //getEitDffStructureList![popipIndex].dEFAULTVALUE, | 
		
	
		
			
				|  |  |  |  |                         pVALUECOLUMNNAME:_selectedEmployee.employeeDisplayName); | 
		
	
		
			
				|  |  |  |  |                     getEitDffStructureList![index].eSERVICESDV = eservicesdv; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |                     setState(() {}); | 
		
	
		
			
				|  |  |  |  |                   }, | 
		
	
		
			
				|  |  |  |  |                   onSearchClick: (String empID) async{ | 
		
	
		
			
				|  |  |  |  |                     ESERVICESDV eservicesdv = | 
		
	
		
			
				|  |  |  |  |                     ESERVICESDV(pSRCHVALUECOLUMNNAME: empID, pRETURNMSG: "null", pRETURNSTATUS: "null", pVALUECOLUMNNAME: ""); | 
		
	
		
			
				|  |  |  |  |                     getEitDffStructureList![index].eSERVICESDV = eservicesdv; | 
		
	
		
			
				|  |  |  |  |                     setState(() {}); | 
		
	
		
			
				|  |  |  |  |                     if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { | 
		
	
		
			
				|  |  |  |  |                       await calGetValueSetValuesSearch(model, empID); | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                     if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) { | 
		
	
		
			
				|  |  |  |  |                       await getDefaultValues(model); | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |                   }, | 
		
	
		
			
				|  |  |  |  |                 ), | 
		
	
		
			
				|  |  |  |  |               ); | 
		
	
		
			
				|  |  |  |  |             }, | 
		
	
		
			
				|  |  |  |  |           ); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         }else { | 
		
	
		
			
				|  |  |  |  |           return PopupMenuButton( | 
		
	
	
		
			
				
					|  |  |  | @ -924,4 +970,65 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> { | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     return time; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |   Future calGetValueSetValuesSearch(GetEITDFFStructureList structureList,String userID, {bool showLoading = true}) async { | 
		
	
		
			
				|  |  |  |  |     try { | 
		
	
		
			
				|  |  |  |  |       if (showLoading) Utils.showLoading(context); | 
		
	
		
			
				|  |  |  |  |       for (int i = 0; i < (structureList.cHILDSEGMENTSVSSplited?.length ?? 0); i++) { | 
		
	
		
			
				|  |  |  |  |         List<Map<String, dynamic>> values = []; | 
		
	
		
			
				|  |  |  |  |         String segmentId = structureList.cHILDSEGMENTSVSSplited![i]; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (dESCFLEXCONTEXTCODE.isEmpty) dESCFLEXCONTEXTCODE = structureList.dESCFLEXCONTEXTCODE!; | 
		
	
		
			
				|  |  |  |  |         List<GetEITDFFStructureList> filteredList = getEitDffStructureList?.where((element) => element.cHILDSEGMENTSVSSplited!.contains(segmentId)).toList() ?? []; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (filteredList.isEmpty && structureList.cHILDSEGMENTSVSSplited!.isNotEmpty) { | 
		
	
		
			
				|  |  |  |  |           segmentId = structureList.cHILDSEGMENTSVSSplited![0]; | 
		
	
		
			
				|  |  |  |  |           filteredList = getEitDffStructureList?.where((element) => element.cHILDSEGMENTSVSSplited!.contains(segmentId)).toList() ?? []; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         values = filteredList | 
		
	
		
			
				|  |  |  |  |             .map((e) => GetSetValuesRequestModel( | 
		
	
		
			
				|  |  |  |  |             sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME, pSRCHVALUECOLUMNNAME: userID ) | 
		
	
		
			
				|  |  |  |  |             .toJson()) | 
		
	
		
			
				|  |  |  |  |             .toList(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         String? selectedEmp = dynamicParams!.selectedEmp; | 
		
	
		
			
				|  |  |  |  |         bool hasParentId = false; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (segmentId.isNotEmpty && selectedEmp == null) { | 
		
	
		
			
				|  |  |  |  |           for (var element in getEitDffStructureList!) { | 
		
	
		
			
				|  |  |  |  |             try { | 
		
	
		
			
				|  |  |  |  |               if (element.sEGMENTNAME == segmentId && selectedEmp == null) { | 
		
	
		
			
				|  |  |  |  |                 var selectedElement = element; | 
		
	
		
			
				|  |  |  |  |                 if (selectedElement.vALIDATIONTYPE == "Y" || selectedElement.vALIDATIONTYPE == "D") { | 
		
	
		
			
				|  |  |  |  |                   hasParentId = true; | 
		
	
		
			
				|  |  |  |  |                   break; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |               } | 
		
	
		
			
				|  |  |  |  |             } catch (ex) { | 
		
	
		
			
				|  |  |  |  |               print("err:$ex"); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         List<ESERVICESVS> eServicesResponseModel = await MyAttendanceApiClient().getValueSetValuesSearch(segmentId, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values, | 
		
	
		
			
				|  |  |  |  |             empID: selectedEmp, parentValue: structureList.eSERVICESDV!.pVALUECOLUMNNAME, hasParent: hasParentId); | 
		
	
		
			
				|  |  |  |  |         List<GetEITDFFStructureList> abc = genericResponseModel?.getEITDFFStructureList ?? []; | 
		
	
		
			
				|  |  |  |  |         getEitDffStructureList = abc; | 
		
	
		
			
				|  |  |  |  |         int index = getEitDffStructureList!.indexWhere((element) => element.sEGMENTNAME == segmentId); | 
		
	
		
			
				|  |  |  |  |         getEitDffStructureList![index].eSERVICESVS!.clear(); | 
		
	
		
			
				|  |  |  |  |         getEitDffStructureList![index].eSERVICESDV = ESERVICESDV(); | 
		
	
		
			
				|  |  |  |  |         if (eServicesResponseModel.isNotEmpty) getEitDffStructureList![index].eSERVICESVS!.addAll(eServicesResponseModel); | 
		
	
		
			
				|  |  |  |  |         //   getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? []; | 
		
	
		
			
				|  |  |  |  |         //getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList(); | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |       if (showLoading) { | 
		
	
		
			
				|  |  |  |  |         await Future.delayed(const Duration(seconds: 1)); | 
		
	
		
			
				|  |  |  |  |         Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       setState(() {}); | 
		
	
		
			
				|  |  |  |  |     } catch (ex) { | 
		
	
		
			
				|  |  |  |  |       if (showLoading) Utils.hideLoading(context); | 
		
	
		
			
				|  |  |  |  |       Utils.handleException(ex, context, null); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
	
		
			
				
					|  |  |  | 
 |