2024-06-27 08:38:43 +00:00
|
|
|
// 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/ui_screen/contacts.dart';
|
|
|
|
// import 'package:discover_module/ui_screen/profile.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:syncfusion_flutter_xlsio/xlsio.dart';
|
|
|
|
// import 'package:universal_html/html.dart' show AnchorElement;
|
|
|
|
|
|
|
|
// 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");
|
|
|
|
// _dataSource = _DataSource(context); // Initialize _DataSource
|
|
|
|
// }
|
|
|
|
|
|
|
|
// @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]}');
|
|
|
|
|
|
|
|
// print("checking_value_istrends: ${selectedRowIds[i]}");
|
|
|
|
|
|
|
|
// // selectedno.add(selectedRowIds[i]);
|
|
|
|
|
|
|
|
// HiveFunctions.addno(selectedRowIds[i]);
|
|
|
|
|
|
|
|
// // _contactbox.put(i, selectedRowIds[i]);
|
|
|
|
|
|
|
|
// HiveFunctions.createUser({
|
|
|
|
// "name": "Gerosa,Gino",
|
|
|
|
// "org": "Azienda Ospedaliera di Padova",
|
|
|
|
// "adrr": "Via Giustiniani 2, Padova, Veneto 35128, Italy",
|
|
|
|
// "phone": "+390498212410X12",
|
|
|
|
// "Pphone": "+390498212410X12",
|
|
|
|
// "email": "Gerosa,Gino@gmail.com",
|
|
|
|
// "affno": "75",
|
|
|
|
// "eveno": "8",
|
|
|
|
// "pubno": "251",
|
|
|
|
// "trailno": "1"
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// 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';
|
|
|
|
|
|
|
|
// //Apply GlobalStyle
|
|
|
|
// // sheet.getRangeByName('A1:D1').cellStyle = globalStyle;
|
|
|
|
|
|
|
|
// // //Apply GlobalStyle1
|
|
|
|
// // sheet.getRangeByName('B2:D4').cellStyle = globalStyle1;
|
|
|
|
// //////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
// 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);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// class HiveFunctions {
|
|
|
|
// // String userHiveBox="User Box";
|
|
|
|
// // Box which will use to store the things
|
|
|
|
// static final _contactbox = Hive.box("mycontact");
|
|
|
|
// static var box1 = Hive.box('checkvalue');
|
|
|
|
|
|
|
|
// static createUser(Map data) {
|
|
|
|
// _contactbox.add(data);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// static List getAllUsers() {
|
|
|
|
// final data = _contactbox.keys.map((key) {
|
|
|
|
// final value = _contactbox.get(key);
|
|
|
|
// print("Checking_Name : $value");
|
|
|
|
// return {
|
|
|
|
// "name": value["name"],
|
|
|
|
// "org": value["org"],
|
|
|
|
// "adrr": value["adrr"],
|
|
|
|
// "phone": value["phone"],
|
|
|
|
// "Pphone": value["Pphone"],
|
|
|
|
// "email": value["email"],
|
|
|
|
// "affno": value["affno"],
|
|
|
|
// "eveno": value["eveno"],
|
|
|
|
// "pubno": value["pubno"],
|
|
|
|
// "trailno": value["trailno"]
|
|
|
|
// };
|
|
|
|
// }).toList();
|
|
|
|
|
|
|
|
// return data.reversed.toList();
|
|
|
|
// }
|
|
|
|
|
|
|
|
// static List getindexUsers() {
|
|
|
|
// final data = _contactbox.keys.map((key) {
|
|
|
|
// final value = _contactbox.get(key);
|
|
|
|
// print("Checking_Name : $value");
|
|
|
|
// return {
|
|
|
|
// "name": value["name"],
|
|
|
|
// "org": value["org"],
|
|
|
|
// "adrr": value["adrr"],
|
|
|
|
// "phone": value["phone"],
|
|
|
|
// "Pphone": value["Pphone"],
|
|
|
|
// "email": value["email"],
|
|
|
|
// "affno": value["affno"],
|
|
|
|
// "eveno": value["eveno"],
|
|
|
|
// "pubno": value["pubno"],
|
|
|
|
// "trailno": value["trailno"]
|
|
|
|
// };
|
|
|
|
// }).toList();
|
|
|
|
|
|
|
|
// return data.reversed.toList();
|
|
|
|
// }
|
|
|
|
|
|
|
|
// static addno(int selectedRowId) {
|
|
|
|
// // final box1 = Hive.box("mycontact");
|
|
|
|
|
|
|
|
// print("SelectedStoredvaluessss: $selectedRowId");
|
|
|
|
|
|
|
|
// box1.add(selectedRowId);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// static getno() {
|
|
|
|
// // final box1 = Hive.box("mycontact");
|
|
|
|
|
|
|
|
// return box1.values;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// class _Row {
|
|
|
|
// _Row(
|
|
|
|
// this.identifier,
|
|
|
|
// this.valueA,
|
|
|
|
// this.valueC,
|
|
|
|
// this.valueD,
|
|
|
|
// this.valueE,
|
|
|
|
// this.valueF,
|
|
|
|
// this.valueG,
|
|
|
|
// this.valueH,
|
|
|
|
// this.valueI,
|
|
|
|
// this.selected, // 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;
|
|
|
|
// }
|
|
|
|
|
|
|
|
// class _DataSource extends DataTableSource {
|
|
|
|
// final BuildContext context;
|
|
|
|
// late List<_Row> _rows;
|
|
|
|
// // late List<int> _selectedRowsIndexes = []; // List to track selected rows
|
|
|
|
// final List<int> _selectedRowIds = [];
|
|
|
|
|
|
|
|
// _DataSource(this.context) {
|
|
|
|
// _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.valueA}");
|
|
|
|
|
|
|
|
// 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;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
2024-05-20 10:29:02 +00:00
|
|
|
import 'dart:convert';
|
|
|
|
import 'dart:io';
|
2024-06-12 09:29:51 +00:00
|
|
|
// import 'dart:js_interop';
|
2024-05-20 10:29:02 +00:00
|
|
|
|
|
|
|
import 'package:discover_module/custom_widget/floating_btn.dart';
|
|
|
|
import 'package:discover_module/custom_widget/show_alert.dart';
|
2024-06-27 08:38:43 +00:00
|
|
|
import 'package:discover_module/hive_fun.dart';
|
|
|
|
import 'package:discover_module/provider_class/hcp%20_provider.dart';
|
2024-06-12 09:29:51 +00:00
|
|
|
import 'package:discover_module/ui_screen/contacts.dart';
|
2024-06-27 08:38:43 +00:00
|
|
|
import 'package:discover_module/ui_screen/filters_menu.dart';
|
|
|
|
import 'package:discover_module/ui_screen/interactionform/NewtworkConnectivity.dart';
|
2024-05-20 10:29:02 +00:00
|
|
|
import 'package:discover_module/ui_screen/profile.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';
|
2024-06-27 08:38:43 +00:00
|
|
|
import 'package:provider/provider.dart';
|
2024-05-20 10:29:02 +00:00
|
|
|
import 'package:syncfusion_flutter_xlsio/xlsio.dart';
|
|
|
|
import 'package:universal_html/html.dart' show AnchorElement;
|
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
List<_Row> _rows = [];
|
|
|
|
|
2024-05-20 10:29:02 +00:00
|
|
|
class Ranking extends StatefulWidget {
|
|
|
|
@override
|
|
|
|
State<Ranking> createState() => _RankingState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _RankingState extends State<Ranking> {
|
2024-06-10 11:11:00 +00:00
|
|
|
late _DataSource _dataSource;
|
2024-05-20 10:29:02 +00:00
|
|
|
|
2024-06-10 11:11:00 +00:00
|
|
|
List<int> selectedno = [];
|
2024-05-20 10:29:02 +00:00
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
print("hii_initState");
|
2024-06-27 08:38:43 +00:00
|
|
|
|
|
|
|
gethcpdata();
|
2024-05-20 10:29:02 +00:00
|
|
|
_dataSource = _DataSource(context); // Initialize _DataSource
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
2024-06-10 11:11:00 +00:00
|
|
|
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,
|
2024-05-20 10:29:02 +00:00
|
|
|
),
|
2024-06-10 11:11:00 +00:00
|
|
|
],
|
|
|
|
),
|
|
|
|
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');
|
|
|
|
|
2024-06-12 09:29:51 +00:00
|
|
|
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]}');
|
2024-06-27 08:38:43 +00:00
|
|
|
//List<_Row> _rows = [];
|
|
|
|
|
|
|
|
final row = _rows[selectedRowIds[i] - 1];
|
2024-06-12 09:29:51 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
print(
|
|
|
|
"checking_value_istrends: ${selectedRowIds[i]},${row.valueA}");
|
2024-06-12 09:29:51 +00:00
|
|
|
|
|
|
|
// selectedno.add(selectedRowIds[i]);
|
|
|
|
|
|
|
|
HiveFunctions.addno(selectedRowIds[i]);
|
|
|
|
|
|
|
|
// _contactbox.put(i, selectedRowIds[i]);
|
|
|
|
|
|
|
|
HiveFunctions.createUser({
|
2024-06-27 08:38:43 +00:00
|
|
|
"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,
|
2024-06-10 11:11:00 +00:00
|
|
|
});
|
2024-06-12 09:29:51 +00:00
|
|
|
}
|
|
|
|
showDialog(
|
|
|
|
context: context,
|
|
|
|
builder: (_) {
|
|
|
|
return Alert(
|
|
|
|
data: "User Added Successfully",
|
|
|
|
onPressed: () {
|
|
|
|
Navigator.of(context).pop();
|
|
|
|
// Navigator.push(context,
|
|
|
|
// MaterialPageRoute(builder: (_) => Contacts()));
|
|
|
|
},
|
|
|
|
);
|
|
|
|
});
|
|
|
|
}
|
2024-06-10 11:11:00 +00:00
|
|
|
},
|
|
|
|
)),
|
|
|
|
),
|
2024-05-20 10:29:02 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
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');
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
2024-05-21 08:40:44 +00:00
|
|
|
sheet.getRangeByName('A1').setText('Name');
|
|
|
|
sheet.getRangeByName('A2').setText('Gerosa, Gino');
|
|
|
|
sheet.getRangeByName('A3').setText('Gerosa, Gino');
|
|
|
|
sheet.getRangeByName('A4').setText('Gerosa, Gino');
|
2024-05-20 10:29:02 +00:00
|
|
|
|
|
|
|
final Style headingStyle = workbook.styles.add('HeadingStyle');
|
|
|
|
headingStyle.bold = true;
|
|
|
|
headingStyle.hAlign = HAlignType.center;
|
|
|
|
headingStyle.wrapText = true;
|
2024-05-21 08:40:44 +00:00
|
|
|
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);
|
2024-05-20 10:29:02 +00:00
|
|
|
|
|
|
|
//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;
|
2024-05-20 11:46:56 +00:00
|
|
|
//final directory = await getExternalStorageDirectory();
|
|
|
|
|
|
|
|
Directory? directory = Platform.isAndroid
|
|
|
|
? await getExternalStorageDirectory()
|
|
|
|
: await getApplicationDocumentsDirectory();
|
|
|
|
|
2024-05-20 10:29:02 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|
2024-06-27 08:38:43 +00:00
|
|
|
|
|
|
|
void gethcpdata() {
|
|
|
|
// final data = Provider.of<hcpProvider>(context, listen: false);
|
|
|
|
}
|
2024-05-20 10:29:02 +00:00
|
|
|
}
|
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// class HiveFunctions {
|
|
|
|
// // String userHiveBox="User Box";
|
|
|
|
// // Box which will use to store the things
|
|
|
|
// static final _contactbox = Hive.box("mycontact");
|
|
|
|
// static var box1 = Hive.box('checkvalue');
|
2024-05-20 10:29:02 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// static createUser(Map data) {
|
|
|
|
// _contactbox.add(data);
|
|
|
|
// }
|
2024-05-20 10:29:02 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// static List getAllUsers() {
|
|
|
|
// final data = _contactbox.keys.map((key) {
|
|
|
|
// final value = _contactbox.get(key);
|
|
|
|
// print("Checking_Name : $value");
|
|
|
|
// return {
|
|
|
|
// "name": value["name"],
|
|
|
|
// "org": value["org"],
|
|
|
|
// "adrr": value["adrr"],
|
|
|
|
// "phone": value["phone"],
|
|
|
|
// "Pphone": value["Pphone"],
|
|
|
|
// "email": value["email"],
|
|
|
|
// "affno": value["affno"],
|
|
|
|
// "eveno": value["eveno"],
|
|
|
|
// "pubno": value["pubno"],
|
|
|
|
// "trailno": value["trailno"]
|
|
|
|
// };
|
|
|
|
// }).toList();
|
2024-05-20 10:29:02 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// return data.reversed.toList();
|
|
|
|
// }
|
2024-06-10 11:11:00 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// static List getindexUsers() {
|
|
|
|
// final data = _contactbox.keys.map((key) {
|
|
|
|
// final value = _contactbox.get(key);
|
|
|
|
// print("Checking_Name : $value");
|
|
|
|
// return {
|
|
|
|
// "name": value["name"],
|
|
|
|
// "org": value["org"],
|
|
|
|
// "adrr": value["adrr"],
|
|
|
|
// "phone": value["phone"],
|
|
|
|
// "Pphone": value["Pphone"],
|
|
|
|
// "email": value["email"],
|
|
|
|
// "affno": value["affno"],
|
|
|
|
// "eveno": value["eveno"],
|
|
|
|
// "pubno": value["pubno"],
|
|
|
|
// "trailno": value["trailno"]
|
|
|
|
// };
|
|
|
|
// }).toList();
|
2024-06-10 11:11:00 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// return data.reversed.toList();
|
|
|
|
// }
|
2024-06-10 11:11:00 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// static addno(int selectedRowId) {
|
|
|
|
// // final box1 = Hive.box("mycontact");
|
2024-06-10 11:11:00 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// print("SelectedStoredvaluessss: $selectedRowId");
|
2024-06-10 11:11:00 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
// box1.add(selectedRowId);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// static getno() {
|
|
|
|
// // final box1 = Hive.box("mycontact");
|
|
|
|
|
|
|
|
// return box1.values;
|
|
|
|
// }
|
|
|
|
// }
|
2024-05-20 10:29:02 +00:00
|
|
|
|
|
|
|
class _Row {
|
2024-06-27 08:38:43 +00:00
|
|
|
_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
|
|
|
|
});
|
2024-05-20 10:29:02 +00:00
|
|
|
|
|
|
|
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;
|
2024-06-27 08:38:43 +00:00
|
|
|
String? org;
|
|
|
|
String? mno;
|
|
|
|
String? smry;
|
|
|
|
String? lin;
|
|
|
|
String? suffix;
|
|
|
|
String? spl;
|
|
|
|
String? sub_spl;
|
|
|
|
String? addr;
|
2024-05-20 10:29:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
class _DataSource extends DataTableSource {
|
|
|
|
final BuildContext context;
|
2024-06-27 08:38:43 +00:00
|
|
|
// List<_Row> _rows = [];
|
2024-05-20 10:29:02 +00:00
|
|
|
// late List<int> _selectedRowsIndexes = []; // List to track selected rows
|
2024-06-10 11:11:00 +00:00
|
|
|
final List<int> _selectedRowIds = [];
|
2024-05-20 10:29:02 +00:00
|
|
|
|
2024-06-27 08:38:43 +00:00
|
|
|
List list = [];
|
|
|
|
|
2024-05-20 10:29:02 +00:00
|
|
|
_DataSource(this.context) {
|
2024-06-27 08:38:43 +00:00
|
|
|
render_hcpdata();
|
|
|
|
// _rows = <_Row>[
|
|
|
|
// for (int i = 0; i < 20; i++)
|
|
|
|
// _Row(
|
|
|
|
// i, 'Gerosa, Gino', 'Tier1', '1', '0', '0', '0', '0', '0', check(i)),
|
|
|
|
// ];
|
|
|
|
// }
|
2024-05-20 10:29:02 +00:00
|
|
|
}
|
|
|
|
|
2024-06-10 11:11:00 +00:00
|
|
|
List<int> getSelectedRowIds() {
|
2024-05-20 10:29:02 +00:00
|
|
|
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");
|
2024-06-10 11:11:00 +00:00
|
|
|
_selectedRowIds.add(row.identifier); // Add the row ID to the list
|
2024-05-20 10:29:02 +00:00
|
|
|
print("Selected_selectedRowIds :$_selectedRowIds");
|
|
|
|
} else {
|
|
|
|
_selectedRowIds
|
2024-06-10 11:11:00 +00:00
|
|
|
.remove(row.identifier); // Remove the row ID from the list
|
2024-05-20 10:29:02 +00:00
|
|
|
}
|
|
|
|
notifyListeners();
|
|
|
|
|
|
|
|
print("Selectedddd_is $value");
|
|
|
|
print("Selectedddd_value ${row.valueA}");
|
|
|
|
}
|
|
|
|
},
|
|
|
|
cells: [
|
|
|
|
DataCell(
|
|
|
|
Text(row.valueA),
|
|
|
|
onTap: () {
|
|
|
|
print("hiii Data cell tap ${row.valueA}");
|
|
|
|
|
|
|
|
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;
|
2024-06-10 11:11:00 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
2024-06-27 08:38:43 +00:00
|
|
|
|
|
|
|
Future<void> render_hcpdata() async {
|
|
|
|
NetworkConnectivity networkConnectivity = NetworkConnectivity();
|
|
|
|
bool isOnline = await networkConnectivity.isInternetAvailable();
|
|
|
|
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
}
|
2024-05-20 10:29:02 +00:00
|
|
|
}
|