2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-16 04:05:28 +00:00

Order extra lines (#632)

* Define classes for extra line item

* Display PO extra line items

- Also, some refactoring

* Support extra line items for sales order

* linting fixes

* Update release notes
This commit is contained in:
Oliver
2025-04-15 20:49:05 +10:00
committed by GitHub
parent 25d7ac9189
commit 72a78291b2
34 changed files with 642 additions and 193 deletions

View File

@ -15,7 +15,6 @@ import "package:inventree/widget/stock/location_list.dart";
import "package:inventree/widget/progress.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/widget/snacks.dart";
import "package:inventree/widget/stock/stock_detail.dart";
import "package:inventree/widget/stock/stock_list.dart";
import "package:inventree/labels.dart";
@ -279,13 +278,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
if (data.containsKey("pk")) {
var loc = InvenTreeStockLocation.fromJson(data);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => LocationDisplayWidget(loc)
)
);
loc.goToDetailPage(context);
}
}
);
@ -317,13 +310,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
if (data.containsKey("pk")) {
var item = InvenTreeStockItem.fromJson(data);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => StockDetailWidget(item)
)
);
item.goToDetailPage(context);
}
}
);
@ -367,8 +354,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
hideLoadingOverlay();
if (loc is InvenTreeStockLocation) {
Navigator.push(context, MaterialPageRoute(
builder: (context) => LocationDisplayWidget(loc)));
loc.goToDetailPage(context);
}
}
},

View File

@ -2,7 +2,6 @@ import "package:flutter/material.dart";
import "package:inventree/inventree/model.dart";
import "package:inventree/inventree/stock.dart";
import "package:inventree/widget/stock/location_display.dart";
import "package:inventree/widget/paginator.dart";
import "package:inventree/widget/refreshable_state.dart";
@ -87,12 +86,7 @@ class _PaginatedStockLocationListState extends PaginatedSearchState<PaginatedSto
trailing: Text("${location.itemcount}"),
leading: location.customIcon == null ? null : Icon(location.customIcon),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => LocationDisplayWidget(location)
)
);
location.goToDetailPage(context);
},
);
}

View File

@ -17,14 +17,10 @@ import "package:inventree/preferences.dart";
import "package:inventree/inventree/company.dart";
import "package:inventree/inventree/stock.dart";
import "package:inventree/inventree/part.dart";
import "package:inventree/widget/company/company_detail.dart";
import "package:inventree/widget/company/supplier_part_detail.dart";
import "package:inventree/widget/dialogs.dart";
import "package:inventree/widget/attachment_widget.dart";
import "package:inventree/widget/order/sales_order_detail.dart";
import "package:inventree/widget/stock/location_display.dart";
import "package:inventree/widget/part/part_detail.dart";
import "package:inventree/widget/progress.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/widget/snacks.dart";
@ -531,7 +527,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
hideLoadingOverlay();
if (part is InvenTreePart) {
Navigator.push(context, MaterialPageRoute(builder: (context) => PartDetailWidget(part)));
part.goToDetailPage(context);
}
}
},
@ -574,8 +570,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
hideLoadingOverlay();
if (loc is InvenTreeStockLocation) {
Navigator.push(context, MaterialPageRoute(
builder: (context) => LocationDisplayWidget(loc)));
loc.goToDetailPage(context);
}
}
},
@ -690,9 +685,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
leading: Icon(TablerIcons.truck_delivery, color: COLOR_ACTION),
trailing: Text(salesOrder?.reference ?? ""),
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => SalesOrderDetailWidget(salesOrder!)
));
salesOrder?.goToDetailPage(context);
}
)
);
@ -706,9 +699,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
leading: Icon(TablerIcons.building_store, color: COLOR_ACTION),
trailing: Text(customer?.name ?? ""),
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => CompanyDetailWidget(customer!)
));
customer?.goToDetailPage(context);
},
)
);

View File

@ -5,7 +5,6 @@ import "package:inventree/inventree/stock.dart";
import "package:inventree/widget/paginator.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/l10.dart";
import "package:inventree/widget/stock/stock_detail.dart";
import "package:inventree/api.dart";
@ -146,7 +145,7 @@ class _PaginatedStockItemListState extends PaginatedSearchState<PaginatedStockIt
)
),
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => StockDetailWidget(item)));
item.goToDetailPage(context);
},
);
}