# coding=utf-8 from django.db import models from django.conf import settings from courses.models import Course, Vertex class Bill(models.Model): course = models.ForeignKey(to=Course, verbose_name='Курс', blank=True, null=True) user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='Плательщик', related_name=u'bill_user') opener = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='Ответственный сотрудник', null=True) comment = models.TextField(verbose_name=u'Комментарий продавца', help_text=u'Будет показано пользователю', blank=True, editable=False) description = models.TextField(verbose_name='Внутренняя заметка', default='') def __str__(self): return '%s:%s %s' % (self.id, self.course, self.user) def get_full_price(self): return sum([i.price for i in self.invoice_set.all()]) class Meta: verbose_name = 'Счет' verbose_name_plural = 'Счета' class Invoice(models.Model): BILL_METHOD = ( ('C', 'Наличные'), ('H', 'JustClick'), ('A', 'Альфа-Банк'), ('S', 'SimplePay'), ('Y', 'YandexKassa') ) BILL_STATUSES = ( ('W', 'Ожидание согласия'), ('P', 'На оплате'), ('F', 'Оплачен'), ('C', 'Отклонен'), ('H', 'Сгорел') ) status = models.CharField(verbose_name='Статус', max_length=1, default='W', choices=BILL_STATUSES) price = models.CharField(verbose_name='Сумма', max_length=255, null=True, blank=True) real_price = models.CharField(verbose_name='Полученная сумма', max_length=255, null=True, blank=True, help_text='Сумма, минус комиссия') bill_method = models.CharField(verbose_name='Способ оплаты', max_length=2, default='Y', choices=BILL_METHOD) key = models.CharField(verbose_name='Ключ платежа', blank=True, max_length=255, default='', editable=False) out_id = models.CharField(verbose_name='ID внешнего заказа', max_length=100, blank=True, default='', editable=False) comment = models.TextField(verbose_name=u'Комментарий продавца', help_text=u'Будет показано пользователю', blank=True, editable=False) bill = models.ForeignKey(to=Bill, verbose_name="Связный счёт") def __str__(self): return '%s:%s %s' % (self.id, self.get_status_display(), self.bill.user) class Meta: verbose_name = 'Платёж' verbose_name_plural = 'Платежи'