@@ -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" | |||