1
0
forked from erp-dev/erp

feat: salesitem can change/soft delete

This commit is contained in:
2026-04-06 14:49:02 +08:00
parent d7bc43082e
commit 9afbb73799
16 changed files with 1075 additions and 10 deletions

View File

@@ -1,5 +1,11 @@
from django.contrib import admin
from .models import ExternalFinishedProduct, Shipment, SalesItem, ShipmentDelivery
from .models import (
ExternalFinishedProduct,
SalesItem,
SalesItemChangeRecord,
Shipment,
ShipmentDelivery,
)
class SalesItemInline(admin.TabularInline):
@@ -64,10 +70,10 @@ class ShipmentAdmin(admin.ModelAdmin):
@admin.register(SalesItem)
class SalesItemAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'quantity', 'unit', 'position', 'shipment_status', 'printing_job_id', 'customer_id', 'created_by', 'created_at']
list_filter = ['unit', 'created_at', ('shipment', admin.EmptyFieldListFilter)]
list_display = ['id', 'name', 'quantity', 'unit', 'position', 'shipment_status', 'printing_job_id', 'customer_id', 'created_by', 'delete_at', 'delete_by', 'created_at']
list_filter = ['unit', 'created_at', 'delete_at', ('shipment', admin.EmptyFieldListFilter)]
search_fields = ['name', 'shipment__customer__name', 'position', 'remark']
readonly_fields = ['created_at', 'updated_at', 'created_by']
readonly_fields = ['created_at', 'updated_at', 'created_by', 'delete_at', 'delete_by']
raw_id_fields = ['shipment']
def shipment_status(self, obj):
@@ -96,6 +102,32 @@ class ExternalFinishedProductAdmin(admin.ModelAdmin):
super().save_model(request, obj, form, change)
@admin.register(SalesItemChangeRecord)
class SalesItemChangeRecordAdmin(admin.ModelAdmin):
list_display = [
"id",
"sales_item",
"operator",
"operated_at",
"created_at",
]
list_filter = ["operated_at", "created_at"]
search_fields = [
"sales_item__name",
"operator__username",
"operator__employee__name",
]
readonly_fields = [
"sales_item",
"operator",
"operated_at",
"before_values",
"after_values",
"created_at",
"updated_at",
]
@admin.register(ShipmentDelivery)
class ShipmentDeliveryAdmin(admin.ModelAdmin):
list_display = [