import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import '../../../Utils/keys.dart'; import '../../../Model/unit.dart'; import '../../../Utils/db_helper.dart'; import 'package:unitstocks/main.dart'; import 'package:intl/intl.dart'; import '../../../Utils/download_upload_handler.dart'; part 'get_unit_event.dart'; part 'get_unit_state.dart'; class GetUnitBloc extends Bloc { GetUnitBloc() : super(GetUnitInitial()) { on((event, emit) async { if(event is GetUnitInit){ if(prefs.getString(Keys.cabangId) != null && prefs.getString(Keys.company) != null){ emit(GetUnitLoading(percent: 0.0)); file_Trans_Handler trans = new file_Trans_Handler(); trans.downloadFile('UnitStocking.db',"${prefs.getString(Keys.hostAddress)}/stock_taking/get_units/${prefs.getString(Keys.company)}/${prefs.getString(Keys.cabangId)}"); await for (double? value in await trans.progress){ if(value != null){ emit(GetUnitLoading(percent:value)); if(value >= 1.0) { await prefs.setString(Keys.lastDownload, DateTime.now().toIso8601String()); await DBHelper.database.insertUpdateValue(Value(name: 'TGL_START',value: DateFormat('dd-MM-yyyy HH:mm:ss').format(DateTime.parse(DateTime.now().toIso8601String())))); await DBHelper.database.insertUpdateValue(Value(name: 'TGL_STOCK_TAKING',value: DateFormat('dd-MM-yyyy').format(DateTime.parse(DateTime.now().toIso8601String())))); await DBHelper.database.closeDb(); emit(GetUnitFinish(respond: 'Data terdownload')); } if(value==-1.0){ emit(GetUnitFinish(respond: 'Data download gagal',success: false)); } } } } else{ emit(GetUnitFinish(respond: 'Belum ada cabang yang dipilih!',success: false)); } } }); } }