fix cache error

This commit is contained in:
Patrick Alvin Alcala 2025-04-22 17:34:38 +08:00
parent 6bdc9a7c6c
commit 0561d9a9b4
3 changed files with 112 additions and 41 deletions

View file

@ -2,10 +2,12 @@ import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:pharmacy_mobile/auth/auth_gate.dart';
import 'package:pharmacy_mobile/blocs/caches/categorylist/categorylist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/caches/distributorlist/distributorlist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/caches/genericlist/genericlist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/caches/manufacturerlist/manufacturerlist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/caches/medicinelist/medicinelist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/caches/stocklist/stocklist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/caches/supplierlist/supplierlist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/caches/typelist/typelist_cache_bloc.dart';
import 'package:pharmacy_mobile/blocs/guest/guest_bloc.dart';
import 'package:pharmacy_mobile/blocs/language/language_bloc.dart';
@ -287,6 +289,12 @@ class MyApp extends StatelessWidget {
BlocProvider(
create: (context) => LanguageBloc(),
),
BlocProvider(
create: (context) => DistributorListBloc(),
),
BlocProvider(
create: (context) => SupplierListBloc(),
),
],
child: MaterialApp.router(
debugShowCheckedModeBanner: false,

View file

@ -3,8 +3,10 @@ import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:image_picker/image_picker.dart';
import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:pharmacy_mobile/blocs/caches/distributorlist/functions/cache_getdistributorlist.dart';
import 'package:pharmacy_mobile/blocs/caches/genericlist/functions/cache_getgenericlist.dart';
import 'package:pharmacy_mobile/blocs/caches/manufacturerlist/functions/cache_getmanufacturerlist.dart';
import 'package:pharmacy_mobile/blocs/caches/supplierlist/functions/cache_getsupplierlist.dart';
import 'package:pharmacy_mobile/blocs/caches/typelist/functions/cache_gettypelist.dart';
import 'package:pharmacy_mobile/functions/barcode_scan_function.dart';
import 'package:pharmacy_mobile/functions/checkresult_function.dart';
@ -129,7 +131,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
});
}
Future<bool> _getManufacturerCache() async {
Future<bool> _getManufacturersCache() async {
final cache = await cacheGetManufacturerList(context);
if (cache.isNotEmpty) {
@ -141,32 +143,44 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
}
}
Future<bool> _getDistributorsCache() async {
final cache = await cacheGetDistributorList(context);
if (cache.isNotEmpty) {
_distributorList = cache;
return true;
} else {
return false;
}
}
Future<bool> _getSuppliersCache() async {
final cache = await cacheGetSupplierList(context);
if (cache.isNotEmpty) {
_supplierList = cache;
return true;
} else {
return false;
}
}
void autoRun() async {
// final generics = await _getGenericsCache();
// final types = await _getTypesCache();
// final manufacturers = await _getManufacturerCache();
final generics = await _getGenericsCache();
final types = await _getTypesCache();
final manufacturers = await _getManufacturersCache();
final distributors = await _getDistributorsCache();
final suppliers = await _getSuppliersCache();
// if (!generics || !types || !manufacturers) {
// if (await InternetConnectionChecker.instance.hasConnection) {
// await _getGenerics();
// await _getTypes();
// await _getManufacturers();
// await _getDistributors();
// } else {
// if (mounted) {
// showNotification(context, 'Error: No Internet Connection', false);
// WidgetsBinding.instance.addPostFrameCallback((_) {
// if (mounted) {
// context.pop();
// }
// });
// }
// }
// } else {
// setState(() {});
// }
print('generics: $generics');
print('types: $types');
print('manufacturers: $manufacturers');
print('distributors: $distributors');
print('suppliers: $suppliers');
if (!generics || !types || !manufacturers || !distributors || !suppliers) {
if (await InternetConnectionChecker.instance.hasConnection) {
await _getGenerics();
await _getTypes();
@ -184,6 +198,27 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
});
}
}
} else {
setState(() {});
}
// if (await InternetConnectionChecker.instance.hasConnection) {
// await _getGenerics();
// await _getTypes();
// await _getManufacturers();
// await _getDistributors();
// await _getSuppliers();
// } else {
// if (mounted) {
// showNotification(context, 'Error: No Internet Connection', false);
// WidgetsBinding.instance.addPostFrameCallback((_) {
// if (mounted) {
// context.pop();
// }
// });
// }
// }
}
void _updateGeneric(dynamic generic) async {

View file

@ -4,15 +4,19 @@ import 'package:gap/gap.dart';
import 'package:go_router/go_router.dart';
import 'package:pharmacy_mobile/auth/auth_service.dart';
import 'package:pharmacy_mobile/blocs/caches/categorylist/functions/cache_setcategorylist.dart';
import 'package:pharmacy_mobile/blocs/caches/distributorlist/functions/cache_setdistributorlist.dart';
import 'package:pharmacy_mobile/blocs/caches/genericlist/functions/cache_setgenericlist.dart';
import 'package:pharmacy_mobile/blocs/caches/manufacturerlist/functions/cache_setmanufacturerlist.dart';
import 'package:pharmacy_mobile/blocs/caches/medicinelist/functions/cache_setmedicinelist.dart';
import 'package:pharmacy_mobile/blocs/caches/stocklist/functions/cache_setstocklist.dart';
import 'package:pharmacy_mobile/blocs/caches/supplierlist/functions/cache_setsupplierlist.dart';
import 'package:pharmacy_mobile/blocs/caches/typelist/functions/cache_settypelist.dart';
import 'package:pharmacy_mobile/tables/ref_categories.dart';
import 'package:pharmacy_mobile/tables/ref_distributors.dart';
import 'package:pharmacy_mobile/tables/ref_generic_names.dart';
import 'package:pharmacy_mobile/tables/ref_manufacturers.dart';
import 'package:pharmacy_mobile/tables/ref_medicines.dart';
import 'package:pharmacy_mobile/tables/ref_suppliers.dart';
import 'package:pharmacy_mobile/tables/ref_types.dart';
import 'package:pharmacy_mobile/tables/stocks.dart';
import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart';
@ -38,6 +42,8 @@ class _MainPageState extends State<MainPage> {
final _refManufacturers = RefManufacturers();
final _refMedicines = RefMedicines();
final _stocks = Stocks();
final _refDistributors = RefDistributors();
final _refSuppliers = RefSuppliers();
late bool _isLoading = false;
@ -123,6 +129,26 @@ class _MainPageState extends State<MainPage> {
}
}
Future<void> _getDistributorListCache() async {
final distributorList = await _refDistributors.getList();
if (distributorList.isNotEmpty) {
// ignore: use_build_context_synchronously
final setCache = await cacheSetDistributorList(context, distributorList);
if (!setCache) {}
}
}
Future<void> _getSupplierListCache() async {
final supplierList = await _refSuppliers.getList();
if (supplierList.isNotEmpty) {
// ignore: use_build_context_synchronously
final setCache = await cacheSetSupplierList(context, supplierList);
if (!setCache) {}
}
}
void autoRun() async {
await _getCategoryListCache();
await _getGenericListCache();
@ -130,6 +156,8 @@ class _MainPageState extends State<MainPage> {
await _getManufacturerListCache();
await _getMedicineListCache();
await _getStockListCache();
await _getDistributorListCache();
await _getSupplierListCache();
}
@override