start provider screens

This commit is contained in:
2026-04-16 12:13:18 +02:00
parent 5229571fa1
commit 4a3230419b
5 changed files with 284 additions and 9 deletions

View File

@@ -1,6 +1,8 @@
import 'package:equatable/equatable.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/core/blocs/session/session_bloc.dart';
import 'package:flux/features/master_data/providers/data/provider_repository.dart';
import 'package:flux/features/master_data/store/models/store_model.dart';
import 'package:get_it/get_it.dart';
import '../models/provider_model.dart';
@@ -43,18 +45,21 @@ class ProvidersState extends Equatable {
class ProvidersCubit extends Cubit<ProvidersState> {
final ProviderRepository _repository = GetIt.I<ProviderRepository>();
final SessionBloc _sessionBloc;
ProvidersCubit() : super(const ProvidersState());
ProvidersCubit(this._sessionBloc) : super(const ProvidersState());
// Carica i provider della company e quelli associati a uno store specifico
Future<void> loadProviders(String companyId, String? storeId) async {
Future<void> loadProviders(StoreModel? store) async {
emit(state.copyWith(isLoading: true));
try {
final all = await _repository.fetchAllCompanyProviders(companyId);
final all = await _repository.fetchAllCompanyProviders(
_sessionBloc.state.company!.id,
);
List<String> associated = [];
if (storeId != null) {
associated = await _repository.fetchAssociatedProviderIds(storeId);
if (store != null) {
associated = await _repository.fetchAssociatedProviderIds(store.id!);
}
emit(
@@ -105,7 +110,7 @@ class ProvidersCubit extends Cubit<ProvidersState> {
try {
await _repository.saveProvider(provider);
// Ricarichiamo la lista per vedere le modifiche
await loadProviders(provider.companyId, null);
await loadProviders(null);
} catch (e) {
emit(state.copyWith(isLoading: false, errorMessage: e.toString()));
}