diff --git a/rowers/braintreestuff.py b/rowers/braintreestuff.py index df39ecd6..64ba63b9 100644 --- a/rowers/braintreestuff.py +++ b/rowers/braintreestuff.py @@ -328,6 +328,8 @@ def update_subscription(rower, data, method='up'): '%Y-%m-%d'), method) + _ = idoklad.create_invoice(rower, amount, result.subscription.id, dosend=True) + return True, amount else: # pragma: no cover errors = result.errors.for_object("subscription") diff --git a/rowers/idoklad.py b/rowers/idoklad.py index 2f74ac86..4c301573 100644 --- a/rowers/idoklad.py +++ b/rowers/idoklad.py @@ -14,6 +14,13 @@ contacts_url = 'https://api.idoklad.cz/v3/Contacts' invoice_url = 'https://api.idoklad.cz/v3/IssuedInvoices' email_url = 'https://api.idoklad.cz/v3/Mails/IssuedInvoice/Send' +from rowers.tasks import handle_send_email_noinvoice + +from rowers.utils import myqueue + +import django_rq +queuehigh = django_rq.get_queue('high') + from rowers.models import iDokladToken #idoklad_countries = json.loads(open('rowers/idoklad_countries.json').read())["Data"]["Items"] @@ -118,6 +125,14 @@ def create_contact(rower): res = requests.post(contacts_url, json=data, headers=headers) if res.status_code not in [200, 201]: + dologging('idoklad.log','Contact Created - reason '+str(res.reason)+'\n') + _ = myqueue.enqueue( + queuehigh, handle_send_email_noinvoice, + rower.user.email, + rower.user.first_name, + rower.user.last_name, + 'idoklad Contact creation failed for '+str(rower.user.email)+'\n'+str(res.text) + ) return 0 id = res.json()['Data']['Id'] @@ -199,6 +214,14 @@ def create_invoice(rower, amount, braintreeid, dosend=True, contact_id=None, nam dologging('idoklad.log','Invoice Sent - status code '+str(res.status_code)+'\n') if res.status_code not in [200, 201]: dologging('idoklad.log','Invoice Sent - reason '+str(res.text)+'\n') + _ = myqueue.enqueue( + queuehigh, handle_send_email_noinvoice, + rower.user.email, + rower.user.first_name, + rower.user.last_name, + 'idoklad Invoice sending failed for '+str(rower.user.email)+'\n'+str(res.text) + ) + return id diff --git a/rowers/tasks.py b/rowers/tasks.py index 8b4aca87..0382f924 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -1796,6 +1796,22 @@ def sigdig(value, digits=3): fmtstr = "%.0f" return fmtstr % (round(value, places)) +@app.task +def handle_send_email_noinvoice( + useremail, userfirstname, userlastname, reason, **kwargs): + + subject = "Reason" + + from_email = 'Rowsandall ' + d = { + 'name': userfirstname+' '+userlastname, + 'siteurl': siteurl, + 'reason': reason, + } + + _ = send_template_email(from_email, support@rowsandall.com, subject, + 'paymentconfirmationemail_noinvoice.html', + d, **kwargs) @app.task def handle_send_email_alert( diff --git a/rowers/templates/paymentconfirmationemail_noinvoice.html b/rowers/templates/paymentconfirmationemail_noinvoice.html new file mode 100644 index 00000000..88609383 --- /dev/null +++ b/rowers/templates/paymentconfirmationemail_noinvoice.html @@ -0,0 +1,12 @@ +{% extends "emailbase.html" %} + +{% block body %} +

Dear Admin,

+ + +

{{ name }}: {{ reason }}.

+ +

+ Best Regards, the Rowsandall Team +

+{% endblock %} diff --git a/rowers/templates/rower_exportsettings.html b/rowers/templates/rower_exportsettings.html index 56c82066..21e91159 100644 --- a/rowers/templates/rower_exportsettings.html +++ b/rowers/templates/rower_exportsettings.html @@ -208,7 +208,12 @@
  • {% endif %} - + {% if user.is_staff %} +
  • +

    Admin

    +

    iDoklad authorize

    +
  • + {% endif %} diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 088c98c4..016a22f2 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/views/paymentviews.py b/rowers/views/paymentviews.py index 241091c1..e2dbe64c 100644 --- a/rowers/views/paymentviews.py +++ b/rowers/views/paymentviews.py @@ -58,7 +58,10 @@ def process_idokladcallback(request): t.acces_token = result['access_token'], t.refresh_token = result['refresh_token'] t.expires_in = result['expires_in'] - t.id_token = result['id_token'] + try: + t.id_token = result['id_token'] + except KeyError: + pass t.save() except iDokladToken.DoesNotExist: t = iDokladToken( diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py index 61f2a9c9..7378c1ac 100644 --- a/rowers/views/userviews.py +++ b/rowers/views/userviews.py @@ -1,4 +1,3 @@ - from rowers.views.statements import * from rowers.rower_rules import user_is_not_basic, user_is_coachee