# from django.core.mail import EmailMessage # from django.db.models.signals import pre_save, post_save # from django.dispatch import receiver # from yandex_money.models import Payment # # from finance.models import Invoice # from access.models.other import Progress # from course_service.maps.api import OutApiRoute # # api = OutApiRoute # # # @receiver(pre_save, sender=Invoice) # def invoice_signal(instance, **kwargs): # """Отправка сообщения после сохранения платежа""" # if instance.yandex_pay and instance.method == 'Y' and instance.status == 'P': # msg = EmailMessage( # 'Вам выставлен новый счёт', # '''Вам выставлен счёт, для оплаты перейдите по ссылке # https://go.skillbox.ru/api/v1/finance/payment/%s/''' % instance.yandex_pay.id, # 'robo@skillbox.ru', # [instance.yandex_pay.cps_email], # [instance.bill.opener.email], # reply_to=[instance.bill.opener.email], # ) # msg.send() # # if instance.status == 'F': # if instance.is_open: # Progress.objects.get_or_create( # route=instance.bill.route, # user=instance.bill.user, # ) # msg = EmailMessage( # 'Ваш платёж прошёл успешно', # '''Вам открыт доступ к курсу "%s", вы можете перейти по ссылке и # ознакомиться с материалами https://go.skillbox.ru/course/%s''' # % (api.get_route(instance.bill.route).name, api.get_route(instance.bill.route).course.slug), # 'robo@skillbox.ru', # [instance.bill.user.email], # cc=[instance.bill.opener.email], # reply_to=[instance.bill.opener.email], # ) # else: # msg = EmailMessage( # 'Ваш платёж прошёл успешно', # '''Курс "%s" был забронирован''' % instance.bill.course.title, # 'robo@skillbox.ru', # [instance.yandex_pay.cps_email], # cc=[instance.bill.opener.email], # reply_to=[instance.bill.opener.email], # ) # msg.send() # # if instance.status == 'C': # msg = EmailMessage( # 'Ошибка платежа!' # """Внимание не прошёл платёж пользавателю %s, # по курсу "%s" ID платежа: %s. Если не получается # решить проблему самостоятельно, ответьте на это письмо, # постарайтесь подробно описать последовательность действий, # которая привела к ошибке""" # % (instance.bill.user.get_full_name(), api.get_route(instance.bill.route).course.title, instance.id), # instance.bill.opener.email, # reply_to=["it@skillbox.ru"] # ) # msg.send() # # # @receiver(post_save, sender=Payment) # def access_pay(instance, **kwargs): # if instance.status == 'success': # instance.invoice.status = "F" # instance.invoice.real_price = instance.shop_amount # instance.invoice.save() # # if instance.status == 'fail': # instance.invoice.status = "C" # instance.invoice.save()