# Файл: jey_erp/custom/sales_invoice_vat.py
# Упрощенная версия без сложной логики

import frappe
from frappe.utils import flt

def on_sales_invoice_validate(doc, method=None):
    """
    Hook для Sales Invoice validate
    Простая очистка неиспользуемых полей
    """
    if doc.doctype != "Sales Invoice":
        return
    
    for item in doc.get("items", []):
        clean_vat_fields_for_item(item)

def clean_vat_fields_for_item(item):
    """
    Простая очистка VAT полей на основе налогового шаблона
    """
    if not item.get("item_code"):
        return
    
    tax_template = item.get("item_tax_template")
    
    # Очищаем все поля по умолчанию
    vat_fields = {
        'vat_18_percent_with_amount': 0,
        'vat_amount': 0,
        'vat_0_percent_with_amount': 0,
        'amount_without_vat': 0,
        'vat_free_amount': 0,
        'tax_article': None
    }
    
    # Определяем какие поля оставить
    item_amount = flt(item.get("amount", 0))
    
    if tax_template == "ƏDV 18%":
        # Для 18% НДС
        if not item.get('vat_18_percent_with_amount'):
            vat_fields['vat_18_percent_with_amount'] = item_amount * 1.18
        else:
            vat_fields['vat_18_percent_with_amount'] = flt(item.get('vat_18_percent_with_amount'))
        
        vat_fields['vat_amount'] = vat_fields['vat_18_percent_with_amount'] - item_amount
        vat_fields['tax_article'] = None  # Очищаем
        
    elif tax_template == "ƏDV 0%":
        # Для 0% НДС
        vat_fields['vat_0_percent_with_amount'] = item_amount
        # tax_article оставляем как есть
        if hasattr(item, 'tax_article') and item.tax_article:
            vat_fields['tax_article'] = item.tax_article
        
    elif tax_template == "ƏDV-dən azadolma":
        # Для освобожденных от НДС
        vat_fields['vat_free_amount'] = item_amount
        # tax_article оставляем как есть
        if hasattr(item, 'tax_article') and item.tax_article:
            vat_fields['tax_article'] = item.tax_article
            
    else:
        # Без НДС
        vat_fields['amount_without_vat'] = item_amount
        vat_fields['tax_article'] = None  # Очищаем
    
    # Применяем значения
    for field, value in vat_fields.items():
        if hasattr(item, field):
            setattr(item, field, value)

# Простой API метод если нужен (необязательно)
@frappe.whitelist()
def get_vat_template_info(item_tax_template):
    """
    Простая информация о налоговом шаблоне
    """
    template_info = {
        "ƏDV 18%": {
            "name": "VAT 18%",
            "rate": 18,
            "allows_tax_article": False
        },
        "ƏDV 0%": {
            "name": "VAT 0%", 
            "rate": 0,
            "allows_tax_article": True
        },
        "ƏDV-dən azadolma": {
            "name": "VAT Exempt",
            "rate": 0,
            "allows_tax_article": True
        }
    }
    
    return template_info.get(item_tax_template, {
        "name": "No VAT",
        "rate": 0, 
        "allows_tax_article": False
    })