43 lines
2.0 KiB
Python
43 lines
2.0 KiB
Python
from django.contrib import admin
|
|
from .models import ItemCatalog, PurchaseRequisition, RequisitionItem, PurchaseOrder, PurchaseOrderItem, GoodsReceipt, ThreeWayMatch
|
|
|
|
class RequisitionItemInline(admin.TabularInline):
|
|
model = RequisitionItem
|
|
extra = 1
|
|
|
|
class PurchaseOrderItemInline(admin.TabularInline):
|
|
model = PurchaseOrderItem
|
|
extra = 1
|
|
|
|
@admin.register(ItemCatalog)
|
|
class ItemCatalogAdmin(admin.ModelAdmin):
|
|
list_display = ('code', 'name', 'category', 'unit', 'reference_price_clp', 'sla_days', 'preferred_vendor', 'is_active')
|
|
search_fields = ('code', 'name', 'specifications')
|
|
list_filter = ('category', 'unit', 'is_active')
|
|
|
|
@admin.register(PurchaseRequisition)
|
|
class PurchaseRequisitionAdmin(admin.ModelAdmin):
|
|
list_display = ('code', 'requester', 'project', 'priority', 'status', 'total_estimated_clp', 'required_date', 'created_at')
|
|
search_fields = ('code', 'purpose', 'requester__username')
|
|
list_filter = ('status', 'priority', 'project')
|
|
inlines = [RequisitionItemInline]
|
|
|
|
@admin.register(PurchaseOrder)
|
|
class PurchaseOrderAdmin(admin.ModelAdmin):
|
|
list_display = ('code', 'vendor', 'project', 'issue_date', 'net_amount_clp', 'total_amount_clp', 'status')
|
|
search_fields = ('code', 'vendor__name', 'vendor__rut')
|
|
list_filter = ('status', 'project')
|
|
inlines = [PurchaseOrderItemInline]
|
|
|
|
@admin.register(GoodsReceipt)
|
|
class GoodsReceiptAdmin(admin.ModelAdmin):
|
|
list_display = ('code', 'purchase_order', 'dispatch_guide_number', 'receipt_date', 'received_by', 'technical_conformity')
|
|
search_fields = ('code', 'dispatch_guide_number', 'purchase_order__code')
|
|
list_filter = ('technical_conformity', 'receipt_date')
|
|
|
|
@admin.register(ThreeWayMatch)
|
|
class ThreeWayMatchAdmin(admin.ModelAdmin):
|
|
list_display = ('purchase_order', 'dte_invoice_number', 'dte_invoice_rut', 'price_difference_clp', 'match_status', 'matched_at')
|
|
search_fields = ('purchase_order__code', 'dte_invoice_number', 'dte_invoice_rut')
|
|
list_filter = ('match_status',)
|