@@ -40,7 +40,9 @@ def map_cse_calc_response_for_tariff_code(
|
||||
delivery_type, _, urgency = tariff_code.partition("|")
|
||||
for tariff in _iter_tariffs(root):
|
||||
if _tariff_urgency(tariff) == urgency:
|
||||
return _map_tariff(tariff, delivery_type, delivery_type_label)
|
||||
price = _map_tariff(tariff, delivery_type, delivery_type_label)
|
||||
if price is not None:
|
||||
return price
|
||||
return None
|
||||
|
||||
|
||||
@@ -62,6 +64,9 @@ def _map_tariff(
|
||||
delivery_type: str,
|
||||
delivery_type_label: str,
|
||||
) -> DeliveryPrice | None:
|
||||
if _is_additional_service_tariff(tariff):
|
||||
return None
|
||||
|
||||
urgency = _tariff_urgency(tariff)
|
||||
if not urgency:
|
||||
return None
|
||||
@@ -111,6 +116,13 @@ def _map_tariff(
|
||||
raise CSEMappingError("CSE tariff fields have invalid values.") from exc
|
||||
|
||||
|
||||
def _is_additional_service_tariff(tariff: Element) -> bool:
|
||||
value = tariff.field_value("AdditionalService")
|
||||
if value is None:
|
||||
return False
|
||||
return value.strip().lower() == "true"
|
||||
|
||||
|
||||
def _to_int(value: str | None) -> int | None:
|
||||
if value is None or value == "":
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user