38086-vm/core/admin.py
2026-02-02 13:27:35 +00:00

74 lines
2.5 KiB
Python

from django.contrib import admin
from .models import (
Category, Unit, Product, Customer, Supplier,
Sale, SaleItem, SalePayment,
Purchase, PurchaseItem, PurchasePayment,
Quotation, QuotationItem,
SaleReturn, SaleReturnItem,
PurchaseReturn, PurchaseReturnItem,
SystemSetting, PaymentMethod
)
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ('name_en', 'name_ar', 'slug')
prepopulated_fields = {'slug': ('name_en',)}
@admin.register(Unit)
class UnitAdmin(admin.ModelAdmin):
list_display = ('name_en', 'name_ar', 'short_name')
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = ('name_en', 'name_ar', 'sku', 'price', 'stock_quantity', 'category', 'unit')
list_filter = ('category', 'unit', 'is_active')
search_fields = ('name_en', 'name_ar', 'sku')
@admin.register(Customer)
class CustomerAdmin(admin.ModelAdmin):
list_display = ('name', 'phone', 'email')
search_fields = ('name', 'phone')
@admin.register(Supplier)
class SupplierAdmin(admin.ModelAdmin):
list_display = ('name', 'contact_person', 'phone')
@admin.register(PaymentMethod)
class PaymentMethodAdmin(admin.ModelAdmin):
list_display = ('name_en', 'name_ar', 'is_active')
class SaleItemInline(admin.TabularInline):
model = SaleItem
extra = 1
class SalePaymentInline(admin.TabularInline):
model = SalePayment
extra = 1
@admin.register(Sale)
class SaleAdmin(admin.ModelAdmin):
list_display = ('id', 'invoice_number', 'customer', 'total_amount', 'paid_amount', 'status', 'created_at')
list_filter = ('status', 'created_at')
inlines = [SaleItemInline, SalePaymentInline]
@admin.register(Purchase)
class PurchaseAdmin(admin.ModelAdmin):
list_display = ('id', 'invoice_number', 'supplier', 'total_amount', 'paid_amount', 'status', 'created_at')
list_filter = ('supplier', 'status', 'created_at')
@admin.register(Quotation)
class QuotationAdmin(admin.ModelAdmin):
list_display = ('quotation_number', 'customer', 'total_amount', 'status', 'created_at')
list_filter = ('status', 'created_at')
@admin.register(SaleReturn)
class SaleReturnAdmin(admin.ModelAdmin):
list_display = ('return_number', 'customer', 'total_amount', 'created_at')
@admin.register(PurchaseReturn)
class PurchaseReturnAdmin(admin.ModelAdmin):
list_display = ('return_number', 'supplier', 'total_amount', 'created_at')
@admin.register(SystemSetting)
class SystemSettingAdmin(admin.ModelAdmin):
list_display = ('business_name', 'phone', 'email', 'vat_number')