|
|
|
|
@ -2,11 +2,13 @@ import logging |
|
|
|
|
|
|
|
|
|
import os |
|
|
|
|
import requests |
|
|
|
|
from dateutil.relativedelta import relativedelta |
|
|
|
|
from yandex_money.models import Payment |
|
|
|
|
|
|
|
|
|
from finance.models import InvoiceRebilling |
|
|
|
|
from lms import celery_app |
|
|
|
|
from django.conf import settings |
|
|
|
|
from django.utils import timezone |
|
|
|
|
|
|
|
|
|
logger_yandex = logging.getLogger('yandex_money') |
|
|
|
|
|
|
|
|
|
@ -15,19 +17,22 @@ logger_yandex = logging.getLogger('yandex_money') |
|
|
|
|
def periodic_billing(): |
|
|
|
|
logger_yandex.info("start periodic billing task") |
|
|
|
|
|
|
|
|
|
# for invoice in InvoiceRebilling.objects.filter(method='Y').exclude(status='F'): |
|
|
|
|
# |
|
|
|
|
# user = invoice.bill.user |
|
|
|
|
# yandex_pay = Payment.objects.create( |
|
|
|
|
# order_amount=invoice.price, |
|
|
|
|
# customer_number=user.id, |
|
|
|
|
# user=user, |
|
|
|
|
# cps_email=user.email |
|
|
|
|
# ) |
|
|
|
|
# invoice.yandex_pay = yandex_pay |
|
|
|
|
# invoice.save() |
|
|
|
|
# |
|
|
|
|
# repeat_card_payment(invoice) |
|
|
|
|
invoices = InvoiceRebilling.objects.filter(method='Y').exclude(status='F') |
|
|
|
|
|
|
|
|
|
for invoice in invoices.filter( |
|
|
|
|
expected_date__gt=timezone.now(), expected_date__lt=timezone.now() + relativedelta(days=1)): |
|
|
|
|
|
|
|
|
|
user = invoice.bill.user |
|
|
|
|
yandex_pay = Payment.objects.create( |
|
|
|
|
order_amount=invoice.price, |
|
|
|
|
customer_number=user.id, |
|
|
|
|
user=user, |
|
|
|
|
cps_email=user.email |
|
|
|
|
) |
|
|
|
|
invoice.yandex_pay = yandex_pay |
|
|
|
|
invoice.save() |
|
|
|
|
|
|
|
|
|
repeat_card_payment(invoice) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def repeat_card_payment(invoice): |
|
|
|
|
@ -44,4 +49,6 @@ def repeat_card_payment(invoice): |
|
|
|
|
), |
|
|
|
|
verify=os.path.join(settings.SSL_ROOT, 'yamoney_chain.cer')) |
|
|
|
|
|
|
|
|
|
logger_yandex.info(resp.text) |
|
|
|
|
logger_yandex.info('periodic billing finish', exc_info=True, extra={ |
|
|
|
|
'response': resp.text |
|
|
|
|
}) |
|
|
|
|
|