taxes_az/taxes_az/create_item_group.py

227 lines
7.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import frappe
from frappe import _
def create_item_groups():
"""
Создает Item Groups согласно фикстурам
"""
# Определяем возможные названия родительской группы
parent_names = ["All Item Groups", "Bütün Element Qrupları"]
parent_name = None
# Проверяем какое название родительской группы существует
for name in parent_names:
if frappe.db.exists("Item Group", name):
parent_name = name
break
if not parent_name:
print("Родительская группа не найдена. Используем 'All Item Groups'")
parent_name = "All Item Groups"
# Данные групп из фикстур
item_groups = [
{
"item_group_name": "Neft Məhsulları",
"is_group": 1,
"parent_item_group": parent_name
},
{
"item_group_name": "Yanacaq növləri",
"is_group": 0,
"parent_item_group": "Neft Məhsulları"
},
{
"item_group_name": "Faydalı qazıntılar",
"is_group": 1,
"parent_item_group": parent_name
},
{
"item_group_name": "Xam neft - ton",
"is_group": 0,
"parent_item_group": parent_name # В фикстуре old_parent не указан, используем корневую
},
{
"item_group_name": "Təbii qaz - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Filiz faydalı qazıntıları: bütün növ metallar - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Mişar daşları - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Üzlük daşları - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Seolit - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Barit - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Yüngül doldurucular üçün gillər - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Vulkan külü və pemza - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Kvars qumları - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Sement xammalı - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Duz - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Qiymətli və yarımqiymətli bəzək daşları - karat / qram",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Yodlu bromlu sular - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Mineral sular - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Bentonit gillər - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Kərpic-kirəmit gilləri - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Tikinti qumları - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Çınqıl xammalı - m³",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Gips, gəc - ton",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "İdman, mərc və lotoreya oyunları",
"is_group": 1,
"parent_item_group": parent_name
},
{
"item_group_name": "İdman və mərc oyunları",
"is_group": 0,
"parent_item_group": parent_name
},
{
"item_group_name": "Lotoreya oyunları",
"is_group": 0,
"parent_item_group": parent_name
}
]
created_count = 0
skipped_count = 0
for group_data in item_groups:
try:
# Проверяем, существует ли уже такая группа
if frappe.db.exists("Item Group", group_data["item_group_name"]):
print(f"Группа '{group_data['item_group_name']}' уже существует, пропускаем...")
skipped_count += 1
continue
# Создаем новую Item Group
item_group = frappe.new_doc("Item Group")
item_group.item_group_name = group_data["item_group_name"]
item_group.is_group = group_data["is_group"]
item_group.parent_item_group = group_data["parent_item_group"]
# Сохраняем документ
item_group.insert(ignore_permissions=True)
frappe.db.commit()
print(f"✓ Создана группа: {group_data['item_group_name']}")
created_count += 1
except Exception as e:
print(f"✗ Ошибка при создании группы '{group_data['item_group_name']}': {str(e)}")
continue
print(f"\nРезультат:")
print(f"Создано новых групп: {created_count}")
print(f"Пропущено существующих: {skipped_count}")
print(f"Всего обработано: {len(item_groups)}")
def delete_all_created_groups():
"""
Функция для удаления всех созданных групп (для отката)
ВНИМАНИЕ: Используйте осторожно!
"""
group_names = [
"Neft Məhsulları", "Yanacaq növləri", "Faydalı qazıntılar",
"Xam neft - ton", "Təbii qaz - m³",
"Filiz faydalı qazıntıları: bütün növ metallar - ton",
"Mişar daşları - m³", "Üzlük daşları - m³", "Seolit - ton",
"Barit - ton", "Yüngül doldurucular üçün gillər - m³",
"Vulkan külü və pemza - m³", "Kvars qumları - ton",
"Sement xammalı - ton", "Duz - ton",
"Qiymətli və yarımqiymətli bəzək daşları - karat / qram",
"Yodlu bromlu sular - m³", "Mineral sular - m³",
"Bentonit gillər - ton", "Kərpic-kirəmit gilləri - m³",
"Tikinti qumları - m³", "Çınqıl xammalı - m³",
"Gips, gəc - ton", "İdman, mərc və lotoreya oyunları",
"İdman və mərc oyunları", "Lotoreya oyunları"
]
deleted_count = 0
for group_name in group_names:
try:
if frappe.db.exists("Item Group", group_name):
frappe.delete_doc("Item Group", group_name)
print(f"✓ Удалена группа: {group_name}")
deleted_count += 1
except Exception as e:
print(f"✗ Ошибка при удалении группы '{group_name}': {str(e)}")
frappe.db.commit()
print(f"\nУдалено групп: {deleted_count}")
# Основная функция для запуска
if __name__ == "__main__":
create_item_groups()