Set postage for templated letters when the address is not from the united-kingdom.

If the address is from the united-kingdom use the postage from the template.
This commit is contained in:
Rebecca Law
2020-07-29 13:42:20 +01:00
parent 8e1fa6ab50
commit ed5e73d548
3 changed files with 35 additions and 3 deletions

View File

@@ -14,6 +14,7 @@ def create_letter_notification(
reply_to_text=None,
billable_units=None,
updated_at=None,
postage=None
):
notification = persist_notification(
template_id=template.id,
@@ -33,7 +34,9 @@ def create_letter_notification(
status=status,
reply_to_text=reply_to_text,
billable_units=billable_units,
postage=letter_data.get('postage'),
# letter_data.get('postage') is only set for precompiled letters
# letters from a template will pass in 'europe' or 'rest-of-world' if None then use postage from template
postage=postage or letter_data.get('postage'),
updated_at=updated_at
)
return notification

View File

@@ -339,7 +339,7 @@ def process_letter_notification(
template=template,
reply_to_text=reply_to_text)
validate_address(service, letter_data)
postage = validate_address(service, letter_data)
test_key = api_key.key_type == KEY_TYPE_TEST
@@ -362,7 +362,8 @@ def process_letter_notification(
api_key=api_key,
status=status,
reply_to_text=reply_to_text,
updated_at=updated_at
updated_at=updated_at,
postage=postage
)
get_pdf_for_templated_letter.apply_async(
@@ -413,6 +414,10 @@ def validate_address(service, letter_data):
raise ValidationError(
message='Address lines must not start with any of the following characters: @ ( ) = [ ] ” \\ / ,'
)
if address.postage == 'united-kingdom':
return None # use postage from template
else:
return address.postage
def process_precompiled_letter_notifications(*, letter_data, api_key, service, template, reply_to_text):