Business Login Flutter Apps
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

45 lines
2.0 KiB

  1. import 'dart:async';
  2. import 'package:bloc/bloc.dart';
  3. import 'package:equatable/equatable.dart';
  4. import '../../../Utils/keys.dart';
  5. import '../../../Model/unit.dart';
  6. import '../../../Utils/db_helper.dart';
  7. import 'package:unitstocks/main.dart';
  8. import 'package:intl/intl.dart';
  9. import '../../../Utils/download_upload_handler.dart';
  10. part 'get_unit_event.dart';
  11. part 'get_unit_state.dart';
  12. class GetUnitBloc extends Bloc<GetUnitEvent, GetUnitState> {
  13. GetUnitBloc() : super(GetUnitInitial()) {
  14. on<GetUnitEvent>((event, emit) async {
  15. if(event is GetUnitInit){
  16. if(prefs.getString(Keys.cabangId) != null && prefs.getString(Keys.company) != null){
  17. emit(GetUnitLoading(percent: 0.0));
  18. file_Trans_Handler trans = new file_Trans_Handler();
  19. trans.downloadFile('UnitStocking.db',"${prefs.getString(Keys.hostAddress)}/stock_taking/get_units/${prefs.getString(Keys.company)}/${prefs.getString(Keys.cabangId)}");
  20. await for (double? value in await trans.progress){
  21. if(value != null){
  22. emit(GetUnitLoading(percent:value));
  23. if(value >= 1.0) {
  24. await prefs.setString(Keys.lastDownload, DateTime.now().toIso8601String());
  25. await DBHelper.database.insertUpdateValue(Value(name: 'TGL_START',value: DateFormat('dd-MM-yyyy HH:mm:ss').format(DateTime.parse(DateTime.now().toIso8601String()))));
  26. await DBHelper.database.insertUpdateValue(Value(name: 'TGL_STOCK_TAKING',value: DateFormat('dd-MM-yyyy').format(DateTime.parse(DateTime.now().toIso8601String()))));
  27. await DBHelper.database.closeDb();
  28. emit(GetUnitFinish(respond: 'Data terdownload'));
  29. }
  30. if(value==-1.0){
  31. emit(GetUnitFinish(respond: 'Data download gagal',success: false));
  32. }
  33. }
  34. }
  35. }
  36. else{
  37. emit(GetUnitFinish(respond: 'Belum ada cabang yang dipilih!',success: false));
  38. }
  39. }
  40. });
  41. }
  42. }