diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 39fe0eb5f..77472d6f8 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -413,24 +413,24 @@ def get_monthly_usage_breakdown(year, free_sms_fragment_limit, monthly_usage): previous_cumulative = cumulative monthly_usage = get_sum_billing_units(sms, month) cumulative += monthly_usage - breakdown = get_free_paid_breakdown_for_month( + sms_breakdown = get_free_paid_breakdown_for_month( free_sms_fragment_limit, cumulative, previous_cumulative, [billing_month for billing_month in sms if billing_month['month'] == month] ) letter_units_for_month = [x for x in letters if x['month'] == month] - letter_billing = format_letter_details_for_month(letter_units_for_month) + letter_breakdown = format_letter_details_for_month(letter_units_for_month) - letter_total = 0 - for x in letter_billing: - letter_total += x.cost + letter_cost = 0 + for x in letter_breakdown: + letter_cost += x.cost yield { - 'name': month, - 'letter_total': letter_total, - 'letters': letter_billing, - 'sms_paid_count': breakdown['paid'], - 'sms_free_count': breakdown['free'], - 'sms_rate': breakdown['sms_rate'], + 'month': month, + 'letter_cost': letter_cost, + 'letter_breakdown': letter_breakdown, + 'sms_charged': sms_breakdown['paid'], + 'sms_free_allowance_used': sms_breakdown['free'], + 'sms_rate': sms_breakdown['sms_rate'], } @@ -445,7 +445,7 @@ def format_letter_details_for_month(letter_units_for_month): postage_order = {'first class': 0, 'second class': 1, 'international': 2} letter_units_for_month.sort(key=lambda x: (postage_order[x['postage']], x['rate'])) - LetterDetails = namedtuple('LetterDetails', ['billing_units', 'rate', 'cost', 'postage_description']) + LetterDetails = namedtuple('LetterDetails', ['sent', 'rate', 'cost', 'postage_description']) # Aggregate the rows for international letters which have the same rate result = [] @@ -453,7 +453,7 @@ def format_letter_details_for_month(letter_units_for_month): rate_group = list(rate_group) letter_details = LetterDetails( - billing_units=sum(x['billing_units'] for x in rate_group), + sent=sum(x['billing_units'] for x in rate_group), rate=rate_group[0]['rate'], cost=(sum(x['billing_units'] for x in rate_group) * rate_group[0]['rate']), postage_description=rate_group[0]['postage'] diff --git a/app/templates/views/usage.html b/app/templates/views/usage.html index a9bd086b0..59fd31979 100644 --- a/app/templates/views/usage.html +++ b/app/templates/views/usage.html @@ -83,7 +83,7 @@ {% if months %}
- {% call(month, row_index) list_table( + {% call(item, row_index) list_table( months, caption="Total spend", caption_visible=False, @@ -95,29 +95,29 @@ field_headings_visible=True ) %} {% call row_heading() %} - {{ month.name }} + {{ item.month }} {% endcall %} {% call field(align='left') %} {{ big_number( - (month.sms_rate * month.sms_paid_count) + month.letter_total, + (item.sms_rate * item.sms_charged) + item.letter_cost, currency="£", smallest=True ) }} diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index 8271b2397..7e486feda 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -1602,100 +1602,100 @@ def test_get_monthly_usage_breakdown(now, expected_number_of_months): assert list(breakdown) == [ { - 'sms_free_count': 100000, - 'name': 'April', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 100000, + 'month': 'April', + 'sms_charged': 0, 'sms_rate': 1.65, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 100000, - 'name': 'May', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 100000, + 'month': 'May', + 'sms_charged': 0, 'sms_rate': 1.65, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 50000, - 'name': 'June', - 'sms_paid_count': 50000, + 'sms_free_allowance_used': 50000, + 'month': 'June', + 'sms_charged': 50000, 'sms_rate': 1.71, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'July', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'July', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'August', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'August', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'September', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'September', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'October', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'October', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'November', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'November', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'December', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'December', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'January', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'January', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'February', - 'sms_paid_count': 2000, + 'sms_free_allowance_used': 0, + 'month': 'February', + 'sms_charged': 2000, 'sms_rate': 1.71, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, { - 'sms_free_count': 0, - 'name': 'March', - 'sms_paid_count': 0, + 'sms_free_allowance_used': 0, + 'month': 'March', + 'sms_charged': 0, 'sms_rate': 0, - 'letter_total': 0, - 'letters': [] + 'letter_cost': 0, + 'letter_breakdown': [] }, ][:expected_number_of_months]