diff --git a/app/main/views/platform_admin.py b/app/main/views/platform_admin.py index b2bd773b4..430c11f49 100644 --- a/app/main/views/platform_admin.py +++ b/app/main/views/platform_admin.py @@ -280,14 +280,19 @@ def usage_for_all_services(): if form.validate_on_submit(): start_date = form.start_date.data end_date = form.end_date.data - headers = ["organisation_id", "organisation_name", "service_id", "service_name", - "sms_cost", "sms_fragments", "letter_cost", "letter_breakdown"] + headers = [ + "organisation_id", "organisation_name", "service_id", "service_name", + "sms_cost", "sms_fragments", "letter_cost", "letter_breakdown", "purchase_order_number", + "contact_names", "contact_email_addresses", "billing_reference" + ] result = billing_api_client.get_usage_for_all_services(start_date, end_date) rows = [ [ - r['organisation_id'], r["organisation_name"], r["service_id"], r["service_name"], - r["sms_cost"], r['sms_fragments'], r["letter_cost"], r["letter_breakdown"].strip() + r["organisation_id"], r["organisation_name"], r["service_id"], r["service_name"], + r["sms_cost"], r["sms_fragments"], r["letter_cost"], r["letter_breakdown"].strip(), + r.get("purchase_order_number"), r.get("contact_names"), r.get("contact_email_addresses"), + r.get("billing_reference") ] for r in result ] diff --git a/tests/app/main/views/test_platform_admin.py b/tests/app/main/views/test_platform_admin.py index a77049530..821383baa 100644 --- a/tests/app/main/views/test_platform_admin.py +++ b/tests/app/main/views/test_platform_admin.py @@ -847,15 +847,23 @@ def test_usage_for_all_services_when_no_results_for_date(client_request, platfor def test_usage_for_all_services_when_calls_api_and_download_data(platform_admin_client, mocker): - mocker.patch("app.main.views.platform_admin.billing_api_client.get_usage_for_all_services", - return_value=[{'letter_breakdown': '6 second class letters at 45p\n2 first class letters at 35p\n', - 'letter_cost': 3.4, - 'organisation_id': '7832a1be-a1f0-4f2a-982f-05adfd3d6354', - 'organisation_name': 'Org for a - with sms and letter', - 'service_id': '48e82ac0-c8c4-4e46-8712-c83c35a94006', - 'service_name': 'a - with sms and letter', - 'sms_cost': 0, 'sms_fragments': 0 - }]) + mocker.patch( + "app.main.views.platform_admin.billing_api_client.get_usage_for_all_services", + return_value=[{ + 'letter_breakdown': '6 second class letters at 45p\n2 first class letters at 35p\n', + 'letter_cost': 3.4, + 'organisation_id': '7832a1be-a1f0-4f2a-982f-05adfd3d6354', + 'organisation_name': 'Org for a - with sms and letter', + 'service_id': '48e82ac0-c8c4-4e46-8712-c83c35a94006', + 'service_name': 'a - with sms and letter', + 'sms_cost': 0, + 'sms_fragments': 0, + 'purchase_order_number': 'PO1234', + 'contact_names': 'Anne, Marie, Josh', + 'contact_email_addresses': 'billing@example.com, accounts@example.com', + 'billing_reference': 'Notify2020' + }] + ) response = platform_admin_client.post(url_for('main.usage_for_all_services'), data={'start_date': '2019-01-01', 'end_date': '2019-03-31'}) @@ -867,8 +875,8 @@ def test_usage_for_all_services_when_calls_api_and_download_data(platform_admin_ ) assert response.get_data(as_text=True) == ( - 'organisation_id,organisation_name,service_id,service_name,' + - 'sms_cost,sms_fragments,letter_cost,letter_breakdown' + + 'organisation_id,organisation_name,service_id,service_name,sms_cost,sms_fragments,letter_cost' + + ',letter_breakdown,purchase_order_number,contact_names,contact_email_addresses,billing_reference' + '\r\n' + @@ -881,7 +889,8 @@ def test_usage_for_all_services_when_calls_api_and_download_data(platform_admin_ '3.4,' + '"6 second class letters at 45p' + '\n' + - '2 first class letters at 35p"' + + '2 first class letters at 35p",' + + 'PO1234,"Anne, Marie, Josh","billing@example.com, accounts@example.com",Notify2020' '\r\n' )