"""Drop the aggregate/total VAT articles from the Tax Article picker.

These are ФНО summary lines (301.1 CƏMİ, its two subtotals, the umbrella 165.1.3
article that sits above the goods/services export ones, 308, 319.2, 319.3), not
leaf articles an accountant should be able to pick on an invoice line. They stay
in the declaration form itself, where those rows are filled in by hand.

Matched on article_name rather than name: Frappe truncates name at 140 chars, so
some of these exist under an ellipsised name — and 165.5 (NAĞD) shipped twice,
once under each spelling. Equality (not LIKE) keeps the 165.1.3 goods/services
siblings and 165.6 alive.

Runs in post_model_sync, i.e. before fixtures are imported, and the same rows are
gone from tax_article.json — otherwise sync_fixtures would just put them back.
Idempotent: a no-op once they are gone.
"""

import frappe

DOOMED = [
	"301.1 Təqdim edilmiş mallar (işlər, xidmətlər) üzrə ƏDV-yə 18 faiz dərəcə ilə cəlb olunan əməliyyatların məbləği CƏMİ",
	"301.1.1 Malların təqdim edilməsindən gəlir",
	"301.1.2 İşlərin görülməsi və xidmətlərin göstərilməsi üzrə əməliyyatlar",
	"Vergi Məcəlləsinin 165.1.3-cü maddəsinə əsasən aparılan əməliyyatlar",
	"VM 175.1-ci maddəsinə əsasən alınmış elektron qaimə-fakturalar (elektron vergi hesab-fakturalar) üzrə nağdsız qaydada ödənilmiş məbləğ",
	"Vergi Məcəlləsinin 165.5-ci maddəsinə əsasən ƏDV-si qaytarılan malların geri qaytarılması halları üzrə ƏDV-nin hesablanması (NAĞD ödənişlər)",
	"Vergi Məcəlləsinin 165.5-ci maddəsinə əsasən ƏDV-si qaytarılan malların geri qaytarılması halları üzrə ƏDV-nin hesablanması (NAĞDSIZ ödənişlər)",
]


def execute():
	if not frappe.db.exists("DocType", "Tax Article"):
		return

	names = frappe.get_all(
		"Tax Article",
		filters={"article_name": ("in", DOOMED), "is_group": 0},
		pluck="name",
	)

	for name in names:
		frappe.delete_doc("Tax Article", name, force=1, ignore_permissions=True)
