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:
@@ -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
|
||||
|
||||
|
||||
@@ -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'],
|
||||
|
||||
@@ -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",
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -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,
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user