import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:unit2/bloc/offline/offline_passo/admin/assessment_level/assessment_level_bloc.dart'; import 'package:unit2/sevices/offline/offline_passo/admin/api_services/assessment_level_api_services.dart'; import 'package:unit2/theme-data.dart/colors.dart'; import '../../../../model/passo/assessment_level.dart'; import '../../../../sevices/offline/offline_passo/admin/sql_services/sql_services.dart'; class AssessmentLevelAdminPage extends StatefulWidget { const AssessmentLevelAdminPage(); @override _AssessmentLevelAdminPage createState() => _AssessmentLevelAdminPage(); } class _AssessmentLevelAdminPage extends State { final items = []; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: primary, title: const Text("Assessment Levels"), centerTitle: true, actions: [ TextButton( style: TextButton.styleFrom( textStyle: const TextStyle(fontSize: 15), ), onPressed: () async { // try { final result = await AssessmentLevelApiServices.instance.fetch(); // Assuming result is a List of JSON objects, convert them to AssessmentLevel objects. final assessmentLevels = result.map((json) => AssessmentLevel.fromJson(json)).toList(); // Insert each AssessmentLevel object into the local database. for (AssessmentLevel level in assessmentLevels) { print(level.assessmentLevels); print(level.genCode); await SQLServices.instance.createAssessmentLevel(level); } context.read().add(LoadAssessmentLevel()); // } catch (e) { // // Handle any errors that might occur during the API call or database insertion. // print("Error: $e"); // } }, child: const Text('SYNC'), ), ], ), body: BlocConsumer( listener: (context, state) { // TODO: implement listener if needed }, builder: (context, state) { if (state is AssessmentLevelLoaded) { return Column(children: [ Expanded( child: SingleChildScrollView( child: Padding( padding: EdgeInsets.all(15.0), child: Column( children: [ SingleChildScrollView( scrollDirection: Axis.horizontal, child: DataTable( columns: [ const DataColumn( label: Text('Classification ID'), ), const DataColumn( label: Text('Over'), ), const DataColumn( label: Text('Not Over'), ), const DataColumn( label: Text('Assessment Levels'), ), const DataColumn( label: Text('Gen Code'), ), ], rows: state.assLevel.map((dataRow) { return DataRow( cells: [ DataCell(Text(dataRow.classificationId .toString())), // Display classificationId DataCell(Text(dataRow.over ?? 'N/A')), // Use a default value if 'over' is null DataCell(Text(dataRow.notOver ?? 'N/A')), // Use a default value if 'notOver' is null DataCell(Text(dataRow.assessmentLevels ?? 'N/A')), // Use a default value if 'assessmentLevels' is null DataCell(Text(dataRow.genCode ?? 'N/A')), // Use a default value if 'genCode' is null ], ); }).toList(), ), ) ], ), ), ), ) ]); } return Container(); }, ), ); } }