@ -4,33 +4,26 @@ from django.conf import settings
from courses . models import Course , Vertex
from courses . models import Course , Vertex
class Price ( models . Model ) :
class Bill ( models . Model ) :
# Цены
course = models . ForeignKey ( to = Course , verbose_name = ' Курс ' , blank = True , null = True )
public = models . BooleanField ( verbose_name = ' Опубликовать ' , default = False )
user = models . ForeignKey ( settings . AUTH_USER_MODEL , verbose_name = ' Плательщик ' , related_name = u ' bill_user ' )
title = models . CharField ( verbose_name = ' Услуга ' , max_length = 255 , help_text = u ' Будет показано пользователям ' )
opener = models . ForeignKey ( settings . AUTH_USER_MODEL , verbose_name = ' Ответственный сотрудник ' , null = True )
cost = models . IntegerField ( verbose_name = ' Цена ' )
comment = models . TextField ( verbose_name = u ' Комментарий продавца ' , help_text = u ' Будет показано пользователю ' ,
course = models . ForeignKey ( to = Course , verbose_name = ' Курс ' , null = True , blank = True )
blank = True , editable = False )
vertexes = models . ManyToManyField ( to = Vertex , verbose_name = ' Список всех узлов ' )
description = models . TextField ( verbose_name = ' Внутренняя заметка ' , default = ' ' )
description = models . TextField ( verbose_name = ' Описание ' , help_text = ' Будет показано менеджерам ' )
by_time = models . IntegerField ( verbose_name = ' Дней доступа ' , blank = True , null = True )
def __str__ ( self ) :
def __str__ ( self ) :
return ' %s / %s %s ' % ( self . course . title , self . title , self . cost )
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 :
class Meta :
verbose_name = u ' Услуга '
verbose_name = ' Счет '
verbose_name_plural = u ' Услуги '
verbose_name_plural = ' Счета '
ordering = [ ' -id ' ]
class Bill ( models . Model ) :
class Invoice ( models . Model ) :
BILL_STATUSES = (
( ' W ' , ' Ожидание согласия ' ) ,
( ' P ' , ' На оплате ' ) ,
( ' F ' , ' Оплачен ' ) ,
( ' C ' , ' Отклонен ' ) ,
( ' H ' , ' Сгорел ' )
)
BILL_METHOD = (
BILL_METHOD = (
( ' C ' , ' Наличные ' ) ,
( ' C ' , ' Наличные ' ) ,
( ' H ' , ' JustClick ' ) ,
( ' H ' , ' JustClick ' ) ,
@ -38,26 +31,27 @@ class Bill(models.Model):
( ' S ' , ' SimplePay ' ) ,
( ' S ' , ' SimplePay ' ) ,
( ' Y ' , ' YandexKassa ' )
( ' Y ' , ' YandexKassa ' )
)
)
BILL_STATUSES = (
( ' W ' , ' Ожидание согласия ' ) ,
( ' P ' , ' На оплате ' ) ,
( ' F ' , ' Оплачен ' ) ,
( ' C ' , ' Отклонен ' ) ,
( ' H ' , ' Сгорел ' )
)
status = models . CharField ( verbose_name = ' Статус ' , max_length = 1 , default = ' W ' , choices = BILL_STATUSES )
status = models . CharField ( verbose_name = ' Статус ' , max_length = 1 , default = ' W ' , choices = BILL_STATUSES )
bill_method = models . CharField ( verbose_name = ' Способ оплаты ' , max_length = 2 , default = ' Y ' , choices = BILL_METHOD )
price = models . CharField ( verbose_name = ' Сумма ' , max_length = 255 , null = True , blank = True )
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 ,
real_price = models . CharField ( verbose_name = ' Полученная сумма ' , max_length = 255 , null = True , blank = True ,
help_text = ' Сумма, минус комиссия ' )
help_text = ' Сумма, минус комиссия ' )
service = models . ForeignKey ( to = Price , verbose_name = ' Оплачиваемая услуга ' )
bill_method = models . CharField ( verbose_name = ' Способ оплаты ' , max_length = 2 , default = ' Y ' , choices = BILL_METHOD )
inside_data = models . TextField ( verbose_name = ' Данные проверки ' , default = ' ' , blank = True , editable = False )
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 )
key = models . CharField ( verbose_name = ' Ключ платежа ' , blank = True , max_length = 255 , default = ' ' , editable = False )
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 )
out_id = models . CharField ( verbose_name = ' ID внешнего заказа ' , max_length = 100 , blank = True , default = ' ' , editable = False )
comment = models . TextField ( verbose_name = u ' Комментарий продавца ' , help_text = u ' Будет показано пользователю ' ,
comment = models . TextField ( verbose_name = u ' Комментарий продавца ' , help_text = u ' Будет показано пользователю ' ,
blank = True , editable = False )
blank = True , editable = False )
description = models . TextField ( verbose_name = ' Внутренняя заметка ' , default = ' ' )
bill = models . ForeignKey ( to = Bill , verbose_name = " Связный счёт " )
def __str__ ( self ) :
def __str__ ( self ) :
return ' %s : %s %s ' % ( self . id , self . get_status_display ( ) , self . user )
return ' %s : %s %s ' % ( self . id , self . get_status_display ( ) , self . bill . user )
class Meta :
class Meta :
verbose_name = u ' Счет '
verbose_name = ' Платёж '
verbose_name_plural = u ' Счета '
verbose_name_plural = ' Платежи '