from django.contrib import admin

from .models import OutgoingInvoice


@admin.register(OutgoingInvoice)
class OutgoingInvoiceAdmin(admin.ModelAdmin):
    list_display = (
        "number",
        "reference",
        "date",
        "contact_code",
        "contact_title",
        "payable",
        "paid",
        "rest",
        "sent",
        "returned",
        "status",
    )
    list_filter = ("sent", "returned", "invoice_type", "status", "warehouse_receipt_status", "currency")
    search_fields = ("number", "reference", "contact_code", "contact_title", "salesman_code", "tax_id", "tag")
    readonly_fields = ("created_at", "updated_at")
    fieldsets = (
        (
            "Invoice",
            {
                "fields": (
                    "number",
                    "reference",
                    "date",
                    "due_date",
                    "invoice_type",
                    "status",
                    "tax_id",
                    "tag",
                )
            },
        ),
        (
            "Contact",
            {
                "fields": (
                    "contact_code",
                    "contact",
                    "contact_title",
                )
            },
        ),
        (
            "Amounts",
            {
                "fields": (
                    "sum",
                    "payable",
                    "paid",
                    "rest",
                    "freight",
                    "profit",
                    "currency",
                )
            },
        ),
        (
            "Status",
            {
                "fields": (
                    "sent",
                    "returned",
                    "warehouse_receipt_status",
                )
            },
        ),
        (
            "Sales",
            {
                "fields": (
                    "project",
                    "salesman_code",
                    "salesman_percent",
                )
            },
        ),
        ("Notes", {"fields": ("note",)}),
        ("Dates", {"fields": ("created_at", "updated_at")}),
    )
