60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
from django.core.management.base import BaseCommand
|
|
from orders.models import PaymentMethod
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Создаёт стандартные способы оплаты для цветочного магазина'
|
|
|
|
def handle(self, *args, **options):
|
|
payment_methods = [
|
|
{
|
|
'code': 'cash',
|
|
'name': 'Наличными',
|
|
'description': 'Оплата наличными деньгами',
|
|
'is_system': True,
|
|
'order': 1
|
|
},
|
|
{
|
|
'code': 'card',
|
|
'name': 'Картой',
|
|
'description': 'Оплата банковской картой',
|
|
'is_system': True,
|
|
'order': 2
|
|
},
|
|
{
|
|
'code': 'online',
|
|
'name': 'Онлайн',
|
|
'description': 'Онлайн оплата через платежную систему',
|
|
'is_system': True,
|
|
'order': 3
|
|
},
|
|
{
|
|
'code': 'legal_entity',
|
|
'name': 'Безнал от ЮРЛИЦ',
|
|
'description': 'Безналичный расчёт от юридических лиц',
|
|
'is_system': True,
|
|
'order': 4
|
|
},
|
|
]
|
|
|
|
created_count = 0
|
|
for method_data in payment_methods:
|
|
method, created = PaymentMethod.objects.get_or_create(
|
|
code=method_data['code'],
|
|
defaults=method_data
|
|
)
|
|
if created:
|
|
created_count += 1
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'✓ Создан способ оплаты: {method.name}')
|
|
)
|
|
else:
|
|
self.stdout.write(
|
|
self.style.WARNING(f'• Уже существует: {method.name}')
|
|
)
|
|
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'\nГотово! Создано {created_count} новых способов оплаты.')
|
|
)
|