diff --git a/base_wamas_ubl/lib/wamas/utils.py b/base_wamas_ubl/lib/wamas/utils.py
index cd550d732a..e7cfe66390 100644
--- a/base_wamas_ubl/lib/wamas/utils.py
+++ b/base_wamas_ubl/lib/wamas/utils.py
@@ -222,26 +222,23 @@ def convert_unit_code(key, val):
return val
-def get_address_elements(dict_item):
+def get_address_elements(dict_item, party_type="DeliveryCustomerParty"):
return {
"ContactName": dict_item.get(
- "DespatchAdvice.cac:DeliveryCustomerParty.cac:Party.cac:Contact.cbc:Name"
+ f"DespatchAdvice.cac:{party_type}.cac:Party.cac:Contact.cbc:Name"
),
"PartyName": dict_item.get(
- "DespatchAdvice.cac:DeliveryCustomerParty."
- "cac:Party.cac:PartyName.cbc:Name"
+ f"DespatchAdvice.cac:{party_type}.cac:Party.cac:PartyName.cbc:Name"
),
"Department": dict_item.get(
- "DespatchAdvice.cac:DeliveryCustomerParty."
- "cac:Party.cac:PostalAddress.cbc:Department"
+ f"DespatchAdvice.cac:{party_type}.cac:Party.cac:PostalAddress.cbc:Department"
),
"StreetName": dict_item.get(
- "DespatchAdvice.cac:DeliveryCustomerParty."
- "cac:Party.cac:PostalAddress.cbc:StreetName"
+ f"DespatchAdvice.cac:{party_type}.cac:Party.cac:PostalAddress.cbc:StreetName"
),
"AdditionalStreetName": dict_item.get(
- "DespatchAdvice.cac:DeliveryCustomerParty."
- "cac:Party.cac:PostalAddress.cbc:AdditionalStreetName"
+ f"DespatchAdvice.cac:{party_type}.cac:Party.cac:PostalAddress."
+ "cbc:AdditionalStreetName"
),
}
@@ -251,15 +248,17 @@ def get_Adrs_Name(a):
def get_Adrs_Name2(a):
- return next(filter(None, [a["PartyName"], a["Department"], a["StreetName"]]), "")
+ return next(
+ filter(None, [a["Department"], a["StreetName"], a["AdditionalStreetName"]]), ""
+ )
def get_Adrs_Name3(a):
- return next(filter(None, [a["Department"], a["StreetName"]]), "")
+ return next(filter(None, [a["StreetName"], a["AdditionalStreetName"]]), "")
def get_Adrs_Name4(a):
- return a["StreetName"]
+ return a["AdditionalStreetName"]
def get_Adrs_Adr(a):
@@ -327,7 +326,13 @@ def generate_wamas_line(dict_item, grammar, **kwargs): # noqa: C901
# TODO: Consider refactoring to use classes
# or provide a better way to determine arguments.
elif "get_Adrs_" in df_func:
- address_elements = get_address_elements(dict_item)
+ if df_func.startswith("supplier"):
+ address_elements = get_address_elements(
+ dict_item, "DespatchSupplierParty"
+ )
+ df_func = df_func[9:]
+ else:
+ address_elements = get_address_elements(dict_item)
args = (address_elements,)
val = globals()[df_func](*args)
diff --git a/base_wamas_ubl/lib/wamas/wamas_grammar/kretk.py b/base_wamas_ubl/lib/wamas/wamas_grammar/kretk.py
index e1e8bc36c9..084e4be9cd 100644
--- a/base_wamas_ubl/lib/wamas/wamas_grammar/kretk.py
+++ b/base_wamas_ubl/lib/wamas/wamas_grammar/kretk.py
@@ -105,7 +105,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name",
+ "df_func": "supplier_get_Adrs_Name",
},
"RxKretk_Adrs_Name2": {
"type": "str",
@@ -113,7 +113,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name2",
+ "df_func": "supplier_get_Adrs_Name2",
},
"RxKretk_Adrs_Name3": {
"type": "str",
@@ -121,7 +121,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name3",
+ "df_func": "supplier_get_Adrs_Name3",
},
"RxKretk_Adrs_Name4": {
"type": "str",
@@ -129,7 +129,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name4",
+ "df_func": "supplier_get_Adrs_Name4",
},
"RxKretk_Adrs_Anrede": {
"type": "str",
@@ -145,14 +145,13 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Adr",
+ "df_func": "supplier_get_Adrs_Adr",
},
"RxKretk_Adrs_Adr2": {
"type": "str",
"length": 40,
"dp": False,
- "ubl_path": "DespatchAdvice.cac:DespatchSupplierParty."
- "cac:Party.cac:PostalAddress.cbc:CountrySubentity",
+ "ubl_path": False,
"df_val": False,
"df_func": False,
},
diff --git a/base_wamas_ubl/lib/wamas/wamas_grammar/lst.py b/base_wamas_ubl/lib/wamas/wamas_grammar/lst.py
index f6720d6feb..9e15cd3d95 100644
--- a/base_wamas_ubl/lib/wamas/wamas_grammar/lst.py
+++ b/base_wamas_ubl/lib/wamas/wamas_grammar/lst.py
@@ -131,7 +131,7 @@
"type": "str",
"length": 40,
"dp": False,
- "dict_key": "lang",
+ "dict_key": "state",
"df_val": False,
"df_func": False,
},
diff --git a/base_wamas_ubl/lib/wamas/wamas_grammar/weak.py b/base_wamas_ubl/lib/wamas/wamas_grammar/weak.py
index 05329965f1..53f8a006c8 100644
--- a/base_wamas_ubl/lib/wamas/wamas_grammar/weak.py
+++ b/base_wamas_ubl/lib/wamas/wamas_grammar/weak.py
@@ -105,7 +105,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name",
+ "df_func": "supplier_get_Adrs_Name",
},
"RxWeak_Adrs_Name2": {
"type": "str",
@@ -113,7 +113,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name2",
+ "df_func": "supplier_get_Adrs_Name2",
},
"RxWeak_Adrs_Name3": {
"type": "str",
@@ -121,7 +121,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name3",
+ "df_func": "supplier_get_Adrs_Name3",
},
"RxWeak_Adrs_Name4": {
"type": "str",
@@ -129,7 +129,7 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Name4",
+ "df_func": "supplier_get_Adrs_Name4",
},
"RxWeak_Adrs_Anrede": {
"type": "str",
@@ -145,14 +145,13 @@
"dp": False,
"ubl_path": False,
"df_val": False,
- "df_func": "get_Adrs_Adr",
+ "df_func": "supplier_get_Adrs_Adr",
},
"RxWeak_Adrs_Adr2": {
"type": "str",
"length": 40,
"dp": False,
- "ubl_path": "DespatchAdvice.cac:DespatchSupplierParty."
- "cac:Party.cac:PostalAddress.cbc:CountrySubentity",
+ "ubl_path": False,
"df_val": False,
"df_func": False,
},
diff --git a/base_wamas_ubl/tests/samples/DICT2WAMAS-SAMPLE_OUTPUT.wamas b/base_wamas_ubl/tests/samples/DICT2WAMAS-SAMPLE_OUTPUT.wamas
index af473c1828..7938ce3514 100644
--- a/base_wamas_ubl/tests/samples/DICT2WAMAS-SAMPLE_OUTPUT.wamas
+++ b/base_wamas_ubl/tests/samples/DICT2WAMAS-SAMPLE_OUTPUT.wamas
@@ -1 +1 @@
-ODOO WAMAS 00000120231221051251LST0000510000001 Adam Smith adam@dayrep.com 79782 Sand Springs US 432-393-1264 aaa Standard 0N JStandard N
\ No newline at end of file
+ODOO WAMAS 00000120231221051251LST0000510000001 Adam Smith adam@dayrep.com 79782 Sand Springs Texas US 432-393-1264 aaa Standard 0N JStandard N
\ No newline at end of file
diff --git a/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_INPUT.dict b/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_INPUT.dict
index da8523a53c..8a2bb3a746 100644
--- a/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_INPUT.dict
+++ b/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_INPUT.dict
@@ -4,7 +4,6 @@
"name2": "Name 2",
"name3": "Name 3",
"name4": "Name 4",
- "lang": "EN_en",
"street": "3273 Laurel Lane",
"street2": "",
"zip": "79782",
diff --git a/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_OUTPUT.wamas b/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_OUTPUT.wamas
index 774f919480..60cbdc4b59 100644
--- a/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_OUTPUT.wamas
+++ b/base_wamas_ubl/tests/samples/TELEGRAM-SAMPLE-LST_OUTPUT.wamas
@@ -1 +1 @@
-ODOO WAMAS 00000120231221051251LST0000510000001 Adam Smith Name 2 Name 3 Name 4 3273 Laurel Lane 79782 Sand Springs EN_en US 432-393-1264 aaa https://testing.com Standard 0N JStandard N
\ No newline at end of file
+ODOO WAMAS 00000120231221051251LST0000510000001 Adam Smith Name 2 Name 3 Name 4 3273 Laurel Lane 79782 Sand Springs Texas US 432-393-1264 aaa https://testing.com Standard 0N JStandard N
\ No newline at end of file
diff --git a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_AUSK_AUSP.wamas b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_AUSK_AUSP.wamas
index f6dcfb2415..b10071bdce 100644
--- a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_AUSK_AUSP.wamas
+++ b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_AUSK_AUSP.wamas
@@ -1,2 +1,2 @@
-ODOO WAMAS 00000120230501020000AUSK000560001673980/1700802 HOST 1700802 000 Name Name Department StreetName AdditionalStreetName Name Name Department StreetName AdditionalStreetName 94134 San Francisco California US (979)-904-8902 chester.reed79@example.com 20230413130000Quai-22 FRUEH FRUEHGE 2/120185 HOST 00000000000000000000000000 001 ST Def_Strat
+ODOO WAMAS 00000120230501020000AUSK000560001673980/1700802 HOST 1700802 000 Name Department StreetName AdditionalStreetName AdditionalStreetName Name Department StreetName AdditionalStreetName AdditionalStreetName 94134 San Francisco California US (979)-904-8902 chester.reed79@example.com 20230413130000Quai-22 FRUEH FRUEHGE 2/120185 HOST 00000000000000000000000000 001 ST Def_Strat
ODOO WAMAS 00000220230501020000AUSP000540001700802 HOST 10001 0000110007076 00000 DISPONIBLE 0000000000000000000000000000 000001500000PET 00000000000000 NN N 0000N
\ No newline at end of file
diff --git a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP-DESPATCH_ADVICE.xml b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP-DESPATCH_ADVICE.xml
index 02d69f3142..51de55045d 100644
--- a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP-DESPATCH_ADVICE.xml
+++ b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP-DESPATCH_ADVICE.xml
@@ -15,7 +15,9 @@
MyCompany
- 1839 Arbor Way
+ StreetName
+ Department
+ AdditionalStreetName
Turlock
95380
California
diff --git a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP.wamas b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP.wamas
index 4cdbf78dc8..41e0c6846b 100644
--- a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP.wamas
+++ b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_KRETK_KRETP.wamas
@@ -1,4 +1,4 @@
-ODOO WAMAS 00000120230501020000KRETK0051000130377 HOST STDMAN0001040 STDMAN0001040 Chester Reed YourCompany Department_1 250 Executive Park Blvd, Suite 3400 AdditionalStreetName_1 California 95380 Turlock US (623)-853-7197 wood.corner26@example.com 20230427020000
+ODOO WAMAS 00000120230501020000KRETK0051000130377 HOST STDMAN0001040 STDMAN0001040 MyCompany Department StreetName AdditionalStreetName AdditionalStreetName 95380 Turlock US (623)-853-7197 wood.corner26@example.com 20230427020000
ODOO WAMAS 00000220230501020000KRETP0046000130377 HOST 0001 0000020001151 00000DISPONIBLE 000001536000BOUT N
ODOO WAMAS 00000320230501020000KRETP0046000130377 HOST 0002 0000030001156 00000DISPONIBLE 000005184000PET N
ODOO WAMAS 00000420230501020000KRETP0046000130377 HOST 0003 0000040001160 00000DISPONIBLE 000003840000BOUT N
diff --git a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP-DESPATCH_ADVICE.xml b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP-DESPATCH_ADVICE.xml
index 74df888b1f..7bd450c53f 100644
--- a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP-DESPATCH_ADVICE.xml
+++ b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP-DESPATCH_ADVICE.xml
@@ -15,7 +15,9 @@
MyCompany
- 1839 Arbor Way
+ StreetName
+ Department
+ AdditionalStreetName
Turlock
95380
California
diff --git a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP.wamas b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP.wamas
index ad70d08a2e..7e79e2a4b1 100644
--- a/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP.wamas
+++ b/base_wamas_ubl/tests/samples/UBL2WAMAS-SAMPLE_WEAK_WEAP.wamas
@@ -1,4 +1,4 @@
-ODOO WAMAS 00000120230501020000WEAK00050000130377 ODOO STDMAN0001040 STDMAN0001040 Chester Reed YourCompany 250 Executive Park Blvd, Suite 3400 250 Executive Park Blvd, Suite 3400 250 Executive Park Blvd, Suite 3400 California 95380 Turlock US (623)-853-7197 wood.corner26@example.com 20230427020000
+ODOO WAMAS 00000120230501020000WEAK00050000130377 ODOO STDMAN0001040 STDMAN0001040 MyCompany Department StreetName AdditionalStreetName AdditionalStreetName 95380 Turlock US (623)-853-7197 wood.corner26@example.com 20230427020000
ODOO WAMAS 00000220230501020000WEAP00045000130377 ODOO 0001 0000020001151 00000 NDISPONIBLE 000001536000BOUT NORMAL 20230501020000 202305010200007910063 NNLG
ODOO WAMAS 00000320230501020000WEAP00045000130377 ODOO 0002 0000030001156 00000 NDISPONIBLE 000005184000PET NORMAL 20230501020000 202305010200007910105 NNLG
ODOO WAMAS 00000420230501020000WEAP00045000130377 ODOO 0003 0000040001160 00000 NDISPONIBLE 000003840000BOUT NORMAL 20230501020000 202305010200007910004 NNLG