diff --git a/lib/asset_details.dart b/lib/asset_details.dart index 68f3f0d..ada9f2a 100644 --- a/lib/asset_details.dart +++ b/lib/asset_details.dart @@ -12,7 +12,8 @@ class AssetDetails extends StatefulWidget { // AssetDetails({Key key}) : super(key: key); int no; Listlokasi; - AssetDetails({this.no,this.lokasi}); + String initTag; + AssetDetails({this.no,this.lokasi,this.initTag}); @override _AssetDetailsState createState() => _AssetDetailsState(); } @@ -51,6 +52,30 @@ class _AssetDetailsState extends State with TickerProviderStateMix util.showToast('Alert', 'Asset data not found'); } } + redirectNonAudit()async { + var blob = await DBHelper.database.getBlobbyTag(widget.initTag); + print("checkExist $blob"); + if(blob!=null){ + widget.no = blob.no; + await loadAsset(); + // var blob = await DBHelper.database.getBlobbyTag(widget.initTag); + // var result = await DBHelper.database.searchbyTagNumber(blob.tag_number.toUpperCase()); + // if(result['DATA']!=null) { + // result['DATA'].blob = blob.blob; + // result['DATA'].no = blob.no; + // result['DATA'].keterangan = blob.keterangan; + // } + // _asset = result['DATA']; + // ket.text = blob.keterangan; + } + else{ + setState(() { + prefixCode.text = widget.initTag.substring(0,6); + barCode.text = widget.initTag.substring(6); + }); + await findAsset(prefixCode.text+barCode.text); + } + } @override void initState() { @@ -66,6 +91,9 @@ class _AssetDetailsState extends State with TickerProviderStateMix if(widget.no!=null){ loadAsset(); } + if(widget.initTag!=null){ + redirectNonAudit(); + } } findAsset(query,{silent=false})async{ var result = await DBHelper.database.searchbyTagNumber(query.toUpperCase()); @@ -540,6 +568,7 @@ class _AssetDetailsState extends State with TickerProviderStateMix if(insert!=null){ util.showToast("SUCCESS", 'Asset Inserted'); await DBHelper.database.closeDb(); + if(widget.initTag!=null)Navigator.pop(context); setState(() { barCode.text = ''; ket.text = ''; @@ -549,12 +578,12 @@ class _AssetDetailsState extends State with TickerProviderStateMix } } else{ - var update = await DBHelper.database.updateAsset(_asset); - if(update!=null){ - util.showToast("SUCCESS", 'Asset Updated'); - await DBHelper.database.closeDb(); - Navigator.pop(context); - } + var update = await DBHelper.database.updateAsset(_asset); + if(update!=null){ + util.showToast("SUCCESS", 'Asset Updated'); + await DBHelper.database.closeDb(); + Navigator.pop(context); + } } } } diff --git a/lib/asset_logs.dart b/lib/asset_logs.dart index 8c2d1b8..3f98ad2 100644 --- a/lib/asset_logs.dart +++ b/lib/asset_logs.dart @@ -1,6 +1,7 @@ import 'package:assetstock/util/dbHandler.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'asset_details.dart'; import 'util/prefsKey.dart'; import 'main.dart'; import 'util/Models.dart'; @@ -43,6 +44,45 @@ class _AssetLogsState extends State { } } + tableRow(idxAsset,index){ + return InkWell( + onTap: ()async{ + var redirect = await showDialog( + context: context, + builder: (context)=>AlertDialog( + title: Text('Pick nonAuditAsset'), + content: Text("Select Asset ${idxAsset.tag_number}"), + actions: [ + FlatButton( + onPressed: (){ + Navigator.pop(context,true); + }, + child: Text("Add Asset"), + ) + ], + ) + ); + if(redirect??false){ + await Navigator.push(context, MaterialPageRoute(builder: (context) => new AssetDetails(initTag:idxAsset.tag_number))); + // await fetchData(); + // scaleCon.text = scale.toStringAsFixed(2); + } + + }, + child: Row( + children: [ + Container(padding: EdgeInsets.only(left: 5.0),width: widthtb*0.035,child: Text('${index+1}')), + Container(width: widthtb*0.09,child: Text(idxAsset.tag_number)), + Container(width: widthtb*0.24,child: Text(idxAsset.asset_desc)), + Container(width: widthtb*0.24,child: Text(idxAsset.pic)), + Container(width: widthtb*0.13,child: Text(idxAsset.gedung)), + Container(width: widthtb*0.125,child: Text(idxAsset.lantai)), + Container(width: widthtb*0.13,child: Text(idxAsset.ruangan)), + ], + ), + ); + } + @override void initState() { fetchData(); @@ -204,17 +244,7 @@ class _AssetLogsState extends State { decoration: BoxDecoration( border: Border(bottom: BorderSide(width: 0.8)) ), - child: Row( - children: [ - Container(padding: EdgeInsets.only(left: 5.0),width: widthtb*0.035,child: Text('${index+1}')), - Container(width: widthtb*0.09,child: Text(idxAsset.tag_number)), - Container(width: widthtb*0.24,child: Text(idxAsset.asset_desc)), - Container(width: widthtb*0.24,child: Text(idxAsset.pic)), - Container(width: widthtb*0.13,child: Text(idxAsset.gedung)), - Container(width: widthtb*0.125,child: Text(idxAsset.lantai)), - Container(width: widthtb*0.13,child: Text(idxAsset.ruangan)), - ], - ), + child: tableRow(idxAsset,index), ); else return Container(); } @@ -223,17 +253,7 @@ class _AssetLogsState extends State { decoration: BoxDecoration( border: Border(bottom: BorderSide(width: 0.8)) ), - child: Row( - children: [ - Container(padding: EdgeInsets.only(left: 5.0),width: widthtb*0.035,child: Text('${index+1}')), - Container(width: widthtb*0.09,child: Text(idxAsset.tag_number)), - Container(width: widthtb*0.24,child: Text(idxAsset.asset_desc)), - Container(width: widthtb*0.24,child: Text(idxAsset.pic)), - Container(width: widthtb*0.13,child: Text(idxAsset.gedung)), - Container(width: widthtb*0.125,child: Text(idxAsset.lantai)), - Container(width: widthtb*0.13,child: Text(idxAsset.ruangan)), - ], - ), + child: tableRow(idxAsset,index), ); } }), @@ -250,13 +270,13 @@ class _AssetLogsState extends State { ], ), ), - floatingActionButton: FloatingActionButton.extended( - onPressed: (){ - - }, - icon: Icon(Icons.sync), - label: Text("Sync Approval"), - ), + // 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 79f95bf..4cc3a60 100644 --- a/lib/home.dart +++ b/lib/home.dart @@ -323,7 +323,6 @@ 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}'); @@ -383,7 +382,7 @@ class _HomeState extends State { Directory documentsDirectory = await getApplicationDocumentsDirectory(); String path = join(documentsDirectory.path, "assets.db"); File db = File(path); - if(db.existsSync())Navigator.pushNamed(context, '/stocking'); + if(db.existsSync()) Navigator.pushNamed(context, '/stocking'); else{ util.showToast('Alert', 'Please download data master first'); } diff --git a/lib/util/dbHandler.dart b/lib/util/dbHandler.dart index f5fa49e..35c32e0 100644 --- a/lib/util/dbHandler.dart +++ b/lib/util/dbHandler.dart @@ -38,6 +38,7 @@ class DBHelper{ String path = join(documentsDirectory.path, "assets.db"); File file = File(path); print('Database created, ${file.lengthSync()}'); + setOpenState(); } insertAsset(Asset newAsset) async{ @@ -65,6 +66,19 @@ class DBHelper{ } } + getBlobbyTag(tag) async{ + try{ + final database = await db; + var res = await database.query(tableName.insert,where: "${columnName.tag_number} = ?",whereArgs: [tag]); +// 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; + } + } getBlobbyNo(no) async{ try{