diff --git a/lib/asset_details.dart b/lib/asset_details.dart index d79edcb..68f3f0d 100644 --- a/lib/asset_details.dart +++ b/lib/asset_details.dart @@ -5,6 +5,8 @@ import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import 'main.dart'; import 'util/Models.dart'; +import 'package:http/http.dart' as http; +import 'util/prefsKey.dart'; class AssetDetails extends StatefulWidget { // AssetDetails({Key key}) : super(key: key); @@ -217,12 +219,24 @@ class _AssetDetailsState extends State with TickerProviderStateMix alignment: Alignment.centerRight, child: InkWell( onTap: ()async { - var result = await DBHelper.database.getRefBlob(_asset.tag_number); - if(result!=null){ - if(result.blob!=null) Navigator.push(context, MaterialPageRoute(builder: (context) => PhotoViewer(result.blob,))); + try{ + var dbName = await DBHelper.database.getDbName(); + var bUnit = await DBHelper.database.getBUnit(); + util.showLoading(context); + http.Response result = await http.get( + '${prefs.getString(keyClass.hostAddress)??"https://asset.thamringroup.web.id"}/api/images?q=${_asset.tag_number}&s=${dbName}&b=${bUnit}', + ).timeout(Duration(seconds: 3)); + Navigator.pop(context); + if(result!=null){ + Navigator.push(context, MaterialPageRoute(builder: (context) => PhotoViewer(result.bodyBytes))); + } else util.showToast('ALERT', "No Archived Images yet"); } - else util.showToast('ALERT', "No Archived Images yet"); + catch(e){ + Navigator.pop(context); + print(e); + util.showToast('ALERT', "No Archived Images yet"); + } //showPhoto }, child: Padding( diff --git a/lib/asset_logs.dart b/lib/asset_logs.dart index af57db4..8c2d1b8 100644 --- a/lib/asset_logs.dart +++ b/lib/asset_logs.dart @@ -250,6 +250,13 @@ class _AssetLogsState extends State { ], ), ), + floatingActionButton: FloatingActionButton.extended( + onPressed: (){ + + }, + icon: Icon(Icons.sync), + label: Text("Sync Approval"), + ), ); } } \ No newline at end of file diff --git a/lib/home.dart b/lib/home.dart index db902a9..79f95bf 100644 --- a/lib/home.dart +++ b/lib/home.dart @@ -323,6 +323,7 @@ class _HomeState extends State { // var allUnits = await DBHelper.database.getAllAsset(); // print('${allUnits.length} Units'); util.showToast('ALERT','Data Downloaded'); + await DBHelper.database.setOpenState(); } if(value==-1.0){ util.showToast('ALERT','Data Error ${trans.error}'); diff --git a/lib/util/dbHandler.dart b/lib/util/dbHandler.dart index 429e0dd..f5fa49e 100644 --- a/lib/util/dbHandler.dart +++ b/lib/util/dbHandler.dart @@ -5,6 +5,7 @@ import 'prefsKey.dart'; import 'dart:io'; import 'dart:async'; import 'package:path/path.dart'; +import 'package:intl/intl.dart'; class DBHelper{ DBHelper._(); @@ -78,19 +79,19 @@ class DBHelper{ return null; } } - getRefBlob(tagNumber)async{ - try{ - final database = await db; - var res = await database.query(tableName.ref,where: "${columnName.tag_number} = ?",whereArgs: [tagNumber]); -// var a = await database.rawQuery("select length(${columnName.blob}) / 1024 from ${tableName.insert} where ${columnName.no} = $no"); -// print(a); - return res.isNotEmpty ? Asset.fromJson(res.first): null; - } - catch(e){ - print(e); - return null; - } - } + // getRefBlob(tagNumber)async{ + // try{ + // final database = await db; + // var res = await database.query(tableName.insert,where: "${columnName.tag_number} = ?",whereArgs: [tagNumber]); + // // var a = await database.rawQuery("select count(*) from ${tableName.insert}"); + // // print(a); + // return res.isNotEmpty ? Asset.fromJson(res.first): null; + // } + // catch(e){ + // print(e); + // return null; + // } + // } searchbyTagNumber(tagNumber) async{ try{ final database = await db; @@ -256,5 +257,22 @@ class DBHelper{ return null; } } + setOpenState()async{ + try{ + final database = await db; + var check_KEY = await database.rawQuery("SELECT 1 FROM ${tableName.key} where ${columnName.key} = 'STATE'"); + if (check_KEY.length<=0){ + await database.insert(tableName.key, {columnName.key:"STATE",columnName.value:"OPEN"}); + } + else{ + await database.update(tableName.key, {columnName.value:"OPEN"},where: "${columnName.key} = ?",whereArgs: ['STATE']); + } + await database.update(tableName.key, {columnName.value:DateFormat("YYYY-MM-DD HH:mm:ss").format(DateTime.now())},where: "${columnName.key} = ?",whereArgs: ['START_DATE']); + } + catch(e){ + print(e); + return null; + } + } } diff --git a/lib/util/utils.dart b/lib/util/utils.dart index e27e18a..5a9b8e4 100644 --- a/lib/util/utils.dart +++ b/lib/util/utils.dart @@ -5,7 +5,7 @@ import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:barcode_scan/barcode_scan.dart'; import 'package:fluttertoast/fluttertoast.dart'; -import '../main.dart'; + class Util{ scan()async{ String BarcodeText =''; @@ -18,6 +18,27 @@ class Util{ return {'STATUS':0,'DATA':e}; } } + + showLoadingFuture(context,future,{dismiss=false,onWillPop})async { + var dialogContext; + showDialog( + context: context, + builder: (BuildContext context) { + dialogContext = context; + return WillPopScope( + onWillPop: onWillPop??()async{return true;}, + child: new Center( + child: new CircularProgressIndicator(), + ), + ); + }, + barrierDismissible: dismiss, + ); + var res = await future; + Navigator.pop(dialogContext); + return res; + } + JsonDataPostRaw(Map jsonData, String url,{timeout:false,duration:10}) async{ const JsonDecoder decoder = const JsonDecoder(); try { @@ -43,6 +64,7 @@ class Util{ return {"STATUS":"ERROR","ERROR":"Not Connected to Server. $exception"}; } } + showToast(type,text)async{ await Fluttertoast.cancel(); Fluttertoast.showToast( diff --git a/pubspec.lock b/pubspec.lock index 313198e..b65d2a6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -178,7 +178,7 @@ packages: source: hosted version: "1.1.0" intl: - dependency: transitive + dependency: "direct main" description: name: intl url: "https://pub.dartlang.org" diff --git a/pubspec.yaml b/pubspec.yaml index c913012..ac767f6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -29,6 +29,7 @@ dependencies: photo_view: sqflite: matrix_gesture_detector: + intl: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.3