Files
erp-efintel-2026-portainer/procurement/admin.py
T
2026-09-07 18:44:32 -03:00

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',)