|
- import 'dart:async';
- import 'dart:io';
-
- import 'package:bloc/bloc.dart';
- import 'package:meta/meta.dart';
- import 'package:unitstocks/Utils/keys.dart';
-
- import '../../main.dart';
- import 'package:path_provider/path_provider.dart';
- import 'package:path/path.dart';
-
- part 'cabang_event.dart';
- part 'cabang_state.dart';
-
- class CabangBloc extends Bloc<CabangEvent, CabangState> {
- CabangBloc() : super(CabangInitial()) {
- on<CabangEvent>((event, emit) async {
- if(event is CabangInit){
- emit(CabangLoading());
- List<dynamic> cabangs = event.cabangList??[];
- if(cabangs.isEmpty){
- var cabangList = await util.JsonDataPostRaw({"company":event.company,"User":event.userId}, '${prefs.getString(Keys.hostAddress)}/user/cabangs/',timeout: true);
- if(cabangList['STATUS']==1){
- cabangs = cabangList['DATA'];
- emit(CabangDisplay(cabangList: cabangs));
- }
- else {
- emit(CabangError(err: "Gagal mengambil akses cabang. Pastikan anda memiliki akses!!"));
- }
- }
- else emit(CabangDisplay(cabangList: cabangs));
- }
- else if (event is CabangPicked){
- String lastCabang = prefs.getString(Keys.cabangId)??'';
- if(lastCabang!=event.cabangId){
- prefs.setString(Keys.cabangId, event.cabangId);
- await Future.sync(()async{
- try{
- Directory? documentsDirectory = await getApplicationDocumentsDirectory();
- String path = join(documentsDirectory.path, "UnitStocking.db");
- File db = File(path);
- if(db.existsSync()){
- db.deleteSync();
- }
- await prefs.remove(Keys.lastDownload);
- await prefs.remove(Keys.lastUpload);
- await prefs.remove(Keys.targetProccess);
- await prefs.remove(Keys.submitProccess);
- emit(CabangFinished(cabangChanged: lastCabang!=event.cabangId));
- }
- catch(e){
- // print(e);
- prefs.setString(Keys.cabangId, lastCabang);
- emit(const CabangFinished(cabangChanged: false));
- }
- });
- }
- else {
- emit(const CabangFinished(cabangChanged: false));
- }
- }
- else if (event is CabangCanceled){
- emit(CabangInitial());
- }
- });
- }
- }
|