| @@ -21,16 +21,16 @@ class DBHelper { | |||||
| } | } | ||||
| backupDb(context) async{ | backupDb(context) async{ | ||||
| var result = {"STATUS":0,"MSG":"Backup gagal!"}; | 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{ | await util.permissionCheck(context,pHandler.Permission.storage,()async{ | ||||
| try{ | try{ | ||||
| // if(dbPath == null || dbPath == ''){ | |||||
| // if(dbPath == null || dbPath == ''){ | |||||
| final database = await db; | final database = await db; | ||||
| var dbPath = database.path; | var dbPath = database.path; | ||||
| await DBHelper.database.closeDb(); | 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); | if(stock_id !='' && stock_id != null ) await prefs.setString(keyClass.backup_stock_id,stock_id); | ||||
| //backupDatabase | //backupDatabase | ||||
| String backupPath = join(dbPath.substring(0,dbPath.indexOf("/Android"))+"/Download", "${prefs.getString(keyClass.backup_stock_id)}_UnitStocking.db"); | 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'); | 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; | return result; | ||||
| } | } | ||||
| initDb() async { | initDb() async { | ||||
| @@ -352,6 +353,8 @@ class DBHelper { | |||||
| newValue.name, | newValue.name, | ||||
| newValue.value | newValue.value | ||||
| ]); | ]); | ||||
| print("row inserted"); | |||||
| return res; | return res; | ||||
| } | } | ||||
| catch(e){ | catch(e){ | ||||
| @@ -53,7 +53,7 @@ class _HomePageState extends State<HomePage> { | |||||
| content: Text('Proceed to clear any remaining units data on this device?'), | content: Text('Proceed to clear any remaining units data on this device?'), | ||||
| actions: <Widget>[ | actions: <Widget>[ | ||||
| TextButton( | TextButton( | ||||
| child: Text('Proceed'), | |||||
| child: Text('OK'), | |||||
| onPressed: ()async{ | onPressed: ()async{ | ||||
| util.showLoading(context); | util.showLoading(context); | ||||
| await Future.sync(()async{ | await Future.sync(()async{ | ||||
| @@ -104,6 +104,7 @@ class _HomePageState extends State<HomePage> { | |||||
| if(value != null)await prefs.setString(keyClass.stock_id, value.value); | if(value != null)await prefs.setString(keyClass.stock_id, value.value); | ||||
| } | } | ||||
| String stock_taking_id = prefs.getString(keyClass.stock_id); | 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){ | 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/'); | var result = await util.JsonDataPostRaw({"company":company,"stockTakingId":stock_taking_id}, '${prefs.getString(keyClass.hostAddress)}/stock_taking/state/'); | ||||
| if(result['STATUS']==1){ | if(result['STATUS']==1){ | ||||
| @@ -666,15 +667,38 @@ class _HomePageState extends State<HomePage> { | |||||
| } | } | ||||
| } | } | ||||
| if(value == 'logout'){ | if(value == 'logout'){ | ||||
| prefs.remove(keyClass.cabang_id); | |||||
| // prefs.remove(keyClass.cabang_id); | |||||
| prefs.remove(keyClass.company); | prefs.remove(keyClass.company); | ||||
| prefs.remove(keyClass.loginId); | prefs.remove(keyClass.loginId); | ||||
| prefs.setBool(keyClass.logged_in, false); | prefs.setBool(keyClass.logged_in, false); | ||||
| Navigator.pushNamed(context, '/login'); | Navigator.pushNamed(context, '/login'); | ||||
| } | } | ||||
| if(value == 'backup'){ | 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(value == 'restore'){ | ||||
| if(prefs.getString(keyClass.stock_id) == null){ | 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.'), | content: Text('Restore data akan menghapus dan mengganti data unit dan cabang yang ada dengan data backup.'), | ||||
| actions: <Widget>[ | actions: <Widget>[ | ||||
| TextButton( | TextButton( | ||||
| child: Text('Proceed'), | |||||
| child: Text('OK'), | |||||
| onPressed: ()async{ | onPressed: ()async{ | ||||
| Navigator.pop(context,true); | Navigator.pop(context,true); | ||||
| }, | }, | ||||
| @@ -807,7 +831,7 @@ class _HomePageState extends State<HomePage> { | |||||
| content: Text('Fetch data unit for stocking'), | content: Text('Fetch data unit for stocking'), | ||||
| actions: <Widget>[ | actions: <Widget>[ | ||||
| TextButton( | TextButton( | ||||
| child: Text('Proceed'), | |||||
| child: Text('OK'), | |||||
| onPressed: (){ | onPressed: (){ | ||||
| Navigator.pop(context,true); | Navigator.pop(context,true); | ||||
| }, | }, | ||||
| @@ -1077,7 +1101,7 @@ class _HomePageState extends State<HomePage> { | |||||
| content: Text('Proceed to unpack the uploaded data.'), | content: Text('Proceed to unpack the uploaded data.'), | ||||
| actions: <Widget>[ | actions: <Widget>[ | ||||
| TextButton( | TextButton( | ||||
| child: Text('Proceed'), | |||||
| child: Text('OK'), | |||||
| onPressed: ()async{ | onPressed: ()async{ | ||||
| Navigator.pop(context,true); | 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/'); | 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'){ | if(result['STATUS']==1&& result["DATA"]["status"]=='OK'){ | ||||
| prefs.setString(keyClass.loginId, result['DATA'][keyClass.loginId.toLowerCase()]); | 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.setString(keyClass.company, result['DATA'][keyClass.company.toLowerCase()]); | ||||
| prefs.setBool(keyClass.logged_in, true); | 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{ | 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{ | else{ | ||||
| @@ -247,13 +247,6 @@ packages: | |||||
| url: "https://pub.dartlang.org" | url: "https://pub.dartlang.org" | ||||
| source: hosted | source: hosted | ||||
| version: "0.12.11" | 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: | meta: | ||||
| dependency: transitive | dependency: transitive | ||||
| description: | description: | ||||
| @@ -531,7 +524,7 @@ packages: | |||||
| name: test_api | name: test_api | ||||
| url: "https://pub.dartlang.org" | url: "https://pub.dartlang.org" | ||||
| source: hosted | source: hosted | ||||
| version: "0.4.8" | |||||
| version: "0.4.3" | |||||
| typed_data: | typed_data: | ||||
| dependency: transitive | dependency: transitive | ||||
| description: | description: | ||||
| @@ -587,7 +580,7 @@ packages: | |||||
| name: url_launcher_web | name: url_launcher_web | ||||
| url: "https://pub.dartlang.org" | url: "https://pub.dartlang.org" | ||||
| source: hosted | source: hosted | ||||
| version: "2.0.8" | |||||
| version: "2.0.6" | |||||
| url_launcher_windows: | url_launcher_windows: | ||||
| dependency: transitive | dependency: transitive | ||||
| description: | description: | ||||
| @@ -632,4 +625,4 @@ packages: | |||||
| version: "3.1.0" | version: "3.1.0" | ||||
| sdks: | sdks: | ||||
| dart: ">=2.15.0 <3.0.0" | dart: ">=2.15.0 <3.0.0" | ||||
| flutter: ">=2.10.0" | |||||
| flutter: ">=2.8.0" | |||||
| @@ -1,7 +1,7 @@ | |||||
| name: unitstocks | name: unitstocks | ||||
| description: App to stock Thamrin Brothers Units | description: App to stock Thamrin Brothers Units | ||||
| # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | ||||
| version: 1.0.5+9 | |||||
| version: 1.0.5+10 | |||||
| environment: | environment: | ||||
| sdk: ">=2.1.0 <3.0.0" | sdk: ">=2.1.0 <3.0.0" | ||||