diff --git a/lib/models/device/asset_search.dart b/lib/models/device/asset_search.dart index 8fc2ea28..3bf6c185 100644 --- a/lib/models/device/asset_search.dart +++ b/lib/models/device/asset_search.dart @@ -28,6 +28,8 @@ class AssetSearch { this.tagCode, this.assetGroupName, this.assetGroup, + this.oracleCodeTypeId, + this.oracleCodeValue }); AssetSearch.fromJson(dynamic json) { @@ -57,6 +59,8 @@ class AssetSearch { tagCode = json['tagCode']; assetGroupName = json['assetGroupName']; assetGroup = json['assetGroup'] != null ? Lookup.fromJson(json['assetGroup']) : null; + oracleCodeTypeId=json['assetOracleCodeTypeId']; + oracleCodeValue=json['assetOracleCodeValue']; } String code; @@ -85,6 +89,8 @@ class AssetSearch { String tagCode; String assetGroupName; Lookup assetGroup; + String oracleCodeValue; + int oracleCodeTypeId; AssetSearch copyWith({ String code, @@ -113,6 +119,8 @@ class AssetSearch { String tagCode, String assetGroupName, Lookup assetGroup, + String oracleCodeValue, + int oracleCodeTypeId }) => AssetSearch( code: code ?? this.code, @@ -141,6 +149,8 @@ class AssetSearch { tagCode: tagCode ?? this.tagCode, assetGroupName: assetGroupName ?? this.assetGroupName, assetGroup: assetGroup ?? this.assetGroup, + oracleCodeValue: oracleCodeValue ?? this.oracleCodeValue, + oracleCodeTypeId: oracleCodeTypeId ?? this.oracleCodeTypeId ); Map toJson() { @@ -183,6 +193,8 @@ class AssetSearch { if (assetGroup != null) { map['assetGroup'] = assetGroup.toJson(); } + if (oracleCodeValue != null && oracleCodeValue.isNotEmpty) map['assetOracleCodeValue'] = oracleCodeValue; + if (oracleCodeTypeId != null) map['assetOracleCodeTypeId'] = oracleCodeTypeId; return map; } } diff --git a/lib/views/pages/device_transfer/search_asset_page.dart b/lib/views/pages/device_transfer/search_asset_page.dart index 40958313..04b1ddb1 100644 --- a/lib/views/pages/device_transfer/search_asset_page.dart +++ b/lib/views/pages/device_transfer/search_asset_page.dart @@ -178,6 +178,10 @@ class _SearchAssetPageState extends State { case 1: search.assetNo = value; break; + case 2: + search.oracleCodeValue = value; + search.oracleCodeTypeId = 412; + break; case 3: search.assetSerialNumber = value; break; diff --git a/lib/views/widgets/qr/asset_scan_qr.dart b/lib/views/widgets/qr/asset_scan_qr.dart index 50072857..a81e7c4a 100644 --- a/lib/views/widgets/qr/asset_scan_qr.dart +++ b/lib/views/widgets/qr/asset_scan_qr.dart @@ -49,7 +49,8 @@ class _AssetScanQrState extends State { } _pickManually() async { - await Navigator.push(context, MaterialPageRoute(builder: (context) => const SearchAssetPage())); + _controller?.pauseCamera(); + await Navigator.push(context, MaterialPageRoute(builder: (context) => const SearchAssetPage())).then((value) => _controller?.resumeCamera()); } _getDevice(String result, {bool isQr = false}) async { @@ -79,7 +80,9 @@ class _AssetScanQrState extends State { if (!_scanDone) { _scanDone = true; final result = await _getDevice(scanData.code, isQr: true); - Navigator.of(context).pop(result[0]); + if(result.isNotEmpty) { + Navigator.of(context).pop(result[0]); + } } }); },