2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-04-16 08:18:53 +00:00

Order line number (#11692)

* Add "line number" field for external orders

* Updated serializers

* Add columns to UI tables

* Update form fields

* Adds API ordering

* Bump API version

* Update CHANGELOG.md
This commit is contained in:
Oliver
2026-04-08 15:36:08 +10:00
committed by GitHub
parent 4d2ed8fcba
commit 71373e3c19
15 changed files with 131 additions and 5 deletions

View File

@@ -1,11 +1,16 @@
"""InvenTree API version information."""
# InvenTree API version
INVENTREE_API_VERSION = 472
INVENTREE_API_VERSION = 473
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
INVENTREE_API_TEXT = """
v473 -> 2026-04-08 : https://github.com/inventree/InvenTree/pull/11692
- Adds "line" field to PurchaseOrderLineItem and PurchaseOrderExtraLineItem API endpoints
- Adds "line" field to SalesOrderLineItem and SalesOrderExtraLineItem API endpoints
- Adds "line" field to ReturnOrderLineItem and ReturnOrderExtraLineItem API endpoints
v472 -> 2026-04-01 : https://github.com/inventree/InvenTree/pull/xxxx
- Fixes writable fields on the user detail endpoint

View File

@@ -82,7 +82,7 @@ class GeneralExtraLineList(SerializerContextMixin, DataExportViewMixin):
filter_backends = SEARCH_ORDER_FILTER
ordering_fields = ['quantity', 'notes', 'reference']
ordering_fields = ['quantity', 'notes', 'reference', 'line']
search_fields = ['quantity', 'notes', 'reference', 'description']
@@ -717,6 +717,7 @@ class PurchaseOrderLineItemList(
'order': 'order__reference',
'status': 'order__status',
'complete_date': 'order__complete_date',
'line': ['line', 'part__SKU'],
}
ordering_fields = [
@@ -733,6 +734,7 @@ class PurchaseOrderLineItemList(
'order',
'status',
'complete_date',
'line',
]
search_fields = [
@@ -1067,6 +1069,7 @@ class SalesOrderLineItemList(
'reference',
'sale_price',
'target_date',
'line',
]
ordering_field_aliases = {
@@ -1074,6 +1077,7 @@ class SalesOrderLineItemList(
'part': 'part__name',
'IPN': 'part__IPN',
'order': 'order__reference',
'line': ['line', 'part__name'],
}
search_fields = ['part__name', 'quantity', 'reference']
@@ -1720,9 +1724,11 @@ class ReturnOrderLineItemList(
'reference',
'target_date',
'received_date',
'line',
]
ordering_field_aliases = {
'line': ['line', 'item__part__name'],
'part': 'item__part__name',
'IPN': 'item__part__IPN',
'stock': ['item__quantity', 'item__serial_int', 'item__serial'],

View File

@@ -0,0 +1,79 @@
# Generated by Django 5.2.12 on 2026-04-08 03:24
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("order", "0115_purchaseorder_updated_at_returnorder_updated_at_and_more"),
]
operations = [
migrations.AddField(
model_name="purchaseorderextraline",
name="line",
field=models.CharField(
blank=True,
default="",
help_text="Line number for this item (optional)",
max_length=20,
verbose_name="Line Number",
),
),
migrations.AddField(
model_name="purchaseorderlineitem",
name="line",
field=models.CharField(
blank=True,
default="",
help_text="Line number for this item (optional)",
max_length=20,
verbose_name="Line Number",
),
),
migrations.AddField(
model_name="returnorderextraline",
name="line",
field=models.CharField(
blank=True,
default="",
help_text="Line number for this item (optional)",
max_length=20,
verbose_name="Line Number",
),
),
migrations.AddField(
model_name="returnorderlineitem",
name="line",
field=models.CharField(
blank=True,
default="",
help_text="Line number for this item (optional)",
max_length=20,
verbose_name="Line Number",
),
),
migrations.AddField(
model_name="salesorderextraline",
name="line",
field=models.CharField(
blank=True,
default="",
help_text="Line number for this item (optional)",
max_length=20,
verbose_name="Line Number",
),
),
migrations.AddField(
model_name="salesorderlineitem",
name="line",
field=models.CharField(
blank=True,
default="",
help_text="Line number for this item (optional)",
max_length=20,
verbose_name="Line Number",
),
),
]

View File

@@ -1793,6 +1793,15 @@ class OrderLineItem(InvenTree.models.InvenTreeMetadataModel):
if self.price:
return self.quantity * self.price
line = models.CharField(
max_length=20,
blank=True,
default='',
null=False,
verbose_name=_('Line Number'),
help_text=_('Line number for this item (optional)'),
)
reference = models.CharField(
max_length=100,
blank=True,

View File

@@ -276,6 +276,7 @@ class AbstractLineItemSerializer(FilterableSerializerMixin, serializers.Serializ
"""Construct a set of fields for this serializer."""
return [
'pk',
'line',
'link',
'notes',
'order',
@@ -309,6 +310,7 @@ class AbstractExtraLineSerializer(
"""Construct a set of fields for this serializer."""
return [
'pk',
'line',
'description',
'link',
'notes',