From 0eeae993cb2e92606917ea1068645f0ac102fcac Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Tue, 9 Jul 2024 13:21:08 +0200 Subject: [PATCH] VBV-703: abacus filename: timestamp comes first --- .../abacus_sftp/test_abacus_sftp.py | 2 +- server/vbv_lernwelt/shop/invoice/abacus.py | 25 +++++++++++-------- .../shop/tests/test_abacus_invoice.py | 2 +- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/server/integration_tests/abacus_sftp/test_abacus_sftp.py b/server/integration_tests/abacus_sftp/test_abacus_sftp.py index dc747504..483f7102 100644 --- a/server/integration_tests/abacus_sftp/test_abacus_sftp.py +++ b/server/integration_tests/abacus_sftp/test_abacus_sftp.py @@ -102,7 +102,7 @@ def test_upload_abacus_xml(setup_abacus_env): assert "andreas.feuz@eiger-versicherungen.ch" in debi_content order_filepath = os.path.join( - tmppath, "order/myVBV_orde_60000012_20240215083312_6000000124.xml" + tmppath, "order/myVBV_orde_20240215083312_60000012_6000000124.xml" ) assert os.path.exists(order_filepath) with open(order_filepath) as order_file: diff --git a/server/vbv_lernwelt/shop/invoice/abacus.py b/server/vbv_lernwelt/shop/invoice/abacus.py index 201345d3..ffd9ee33 100644 --- a/server/vbv_lernwelt/shop/invoice/abacus.py +++ b/server/vbv_lernwelt/shop/invoice/abacus.py @@ -63,7 +63,7 @@ def create_invoice_xml(checkout_information: CheckoutInformation): # YYYYMMDDhhmmss filename_datetime = checkout_information.created_at.strftime("%Y%m%d%H%M%S") - invoice_xml_filename = f"myVBV_orde_{customer.abacus_debitor_number}_{filename_datetime}_{checkout_information.abacus_order_id}.xml" + invoice_xml_filename = f"myVBV_orde_{filename_datetime}_{customer.abacus_debitor_number}_{checkout_information.abacus_order_id}.xml" return invoice_xml_filename, invoice_xml_content @@ -207,17 +207,20 @@ def render_customer_xml( address_data = SubElement(customer_element, "AddressData", mode="SAVE") SubElement(address_data, "AddressNumber").text = str(abacus_debitor_number) - SubElement(address_data, "Name").text = last_name - SubElement(address_data, "FirstName").text = first_name + SubElement(address_data, "Name").text = last_name[:100] + SubElement(address_data, "FirstName").text = first_name[:50] if company_name: - SubElement(address_data, "Text").text = company_name - SubElement(address_data, "Street").text = street - SubElement(address_data, "HouseNumber").text = house_number - SubElement(address_data, "ZIP").text = zip_code - SubElement(address_data, "City").text = city - SubElement(address_data, "Country").text = country - SubElement(address_data, "Language").text = language - SubElement(address_data, "Email").text = email + SubElement(address_data, "Text").text = company_name[:80] + SubElement(address_data, "Street").text = street[:50] + SubElement(address_data, "HouseNumber").text = house_number[:9] + # only take the numbers from zip_code + SubElement(address_data, "ZIP").text = "".join( + filter(lambda ch: str.isdigit(ch), zip_code) + )[:15] + SubElement(address_data, "City").text = city[:50] + SubElement(address_data, "Country").text = country[:4] + SubElement(address_data, "Language").text = language[:6] + SubElement(address_data, "Email").text = email[:65] return create_xml_string(container) diff --git a/server/vbv_lernwelt/shop/tests/test_abacus_invoice.py b/server/vbv_lernwelt/shop/tests/test_abacus_invoice.py index f9e5e171..e7171ba0 100644 --- a/server/vbv_lernwelt/shop/tests/test_abacus_invoice.py +++ b/server/vbv_lernwelt/shop/tests/test_abacus_invoice.py @@ -43,7 +43,7 @@ class AbacusInvoiceTestCase(TestCase): ) self.assertEqual( - invoice_xml_filename, "myVBV_orde_60000012_20240215083312_6000000124.xml" + invoice_xml_filename, "myVBV_orde_20240215083312_60000012_6000000124.xml" ) print(invoice_xml_content)