Add `refno2` field
This commit is contained in:
parent
b58a7313a8
commit
517d1df38f
|
|
@ -118,7 +118,7 @@ class User(AbstractUser):
|
|||
# is only set by abacus invoice export code
|
||||
abacus_debitor_number = models.BigIntegerField(unique=True, null=True, blank=True)
|
||||
|
||||
def set_increment_abacus_debitor_number(self):
|
||||
def set_increment_abacus_debitor_number(self, disable_save=False):
|
||||
if self.abacus_debitor_number:
|
||||
return self
|
||||
|
||||
|
|
@ -130,7 +130,8 @@ class User(AbstractUser):
|
|||
current_max if current_max is not None else 60_000_000
|
||||
) + 1
|
||||
self.abacus_debitor_number = new_debitor_number
|
||||
self.save()
|
||||
if not disable_save:
|
||||
self.save()
|
||||
return self
|
||||
|
||||
def create_avatar_url(self, size=400):
|
||||
|
|
|
|||
|
|
@ -39,4 +39,9 @@ class Migration(migrations.Migration):
|
|||
name="phone_number",
|
||||
field=models.CharField(blank=True, default="", max_length=255),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="checkoutinformation",
|
||||
name="refno2",
|
||||
field=models.CharField(blank=True, default="", max_length=255),
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ class CheckoutInformation(models.Model):
|
|||
|
||||
invoice_transmitted_at = models.DateTimeField(blank=True, null=True)
|
||||
transaction_id = models.CharField(max_length=255)
|
||||
refno2 = models.CharField(max_length=255)
|
||||
|
||||
# end user (required)
|
||||
first_name = models.CharField(max_length=255)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import structlog
|
|||
from django.conf import settings
|
||||
|
||||
from vbv_lernwelt.core.admin import User
|
||||
from vbv_lernwelt.shop.const import VV_PRODUCT_NUMBER
|
||||
from vbv_lernwelt.shop.datatrans.datatrans_api_client import DatatransApiClient
|
||||
from vbv_lernwelt.shop.models import CheckoutState
|
||||
|
||||
|
|
@ -77,6 +78,7 @@ def init_datatrans_transaction(
|
|||
redirect_url_error: str,
|
||||
redirect_url_cancel: str,
|
||||
webhook_url: str,
|
||||
refno2: str,
|
||||
datatrans_customer_data: dict = None,
|
||||
datatrans_int_data: dict = None,
|
||||
context_data: dict = None,
|
||||
|
|
@ -90,6 +92,7 @@ def init_datatrans_transaction(
|
|||
"currency": "CHF",
|
||||
"language": user.language,
|
||||
"refno": str(uuid.uuid4()),
|
||||
"refno2": refno2,
|
||||
"webhook": {"url": webhook_url},
|
||||
"redirect": {
|
||||
"successUrl": redirect_url_success,
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ from vbv_lernwelt.shop.const import (
|
|||
VV_DE_PRODUCT_SKU,
|
||||
VV_FR_PRODUCT_SKU,
|
||||
VV_IT_PRODUCT_SKU,
|
||||
VV_PRODUCT_NUMBER,
|
||||
)
|
||||
from vbv_lernwelt.shop.models import CheckoutInformation, CheckoutState, Product
|
||||
from vbv_lernwelt.shop.services import (
|
||||
|
|
@ -115,13 +116,16 @@ def checkout_vv(request):
|
|||
ip_address = request.META.get("REMOTE_ADDR")
|
||||
email = request.user.email
|
||||
|
||||
request.user.set_increment_abacus_debitor_number(
|
||||
disable_save="fakeapi" in settings.DATATRANS_API_ENDPOINT
|
||||
)
|
||||
|
||||
refno2 = f"{request.user.abacus_debitor_number}_{VV_PRODUCT_NUMBER}"
|
||||
|
||||
try:
|
||||
datatrans_customer_data = None
|
||||
datatrans_int_data = None
|
||||
if with_cembra_byjuno_invoice:
|
||||
if "fakeapi" not in settings.DATATRANS_API_ENDPOINT:
|
||||
request.user.set_increment_abacus_debitor_number()
|
||||
|
||||
# see https://api-reference.datatrans.ch/#tag/v1transactions as reference
|
||||
datatrans_customer_data = {
|
||||
"firstName": request.user.first_name,
|
||||
|
|
@ -155,6 +159,7 @@ def checkout_vv(request):
|
|||
),
|
||||
redirect_url_cancel=checkout_cancel_url(base_redirect_url),
|
||||
webhook_url=webhook_url(base_redirect_url),
|
||||
refno2=refno2,
|
||||
datatrans_customer_data=datatrans_customer_data,
|
||||
datatrans_int_data=datatrans_int_data,
|
||||
context_data=context_data,
|
||||
|
|
|
|||
Loading…
Reference in New Issue