577 lines
20 KiB
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();
|
|
// }
|
|
// }
|