KonectarApp/lib/contacts_module/ui_screen/engagementlist.dart

734 lines
29 KiB
Dart

// import 'dart:collection';
// import 'dart:convert';
// // import 'package:konectar_events/constants.dart';
// // import 'package:konectar_events/provider_class/engagement_provider.dart';
// // import 'package:konectar_events/ui_screen/bottom_sheet.dart';
// // import 'package:flutter/cupertino.dart';
// import 'package:konectar_events/contacts_module/constants.dart';
// import 'package:konectar_events/contacts_module/provider_class/engagement_provider.dart';
// import 'package:konectar_events/contacts_module/ui_screen/bottom_sheet.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter/widgets.dart';
// import 'package:intl/intl.dart';
// import 'package:provider/provider.dart';
// import 'package:multi_dropdown/multiselect_dropdown.dart';
// class EngagementList extends StatefulWidget {
// const EngagementList({super.key});
// @override
// State<EngagementList> createState() => _EngagementListState();
// }
// class _EngagementListState extends State<EngagementList> {
// List eng = [];
// List filteredList = [];
// List hcpname = [];
// List main = [];
// List rel = [];
// List level = [];
// DateTime? selectedDate;
// final TextEditingController textController = TextEditingController();
// bool calview = false;
// String start = '', end = '';
// TextEditingController _searchController = TextEditingController();
// final TextEditingController startController = TextEditingController();
// final TextEditingController endController = TextEditingController();
// String searchQuery = '';
// List<String> _dropDownValue1 = [],
// _dropDownValue2 = [],
// _dropDownValue3 = [],
// _dropDownValue4 = [],
// _dropDownValue5 = [];
// final TextEditingController textController1 = TextEditingController();
// @override
// void initState() {
// // TODO: implement initState
// super.initState();
// init();
// }
// Future<void> init() async {
// var engagement =
// await Provider.of<EnagagementProvider>(context, listen: false);
// final data = engagement.getengagementdata();
// final data1 = engagement.engagementdata;
// engagement.gethcpname();
// hcpname = engagement.engagementhcppname;
// print("getnewData: ${hcpname}");
// engagement.getmaintherepeutic();
// engagement.getrelationship();
// engagement.getrelationlevel();
// setState(() {
// eng = data1;
// filteredList = eng;
// main = engagement.enagementhcppmain;
// rel = engagement.enagementhcpprel;
// level = engagement.enagementhcplevel;
// });
// }
// void _filterList(String query) {
// print('filteredList_is: $filteredList');
// setState(() {
// searchQuery = query;
// filteredList = eng
// .where((item) => item['main thereutic area']
// .toLowerCase()
// .contains(query.toLowerCase()))
// .toList();
// });
// }
// void filtermulti(List<String> query, List<String> query2, List<String> query3,
// List<String> query4, String startt, String endd) {
// print("query: $query");
// print("query2: $query2");
// print("query3: $query3");
// print("query4: $query4");
// print("startt: $startt");
// print("endd: $endd");
// // Apply Filters to Each List
// // List<String> filteredQuery1 = filterList(query);
// // List<String> filteredQuery2 = filterList(query2);
// // List<String> filteredQuery3 = filterList(query3);
// // List<String> filteredQuery4 = filterList(query4);
// // // Print Results
// // print('Filtered Query 1: $filteredQuery1');
// // print('Filtered Query 2: $filteredQuery2');
// // print('Filtered Query 3: $filteredQuery3');
// // print('Filtered Query 4: $filteredQuery4');
// // Function to filter a list based on each element being used as a keyword
// // filteredList = eng.where((map) {
// // String value = map['main thereutic area']?.toLowerCase() ?? '';
// // return query.any((keyword) => value.contains(keyword.toLowerCase()));
// // }).toList();
// final DateFormat formatter = DateFormat('dd-MM-yyyy');
// //DateTime itemDate = formatter.parse(map['date']);
// setState(() {
// filteredList = eng
// .where((map) =>
// // String value = map['main thereutic area'].toLowerCase();
// //print("Vlaueee_isss: ${value} ${query2}");
// query2.any((keyword) => map['main thereutic area']
// .toLowerCase()
// .contains(keyword.toLowerCase())) ||
// query.any((keyword) => map['hcpname']
// .toLowerCase()
// .contains(keyword.toLowerCase())) ||
// query3.any((keyword) => map['relationship with chiesi']
// .toLowerCase()
// .contains(keyword.toLowerCase())) ||
// query4.any((keyword) => map['level of engagement']
// .toLowerCase()
// .contains(keyword.toLowerCase()))
// //||
// // formatter
// // .parse(map['date'])
// // .isAfter(formatter.parse(startt)) &&
// // formatter
// // .parse(map['date'])
// // .isBefore(formatter.parse(endd))
// // ||
// // (DateTime.parse(map['date']).isAfter(DateTime.parse(startt)) &&
// // DateTime.parse(map['date'])
// // .isBefore(DateTime.parse(endd).add(Duration(days: 1))))
// )
// .toList();
// });
// }
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// appBar: AppBar(
// title: Text("Enagagement"),
// ),
// endDrawer: Drawer(
// child: ListView(
// children: [
// Row(
// children: [
// Expanded(
// flex: 1,
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: TextFormField(
// controller: startController,
// readOnly: true, // Make the TextFormField read-only
// decoration: InputDecoration(
// isDense: true,
// labelText: 'Start Date',
// // suffixIcon: Icon(Icons.calendar_today),
// enabledBorder: OutlineInputBorder(
// borderSide: BorderSide(color: Colors.black),
// borderRadius: BorderRadius.circular(10))),
// onTap: () =>
// _selectDate(context), // Show date picker on tap
// ),
// ),
// ),
// Expanded(
// flex: 1,
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: TextFormField(
// controller: endController,
// readOnly: true, // Make the TextFormField read-only
// decoration: InputDecoration(
// isDense: true,
// labelText: 'End Date',
// // suffixIcon: Icon(Icons.calendar_today),
// enabledBorder: OutlineInputBorder(
// borderSide: BorderSide(color: Colors.black),
// borderRadius: BorderRadius.circular(10))),
// onTap: () =>
// _selectDate1(context), // Show date picker on tap
// ),
// ),
// ),
// ],
// ),
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: MultiSelectDropDown.network(
// borderColor: Colors.black,
// fieldBackgroundColor: Colors.transparent,
// hint: "Select Employee Name",
// dropdownHeight: 300,
// onOptionSelected: (options) {
// debugPrint("checkking" + options.toString());
// // String label = options[0].label;
// List<String> label1 = [];
// // var label;
// // debugPrint("checkking " + label);
// // for (var option in options) {
// // label1.add(option.label);
// // debugPrint("Selected label: $label");
// // }
// for (var option in options) {
// print("Options_isssssss: ${option}");
// if (option.label.isNotEmpty) {
// label1.add(option.label);
// } else {
// label1.clear();
// }
// debugPrint("Selected label: $label1, ${option.label}");
// }
// setState(() {
// _dropDownValue1 = label1;
// });
// },
// searchEnabled: true,
// networkConfig: NetworkConfig(
// url: '${Constants.url}/engagement',
// method: RequestMethod.get,
// headers: {
// 'Content-Type': 'application/json',
// },
// ),
// chipConfig: const ChipConfig(wrapType: WrapType.wrap),
// responseParser: (response) {
// final list = (response as List<dynamic>).map((e) {
// final item = e as Map<String, dynamic>;
// return ValueItem(
// label: item['hcpname'],
// value: item['id'].toString(),
// );
// }).toList();
// return Future.value(list);
// },
// responseErrorBuilder: ((context, body) {
// return const Padding(
// padding: EdgeInsets.all(16.0),
// child: Text('Error fetching the data'),
// );
// }),
// ),
// ),
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: MultiSelectDropDown.network(
// borderColor: Colors.black,
// fieldBackgroundColor: Colors.transparent,
// hint: "Select Main Therapeutic Area",
// dropdownHeight: 300,
// onOptionSelected: (options) {
// debugPrint(options.toString());
// // String label = options[0].label;
// List<String> label1 = [];
// // var label;
// // debugPrint("checkking " + label);
// // for (var option in options) {
// // label1.add(option.label);
// // debugPrint("Selected label: $label");
// // }
// for (var option in options) {
// print("Options_isssssss: ${option}");
// if (option.label.isNotEmpty) {
// label1.add(option.label);
// } else {
// label1.clear();
// }
// debugPrint("Selected label: $label1, ${option.label}");
// }
// setState(() {
// _dropDownValue2 = label1;
// });
// },
// searchEnabled: true,
// networkConfig: NetworkConfig(
// url: '${Constants.url}/engagement',
// method: RequestMethod.get,
// headers: {
// 'Content-Type': 'application/json',
// },
// ),
// chipConfig: const ChipConfig(wrapType: WrapType.wrap),
// responseParser: (response) {
// final list = (response as List<dynamic>).map((e) {
// final item = e as Map<String, dynamic>;
// return ValueItem(
// label: item['main thereutic area'],
// value: item['id'].toString(),
// );
// }).toList();
// return Future.value(list);
// },
// responseErrorBuilder: ((context, body) {
// return const Padding(
// padding: EdgeInsets.all(16.0),
// child: Text('Error fetching the data'),
// );
// }),
// ),
// ),
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: MultiSelectDropDown.network(
// borderColor: Colors.black,
// fieldBackgroundColor: Colors.transparent,
// hint: "Select Relationship with Chiesi",
// dropdownHeight: 300,
// onOptionSelected: (options) {
// debugPrint(options.toString());
// // String label = options[0].label;
// List<String> label1 = [];
// // var label;
// // debugPrint("checkking " + label);
// // for (var option in options) {
// // label1.add(option.label);
// // debugPrint("Selected label: $label");
// // }
// for (var option in options) {
// print("Options_isssssss: ${option}");
// if (option.label.isNotEmpty) {
// label1.add(option.label);
// } else {
// label1.clear();
// }
// debugPrint("Selected label: $label1, ${option.label}");
// }
// setState(() {
// _dropDownValue3 = label1;
// });
// },
// searchEnabled: true,
// networkConfig: NetworkConfig(
// url: '${Constants.url}/engagement',
// method: RequestMethod.get,
// headers: {
// 'Content-Type': 'application/json',
// },
// ),
// chipConfig: const ChipConfig(wrapType: WrapType.wrap),
// responseParser: (response) {
// final list = (response as List<dynamic>).map((e) {
// final item = e as Map<String, dynamic>;
// return ValueItem(
// label: item['relationship with chiesi'],
// value: item['id'].toString(),
// );
// }).toList();
// return Future.value(list);
// },
// responseErrorBuilder: ((context, body) {
// return const Padding(
// padding: EdgeInsets.all(16.0),
// child: Text('Error fetching the data'),
// );
// }),
// ),
// ),
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: MultiSelectDropDown.network(
// borderColor: Colors.black,
// fieldBackgroundColor: Colors.transparent,
// hint: "Select Level of Engagement",
// dropdownHeight: 300,
// onOptionSelected: (options) {
// debugPrint(options.toString());
// // String label = options[0].label.toString();
// List<String> label1 = [];
// // var label;
// // debugPrint("checkking " + label);
// //debugPrint("checkking " + label.isNotEmpty);
// // if (label.isNotEmpty) {
// for (var option in options) {
// print("Options_isssssss: ${option}");
// if (option.label.isNotEmpty) {
// label1.add(option.label);
// } else {
// label1.clear();
// }
// debugPrint("Selected label: $label1, ${option.label}");
// }
// // } else {
// // debugPrint("DESelected label: $label");
// // label1.clear();
// // }
// setState(() {
// _dropDownValue4 = label1;
// });
// },
// searchEnabled: true,
// networkConfig: NetworkConfig(
// url: '${Constants.url}/engagement',
// method: RequestMethod.get,
// headers: {
// 'Content-Type': 'application/json',
// },
// ),
// chipConfig: const ChipConfig(wrapType: WrapType.wrap),
// responseParser: (response) {
// final list = (response as List<dynamic>).map((e) {
// final item = e as Map<String, dynamic>;
// return ValueItem(
// label: item['level of engagement'],
// value: item['id'].toString(),
// );
// }).toList();
// return Future.value(list);
// },
// responseErrorBuilder: ((context, body) {
// return const Padding(
// padding: EdgeInsets.all(16.0),
// child: Text('Error fetching the data'),
// );
// }),
// ),
// ),
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: OutlinedButton(
// onPressed: () {
// print(
// "$_dropDownValue1 , $_dropDownValue2, $_dropDownValue3, $_dropDownValue4");
// filtermulti(_dropDownValue1, _dropDownValue2, _dropDownValue3,
// _dropDownValue4, start, end);
// // filtermulti(_dropDownValue1 ?? null, _dropDownValue2 ?? null,
// // _dropDownValue3 ?? null, _dropDownValue4 ?? null);
// // setState(() {
// // // searchQuery = query;
// // filteredList = eng
// // .where((item) => item['level of engagement']
// // .toLowerCase()
// // .contains(_dropDownValue4!.toLowerCase())||
// // item['relationship with chiesi'].toLowerCase().contains(_dropDownValue3!.toLowerCase()) ||
// // item['main thereutic area'].toLowerCase().contains(_dropDownValue2!.toLowerCase())||
// // item['recorded by'].toLowerCase().contains(_dropDownValue1!.toLowerCase()) )
// // .toList();
// // });
// },
// child: Text(
// 'Apply Filters',
// style: TextStyle(color: Constants.k2color),
// ),
// style: OutlinedButton.styleFrom(
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(12),
// ),
// ),
// ),
// ),
// ],
// ),
// //child: // Populate the Drawer in the next step.
// ),
// body: Column(children: [
// Padding(
// padding: const EdgeInsets.only(
// top: 15.0, bottom: 0.0, left: 20.0, right: 20.0),
// child: Center(
// child: TextField(
// controller: _searchController,
// onChanged: _filterList,
// decoration: InputDecoration(
// fillColor: Constants.k2color,
// contentPadding: EdgeInsets.symmetric(vertical: 9.0),
// border: OutlineInputBorder(),
// labelText: ' Search',
// prefixIcon: Icon(
// Icons.search,
// ),
// ),
// ),
// ),
// ),
// Scrollbar(
// child: SingleChildScrollView(
// scrollDirection: Axis.horizontal,
// child: Container(
// // width:
// // MediaQuery.of(context)
// // .size
// // .width,
// constraints:
// BoxConstraints(minWidth: MediaQuery.of(context).size.width),
// color: Colors.white,
// child: DataTable(
// showCheckboxColumn: false,
// columns: const [
// // DataColumn(
// // label: Expanded(
// // child: Text(
// // '',
// // softWrap:
// // true))),
// DataColumn(
// label: Expanded(
// child: Text(
// 'Main Therapeutic Area',
// style: TextStyle(fontWeight: FontWeight.w600),
// ),
// )),
// // DataColumn(
// // label: Expanded(
// // child: Text(
// // 'Department'))),
// // DataColumn(
// // label: Expanded(
// // child: Text(
// // 'Role'))),
// DataColumn(
// label: Expanded(
// child: Text('Date',
// style: TextStyle(fontWeight: FontWeight.w600)))),
// // DataColumn(
// // label: Expanded(
// // child: Text(
// // 'Org Type'))),
// // DataColumn(
// // label: Expanded(
// // child: Text(
// // 'Eng Type'))),
// // Add more columns as needed
// ],
// rows: List.generate(
// filteredList.length,
// (index) => DataRow(
// onSelectChanged: (value) {
// // =======> Use onSelectChanged for tab
// // print("message ${eng[index]}");
// // bsheet(
// // publication_data[
// // index]);
// showModalBottomSheet(
// useRootNavigator: true,
// isScrollControlled: false,
// enableDrag: true,
// useSafeArea: true,
// constraints: const BoxConstraints(
// maxWidth: double.infinity,
// ),
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.vertical(
// top: Radius.circular(0),
// ),
// ),
// clipBehavior: Clip.antiAliasWithSaveLayer,
// context: context,
// builder: (context) {
// return bsheet(filteredList[index]);
// },
// );
// // showBottomSheet(
// // context:
// // context,
// // builder:
// // (BuildContext
// // context) {
// // return bsheet(
// // publication_data[
// // index]); // returns your BottomSheet widget
// // });
// },
// color: MaterialStateProperty.resolveWith<Color?>(
// (Set<MaterialState> states) {
// if (index.isEven) {
// return Colors.grey.withOpacity(0.1);
// }
// return null;
// }),
// cells: [
// DataCell(Text(
// filteredList[index]['main thereutic area'].toString(),
// softWrap: true)),
// // DataCell(Text(
// // affiliation_data[
// // index]
// // [
// // 'dept']
// // .toString(),
// // softWrap:
// // true)),
// // DataCell(Text(
// // affiliation_data[
// // index]
// // [
// // 'role']
// // .toString(),
// // softWrap:
// // true)),
// DataCell(Text(filteredList[index]['date'].toString(),
// softWrap: true)),
// // DataCell(Text(
// // affiliation_data[
// // index]
// // [
// // 'org_type']
// // .toString(),
// // softWrap:
// // true)),
// // DataCell(Text(
// // affiliation_data[
// // index]
// // [
// // 'emg_type']
// // .toString(),
// // softWrap:
// // true)),
// // Add more DataCells as needed
// ],
// ),
// ),
// ),
// ),
// ),
// ),
// ]),
// );
// }
// Future<Null> _selectDate(BuildContext context) async {
// final DateTime? picked = await showDatePicker(
// context: context,
// initialDate: selectedDate,
// firstDate: DateTime(1901, 1),
// lastDate: DateTime(2100));
// if (picked != null && picked != selectedDate) {
// setState(() {
// selectedDate = picked;
// String convertedDateTime =
// "${picked.day.toString().padLeft(2, '0')}-${picked.month.toString().padLeft(2, '0')}-${picked.year.toString()}";
// // widget.textController.value = TextEditingValue(text: picked.toString());
// startController.value = TextEditingValue(text: convertedDateTime);
// // textController1.value = TextEditingValue(text: convertedDateTime);
// start = convertedDateTime;
// print("Iam__Start: $start");
// });
// }
// }
// Future<Null> _selectDate1(BuildContext context) async {
// final DateTime? picked = await showDatePicker(
// context: context,
// initialDate: selectedDate,
// firstDate: DateTime(1901, 1),
// lastDate: DateTime(2100));
// if (picked != null && picked != selectedDate) {
// setState(() {
// selectedDate = picked;
// String convertedDateTime =
// "${picked.day.toString().padLeft(2, '0')}-${picked.month.toString().padLeft(2, '0')}-${picked.year.toString()}";
// // widget.textController.value = TextEditingValue(text: picked.toString());
// endController.value = TextEditingValue(text: convertedDateTime);
// end = convertedDateTime;
// });
// }
// }
// String _convertDateStringToISO(String dateString) {
// DateTime dateTime = DateTime.parse(DateTime.tryParse(
// dateString.split('/').reversed.join('-') + 'T00:00:00Z')!
// .toIso8601String());
// print("dateTimedateTime: $dateTime");
// return dateTime.toIso8601String();
// }
// // List<String> filterList(List<String> list) {
// // return list
// // .where((item) => list.any((keyword) => item.contains(keyword)))
// // .toList();
// // }
// }