fixed tax article fixtures being shotrened with ...

This commit is contained in:
Ali 2025-09-19 20:58:03 +04:00
parent 61bd10a371
commit 591350a556
3 changed files with 2102 additions and 2481 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,6 @@ import frappe
from frappe.model.document import Document from frappe.model.document import Document
class TaxArticle(Document): class TaxArticle(Document):
def before_insert(self):
# Принудительно обрезаем при любой вставке
if hasattr(self, 'article_name') and self.article_name:
if len(str(self.article_name)) > 140:
self.article_name = str(self.article_name)[:137] + "..."
def autoname(self): def autoname(self):
if not self.article_name: if not self.article_name:
return return

View File

@ -3,7 +3,7 @@
import frappe import frappe
from frappe import _ from frappe import _
from frappe.utils import flt, formatdate from frappe.utils import flt
def execute(filters=None): def execute(filters=None):
@ -14,15 +14,18 @@ def execute(filters=None):
def get_data(filters): def get_data(filters):
"""Получаем данные по Sales Invoice с распределением по налоговым статьям""" """Получаем данные по Sales Invoice с распределением по налоговым статьям"""
# Получаем список всех налоговых статей
tax_articles = get_tax_articles_list()
# Получаем Sales Invoice Items с учетом фильтров # Получаем Sales Invoice Items с учетом фильтров
invoice_items = get_sales_invoice_items(filters, tax_articles) invoice_items = get_sales_invoice_items(filters)
if not invoice_items: if not invoice_items:
return [] return []
# Получаем маппинг name -> article_name из Tax Article
tax_article_names_mapping = get_tax_article_names_mapping()
# Получаем маппинг полных названий к ключам полей
tax_articles_mapping = get_tax_articles_mapping()
# Группируем данные по Sales Invoice # Группируем данные по Sales Invoice
invoices_data = {} invoices_data = {}
@ -36,352 +39,39 @@ def get_data(filters):
'company': item['company'] 'company': item['company']
} }
# Инициализируем все колонки налоговых статей нулями # Инициализируем все колонки нулями
for article in tax_articles: for field_key in tax_articles_mapping.values():
article_key = get_article_field_key(article) invoices_data[invoice_name][field_key] = 0
invoices_data[invoice_name][article_key] = 0
# Добавляем сумму в соответствующую колонку # Получаем полное название статьи по сокращенному name
if item['tax_article']: tax_article_name = item['tax_article'] # Это name из Tax Article
article_key = get_article_field_key(item['tax_article']) if tax_article_name and tax_article_name in tax_article_names_mapping:
invoices_data[invoice_name][article_key] += flt(item['amount']) full_article_name = tax_article_names_mapping[tax_article_name] # Получаем article_name
# Конвертируем в список # Проверяем есть ли маппинг для полного названия
if full_article_name in tax_articles_mapping:
field_key = tax_articles_mapping[full_article_name]
invoices_data[invoice_name][field_key] += flt(item['amount'])
# Конвертируем в список и сортируем
data = list(invoices_data.values()) data = list(invoices_data.values())
# Сортируем по дате и имени инвойса
data.sort(key=lambda x: (x['posting_date'], x['sales_invoice']), reverse=True) data.sort(key=lambda x: (x['posting_date'], x['sales_invoice']), reverse=True)
return data return data
def get_tax_articles_list(): def get_tax_article_names_mapping():
"""Возвращает список всех налоговых статей""" """Получает маппинг name -> article_name из таблицы Tax Article"""
return [ tax_articles = frappe.db.sql("""
"Vergi Məcəlləsinin 165.1.1-ci maddəsinə əsasən aparılan əməliyyatlar", SELECT name, article_name
"Vergi Məcəlləsinin 165.1.2-ci maddəsinə əsasən aparılan əməliyyatlar", FROM `tabTax Article`
"Vergi Məcəlləsinin 165.1.3-cü maddəsinə əsasən aparılan əməliyyatlar", WHERE article_name IS NOT NULL AND article_name != ''
"Vergi Məcəlləsinin 165.1.3-cü maddəsinə əsasən malların ixracı üzrə aparılmış əməliyyatlar", """, as_dict=True)
"Vergi Məcəlləsinin 165.1.3-cü maddəsinə əsasən bu Məcəllənin 168.1.5-ci maddəsində göstərilmiş xidmətlərin ixracı üzrə aparılmış əməliyyatlar",
"Vergi Məcəlləsinin 165.1.4-cü maddəsinə əsasən aparılan əməliyyatlar", return {article['name']: article['article_name'] for article in tax_articles}
"Vergi Məcəlləsinin 165.1.5-ci maddəsinə əsasən aparılan əməliyyatlar",
"Vergi Məcəlləsinin 165.1.9-cu maddəsinə əsasən aparılan əməliyyatlar",
"Vergi Məcəlləsinin 165.1.10-cu maddəsinə əsasən aparılan əməliyyatlar",
"Vergi Məcəlləsinin 165.1.11-ci maddəsinə əsasən aparılan əməliyyatlar",
"VM-nin 164.1.1-ci maddəsinə əsasən özəlləşdirilmə qaydasında dövlət müəssisəsindən satın alınan əmlakın dəyəri, habelə dövlət əmlakının icarəyə verilməsindən alınan icarə haqqının büdcəyə ödənilməli olan hissəsi",
"VM-nin 164.1.2-ci maddəsinə əsasən maliyyə xidmətlərinin göstərilməsi, o cümlədən maliyyə lizinqi əməliyyatları üzrə ödənilən faizlər",
"VM-nin 164.1.3-cü maddəsinə əsasən milli və ya xarici valyutanın (numizmatika məqsədlərindən başqa), həmçinin qiymətli kağızların göndərilməsi",
"VM-nin 164.1.5-ci maddəsinə əsasən idxal olunan əmlak istisna olmaqla müəssisənin nizamnamə fonduna (kapitalına) pay şəklində hər hansı əmlakın (əsas vəsaitlər istisna olmaqla) qoyulması (əmlakın pay şəklində qoyuluşu, onun müqabilində bilavasitə digər əmlakın əldə edilməsi ilə əlaqədar olmadıqda)",
"VM-nin 164.1.6-cı maddəsinə əsasən tutulan məbləğlər hədlərində dövlət hakimiyyəti, maliyyə bazarlarına nəzarət, yerli özünüidarəetmə və digər səlahiyyətli orqanların tutduğu dövlət rüsumu, icazə haqları, yığımlar, xüsusi notariusların aldığı haqlar (notariat hərəkətlərinin aparılmasına və notariat hərəkətləri ilə əlaqədar göstərilən xidmətə görə) və onların tutulması müqabilində göstərdiyi xidmətlər",
"VM-nin 164.1.7-ci maddəsinə əsasən siyahısı Azərbaycan Respublikasının Nazirlər Kabineti tərəfindən təsdiq edilən media məhsullarının və kitabların (elektron kitablar istisna olmaqla), habelə dərslik komplektlərinin idxalı və satışı, həmin malların (məhsulların) istehsalı (nəşri) ilə bağlı rulon və ya vərəqə şəklində kağızın idxalı və satışı",
"VM-nin 164.1.8-ci maddəsinə əsasən amətbu media məhsullarının və kitabların (o cümlədən elektron kitabların), habelə dərslik komplektlərinin istehsalı ilə bağlı redaksiya, nəşriyyat və poliqrafiya fəaliyyəti (reklam xidmətləri istisna olmaqla)",
"VM-nin 164.1.9-cu maddəsinə əsasən dəfn və qəbiristanlığın mərasim xidmətləri",
"VM-nin 164.1.10-cu maddəsinə əsasən Azərbaycan Respublikasının Dövlət Neft Fondunun qanunvericiliklə nəzərdə tutulmuş vəzifələrinin yerinə yetirilməsi ilə bağlı mal idxalı, iş görülməsi və xidmət göstərilməsi",
"VM-nin 164.1.11-ci maddəsinə əsasən Azərbaycan Respublikasına, o cümlədən onu təmsil edən hüquqi şəxslərə neft-qaz ehtiyatlarının kəşfiyyatı, işlənməsi və hasilatın pay bölgüsü, ixrac boru kəmərləri haqqında və bu qəbildən olan digər sazişlərə uyğun olaraq verilməsi nəzərdə tutulan əsas fondların, daşınan əmlakın və digər aktivlərin Azərbaycan Respublikası Dövlət Neft Fonduna və ya Azərbaycan Respublikasını təmsil edən tərəfə hər hansı şəkildə təqdim edilməsi",
"VM-nin 164.1.12-ci maddəsinə əsasən metropolitenlə sərnişindaşıma xidmətləri",
"VM-nin 164.1.13-cü maddəsinə əsasən ödənişli təhsil xidmətlərinin göstərilməsi (digər fəaliyyətləri ilə bağlı xidmətlərin göstərilməsi istisna olmaqla)",
"VM-nin 164.1.14-cü maddəsinə əsasən Vergi Məcəllənin 106.1.9-106.1.11-ci maddələri ilə müəyyən olunan aktivlərin dəyəri və onların hər hansı şəkildə təqdim olunması üzrə əməliyyatlar",
"VM-nin 164.1.17-ci maddəsinə əsasən hüquqi şəxsin iştirak paylarının və ya səhmlərinin təqdim edilməsi",
"VM-nin 164.1.18-ci maddəsinə əsasən kənd təsərrüfatı məhsullarının istehsalçıları (o cümlədən, sənaye üsulu ilə) tərəfindən özlərinin istehsal etdikləri kənd təsərrüfatı məhsullarının satışı üzrə dövriyyələr",
"VM-nin 164.1.27-ci maddəsinə əsasən buğdanın satışı, buğda ununun və çörəyin istehsalı və satışı",
"VM-nin 164.1.29-cu maddəsinə əsasən damazlıq heyvanların satışı",
"VM-nin 164.1.30-cu maddəsinə əsasən toxum və tinglərin satışı",
"VM-nin 164.1.31-ci maddəsinə əsasən siyahısı müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən təsdiq edilən mineral gübrələrin, pestisidlərin idxalı və satışı",
"VM-nin 164.1.32-ci maddəsinə əsasən toxumların yetişdirilməsi, quşçuluq və arıçılıq üçün avadanlıqların, o cümlədən laboratoriya avadanlıqlarının, toxum, taxıl və quru paxlalı bitkilərin təmizlənməsi, çeşidlənməsi və ya kalibrlənməsi üçün maşınların satışı",
"VM-nin 164.1.34-cü maddəsinə əsasən siyahısı Azərbaycan Respublikasının Nazirlər Kabineti tərəfindən təsdiq olunmuş bilavasitə kənd təsərrüfatı təyinatlı suvarma və digər qurğuların, maşınların, avadanlıqların və texnikaların, habelə kənd təsərrüfatı texnikasının ehtiyat hissələrinin istehsalı, idxalı və satışı",
"VM-nin 164.1.36-cı maddəsinə əsasən ödəmə qabiliyyətini itirmiş bankların rezolyusiyası və sağlamlaşdırma tədbirləri çərçivəsində Azərbaycan Respublikasının Prezidentinin müəyyən etdiyi qaydada qeyri-işlək (toksik) aktivlərin təqdim edilməsi, habelə bankın iflas proseduru çərçivəsində aktivlərinin təqdim edilməsi",
"VM-nin 164.1.37-ci maddəsinə əsasən heyvan və quş ətinin satışı",
"VM-nin 164.1.42-ci maddəsinə əsasən \"Məşğulluq haqqında\" Azərbaycan Respublikasının Qanununa uyğun olaraq müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən haqqı ödənilən ictimai işlərin təşkili ilə əlaqədar işçi qüvvəsinin təqdim edilməsi üzrə əməliyyatlar",
"VM-nin 164.1.43-cü maddəsinə əsasən kəpəyin istehsalı və satışı",
"VM-nin 164.1.46-cı maddəsinə əsasən heyvandarlıq və quşçuluq təsərrüfatlarında istifadə edilən siyahısı Azərbaycan Respublikasının Nazirlər Kabineti tərəfindən təsdiq edilən yem və yem əlavələrinin satışı üzrə dövriyyələr",
"VM-nin 164.1.47-ci maddəsinə əsasən bina tikintisi fəaliyyəti ilə məşğul olan şəxslər tərəfindən tikilən binanın yaşayış sahəsinin dövlətə ayrılan hissəsi üzrə dövriyyələr",
"VM-nin 164.1.48-ci maddəsinə əsasən siyahısı müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) (Prezident) tərəfindən təsdiq edilən dövlət adından yaradılan publik hüquqi şəxslər tərəfindən nizamnaməsində nəzərdə tutulan və ona həvalə edilən vəzifələrin yerinə yetirilməsi üçün büdcə qanunvericiliyinə uyğun olaraq dövlət büdcəsindən ayrılmış vəsait hesabına Maliyyə Nazirliyi ilə bağlanılmış müqavilə əsasında işlərin və xidmətlərin göstərilməsi",
"VM-nin 164.1.49-cu maddəsinə əsasən Azərbaycan Respublikasında keçirilən Formula 1 və Formula 2 yarışları ilə bağlı Gənclər və İdman Nazirliyi ilə bağlanılmış müqavilə əsasında mal, iş və xidmətin təqdim edilməsi",
"VM-nin 164.1.50-ci maddəsinə əsasən Azərbaycan Respublikasında daimi nümayəndəlik yaratmayan qeyri-rezident şəxslərin mülki aviasiya fəaliyyəti çərçivəsində hava gəmilərinin və hava gəmilərinin mühərriklərinin rezident hüquqi şəxslərə icarəyə və ya lizinqə verilməsi",
"VM-nin 164.1.51-ci maddəsinə əsasən \"Tibbi sığorta haqqında\" Azərbaycan Respublikasının Qanununa uyğun olaraq icbari tibbi sığorta fondunun, habelə siyahısı müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən təsdiq edilən ictimai və sosial məqsədlər üçün yaradılmış fondların vəsaiti hesabına tibbi xidmətlərin göstərilməsi",
"VM-nin 164.1.55-ci maddəsinə əsasən külçə, sikkə və ya qranul şəklində qızılın və gümüşün satışı",
"VM-nin 164.1.34-1-ci maddəsinə əsasən kənd təsərrüfatı texnikalarının mülkiyyət hüququnun keçməməsi şərtilə kənd təsərrüfatı istehsalçılarına lizinqə (icarəyə) verilməsi",
"VM-nin 164.1.34-2-ci maddəsinə əsasən kənd təsərrüfatı məhsullarının istehsalçılarına aqrotexniki xidmətlərin göstərilməsi",
"VM-nin 164.1.41-ci maddəsinə əsasən yalnız elektrik mühərriki ilə işləyən avtomobillərin satışı",
"VM-nin 164.1.41-1-ci maddəsinə əsasən istehsal tarixi 3 ildən və mühərrikinin həcmi 2500 kubsantimetrdən çox olmayan hibrid avtomobillərin satışı",
"VM-nin 164.1.41-2-ci maddəsinə əsasən Elektrik mühərriki ilə işləyən avtomobillər üçün ikinci və üçüncü səviyyə elektrik enerji doldurucularının satışı",
"VM-nin 164.1.41-3-cü maddəsinə əsasən Azərbaycan Respublikasının ərazisində istehsal olunan minik avtomobillərinin satışı",
"VM-nin 164.1.41-4-ci maddəsinə əsasən Azərbaycan Respublikasının ərazisində istehsal olunan avtobusların satışı",
"VM-nin 164.1.57-ci maddəsinə əsasən lotereya biletlərinin satıcısı ilə bağlanmış müqavilə əsasında və ya onun tapşırığı əsasında lotereya biletlərinin bütün mərhələlərdə agent qaydasında satışının həyata keçirilməsi üzrə xidmətlərin göstərilməsi",
"VM-nin 164.1.10-1-ci maddəsinə əsasən yaşayış sahələrini satmaq öhdəliyi ilə kirayəyə vermə sahəsində fəaliyyət göstərən müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən yaşayış sahələrinin kirayəçilərə təqdim edilməsi",
"VM-nin 164.1.58-ci maddəsinə əsasən özəl baytarlıq xidmətlərinin göstərilməsi",
"VM-nin 164.1.59-cu maddəsinə əsasən vəkillər və vəkil qurumları tərəfindən order markasının əldə edilməsi ilə bağlı Azərbaycan Respublikasının Vəkillər Kollegiyasına edilən ödənişlər",
"VM-nin 164.1.8-1-ci maddəsinə əsasən media subyektləri (audiovizual media subyektləri istisna olmaqla) tərəfindən istehsal olunan media məhsullarının təqdim edilməsi, habelə Azərbaycan Respublikasında daimi nümayəndəlik yaratmayan qeyri-rezident şəxslər tərəfindən media subyektlərinə (audiovizual media subyektləri istisna olmaqla) media fəaliyyəti ilə bilavasitə bağlı olan işlərin görülməsi və xidmətlərin göstərilməsi",
"VM-nin 164.1.56-1-ci maddəsinə əsasən Azərbaycan Respublikasının Minatəmizləmə Agentliyinin təsdiqedici sənədi əsasında Azərbaycan Respublikasının işğaldan azad edilmiş ərazilərinin, habelə müharibə və hərbi əməliyyatların təsirinə məruz qalmış digər ərazilərin minalardan və partlamamış hərbi sursatdan, tərkibində partlayıcı olan qurğulardan və digər partlayıcı qalıqlardan təmizlənməsi çərçivəsində bütün növ texnikanın, avadanlıqların, texniki vasitələrin və qurğuların, onların ehtiyat hissələrinin, fərdi zirehli qoruyucu geyimlərin, alətlərin, partlayıcı və pirotexniki vasitələrin istehsalı və satışı",
"VM-nin 164.1.19-cu maddəsinə əsasən müdafiə təyinatlı məmulatların yaradılması və istehsalı fəaliyyətini həyata keçirən şəxslər tərəfindən bu məqsədlə Azərbaycan Respublikasının Müdafiə Sənayesi Nazirliyinin təsdiqedici sənədi əsasında texnologiyaların, avadanlıqların, dəstləşdirici hissələrin və xammalın idxalı və həmin şəxslər tərəfindən istehsal edilmiş müdafiə təyinatlı məmulatların satışı",
"VM-nin 164.1.19-1-ci maddəsinə əsasən müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən verilmiş təsdiqedici sənəd əsasında müdafiə və dövlət təhlükəsizliyi məqsədləri üçün istifadə olunan bütün növ texnika və texniki vasitələrin, onların ehtiyat hissələrinin, xüsusi proqram təminatlarının və silah-sursatın idxalı və satışı",
"VM-nin 164.1.2-1-ci maddəsinə əsasən ƏDV-dən azad olunan, yaxud ƏDV-yə cəlb edilməyən əməliyyatlar çərçivəsində əldə edilmiş aktivlərin (əsas vəsaitlərin) maliyyə lizinqi müqaviləsi üzrə təqdim edilməsi",
"VM-nin 164.1.9-1-ci maddəsinə əsasən müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən verilmiş təsdiqedici sənəd əsasında müdafiə və dövlət təhlükəsizliyi məqsədləri üçün istifadə olunan bütün növ texnika və texniki vasitələrin, onların ehtiyat hissələrinin, xüsusi proqram təminatlarının və silah-sursatın idxalı və satışı",
"VM-nin 164.1.51-1-ci maddəsinə əsasən tədris bazası kimi fəaliyyət göstərən tibb müəssisələrində tibbi xidmətlərin göstərilməsi"
]
def get_article_field_key(tax_article): def get_sales_invoice_items(filters):
"""Создает ключ поля и короткое название на основе налоговой статьи"""
if not tax_article:
return "unknown"
# Извлекаем номер статьи
if "165.1.1" in tax_article:
return "vm_165_1_1"
elif "165.1.2" in tax_article:
return "vm_165_1_2"
elif "165.1.3" in tax_article and "malların ixracı" in tax_article:
return "vm_165_1_3_export"
elif "165.1.3" in tax_article and "xidmətlərin ixracı" in tax_article:
return "vm_165_1_3_services"
elif "165.1.3" in tax_article:
return "vm_165_1_3"
elif "165.1.4" in tax_article:
return "vm_165_1_4"
elif "165.1.5" in tax_article:
return "vm_165_1_5"
elif "165.1.9" in tax_article:
return "vm_165_1_9"
elif "165.1.10" in tax_article:
return "vm_165_1_10"
elif "165.1.11" in tax_article:
return "vm_165_1_11"
elif "164.1.1" in tax_article:
return "vm_164_1_1"
elif "164.1.2-1" in tax_article:
return "vm_164_1_2_1"
elif "164.1.2" in tax_article:
return "vm_164_1_2"
elif "164.1.3" in tax_article:
return "vm_164_1_3"
elif "164.1.5" in tax_article:
return "vm_164_1_5"
elif "164.1.6" in tax_article:
return "vm_164_1_6"
elif "164.1.7" in tax_article:
return "vm_164_1_7"
elif "164.1.8-1" in tax_article:
return "vm_164_1_8_1"
elif "164.1.8" in tax_article:
return "vm_164_1_8"
elif "164.1.9-1" in tax_article:
return "vm_164_1_9_1"
elif "164.1.9" in tax_article:
return "vm_164_1_9"
elif "164.1.10-1" in tax_article:
return "vm_164_1_10_1"
elif "164.1.10" in tax_article:
return "vm_164_1_10"
elif "164.1.11" in tax_article:
return "vm_164_1_11"
elif "164.1.12" in tax_article:
return "vm_164_1_12"
elif "164.1.13" in tax_article:
return "vm_164_1_13"
elif "164.1.14" in tax_article:
return "vm_164_1_14"
elif "164.1.17" in tax_article:
return "vm_164_1_17"
elif "164.1.18" in tax_article:
return "vm_164_1_18"
elif "164.1.19-1" in tax_article:
return "vm_164_1_19_1"
elif "164.1.19" in tax_article:
return "vm_164_1_19"
elif "164.1.27" in tax_article:
return "vm_164_1_27"
elif "164.1.29" in tax_article:
return "vm_164_1_29"
elif "164.1.30" in tax_article:
return "vm_164_1_30"
elif "164.1.31" in tax_article:
return "vm_164_1_31"
elif "164.1.32" in tax_article:
return "vm_164_1_32"
elif "164.1.34-1" in tax_article:
return "vm_164_1_34_1"
elif "164.1.34-2" in tax_article:
return "vm_164_1_34_2"
elif "164.1.34" in tax_article:
return "vm_164_1_34"
elif "164.1.36" in tax_article:
return "vm_164_1_36"
elif "164.1.37" in tax_article:
return "vm_164_1_37"
elif "164.1.41-1" in tax_article:
return "vm_164_1_41_1"
elif "164.1.41-2" in tax_article:
return "vm_164_1_41_2"
elif "164.1.41-3" in tax_article:
return "vm_164_1_41_3"
elif "164.1.41-4" in tax_article:
return "vm_164_1_41_4"
elif "164.1.41" in tax_article:
return "vm_164_1_41"
elif "164.1.42" in tax_article:
return "vm_164_1_42"
elif "164.1.43" in tax_article:
return "vm_164_1_43"
elif "164.1.46" in tax_article:
return "vm_164_1_46"
elif "164.1.47" in tax_article:
return "vm_164_1_47"
elif "164.1.48" in tax_article:
return "vm_164_1_48"
elif "164.1.49" in tax_article:
return "vm_164_1_49"
elif "164.1.50" in tax_article:
return "vm_164_1_50"
elif "164.1.51-1" in tax_article:
return "vm_164_1_51_1"
elif "164.1.51" in tax_article:
return "vm_164_1_51"
elif "164.1.55" in tax_article:
return "vm_164_1_55"
elif "164.1.56-1" in tax_article:
return "vm_164_1_56_1"
elif "164.1.57" in tax_article:
return "vm_164_1_57"
elif "164.1.58" in tax_article:
return "vm_164_1_58"
elif "164.1.59" in tax_article:
return "vm_164_1_59"
else:
return "vm_other"
def get_short_article_name(tax_article):
"""Создает короткое название для заголовка колонки"""
if not tax_article:
return "Digər"
# Извлекаем номер статьи и создаем короткое название
if "165.1.1" in tax_article:
return "VM 165.1.1"
elif "165.1.2" in tax_article:
return "VM 165.1.2"
elif "165.1.3" in tax_article and "malların ixracı" in tax_article:
return "VM 165.1.3 (İxrac)"
elif "165.1.3" in tax_article and "xidmətlərin ixracı" in tax_article:
return "VM 165.1.3 (Xidmət)"
elif "165.1.3" in tax_article:
return "VM 165.1.3"
elif "165.1.4" in tax_article:
return "VM 165.1.4"
elif "165.1.5" in tax_article:
return "VM 165.1.5"
elif "165.1.9" in tax_article:
return "VM 165.1.9"
elif "165.1.10" in tax_article:
return "VM 165.1.10"
elif "165.1.11" in tax_article:
return "VM 165.1.11"
elif "164.1.1" in tax_article:
return "VM 164.1.1"
elif "164.1.2-1" in tax_article:
return "VM 164.1.2-1"
elif "164.1.2" in tax_article:
return "VM 164.1.2"
elif "164.1.3" in tax_article:
return "VM 164.1.3"
elif "164.1.5" in tax_article:
return "VM 164.1.5"
elif "164.1.6" in tax_article:
return "VM 164.1.6"
elif "164.1.7" in tax_article:
return "VM 164.1.7"
elif "164.1.8-1" in tax_article:
return "VM 164.1.8-1"
elif "164.1.8" in tax_article:
return "VM 164.1.8"
elif "164.1.9-1" in tax_article:
return "VM 164.1.9-1"
elif "164.1.9" in tax_article:
return "VM 164.1.9"
elif "164.1.10-1" in tax_article:
return "VM 164.1.10-1"
elif "164.1.10" in tax_article:
return "VM 164.1.10"
elif "164.1.11" in tax_article:
return "VM 164.1.11"
elif "164.1.12" in tax_article:
return "VM 164.1.12"
elif "164.1.13" in tax_article:
return "VM 164.1.13"
elif "164.1.14" in tax_article:
return "VM 164.1.14"
elif "164.1.17" in tax_article:
return "VM 164.1.17"
elif "164.1.18" in tax_article:
return "VM 164.1.18"
elif "164.1.19-1" in tax_article:
return "VM 164.1.19-1"
elif "164.1.19" in tax_article:
return "VM 164.1.19"
elif "164.1.27" in tax_article:
return "VM 164.1.27"
elif "164.1.29" in tax_article:
return "VM 164.1.29"
elif "164.1.30" in tax_article:
return "VM 164.1.30"
elif "164.1.31" in tax_article:
return "VM 164.1.31"
elif "164.1.32" in tax_article:
return "VM 164.1.32"
elif "164.1.34-1" in tax_article:
return "VM 164.1.34-1"
elif "164.1.34-2" in tax_article:
return "VM 164.1.34-2"
elif "164.1.34" in tax_article:
return "VM 164.1.34"
elif "164.1.36" in tax_article:
return "VM 164.1.36"
elif "164.1.37" in tax_article:
return "VM 164.1.37"
elif "164.1.41-1" in tax_article:
return "VM 164.1.41-1"
elif "164.1.41-2" in tax_article:
return "VM 164.1.41-2"
elif "164.1.41-3" in tax_article:
return "VM 164.1.41-3"
elif "164.1.41-4" in tax_article:
return "VM 164.1.41-4"
elif "164.1.41" in tax_article:
return "VM 164.1.41"
elif "164.1.42" in tax_article:
return "VM 164.1.42"
elif "164.1.43" in tax_article:
return "VM 164.1.43"
elif "164.1.46" in tax_article:
return "VM 164.1.46"
elif "164.1.47" in tax_article:
return "VM 164.1.47"
elif "164.1.48" in tax_article:
return "VM 164.1.48"
elif "164.1.49" in tax_article:
return "VM 164.1.49"
elif "164.1.50" in tax_article:
return "VM 164.1.50"
elif "164.1.51-1" in tax_article:
return "VM 164.1.51-1"
elif "164.1.51" in tax_article:
return "VM 164.1.51"
elif "164.1.55" in tax_article:
return "VM 164.1.55"
elif "164.1.56-1" in tax_article:
return "VM 164.1.56-1"
elif "164.1.57" in tax_article:
return "VM 164.1.57"
elif "164.1.58" in tax_article:
return "VM 164.1.58"
elif "164.1.59" in tax_article:
return "VM 164.1.59"
else:
return "VM Digər"
def get_sales_invoice_items(filters, tax_articles):
"""Получает Sales Invoice Items с учетом фильтров""" """Получает Sales Invoice Items с учетом фильтров"""
conditions = [] conditions = []
@ -404,10 +94,8 @@ def get_sales_invoice_items(filters, tax_articles):
# Только подтвержденные документы # Только подтвержденные документы
conditions.append("si.docstatus = 1") conditions.append("si.docstatus = 1")
# Только items с налоговыми статьями из списка # Только items с заполненным tax_article
article_placeholders = ", ".join(["%s"] * len(tax_articles)) conditions.append("sii.tax_article IS NOT NULL AND sii.tax_article != ''")
conditions.append(f"sii.tax_article IN ({article_placeholders})")
values.extend(tax_articles)
where_clause = "" where_clause = ""
if conditions: if conditions:
@ -432,6 +120,144 @@ def get_sales_invoice_items(filters, tax_articles):
return frappe.db.sql(query, values, as_dict=True) return frappe.db.sql(query, values, as_dict=True)
def get_tax_articles_mapping():
"""Жесткий маппинг налоговых статей к полям"""
return {
# 165.1.x статьи
"Vergi Məcəlləsinin 165.1.1-ci maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_1",
"Vergi Məcəlləsinin 165.1.2-ci maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_2",
"Vergi Məcəlləsinin 165.1.3-cü maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_3",
"Vergi Məcəlləsinin 165.1.3-cü maddəsinə əsasən malların ixracı üzrə aparılmış əməliyyatlar": "vm_165_1_3_mal",
"Vergi Məcəlləsinin 165.1.3-cü maddəsinə əsasən bu Məcəllənin 168.1.5-ci maddəsində göstərilmiş xidmətlərin ixracı üzrə aparılmış əməliyyatlar": "vm_165_1_3_xid",
"Vergi Məcəlləsinin 165.1.4-cü maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_4",
"Vergi Məcəlləsinin 165.1.5-ci maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_5",
"Vergi Məcəlləsinin 165.1.9-cu maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_9",
"Vergi Məcəlləsinin 165.1.10-cu maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_10",
"Vergi Məcəlləsinin 165.1.11-ci maddəsinə əsasən aparılan əməliyyatlar": "vm_165_1_11",
# 164.1.x статьи
"VM-nin 164.1.1-ci maddəsinə əsasən özəlləşdirilmə qaydasında dövlət müəssisəsindən satın alınan əmlakın dəyəri, habelə dövlət əmlakının icarəyə verilməsindən alınan icarə haqqının büdcəyə ödənilməli olan hissəsi": "vm_164_1_1",
"VM-nin 164.1.2-ci maddəsinə əsasən maliyyə xidmətlərinin göstərilməsi, o cümlədən maliyyə lizinqi əməliyyatları üzrə ödənilən faizlər": "vm_164_1_2",
"VM-nin 164.1.3-cü maddəsinə əsasən milli və ya xarici valyutanın (numizmatika məqsədlərindən başqa), həmçinin qiymətli kağızların göndərilməsi": "vm_164_1_3",
"VM-nin 164.1.5-ci maddəsinə əsasən idxal olunan əmlak istisna olmaqla müəssisənin nizamnamə fonduna (kapitalına) pay şəklində hər hansı əmlakın (əsas vəsaitlər istisna olmaqla) qoyulması (əmlakın pay şəklində qoyuluşu, onun müqabilində bilavasitə digər əmlakın əldə edilməsi ilə əlaqədar olmadıqda)": "vm_164_1_5",
"VM-nin 164.1.6-cı maddəsinə əsasən tutulan məbləğlər hədlərində dövlət hakimiyyəti, maliyyə bazarlarına nəzarət, yerli özünüidarəetmə və digər səlahiyyətli orqanların tutduğu dövlət rüsumu, icazə haqları, yığımlar, xüsusi notariusların aldığı haqlar (notariat hərəkətlərinin aparılmasına və notariat hərəkətləri ilə əlaqədar göstərilən xidmətə görə) və onların tutulması müqabilində göstərdiyi xidmətlər": "vm_164_1_6",
"VM-nin 164.1.7-ci maddəsinə əsasən siyahısı Azərbaycan Respublikasının Nazirlər Kabineti tərəfindən təsdiq edilən media məhsullarının və kitabların (elektron kitablar istisna olmaqla), habelə dərslik komplektlərinin idxalı və satışı, həmin malların (məhsulların) istehsalı (nəşri) ilə bağlı rulon və ya vərəqə şəklində kağızın idxalı və satışı": "vm_164_1_7",
"VM-nin 164.1.8-ci maddəsinə əsasən amətbu media məhsullarının və kitabların (o cümlədən elektron kitabların), habelə dərslik komplektlərinin istehsalı ilə bağlı redaksiya, nəşriyyat və poliqrafiya fəaliyyəti (reklam xidmətləri istisna olmaqla)": "vm_164_1_8",
"VM-nin 164.1.9-cu maddəsinə əsasən dəfn və qəbiristanlığın mərasim xidmətləri": "vm_164_1_9",
"VM-nin 164.1.10-cu maddəsinə əsasən Azərbaycan Respublikasının Dövlət Neft Fondunun qanunvericiliklə nəzərdə tutulmuş vəzifələrinin yerinə yetirilməsi ilə bağlı mal idxalı, iş görülməsi və xidmət göstərilməsi": "vm_164_1_10",
"VM-nin 164.1.11-ci maddəsinə əsasən Azərbaycan Respublikasına, o cümlədən onu təmsil edən hüquqi şəxslərə neft-qaz ehtiyatlarının kəşfiyyatı, işlənməsi və hasilatın pay bölgüsü, ixrac boru kəmərləri haqqında və bu qəbildən olan digər sazişlərə uyğun olaraq verilməsi nəzərdə tutulan əsas fondların, daşınan əmlakın və digər aktivlərin Azərbaycan Respublikası Dövlət Neft Fonduna və ya Azərbaycan Respublikasını təmsil edən tərəfə hər hansı şəkildə təqdim edilməsi": "vm_164_1_11",
"VM-nin 164.1.12-ci maddəsinə əsasən metropolitenlə sərnişindaşıma xidmətləri": "vm_164_1_12",
"VM-nin 164.1.13-cü maddəsinə əsasən ödənişli təhsil xidmətlərinin göstərilməsi (digər fəaliyyətləri ilə bağlı xidmətlərin göstərilməsi istisna olmaqla)": "vm_164_1_13",
"VM-nin 164.1.14-cü maddəsinə əsasən Vergi Məcəllənin 106.1.9-106.1.11-ci maddələri ilə müəyyən olunan aktivlərin dəyəri və onların hər hansı şəkildə təqdim olunması üzrə əməliyyatlar": "vm_164_1_14",
"VM-nin 164.1.17-ci maddəsinə əsasən hüquqi şəxsin iştirak paylarının və ya səhmlərinin təqdim edilməsi": "vm_164_1_17",
"VM-nin 164.1.18-ci maddəsinə əsasən kənd təsərrüfatı məhsullarının istehsalçıları (o cümlədən, sənaye üsulu ilə) tərəfindən özlərinin istehsal etdikləri kənd təsərrüfatı məhsullarının satışı üzrə dövriyyələr": "vm_164_1_18",
"VM-nin 164.1.27-ci maddəsinə əsasən buğdanın satışı, buğda ununun və çörəyin istehsalı və satışı": "vm_164_1_27",
"VM-nin 164.1.29-cu maddəsinə əsasən damazlıq heyvanların satışı": "vm_164_1_29",
"VM-nin 164.1.30-cu maddəsinə əsasən toxum və tinglərin satışı": "vm_164_1_30",
"VM-nin 164.1.31-ci maddəsinə əsasən siyahısı müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən təsdiq edilən mineral gübrələrin, pestisidlərin idxalı və satışı": "vm_164_1_31",
"VM-nin 164.1.32-ci maddəsinə əsasən toxumların yetişdirilməsi, quşçuluq və arıçılıq üçün avadanlıqların, o cümlədən laboratoriya avadanlıqlarının, toxum, taxıl və quru paxlalı bitkilərin təmizlənməsi, çeşidlənməsi və ya kalibrlənməsi üçün maşınların satışı": "vm_164_1_32",
"VM-nin 164.1.34-cü maddəsinə əsasən siyahısı Azərbaycan Respublikasının Nazirlər Kabineti tərəfindən təsdiq olunmuş bilavasitə kənd təsərrüfatı təyinatlı suvarma və digər qurğuların, maşınların, avadanlıqların və texnikaların, habelə kənd təsərrüfatı texnikasının ehtiyat hissələrinin istehsalı, idxalı və satışı": "vm_164_1_34",
"VM-nin 164.1.36-cı maddəsinə əsasən ödəmə qabiliyyətini itirmiş bankların rezolyusiyası və sağlamlaşdırma tədbirləri çərçivəsində Azərbaycan Respublikasının Prezidentinin müəyyən etdiyi qaydada qeyri-işlək (toksik) aktivlərin təqdim edilməsi, habelə bankın iflas proseduru çərçivəsində aktivlərinin təqdim edilməsi": "vm_164_1_36",
"VM-nin 164.1.37-ci maddəsinə əsasən heyvan və quş ətinin satışı": "vm_164_1_37",
"VM-nin 164.1.42-ci maddəsinə əsasən \"Məşğulluq haqqında\" Azərbaycan Respublikasının Qanununa uyğun olaraq müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən haqqı ödənilən ictimai işlərin təşkili ilə əlaqədar işçi qüvvəsinin təqdim edilməsi üzrə əməliyyatlar": "vm_164_1_42",
"VM-nin 164.1.43-cü maddəsinə əsasən kəpəyin istehsalı və satışı": "vm_164_1_43",
"VM-nin 164.1.46-cı maddəsinə əsasən heyvandarlıq və quşçuluq təsərrüfatlarında istifadə edilən siyahısı Azərbaycan Respublikasının Nazirlər Kabineti tərəfindən təsdiq edilən yem və yem əlavələrinin satışı üzrə dövriyyələr": "vm_164_1_46",
"VM-nin 164.1.47-ci maddəsinə əsasən bina tikintisi fəaliyyəti ilə məşğul olan şəxslər tərəfindən tikilən binanın yaşayış sahəsinin dövlətə ayrılan hissəsi üzrə dövriyyələr": "vm_164_1_47",
"VM-nin 164.1.48-ci maddəsinə əsasən siyahısı müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) (Prezident) tərəfindən təsdiq edilən dövlət adından yaradılan publik hüquqi şəxslər tərəfindən nizamnaməsində nəzərdə tutulan və ona həvalə edilən vəzifələrin yerinə yetirilməsi üçün büdcə qanunvericiliyinə uyğun olaraq dövlət büdcəsindən ayrılmış vəsait hesabına Maliyyə Nazirliyi ilə bağlanılmış müqavilə əsasında işlərin və xidmətlərin göstərilməsi": "vm_164_1_48",
"VM-nin 164.1.49-cu maddəsinə əsasən Azərbaycan Respublikasında keçirilən Formula 1 və Formula 2 yarışları ilə bağlı Gənclər və İdman Nazirliyi ilə bağlanılmış müqavilə əsasında mal, iş və xidmətin təqdim edilməsi": "vm_164_1_49",
"VM-nin 164.1.50-ci maddəsinə əsasən Azərbaycan Respublikasında daimi nümayəndəlik yaratmayan qeyri-rezident şəxslərin mülki aviasiya fəaliyyəti çərçivəsində hava gəmilərinin və hava gəmilərinin mühərriklərinin rezident hüquqi şəxslərə icarəyə və ya lizinqə verilməsi": "vm_164_1_50",
"VM-nin 164.1.51-ci maddəsinə əsasən \"Tibbi sığorta haqqında\" Azərbaycan Respublikasının Qanununa uyğun olaraq icbari tibbi sığorta fondunun, habelə siyahısı müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən təsdiq edilən ictimai və sosial məqsədlər üçün yaradılmış fondların vəsaiti hesabına tibbi xidmətlərin göstərilməsi": "vm_164_1_51",
"VM-nin 164.1.55-ci maddəsinə əsasən külçə, sikkə və ya qranul şəklində qızılın və gümüşün satışı": "vm_164_1_55",
"VM-nin 164.1.34-1-ci maddəsinə əsasən kənd təsərrüfatı texnikalarının mülkiyyət hüququnun keçməməsi şərtilə kənd təsərrüfatı istehsalçılarına lizinqə (icarəyə) verilməsi": "vm_164_1_34_1",
"VM-nin 164.1.34-2-ci maddəsinə əsasən kənd təsərrüfatı məhsullarının istehsalçılarına aqrotexniki xidmətlərin göstərilməsi": "vm_164_1_34_2",
"VM-nin 164.1.41-ci maddəsinə əsasən yalnız elektrik mühərriki ilə işləyən avtomobillərin satışı": "vm_164_1_41",
"VM-nin 164.1.41-1-ci maddəsinə əsasən istehsal tarixi 3 ildən və mühərrikinin həcmi 2500 kubsantimetrdən çox olmayan hibrid avtomobillərin satışı": "vm_164_1_41_1",
"VM-nin 164.1.41-2-ci maddəsinə əsasən Elektrik mühərriki ilə işləyən avtomobillər üçün ikinci və üçüncü səviyyə elektrik enerji doldurucularının satışı": "vm_164_1_41_2",
"VM-nin 164.1.41-3-cü maddəsinə əsasən Azərbaycan Respublikasının ərazisində istehsal olunan minik avtomobillərinin satışı": "vm_164_1_41_3",
"VM-nin 164.1.41-4-ci maddəsinə əsasən Azərbaycan Respublikasının ərazisində istehsal olunan avtobusların satışı": "vm_164_1_41_4",
"VM-nin 164.1.57-ci maddəsinə əsasən lotereya biletlərinin satıcısı ilə bağlanmış müqavilə əsasında və ya onun tapşırığı əsasında lotereya biletlərinin bütün mərhələlərdə agent qaydasında satışının həyata keçirilməsi üzrə xidmətlərin göstərilməsi": "vm_164_1_57",
"VM-nin 164.1.10-1-ci maddəsinə əsasən yaşayış sahələrini satmaq öhdəliyi ilə kirayəyə vermə sahəsində fəaliyyət göstərən müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən yaşayış sahələrinin kirayəçilərə təqdim edilməsi": "vm_164_1_10_1",
"VM-nin 164.1.58-ci maddəsinə əsasən özəl baytarlıq xidmətlərinin göstərilməsi": "vm_164_1_58",
"VM-nin 164.1.59-cu maddəsinə əsasən vəkillər və vəkil qurumları tərəfindən order markasının əldə edilməsi ilə bağlı Azərbaycan Respublikasının Vəkillər Kollegiyasına edilən ödənişlər": "vm_164_1_59",
"VM-nin 164.1.8-1-ci maddəsinə əsasən media subyektləri (audiovizual media subyektləri istisna olmaqla) tərəfindən istehsal olunan media məhsullarının təqdim edilməsi, habelə Azərbaycan Respublikasında daimi nümayəndəlik yaratmayan qeyri-rezident şəxslər tərəfindən media subyektlərinə (audiovizual media subyektləri istisna olmaqla) media fəaliyyəti ilə bilavasitə bağlı olan işlərin görülməsi və xidmətlərin göstərilməsi": "vm_164_1_8_1",
"VM-nin 164.1.56-1-ci maddəsinə əsasən Azərbaycan Respublikasının Minatəmizləmə Agentliyinin təsdiqedici sənədi əsasında Azərbaycan Respublikasının işğaldan azad edilmiş ərazilərinin, habelə müharibə və hərbi əməliyyatların təsirinə məruz qalmış digər ərazilərin minalardan və partlamamış hərbi sursatdan, tərkibində partlayıcı olan qurğulardan və digər partlayıcı qalıqlardan təmizlənməsi çərçivəsində bütün növ texnikanın, avadanlıqların, texniki vasitələrin və qurğuların, onların ehtiyat hissələrinin, fərdi zirehli qoruyucu geyimlərin, alətlərin, partlayıcı və pirotexniki vasitələrin istehsalı və satışı": "vm_164_1_56_1",
"VM-nin 164.1.19-cu maddəsinə əsasən müdafiə təyinatlı məmulatların yaradılması və istehsalı fəaliyyətini həyata keçirən şəxslər tərəfindən bu məqsədlə Azərbaycan Respublikasının Müdafiə Sənayesi Nazirliyinin təsdiqedici sənədi əsasında texnologiyaların, avadanlıqların, dəstləşdirici hissələrin və xammalın idxalı və həmin şəxslər tərəfindən istehsal edilmiş müdafiə təyinatlı məmulatların satışı": "vm_164_1_19",
"VM-nin 164.1.19-1-ci maddəsinə əsasən müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən verilmiş təsdiqedici sənəd əsasında müdafiə və dövlət təhlükəsizliyi məqsədləri üçün istifadə olunan bütün növ texnika və texniki vasitələrin, onların ehtiyat hissələrinin, xüsusi proqram təminatlarının və silah-sursatın idxalı və satışı": "vm_164_1_19_1",
"VM-nin 164.1.2-1-ci maddəsinə əsasən ƏDV-dən azad olunan, yaxud ƏDV-yə cəlb edilməyən əməliyyatlar çərçivəsində əldə edilmiş aktivlərin (əsas vəsaitlərin) maliyyə lizinqi müqaviləsi üzrə təqdim edilməsi": "vm_164_1_2_1",
"VM-nin 164.1.9-1-ci maddəsinə əsasən müvafiq icra hakimiyyəti orqanının müəyyən etdiyi orqan (qurum) tərəfindən verilmiş təsdiqedici sənəd əsasında müdafiə və dövlət təhlükəsizliyi məqsədləri üçün istifadə olunan bütün növ texnika və texniki vasitələrin, onların ehtiyat hissələrinin, xüsusi proqram təminatlarının və silah-sursatın idxalı və satışı": "vm_164_1_9_1",
"VM-nin 164.1.51-1-ci maddəsinə əsasən tədris bazası kimi fəaliyyət göstərən tibb müəssisələrində tibbi xidmətlərin göstərilməsi": "vm_164_1_51_1"
}
def get_field_to_label_mapping():
"""Маппинг ключей полей к коротким названиям колонок"""
return {
# 165.1.x статьи
"vm_165_1_1": "VM 165.1.1",
"vm_165_1_2": "VM 165.1.2",
"vm_165_1_3": "VM 165.1.3",
"vm_165_1_3_mal": "VM 165.1.3 (Mal)",
"vm_165_1_3_xid": "VM 165.1.3 (Xid)",
"vm_165_1_4": "VM 165.1.4",
"vm_165_1_5": "VM 165.1.5",
"vm_165_1_9": "VM 165.1.9",
"vm_165_1_10": "VM 165.1.10",
"vm_165_1_11": "VM 165.1.11",
# 164.1.x статьи
"vm_164_1_1": "VM 164.1.1",
"vm_164_1_2": "VM 164.1.2",
"vm_164_1_3": "VM 164.1.3",
"vm_164_1_5": "VM 164.1.5",
"vm_164_1_6": "VM 164.1.6",
"vm_164_1_7": "VM 164.1.7",
"vm_164_1_8": "VM 164.1.8",
"vm_164_1_9": "VM 164.1.9",
"vm_164_1_10": "VM 164.1.10",
"vm_164_1_11": "VM 164.1.11",
"vm_164_1_12": "VM 164.1.12",
"vm_164_1_13": "VM 164.1.13",
"vm_164_1_14": "VM 164.1.14",
"vm_164_1_17": "VM 164.1.17",
"vm_164_1_18": "VM 164.1.18",
"vm_164_1_27": "VM 164.1.27",
"vm_164_1_29": "VM 164.1.29",
"vm_164_1_30": "VM 164.1.30",
"vm_164_1_31": "VM 164.1.31",
"vm_164_1_32": "VM 164.1.32",
"vm_164_1_34": "VM 164.1.34",
"vm_164_1_36": "VM 164.1.36",
"vm_164_1_37": "VM 164.1.37",
"vm_164_1_42": "VM 164.1.42",
"vm_164_1_43": "VM 164.1.43",
"vm_164_1_46": "VM 164.1.46",
"vm_164_1_47": "VM 164.1.47",
"vm_164_1_48": "VM 164.1.48",
"vm_164_1_49": "VM 164.1.49",
"vm_164_1_50": "VM 164.1.50",
"vm_164_1_51": "VM 164.1.51",
"vm_164_1_55": "VM 164.1.55",
"vm_164_1_34_1": "VM 164.1.34-1",
"vm_164_1_34_2": "VM 164.1.34-2",
"vm_164_1_41": "VM 164.1.41",
"vm_164_1_41_1": "VM 164.1.41-1",
"vm_164_1_41_2": "VM 164.1.41-2",
"vm_164_1_41_3": "VM 164.1.41-3",
"vm_164_1_41_4": "VM 164.1.41-4",
"vm_164_1_57": "VM 164.1.57",
"vm_164_1_10_1": "VM 164.1.10-1",
"vm_164_1_58": "VM 164.1.58",
"vm_164_1_59": "VM 164.1.59",
"vm_164_1_8_1": "VM 164.1.8-1",
"vm_164_1_56_1": "VM 164.1.56-1",
"vm_164_1_19": "VM 164.1.19",
"vm_164_1_19_1": "VM 164.1.19-1",
"vm_164_1_2_1": "VM 164.1.2-1",
"vm_164_1_9_1": "VM 164.1.9-1",
"vm_164_1_51_1": "VM 164.1.51-1"
}
def get_columns(): def get_columns():
"""Создает колонки отчета""" """Создает колонки отчета"""
columns = [] columns = []
@ -453,16 +279,15 @@ def get_columns():
} }
]) ])
# Создаем колонки для каждой налоговой статьи # Получаем маппинг полей к названиям
tax_articles = get_tax_articles_list() field_to_label = get_field_to_label_mapping()
for article in tax_articles:
article_key = get_article_field_key(article)
short_name = get_short_article_name(article)
# Создаем колонки для каждого поля в правильном порядке
for field_key in sorted(field_to_label.keys()):
label = field_to_label[field_key]
columns.append({ columns.append({
"label": short_name, "label": label,
"fieldname": article_key, "fieldname": field_key,
"fieldtype": "Currency", "fieldtype": "Currency",
"width": 120 "width": 120
}) })