diff --git a/lib/Util/DBHelper.dart b/lib/Util/DBHelper.dart index ffe94ba..5b00136 100644 --- a/lib/Util/DBHelper.dart +++ b/lib/Util/DBHelper.dart @@ -21,16 +21,16 @@ class DBHelper { } backupDb(context) async{ var result = {"STATUS":0,"MSG":"Backup gagal!"}; + var stock_id = prefs.getString(keyClass.stock_id)??''; + if(stock_id != ''){ await util.permissionCheck(context,pHandler.Permission.storage,()async{ try{ - // if(dbPath == null || dbPath == ''){ + // if(dbPath == null || dbPath == ''){ final database = await db; var dbPath = database.path; await DBHelper.database.closeDb(); - // } - await prefs.remove(keyClass.backup_stock_id); - var stock_id = prefs.getString(keyClass.stock_id)??''; - if(stock_id != ''){ + // } + await prefs.remove(keyClass.backup_stock_id); if(stock_id !='' && stock_id != null ) await prefs.setString(keyClass.backup_stock_id,stock_id); //backupDatabase String backupPath = join(dbPath.substring(0,dbPath.indexOf("/Android"))+"/Download", "${prefs.getString(keyClass.backup_stock_id)}_UnitStocking.db"); @@ -47,15 +47,16 @@ class DBHelper { print('file backup dont exist tho'); } } - else{ - result = {"STATUS":0,"MSG":"Backup gagal data unit tidak ditemukan!"}; - } + catch(e){ + print(e); + result = {"STATUS":0,"MSG":"Backup gagal!"}; + } + },customMessage: " untuk menyimpan data backup"); } - catch(e){ - print(e); - result = {"STATUS":0,"MSG":"Backup gagal!"}; + else{ + result = {"STATUS":0,"MSG":"Backup gagal data unit tidak ditemukan!"}; } - },customMessage: " untuk menyimpan data backup"); + return result; } initDb() async { @@ -352,6 +353,8 @@ class DBHelper { newValue.name, newValue.value ]); + print("row inserted"); + return res; } catch(e){ diff --git a/lib/home_page.dart b/lib/home_page.dart index f2d1d65..4c04f69 100644 --- a/lib/home_page.dart +++ b/lib/home_page.dart @@ -53,7 +53,7 @@ class _HomePageState extends State { content: Text('Proceed to clear any remaining units data on this device?'), actions: [ TextButton( - child: Text('Proceed'), + child: Text('OK'), onPressed: ()async{ util.showLoading(context); await Future.sync(()async{ @@ -104,6 +104,7 @@ class _HomePageState extends State { if(value != null)await prefs.setString(keyClass.stock_id, value.value); } String stock_taking_id = prefs.getString(keyClass.stock_id); + if(prefs.getString(keyClass.backup_stock_id) == null) prefs.setString(keyClass.backup_stock_id,stock_taking_id); if(company!=null&&stock_taking_id!=null){ var result = await util.JsonDataPostRaw({"company":company,"stockTakingId":stock_taking_id}, '${prefs.getString(keyClass.hostAddress)}/stock_taking/state/'); if(result['STATUS']==1){ @@ -666,15 +667,38 @@ class _HomePageState extends State { } } if(value == 'logout'){ - prefs.remove(keyClass.cabang_id); + // prefs.remove(keyClass.cabang_id); prefs.remove(keyClass.company); prefs.remove(keyClass.loginId); prefs.setBool(keyClass.logged_in, false); Navigator.pushNamed(context, '/login'); } if(value == 'backup'){ - var result = await DBHelper.database.backupDb(context); - util.showFlushbar(context, result['MSG'],color: result["STATUS"]==1?Colors.grey:Colors.red); + if(lastDownload != null && lastDownload != '' ){ + bool isBackup = await showDialog(context: context,builder: (context)=>AlertDialog( + title: Text('Backup Data ?'), + content: Text('Backup data akan menghapus dan mengganti data backup unit dan cabang sebelumnya.'), + actions: [ + TextButton( + child: Text('OK'), + onPressed: ()async{ + Navigator.pop(context,true); + }, + ), + TextButton( + child: Text('Cancel'), + onPressed: ()=>Navigator.pop(context,false), + ) + ], + )); + if(isBackup??false){ + var result = await DBHelper.database.backupDb(context); + util.showFlushbar(context, result['MSG'],color: result["STATUS"]==1?Colors.grey:Colors.red); + } + } + else{ + util.showFlushbar(context, "Data Unit cabang tidak ditemukan. Silakan get data terlbih dahulu."); + } } if(value == 'restore'){ if(prefs.getString(keyClass.stock_id) == null){ @@ -697,7 +721,7 @@ class _HomePageState extends State { content: Text('Restore data akan menghapus dan mengganti data unit dan cabang yang ada dengan data backup.'), actions: [ TextButton( - child: Text('Proceed'), + child: Text('OK'), onPressed: ()async{ Navigator.pop(context,true); }, @@ -807,7 +831,7 @@ class _HomePageState extends State { content: Text('Fetch data unit for stocking'), actions: [ TextButton( - child: Text('Proceed'), + child: Text('OK'), onPressed: (){ Navigator.pop(context,true); }, @@ -1077,7 +1101,7 @@ class _HomePageState extends State { content: Text('Proceed to unpack the uploaded data.'), actions: [ TextButton( - child: Text('Proceed'), + child: Text('OK'), onPressed: ()async{ Navigator.pop(context,true); }, diff --git a/lib/login_page.dart b/lib/login_page.dart index 40b4aec..b315a70 100644 --- a/lib/login_page.dart +++ b/lib/login_page.dart @@ -26,20 +26,26 @@ class _LoginPageState extends State { var result = await util.JsonDataPostRaw({"User":userCon.text,"Pass":passCon.text}, '${prefs.getString(keyClass.hostAddress)}/user//login/'); if(result['STATUS']==1&& result["DATA"]["status"]=='OK'){ prefs.setString(keyClass.loginId, result['DATA'][keyClass.loginId.toLowerCase()]); - print("user id ${result['DATA'][keyClass.loginId.toLowerCase()]}"); + // print("user id ${result['DATA'][keyClass.loginId.toLowerCase()]}"); prefs.setString(keyClass.company, result['DATA'][keyClass.company.toLowerCase()]); prefs.setBool(keyClass.logged_in, true); - var cabangList = await util.JsonDataPostRaw({"company":prefs.getString(keyClass.company),"User":prefs.getString(keyClass.loginId)}, '${prefs.getString(keyClass.hostAddress)}/user/cabangs/'); - Navigator.pop(context); - if(cabangList['STATUS']==1){ - cabangDrop = cabangList['DATA']; - selected = cabangDrop[0]['RETURN_VALUE']; - setState(() { - }); - FocusScope.of(context).requestFocus(new FocusNode()); + if(prefs.getString(keyClass.cabang_id)!= null && prefs.getString(keyClass.cabang_id)!= ''){ + Navigator.pop(context); + Navigator.pushNamed(context, '/home'); } else{ - util.showFlushbar(context, cabangList['DATA'],color: Colors.red); + var cabangList = await util.JsonDataPostRaw({"company":prefs.getString(keyClass.company),"User":prefs.getString(keyClass.loginId)}, '${prefs.getString(keyClass.hostAddress)}/user/cabangs/'); + Navigator.pop(context); + if(cabangList['STATUS']==1){ + cabangDrop = cabangList['DATA']; + selected = cabangDrop[0]['RETURN_VALUE']; + setState(() { + }); + FocusScope.of(context).requestFocus(new FocusNode()); + } + else{ + util.showFlushbar(context, cabangList['DATA'],color: Colors.red); + } } } else{ diff --git a/pubspec.lock b/pubspec.lock index a7fc777..bfe5d2a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -247,13 +247,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.11" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.3" meta: dependency: transitive description: @@ -531,7 +524,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.8" + version: "0.4.3" typed_data: dependency: transitive description: @@ -587,7 +580,7 @@ packages: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" + version: "2.0.6" url_launcher_windows: dependency: transitive description: @@ -632,4 +625,4 @@ packages: version: "3.1.0" sdks: dart: ">=2.15.0 <3.0.0" - flutter: ">=2.10.0" + flutter: ">=2.8.0" diff --git a/pubspec.yaml b/pubspec.yaml index f97d10c..d85610d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: unitstocks description: App to stock Thamrin Brothers Units # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.5+9 +version: 1.0.5+10 environment: sdk: ">=2.1.0 <3.0.0"