import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import '../../../Utils/db_helper.dart'; import '../../../Model/unit.dart'; import '../../../Utils/download_upload_handler.dart'; import '../../../Utils/keys.dart'; import '../../../main.dart'; import 'package:intl/intl.dart'; import 'package:flutter/cupertino.dart'; part 'upload_event.dart'; part 'upload_state.dart'; class UploadBloc extends Bloc { UploadBloc() : super(UploadInitial()) { on((event, emit) async{ if(event is Upload){ emit(UploadLoading()); if(await prefs.getString(Keys.lastDownload)!=null){ var unitsInserted = await DBHelper.database.getAllUnits(inserted: true); if(unitsInserted.isNotEmpty){ await DBHelper.database.insertUpdateValue(Value(name: 'TGL_SELESAI',value: DateFormat('dd-MM-yyyy HH:mm:ss').format(new DateTime.now()))); await DBHelper.database.closeDb(); file_Trans_Handler trans = new file_Trans_Handler(); bool popped = false; // util.showLoading(event.context,onwillpop:()async{ // await trans.cancel(); // popped = true; // return true; // },dissmissable: true); util.showLoading(event.context); var upload = await trans.uploadFile('UnitStocking.db',"${prefs.getString(Keys.hostAddress)}/stock_taking/upload/",prefs.getString(Keys.company),prefs.getString(Keys.cabangId)); if(!popped){ Navigator.pop(event.context); if(upload['STATUS']==1){ prefs.setString(Keys.lastUpload, DateTime.now().toIso8601String()); prefs.setString(Keys.targetProccess, upload[Keys.targetProccess]); emit(const UploadFinish(msg: "Upload selesai!")); } else{ emit(UploadFinish(success: false,msg: upload['DATA'])); } } } else{ emit(UploadFinish(success: false,msg: "Belum ada data yang disimpan")); } } else{ emit(UploadFinish(success: false,msg: "Data unit tidak ditemukan. Tarik data terlebih dahulu!")); } } }); } }