Business Login Flutter Apps
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

60 行
2.3 KiB

  1. import 'dart:async';
  2. import 'package:bloc/bloc.dart';
  3. import 'package:equatable/equatable.dart';
  4. import '../../../Utils/db_helper.dart';
  5. import '../../../Model/unit.dart';
  6. import '../../../Utils/download_upload_handler.dart';
  7. import '../../../Utils/keys.dart';
  8. import '../../../main.dart';
  9. import 'package:intl/intl.dart';
  10. import 'package:flutter/cupertino.dart';
  11. part 'upload_event.dart';
  12. part 'upload_state.dart';
  13. class UploadBloc extends Bloc<UploadEvent, UploadState> {
  14. UploadBloc() : super(UploadInitial()) {
  15. on<UploadEvent>((event, emit) async{
  16. if(event is Upload){
  17. emit(UploadLoading());
  18. if(await prefs.getString(Keys.lastDownload)!=null){
  19. var unitsInserted = await DBHelper.database.getAllUnits(inserted: true);
  20. if(unitsInserted.isNotEmpty){
  21. await DBHelper.database.insertUpdateValue(Value(name: 'TGL_SELESAI',value: DateFormat('dd-MM-yyyy HH:mm:ss').format(new DateTime.now())));
  22. await DBHelper.database.closeDb();
  23. file_Trans_Handler trans = new file_Trans_Handler();
  24. bool popped = false;
  25. // util.showLoading(event.context,onwillpop:()async{
  26. // await trans.cancel();
  27. // popped = true;
  28. // return true;
  29. // },dissmissable: true);
  30. util.showLoading(event.context);
  31. var upload = await trans.uploadFile('UnitStocking.db',"${prefs.getString(Keys.hostAddress)}/stock_taking/upload/",prefs.getString(Keys.company),prefs.getString(Keys.cabangId));
  32. if(!popped){
  33. Navigator.pop(event.context);
  34. if(upload['STATUS']==1){
  35. prefs.setString(Keys.lastUpload, DateTime.now().toIso8601String());
  36. prefs.setString(Keys.targetProccess, upload[Keys.targetProccess]);
  37. emit(const UploadFinish(msg: "Upload selesai!"));
  38. }
  39. else{
  40. emit(UploadFinish(success: false,msg: upload['DATA']));
  41. }
  42. }
  43. }
  44. else{
  45. emit(UploadFinish(success: false,msg: "Belum ada data yang disimpan"));
  46. }
  47. }
  48. else{
  49. emit(UploadFinish(success: false,msg: "Data unit tidak ditemukan. Tarik data terlebih dahulu!"));
  50. }
  51. }
  52. });
  53. }
  54. }