|
- 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<UploadEvent, UploadState> {
- UploadBloc() : super(UploadInitial()) {
- on<UploadEvent>((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!"));
- }
- }
- });
- }
- }
|