2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-08-05 12:11:30 +00:00

Stock barcode fix (#232)

* API: Provide more info in error messages

* Fix support for legacy stock item custom barcodes

* Refresh display after assigning barcode

* Update release notes

* Fix for scanning unkown barcode

- Modern API returns slightly different data

* Fix for scanning unkown barcode

- Modern API returns slightly different data

* Update release notes
This commit is contained in:
Oliver
2022-12-11 23:41:21 +11:00
committed by GitHub
parent 27040024c0
commit d2b74e7684
7 changed files with 54 additions and 18 deletions

View File

@@ -185,10 +185,10 @@ Future<void> showServerError(String url, String title, String description) async
/*
* Displays an error indicating that the server returned an unexpected status code
*/
Future<void> showStatusCodeError(String url, int status) async {
Future<void> showStatusCodeError(String url, int status, {String details=""}) async {
String msg = L10().responseInvalid;
String extra = "${L10().statusCode}: ${status}";
String extra = url + "\n" + "${L10().statusCode}: ${status}";
switch (status) {
case 400:
@@ -231,6 +231,11 @@ Future<void> showStatusCodeError(String url, int status) async {
break;
}
if (details.isNotEmpty) {
extra += "\n";
extra += details;
}
showServerError(
url,
msg,

View File

@@ -456,7 +456,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
if (InvenTreeAPI().supportModernBarcodes) {
tiles.add(
customBarcodeActionTile(context, location!.customBarcode, "stocklocation", location!.pk)
customBarcodeActionTile(context, this, location!.customBarcode, "stocklocation", location!.pk)
);
}
}

View File

@@ -698,7 +698,7 @@ class _PartDisplayState extends RefreshableState<PartDetailWidget> {
if (InvenTreeAPI().supportModernBarcodes) {
tiles.add(
customBarcodeActionTile(context, part.customBarcode, "part", part.pk)
customBarcodeActionTile(context, this, part.customBarcode, "part", part.pk)
);
}

View File

@@ -802,10 +802,23 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
)
);
if (InvenTreeAPI().supportModernBarcodes) {
tiles.add(customBarcodeActionTile(context, item.customBarcode, "stockitem", item.pk));
if (InvenTreeAPI().supportModernBarcodes || item.customBarcode.isEmpty) {
tiles.add(customBarcodeActionTile(context, this, item.customBarcode, "stockitem", item.pk));
} else {
// Note: Custom legacy barcodes (only for StockItem model) are handled differently
tiles.add(
ListTile(
title: Text(L10().barcodeUnassign),
leading: Icon(Icons.qr_code, color: COLOR_CLICK),
onTap: () async {
await item.update(values: {"uid": ""});
refresh(context);
}
)
);
}
// Print label (if label printing plugins exist)
if (labels.isNotEmpty) {
tiles.add(