2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-17 12:45:26 +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

@ -6,19 +6,15 @@ import "package:inventree/l10.dart";
import "package:inventree/api.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/helpers.dart";
import "package:inventree/inventree/company.dart";
import "package:inventree/inventree/purchase_order.dart";
import "package:inventree/inventree/sales_order.dart";
import "package:inventree/widget/attachment_widget.dart";
import "package:inventree/widget/order/purchase_order_list.dart";
import "package:inventree/widget/order/sales_order_list.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/widget/snacks.dart";
import "package:inventree/widget/company/supplier_part_list.dart";
import "package:inventree/widget/order/sales_order_detail.dart";
import "package:inventree/widget/order/purchase_order_detail.dart";
/*
@ -121,13 +117,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
if (data.containsKey("pk")) {
var order = InvenTreeSalesOrder.fromJson(data);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SalesOrderDetailWidget(order)
)
);
order.goToDetailPage(context);
}
}
);
@ -150,13 +140,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
if (data.containsKey("pk")) {
var order = InvenTreePurchaseOrder.fromJson(data);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PurchaseOrderDetailWidget(order)
)
);
order.goToDetailPage(context);
}
}
);

View File

@ -11,7 +11,6 @@ import "package:inventree/inventree/model.dart";
import "package:inventree/widget/paginator.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/widget/company/company_detail.dart";
/*
@ -48,13 +47,7 @@ class _CompanyListWidgetState extends RefreshableState<CompanyListWidget> {
if (data.containsKey("pk")) {
var company = InvenTreeCompany.fromJson(data);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CompanyDetailWidget(company)
)
);
company.goToDetailPage(context);
}
}
);
@ -137,7 +130,7 @@ class _CompanyListState extends PaginatedSearchState<PaginatedCompanyList> {
subtitle: Text(company.description),
leading: InvenTreeAPI().getThumbnail(company.image),
onTap: () async {
Navigator.push(context, MaterialPageRoute(builder: (context) => CompanyDetailWidget(company)));
company.goToDetailPage(context);
},
);
}

View File

@ -13,9 +13,6 @@ import "package:inventree/inventree/part.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/widget/snacks.dart";
import "package:inventree/widget/progress.dart";
import "package:inventree/widget/part/part_detail.dart";
import "package:inventree/widget/company/company_detail.dart";
import "package:url_launcher/url_launcher.dart";
/*
@ -114,8 +111,7 @@ class _ManufacturerPartDisplayState extends RefreshableState<ManufacturerPartDet
hideLoadingOverlay();
if (part is InvenTreePart) {
Navigator.push(context, MaterialPageRoute(
builder: (context) => PartDetailWidget(part)));
part.goToDetailPage(context);
}
},
)
@ -134,9 +130,7 @@ class _ManufacturerPartDisplayState extends RefreshableState<ManufacturerPartDet
hideLoadingOverlay();
if (supplier is InvenTreeCompany) {
Navigator.push(context, MaterialPageRoute(
builder: (context) => CompanyDetailWidget(supplier)
));
supplier.goToDetailPage(context);
}
}
)

View File

@ -15,9 +15,7 @@ import "package:inventree/inventree/company.dart";
import "package:inventree/widget/progress.dart";
import "package:inventree/widget/refreshable_state.dart";
import "package:inventree/widget/snacks.dart";
import "package:inventree/widget/company/company_detail.dart";
import "package:inventree/widget/company/manufacturer_part_detail.dart";
import "package:inventree/widget/part/part_detail.dart";
/*
@ -126,8 +124,7 @@ class _SupplierPartDisplayState extends RefreshableState<SupplierPartDetailWidge
hideLoadingOverlay();
if (part is InvenTreePart) {
Navigator.push(context, MaterialPageRoute(
builder: (context) => PartDetailWidget(part)));
part.goToDetailPage(context);
}
},
)
@ -169,9 +166,7 @@ class _SupplierPartDisplayState extends RefreshableState<SupplierPartDetailWidge
hideLoadingOverlay();
if (supplier is InvenTreeCompany) {
Navigator.push(context, MaterialPageRoute(
builder: (context) => CompanyDetailWidget(supplier)
));
supplier.goToDetailPage(context);
}
}
)
@ -200,9 +195,7 @@ class _SupplierPartDisplayState extends RefreshableState<SupplierPartDetailWidge
hideLoadingOverlay();
if (supplier is InvenTreeCompany) {
Navigator.push(context, MaterialPageRoute(
builder: (context) => CompanyDetailWidget(supplier)
));
supplier.goToDetailPage(context);
}
}
)