| @@ -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){ | |||
| @@ -53,7 +53,7 @@ class _HomePageState extends State<HomePage> { | |||
| content: Text('Proceed to clear any remaining units data on this device?'), | |||
| actions: <Widget>[ | |||
| TextButton( | |||
| child: Text('Proceed'), | |||
| child: Text('OK'), | |||
| onPressed: ()async{ | |||
| util.showLoading(context); | |||
| await Future.sync(()async{ | |||
| @@ -104,6 +104,7 @@ class _HomePageState extends State<HomePage> { | |||
| 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<HomePage> { | |||
| } | |||
| } | |||
| 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: <Widget>[ | |||
| 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<HomePage> { | |||
| content: Text('Restore data akan menghapus dan mengganti data unit dan cabang yang ada dengan data backup.'), | |||
| actions: <Widget>[ | |||
| TextButton( | |||
| child: Text('Proceed'), | |||
| child: Text('OK'), | |||
| onPressed: ()async{ | |||
| Navigator.pop(context,true); | |||
| }, | |||
| @@ -807,7 +831,7 @@ class _HomePageState extends State<HomePage> { | |||
| content: Text('Fetch data unit for stocking'), | |||
| actions: <Widget>[ | |||
| TextButton( | |||
| child: Text('Proceed'), | |||
| child: Text('OK'), | |||
| onPressed: (){ | |||
| Navigator.pop(context,true); | |||
| }, | |||
| @@ -1077,7 +1101,7 @@ class _HomePageState extends State<HomePage> { | |||
| content: Text('Proceed to unpack the uploaded data.'), | |||
| actions: <Widget>[ | |||
| TextButton( | |||
| child: Text('Proceed'), | |||
| child: Text('OK'), | |||
| onPressed: ()async{ | |||
| Navigator.pop(context,true); | |||
| }, | |||
| @@ -26,20 +26,26 @@ class _LoginPageState extends State<LoginPage> { | |||
| 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{ | |||
| @@ -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" | |||
| @@ -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" | |||