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

46 行
1.5 KiB

  1. import 'dart:async';
  2. import 'package:bloc/bloc.dart';
  3. import 'package:equatable/equatable.dart';
  4. import '../../../main.dart';
  5. import '../../../Model/unit.dart';
  6. import '../../../Utils/db_helper.dart';
  7. import 'package:intl/intl.dart';
  8. part 'save_unit_event.dart';
  9. part 'save_unit_state.dart';
  10. class SaveUnitBloc extends Bloc<SaveUnitEvent, SaveUnitState> {
  11. SaveUnitBloc() : super(SaveUnitInitial()) {
  12. on<SaveUnitEvent>((event, emit) async{
  13. if(event is Save){
  14. emit(SaveUnitLoading());
  15. String? errMsg;
  16. bool succeed = false;
  17. Unit _currentUnit = event.unit;
  18. List<Blob> blobList = event.blobs;
  19. for(int i = 0 ; i<blobList.length;i++){
  20. blobList[i].lat = currentPosisiton!.latitude.toString();
  21. blobList[i].long = currentPosisiton!.longitude.toString();
  22. var result = await DBHelper.database.updateBlob(blobList[i]);
  23. succeed = (result!=null);
  24. if(!succeed) {
  25. i = blobList.length;
  26. errMsg = "Gagal menyimpan foto unit!";
  27. }
  28. }
  29. if(succeed){
  30. _currentUnit.timestamp = DateFormat('dd-MM-yyyy HH:mm:ss').format(DateTime.now());
  31. _currentUnit.flag = 'TRUE';
  32. var result = await DBHelper.database.updateUnit(_currentUnit);
  33. succeed = (result!=null);
  34. if(!succeed) {
  35. errMsg = "Gagal menyimpan data unit!";
  36. }
  37. }
  38. emit(SaveFinish(msg: errMsg??"Data Saved", success: (errMsg == null)));
  39. }
  40. });
  41. }
  42. }