DiscoverModule/lib/contacts_module/ui_screen/ranking.dart

577 lines
20 KiB
Dart

// import 'dart:convert';
// import 'dart:io';
// // import 'dart:js_interop';
// import 'package:discover_module/custom_widget/floating_btn.dart';
// import 'package:discover_module/custom_widget/show_alert.dart';
// import 'package:discover_module/hive_fun.dart';
// import 'package:discover_module/provider_class/hcp%20_provider.dart';
// import 'package:discover_module/ui_screen/contacts.dart';
// import 'package:discover_module/ui_screen/filters_menu.dart';
// import 'package:discover_module/ui_screen/interactionform/NewtworkConnectivity.dart';
// import 'package:flutter/foundation.dart';
// import 'package:flutter/foundation.dart' show kIsWeb;
// import 'package:flutter/material.dart';
// import 'package:hive_flutter/hive_flutter.dart';
// import 'package:open_file/open_file.dart';
// import 'package:path_provider/path_provider.dart';
// import 'package:provider/provider.dart';
// import 'package:syncfusion_flutter_xlsio/xlsio.dart';
// import 'package:universal_html/html.dart' show AnchorElement;
// List<_Row> _rows = [];
// bool isOnline1 = false;
// class Ranking extends StatefulWidget {
// @override
// State<Ranking> createState() => _RankingState();
// }
// class _RankingState extends State<Ranking> {
// late _DataSource _dataSource;
// List<int> selectedno = [];
// @override
// void initState() {
// super.initState();
// print("hii_initState");
// setupConnectivityListener();
// gethcpdata();
// _dataSource = _DataSource(context); // Initialize _DataSource
// }
// NetworkConnectivity networkConnectivity = NetworkConnectivity();
// Future<void> setupConnectivityListener() async {
// while (true) {
// bool isOnline = await networkConnectivity.isInternetAvailable();
// print('Internet available: $isOnline');
// // Perform actions based on connectivity status
// await Future.delayed(Duration(seconds: 10));
// }
// }
// @override
// Widget build(BuildContext context) {
// return SafeArea(
// child: Scaffold(
// body: ListView(
// padding: const EdgeInsets.all(3),
// children: [
// PaginatedDataTable(
// header: const Text(
// 'HCP RANKING',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 18.0,
// fontStyle: FontStyle.normal),
// ),
// showFirstLastButtons: true,
// showEmptyRows: false,
// showCheckboxColumn: true,
// actions: [
// IconButton(
// onPressed: () {
// _createExcel();
// },
// icon: const Icon(Icons.download,
// color: Color.fromARGB(255, 0, 71, 132)))
// ],
// rowsPerPage: 5,
// columns: const [
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Name',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Tier',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Rank',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Score',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Event',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Affliations',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Publications',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// DataColumn(
// label: FittedBox(
// fit: BoxFit.scaleDown,
// child: Text('Trails',
// style: TextStyle(
// fontWeight: FontWeight.bold,
// fontSize: 14.0,
// fontStyle: FontStyle.normal)),
// )),
// ],
// source: _dataSource,
// ),
// ],
// ),
// floatingActionButton: Visibility(
// visible: true,
// child: FloatingBtn(
// icon: Icons.add,
// title: "add",
// onTap: () async {
// List<int> selectedRowIds = _dataSource.getSelectedRowIds();
// // Do something with selectedRowIds
// print('Selected Row IDstrndsss: $selectedRowIds');
// if (selectedRowIds.isEmpty) {
// showDialog(
// context: context,
// builder: (_) {
// return Alert(
// data: "Please Select the user",
// onPressed: () {
// Navigator.of(context).pop();
// print('OK button pressed');
// },
// );
// });
// } else {
// for (int i = 0; i < selectedRowIds.length; i++) {
// print('The id id : ${selectedRowIds[i]}');
// //List<_Row> _rows = [];
// final row = _rows[selectedRowIds[i] - 1];
// print(
// "checking_value_istrends: ${selectedRowIds[i]},${row.valueA}");
// // selectedno.add(selectedRowIds[i]);
// // HiveFunctions.addno(selectedRowIds[i]);
// // _contactbox.put(i, selectedRowIds[i]);
// HiveFunctions.createUser({
// "id": selectedRowIds[i],
// "name": row.valueA,
// "org": row.org,
// "addr": row.addr,
// "phone": row.mno,
// "phone_no": row.mno,
// "email": row.valueC,
// "affiliations_count": row.valueG,
// "events_count": row.valueF,
// "publications_count": row.valueH,
// "trail_count": "1",
// "summarry": row.smry,
// "license_no": row.lin,
// "p_suffix": row.suffix,
// "speciality": row.spl,
// "sub_speciality": row.sub_spl,
// });
// }
// showDialog(
// context: context,
// builder: (_) {
// return Alert(
// data: "User Added Successfully",
// onPressed: () {
// Navigator.of(context).pop();
// // Navigator.push(context,
// // MaterialPageRoute(builder: (_) => Contacts()));
// },
// );
// });
// }
// },
// )),
// ),
// );
// }
// Future<void> _createExcel() async {
// //Create an Excel document.
// //Creating a workbook.
// final Workbook workbook = Workbook();
// //Accessing via index
// final Worksheet sheet = workbook.worksheets[0];
// // sheet.getRangeByName('A1').setText('pooja');
// /////////////////////////////////////////////////////////////////////////////
// sheet.getRangeByName('A1').setText('Name');
// sheet.getRangeByName('A2').setText('Gerosa, Gino');
// sheet.getRangeByName('A3').setText('Gerosa, Gino');
// sheet.getRangeByName('A4').setText('Gerosa, Gino');
// final Style headingStyle = workbook.styles.add('HeadingStyle');
// headingStyle.bold = true;
// headingStyle.hAlign = HAlignType.center;
// headingStyle.wrapText = true;
// sheet.getRangeByName('B1').setText('Tier');
// sheet.getRangeByName('B2').setText("Tier1");
// sheet.getRangeByName('B3').setText("Tier1");
// sheet.getRangeByName('B4').setText("Tier1");
// sheet.getRangeByName('C1').setText('Rank');
// sheet.getRangeByName('C2').setNumber(1);
// sheet.getRangeByName('C3').setNumber(1);
// sheet.getRangeByName('C4').setNumber(1);
// sheet.getRangeByName('D1').setText('Score');
// sheet.getRangeByName('D2').setNumber(0);
// sheet.getRangeByName('D3').setNumber(0);
// sheet.getRangeByName('D4').setNumber(0);
// sheet.getRangeByName('E1').setText('Event');
// sheet.getRangeByName('E2').setNumber(0);
// sheet.getRangeByName('E3').setNumber(0);
// sheet.getRangeByName('E4').setNumber(0);
// sheet.getRangeByName('F1').setText('Affiliations');
// sheet.getRangeByName('F2').setNumber(0);
// sheet.getRangeByName('F3').setNumber(0);
// sheet.getRangeByName('F4').setNumber(0);
// sheet.getRangeByName('G1').setText('Publications');
// sheet.getRangeByName('G2').setNumber(0);
// sheet.getRangeByName('G3').setNumber(0);
// sheet.getRangeByName('G4').setNumber(0);
// sheet.getRangeByName('H1').setText('Trails');
// sheet.getRangeByName('H2').setNumber(0);
// sheet.getRangeByName('H3').setNumber(0);
// sheet.getRangeByName('H4').setNumber(0);
// //Defining a global style with properties.
// final Style globalStyle = workbook.styles.add('globalStyle');
// //globalStyle.backColor = '#37D8E9';
// globalStyle.fontName = 'Times New Roman';
// globalStyle.fontSize = 12;
// // globalStyle.fontColor = '#C67878';
// globalStyle.fontColor = '#C67878';
// globalStyle.italic = true;
// globalStyle.bold = true;
// globalStyle.underline = true;
// globalStyle.wrapText = true;
// globalStyle.hAlign = HAlignType.center;
// globalStyle.vAlign = VAlignType.center;
// globalStyle.borders.all.lineStyle = LineStyle.thick;
// // globalStyle.borders.all.color = '#9954CC';
// final Style globalStyle1 = workbook.styles.add('globalStyle1');
// globalStyle1.fontSize = 14;
// // globalStyle1.fontColor = '#362191';
// globalStyle1.hAlign = HAlignType.center;
// globalStyle1.vAlign = VAlignType.center;
// globalStyle1.borders.bottom.lineStyle = LineStyle.thin;
// //globalStyle1.borders.bottom.color = '#829193';
// globalStyle1.numberFormat = '0.00';
// final List<int> bytes = workbook.saveSync();
// print("hii");
// if (kIsWeb) {
// AnchorElement(
// href:
// 'data:application/octet-stream;charset=utf-16le;base64,${base64.encode(bytes)}')
// ..setAttribute('download', 'Output.xlsx')
// ..click();
// } else {
// // final String path = (await getApplicationDocumentsDirectory()).path;
// //final directory = await getExternalStorageDirectory();
// Directory? directory = Platform.isAndroid
// ? await getExternalStorageDirectory()
// : await getApplicationDocumentsDirectory();
// final path = directory!.path;
// final String filename =
// Platform.isWindows ? '$path\\Output.xlsx' : '$path/Output.xlsx';
// // final String filename = '$path/Output.xlsx';
// final File file = File(filename);
// await file.writeAsBytes(bytes, flush: true);
// OpenFile.open(filename);
// }
// }
// void gethcpdata() {
// // final data = Provider.of<hcpProvider>(context, listen: false);
// }
// }
// class _Row {
// _Row({
// required this.identifier,
// required this.valueA,
// required this.valueC,
// required this.valueD,
// required this.valueE,
// required this.valueF,
// required this.valueG,
// required this.valueH,
// required this.valueI,
// required this.selected,
// this.org,
// this.mno,
// this.smry,
// this.lin,
// this.suffix,
// this.spl,
// this.sub_spl,
// this.addr, // Add selected parameter
// });
// final int identifier;
// final String valueA;
// final String valueC;
// final String valueD;
// final String valueE;
// final String valueF;
// final String valueG;
// final String valueH;
// final String valueI;
// bool selected = false;
// String? org;
// String? mno;
// String? smry;
// String? lin;
// String? suffix;
// String? spl;
// String? sub_spl;
// String? addr;
// }
// class _DataSource extends DataTableSource {
// final BuildContext context;
// // List<_Row> _rows = [];
// // late List<int> _selectedRowsIndexes = []; // List to track selected rows
// final List<int> _selectedRowIds = [];
// List list = [];
// _DataSource(this.context) {
// render_hcpdata();
// // _rows = <_Row>[
// // for (int i = 0; i < 20; i++)
// // _Row(
// // i, 'Gerosa, Gino', 'Tier1', '1', '0', '0', '0', '0', '0', check(i)),
// // ];
// // }
// }
// List<int> getSelectedRowIds() {
// return _selectedRowIds; // Return a copy to prevent direct modification
// }
// int _selectedCount = 0;
// @override
// DataRow? getRow(int index) {
// assert(index >= 0);
// if (index >= _rows.length) return null;
// final row = _rows[index];
// return DataRow.byIndex(
// index: index,
// selected: row.selected,
// onSelectChanged: (value) {
// if (row.selected != value) {
// // _selectedCount += value! ? 1 : -1;
// // assert(_selectedCount >= 0);
// row.selected = value!;
// if (value) {
// print("Selected");
// _selectedRowIds.add(row.identifier); // Add the row ID to the list
// print("Selected_selectedRowIds :$_selectedRowIds");
// } else {
// _selectedRowIds
// .remove(row.identifier); // Remove the row ID from the list
// }
// notifyListeners();
// print("Selectedddd_is $value");
// print("Selectedddd_value ${row.valueA}");
// }
// },
// cells: [
// DataCell(
// Text(row.valueA),
// onTap: () {
// print("hiii Data cell tap ${row}");
// // Navigator.push(
// // context, MaterialPageRoute(builder: (context) => Profile()));
// },
// ),
// DataCell(Text(row.valueC)),
// DataCell(Text(row.valueD.toString())),
// DataCell(Text(row.valueE)),
// DataCell(Text(row.valueF)),
// DataCell(Text(row.valueG)),
// DataCell(Text(row.valueH)),
// DataCell(Text(row.valueI)),
// ],
// );
// }
// @override
// int get rowCount => _rows.length;
// @override
// bool get isRowCountApproximate => false;
// @override
// int get selectedRowCount => _selectedCount;
// bool check(int i) {
// // print("I_am_i: $i");
// // print("_selectedRowIds_i: ${HiveFunctions.getno()}");
// // //HiveFunctions.getno();
// // if (HiveFunctions.getno().contains(i)) {
// // print("Iam_in: $i");
// // return true;
// // }
// return false;
// }
// Future<void> render_hcpdata() async {
// NetworkConnectivity networkConnectivity = NetworkConnectivity();
// // bool isOnline = await networkConnectivity.isInternetAvailable();
// bool isOnline = await networkConnectivity.isInternetAvailable();
// print('Internet available: $isOnline');
// print("RankingPage_isOnline: $isOnline");
// if (isOnline) {
// final hcpdata = Provider.of<hcpProvider>(context, listen: false);
// // await hcpdata.getHCPProvider();
// final hcplist = hcpdata.list;
// print("LookingHcpList: $hcplist");
// // _rows = <_Row>[
// // for (int i = 0; i < 20; i++)
// // _Row(
// // i, 'Gerosa, Gino', 'Tier1', '1', '0', '0', '0', '0', '0', check(i)),
// // ];
// _rows = hcplist
// .map((e) => _Row(
// identifier: e['id'],
// valueA: e['name'],
// valueC: e['email'],
// valueD: e['rank'].toString(),
// valueE: e['score'].toString(),
// valueF: e['events_count'].toString(),
// valueG: e['affiliations_count'].toString(),
// valueH: e['publications_count'].toString(),
// valueI: '0',
// selected: check(e['id']),
// org: "Aissel",
// mno: e['phone_no'].toString(),
// smry: e['summarry'],
// lin: e['license_no'].toString(),
// suffix: e['p_suffix'],
// spl: e['speciality'],
// sub_spl: e['sub_speciality'],
// addr: e['addr'],
// ))
// .toList();
// notifyListeners();
// } else {
// print("get_Storeddata: ${HiveFunctions.gethcpdata()}");
// list = HiveFunctions.gethcpdata().toList();
// // debugPrint(HiveFunctions.gethcpdata());
// // List offlinedata = HiveFunctions.gethcpdata();
// print("offline_data_is: ");
// print("offline_data_is: $list");
// _rows = list
// .map((e) => _Row(
// identifier: e['id'],
// valueA: e['name'],
// valueC: e['email'],
// valueD: e['rank'].toString(),
// valueE: e['score'].toString(),
// valueF: e['events_count'].toString(),
// valueG: e['affiliations_count'].toString(),
// valueH: e['publications_count'].toString(),
// valueI: '0',
// selected: check(e['id']),
// org: "Aissel",
// mno: e['phone_no'].toString(),
// smry: e['sumry'],
// lin: e['licno'].toString(),
// suffix: e['suffix'],
// spl: e['spl'],
// sub_spl: e['sub_sp'],
// ))
// .toList();
// notifyListeners();
// }
// }
// @override
// void dispose() {
// // TODO: implement dispose
// super.dispose();
// }
// }