@@ -12,7 +12,8 @@ class AssetDetails extends StatefulWidget { | |||||
// AssetDetails({Key key}) : super(key: key); | // AssetDetails({Key key}) : super(key: key); | ||||
int no; | int no; | ||||
List<String>lokasi; | List<String>lokasi; | ||||
AssetDetails({this.no,this.lokasi}); | |||||
String initTag; | |||||
AssetDetails({this.no,this.lokasi,this.initTag}); | |||||
@override | @override | ||||
_AssetDetailsState createState() => _AssetDetailsState(); | _AssetDetailsState createState() => _AssetDetailsState(); | ||||
} | } | ||||
@@ -51,6 +52,30 @@ class _AssetDetailsState extends State<AssetDetails> with TickerProviderStateMix | |||||
util.showToast('Alert', 'Asset data not found'); | 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 | @override | ||||
void initState() { | void initState() { | ||||
@@ -66,6 +91,9 @@ class _AssetDetailsState extends State<AssetDetails> with TickerProviderStateMix | |||||
if(widget.no!=null){ | if(widget.no!=null){ | ||||
loadAsset(); | loadAsset(); | ||||
} | } | ||||
if(widget.initTag!=null){ | |||||
redirectNonAudit(); | |||||
} | |||||
} | } | ||||
findAsset(query,{silent=false})async{ | findAsset(query,{silent=false})async{ | ||||
var result = await DBHelper.database.searchbyTagNumber(query.toUpperCase()); | var result = await DBHelper.database.searchbyTagNumber(query.toUpperCase()); | ||||
@@ -540,6 +568,7 @@ class _AssetDetailsState extends State<AssetDetails> with TickerProviderStateMix | |||||
if(insert!=null){ | if(insert!=null){ | ||||
util.showToast("SUCCESS", 'Asset Inserted'); | util.showToast("SUCCESS", 'Asset Inserted'); | ||||
await DBHelper.database.closeDb(); | await DBHelper.database.closeDb(); | ||||
if(widget.initTag!=null)Navigator.pop(context); | |||||
setState(() { | setState(() { | ||||
barCode.text = ''; | barCode.text = ''; | ||||
ket.text = ''; | ket.text = ''; | ||||
@@ -549,12 +578,12 @@ class _AssetDetailsState extends State<AssetDetails> with TickerProviderStateMix | |||||
} | } | ||||
} | } | ||||
else{ | 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); | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -1,6 +1,7 @@ | |||||
import 'package:assetstock/util/dbHandler.dart'; | import 'package:assetstock/util/dbHandler.dart'; | ||||
import 'package:flutter/cupertino.dart'; | import 'package:flutter/cupertino.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'asset_details.dart'; | |||||
import 'util/prefsKey.dart'; | import 'util/prefsKey.dart'; | ||||
import 'main.dart'; | import 'main.dart'; | ||||
import 'util/Models.dart'; | import 'util/Models.dart'; | ||||
@@ -43,6 +44,45 @@ class _AssetLogsState extends State<AssetLogs> { | |||||
} | } | ||||
} | } | ||||
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 | @override | ||||
void initState() { | void initState() { | ||||
fetchData(); | fetchData(); | ||||
@@ -204,17 +244,7 @@ class _AssetLogsState extends State<AssetLogs> { | |||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
border: Border(bottom: BorderSide(width: 0.8)) | 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(); | else return Container(); | ||||
} | } | ||||
@@ -223,17 +253,7 @@ class _AssetLogsState extends State<AssetLogs> { | |||||
decoration: BoxDecoration( | decoration: BoxDecoration( | ||||
border: Border(bottom: BorderSide(width: 0.8)) | 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<AssetLogs> { | |||||
], | ], | ||||
), | ), | ||||
), | ), | ||||
floatingActionButton: FloatingActionButton.extended( | |||||
onPressed: (){ | |||||
}, | |||||
icon: Icon(Icons.sync), | |||||
label: Text("Sync Approval"), | |||||
), | |||||
// floatingActionButton: FloatingActionButton.extended( | |||||
// onPressed: (){ | |||||
// | |||||
// }, | |||||
// icon: Icon(Icons.sync), | |||||
// label: Text("Sync Approval"), | |||||
// ), | |||||
); | ); | ||||
} | } | ||||
} | } |
@@ -323,7 +323,6 @@ class _HomeState extends State<Home> { | |||||
// var allUnits = await DBHelper.database.getAllAsset(); | // var allUnits = await DBHelper.database.getAllAsset(); | ||||
// print('${allUnits.length} Units'); | // print('${allUnits.length} Units'); | ||||
util.showToast('ALERT','Data Downloaded'); | util.showToast('ALERT','Data Downloaded'); | ||||
await DBHelper.database.setOpenState(); | |||||
} | } | ||||
if(value==-1.0){ | if(value==-1.0){ | ||||
util.showToast('ALERT','Data Error ${trans.error}'); | util.showToast('ALERT','Data Error ${trans.error}'); | ||||
@@ -383,7 +382,7 @@ class _HomeState extends State<Home> { | |||||
Directory documentsDirectory = await getApplicationDocumentsDirectory(); | Directory documentsDirectory = await getApplicationDocumentsDirectory(); | ||||
String path = join(documentsDirectory.path, "assets.db"); | String path = join(documentsDirectory.path, "assets.db"); | ||||
File db = File(path); | File db = File(path); | ||||
if(db.existsSync())Navigator.pushNamed(context, '/stocking'); | |||||
if(db.existsSync()) Navigator.pushNamed(context, '/stocking'); | |||||
else{ | else{ | ||||
util.showToast('Alert', 'Please download data master first'); | util.showToast('Alert', 'Please download data master first'); | ||||
} | } | ||||
@@ -38,6 +38,7 @@ class DBHelper{ | |||||
String path = join(documentsDirectory.path, "assets.db"); | String path = join(documentsDirectory.path, "assets.db"); | ||||
File file = File(path); | File file = File(path); | ||||
print('Database created, ${file.lengthSync()}'); | print('Database created, ${file.lengthSync()}'); | ||||
setOpenState(); | |||||
} | } | ||||
insertAsset(Asset newAsset) async{ | 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{ | getBlobbyNo(no) async{ | ||||
try{ | try{ | ||||