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