diff --git a/rowers/idoklad.py b/rowers/idoklad.py index 75a2176b..cc2c4999 100644 --- a/rowers/idoklad.py +++ b/rowers/idoklad.py @@ -37,9 +37,11 @@ def get_country_id(code): def idoklad_token(): try: - token = iDokladToken.objects.get(id=1) + token = iDokladToken.objects.all().order_by('-updated_at')[0] except iDokladToken.DoesNotExist: return None + except KeyError: + return None if token.updated_at + datetime.timedelta(seconds=token.expires_in) < timezone.now(): headers = { @@ -189,6 +191,7 @@ def create_invoice(rower, amount, braintreeid, dosend=True, contact_id=None, nam post_data['ItemsTextSuffix'] = 'This invoice was already paid. Please do not pay it again.' post_data['Items'][0]['VatRate'] = 0.0 post_data['Items'][0]['VatRateType'] = 2 + post_data['Items'][0]['PaymentOptionId'] = 2 post_data['Items'][0]['VatCodeId'] = 3 post_data['CurrencyId'] = 2 post_data['ReportLanguage'] = 3 diff --git a/rowers/models.py b/rowers/models.py index 2ae3bfae..4ea37a23 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -5597,5 +5597,5 @@ class iDokladToken(models.Model): expires_in = models.IntegerField() # Store token expiry duration in seconds def __str__(self): - return f"iDoklad Token updated at {self.updated_at}, expires at {self.updated_at+datetime.timedelta(seconds=self.expires_in)}" + return f"iDoklad Token {self.id} updated at {self.updated_at}, expires at {self.updated_at+datetime.timedelta(seconds=self.expires_in)}" diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 54f0625f..b41ba400 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 e2dbe64c..49f40c0e 100644 --- a/rowers/views/paymentviews.py +++ b/rowers/views/paymentviews.py @@ -54,7 +54,7 @@ def process_idokladcallback(request): if response.status_code == 200: result = response.json() try: - t = iDokladToken.objects.get(id=1) + t = iDokladToken.objects.all().order_by('-updated_at')[0] t.acces_token = result['access_token'], t.refresh_token = result['refresh_token'] t.expires_in = result['expires_in'] @@ -63,6 +63,7 @@ def process_idokladcallback(request): except KeyError: pass t.save() + dologging("idoklad.log","Saving code to token "+str(t.id)+" with access_token: "+result['access_token']) except iDokladToken.DoesNotExist: t = iDokladToken( access_token = result['access_token'], @@ -70,6 +71,7 @@ def process_idokladcallback(request): expires_in = result['expires_in'], ) t.save() + dologging("idoklad.log", "Creating new token "+str(t.id)+"with access_token: "+result['access_token']) messages.info(request,"Token refreshed and stored") else: messages.error(request,"Error")