diff --git a/android/app/build.gradle b/android/app/build.gradle
index 5d77fe5..100cacc 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -67,7 +67,7 @@ if (keystorePropertiesFile.exists()) {
}
android {
- compileSdkVersion 30
+ compileSdkVersion 31
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 019e8be..286d3b9 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
{
String state = '';
final hostAddress = new TextEditingController();
- clearData(context,{backup=true})async{
+ clearData(context)async{
setState(() {
progressDL = null;
isLoading = false;
@@ -63,8 +63,6 @@ class _HomePageState extends State {
File db = File(path);
if(db.existsSync()){
await DBHelper.database.closeDb();
- //auto backup
- // if(backup)await DBHelper.database.backupDb(context);
db.deleteSync();
await prefs.remove(keyClass.lastDownload);
await prefs.remove(keyClass.lastUpload);
@@ -281,6 +279,7 @@ class _HomePageState extends State {
await prefs.remove(keyClass.lastUpload);
await prefs.remove(keyClass.targetProccess);
await prefs.remove(keyClass.submitProccess);
+ await prefs.remove(keyClass.stock_id);
lastUpload = '';
lastDownload = '';
timeString = '';
@@ -674,69 +673,92 @@ class _HomePageState extends State {
Navigator.pushNamed(context, '/login');
}
if(value == 'backup'){
- var result = await DBHelper.database.backupDb();
+ var result = await DBHelper.database.backupDb(context);
util.showFlushbar(context, result['MSG'],color: result["STATUS"]==1?Colors.grey:Colors.red);
}
if(value == 'restore'){
- bool isRestore = await showDialog(context: context,builder: (context)=>AlertDialog(
- title: Text('Restore Data ?'),
- content: Text('Restore data akan menghapus dan mengganti data unit dan cabang yang ada dengan data backup.'),
- actions: [
- TextButton(
- child: Text('Proceed'),
- onPressed: ()async{
- Navigator.pop(context,true);
- },
- ),
- TextButton(
- child: Text('Cancel'),
- onPressed: ()=>Navigator.pop(context,false),
- )
- ],
- ));
- if(isRestore??false){
- var response;
- bool isclear;
- Directory documentsDirectory = await getExternalStorageDirectory();
- String path = join(documentsDirectory.path, "UnitStocking.db");
- File db = File(path);
- if(db.existsSync()){
- isclear = await clearData(context,backup: false);
- }
- else{
- isclear = true;
- }
- if(isclear??false){
- var result = await DBHelper.database.restoreDb();
- if(result["STATUS"]==1){
- await prefs.remove(keyClass.lastDownload);
- await prefs.remove(keyClass.lastUpload);
- await prefs.remove(keyClass.targetProccess);
- await prefs.remove(keyClass.submitProccess);
- setState(() {
- lastUpload = '';
- lastDownload = '';
- timeString = '';
- });
- valueTab value = await DBHelper.database.getValue(keyClass.tgl_start);
- if(value != null)await prefs.setString(keyClass.lastDownload, DateFormat('dd-MM-yyyy HH:mm:ss').parse(value.value).toIso8601String());
- else {
- await prefs.setString(keyClass.lastDownload, DateTime.now().toIso8601String());
+ if(prefs.getString(keyClass.stock_id) == null){
+ util.showFlushbar(context, "Data Unit cabang tidak ditemukan. Silakan get data terlbih dahulu.");
+ }
+ else{
+ if(prefs.getString(keyClass.stock_id) == prefs.getString(keyClass.backup_stock_id)){
+ String company = prefs.getString(keyClass.company);
+ String stock_taking_id = prefs.getString(keyClass.stock_id);
+ String stockState = '';
+ 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){
+ stockState = result['DATA'];
}
- value = await DBHelper.database.getValue(keyClass.stock_id);
- if(value != null) await prefs.setString(keyClass.stock_id,value.value);
- else {
- await prefs.setString(keyClass.stock_id,prefs.getString(keyClass.backup_stock_id));
+ }
+ if(['Open','Submitted'].contains(stockState)){
+ bool isRestore = await showDialog(context: context,builder: (context)=>AlertDialog(
+ title: Text('Restore Data ?'),
+ content: Text('Restore data akan menghapus dan mengganti data unit dan cabang yang ada dengan data backup.'),
+ actions: [
+ TextButton(
+ child: Text('Proceed'),
+ onPressed: ()async{
+ Navigator.pop(context,true);
+ },
+ ),
+ TextButton(
+ child: Text('Cancel'),
+ onPressed: ()=>Navigator.pop(context,false),
+ )
+ ],
+ ));
+ if(isRestore??false){
+ var response;
+ bool isclear;
+ Directory documentsDirectory = await getExternalStorageDirectory();
+ String path = join(documentsDirectory.path, "UnitStocking.db");
+ File db = File(path);
+ if(db.existsSync()){
+ isclear = await clearData(context);
+ }
+ else{
+ isclear = true;
+ }
+ if(isclear??false){
+ var result = await DBHelper.database.restoreDb(context);
+ if(result["STATUS"]==1){
+ await prefs.remove(keyClass.lastDownload);
+ await prefs.remove(keyClass.lastUpload);
+ await prefs.remove(keyClass.targetProccess);
+ await prefs.remove(keyClass.submitProccess);
+ setState(() {
+ lastUpload = '';
+ lastDownload = '';
+ timeString = '';
+ });
+ valueTab value = await DBHelper.database.getValue(keyClass.tgl_start);
+ if(value != null)await prefs.setString(keyClass.lastDownload, DateFormat('dd-MM-yyyy HH:mm:ss').parse(value.value).toIso8601String());
+ else {
+ await prefs.setString(keyClass.lastDownload, DateTime.now().toIso8601String());
+ }
+ value = await DBHelper.database.getValue(keyClass.stock_id);
+ if(value != null) await prefs.setString(keyClass.stock_id,value.value);
+ else {
+ await prefs.setString(keyClass.stock_id,prefs.getString(keyClass.backup_stock_id));
+ }
+ loadState();
+ setState(() {
+ lastDownload = prefs.getString(keyClass.lastDownload);
+ });
+ }
+ response = result["MSG"];
+ }
+ if(response != null)util.showFlushbar(context, response);
}
- await prefs.setString(keyClass.cabang_id,prefs.getString(keyClass.backup_cabang_id));
- loadState();
- setState(() {
- lastDownload = prefs.getString(keyClass.lastDownload);
- });
}
- response = result["MSG"];
+ else{
+ util.showFlushbar(context, "Stocking Unit sudah selesai dan tidak perlu di restore");
+ }
+ }
+ else {
+ util.showFlushbar(context, "File Backup tidak ditemukan atau sudah selesai");
}
- if(response != null)util.showFlushbar(context, response);
}
}
},
diff --git a/pubspec.lock b/pubspec.lock
index bfe5d2a..a7fc777 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -247,6 +247,13 @@ 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:
@@ -524,7 +531,7 @@ packages:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.3"
+ version: "0.4.8"
typed_data:
dependency: transitive
description:
@@ -580,7 +587,7 @@ packages:
name: url_launcher_web
url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.6"
+ version: "2.0.8"
url_launcher_windows:
dependency: transitive
description:
@@ -625,4 +632,4 @@ packages:
version: "3.1.0"
sdks:
dart: ">=2.15.0 <3.0.0"
- flutter: ">=2.8.0"
+ flutter: ">=2.10.0"