mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
Rename variable names for consistency between similar functions
Co-authored-by: Leo Hemsted <leo.hemsted@digital.cabinet-office.gov.uk>
This commit is contained in:
@@ -378,14 +378,14 @@ def query_service_sms_usage_for_year(service_id, year):
|
|||||||
free allowance if it happens to run out when a rate changes.
|
free allowance if it happens to run out when a rate changes.
|
||||||
"""
|
"""
|
||||||
year_start, year_end = get_financial_year_dates(year)
|
year_start, year_end = get_financial_year_dates(year)
|
||||||
chargeable_units = FactBilling.billable_units * FactBilling.rate_multiplier
|
this_rows_chargeable_units = FactBilling.billable_units * FactBilling.rate_multiplier
|
||||||
|
|
||||||
# Subquery for the number of chargeable units in all rows preceding this one,
|
# Subquery for the number of chargeable units in all rows preceding this one,
|
||||||
# which might be none if this is the first row (hence the "coalesce"). For
|
# which might be none if this is the first row (hence the "coalesce"). For
|
||||||
# some reason the end result is a decimal despite all the input columns being
|
# some reason the end result is a decimal despite all the input columns being
|
||||||
# integer - this seems to be a Sqlalchemy quirk (works in raw SQL).
|
# integer - this seems to be a Sqlalchemy quirk (works in raw SQL).
|
||||||
cumulative_chargeable_units = func.coalesce(
|
chargeable_units_used_before_this_row = func.coalesce(
|
||||||
func.sum(chargeable_units).over(
|
func.sum(this_rows_chargeable_units).over(
|
||||||
# order is "ASC" by default
|
# order is "ASC" by default
|
||||||
order_by=[FactBilling.bst_date],
|
order_by=[FactBilling.bst_date],
|
||||||
# first row to previous row
|
# first row to previous row
|
||||||
@@ -396,22 +396,22 @@ def query_service_sms_usage_for_year(service_id, year):
|
|||||||
|
|
||||||
# Subquery for how much free allowance we have left before the current row,
|
# Subquery for how much free allowance we have left before the current row,
|
||||||
# so we can work out the cost for this row after taking it into account.
|
# so we can work out the cost for this row after taking it into account.
|
||||||
cumulative_free_remainder = func.greatest(
|
remaining_free_allowance_before_this_row = func.greatest(
|
||||||
AnnualBilling.free_sms_fragment_limit - cumulative_chargeable_units,
|
AnnualBilling.free_sms_fragment_limit - chargeable_units_used_before_this_row,
|
||||||
0
|
0
|
||||||
)
|
)
|
||||||
|
|
||||||
# Subquery for the number of chargeable_units that we will actually charge
|
# Subquery for the number of chargeable_units that we will actually charge
|
||||||
# for, after taking any remaining free allowance into account.
|
# for, after taking any remaining free allowance into account.
|
||||||
charged_units = func.greatest(chargeable_units - cumulative_free_remainder, 0)
|
charged_units = func.greatest(this_rows_chargeable_units - remaining_free_allowance_before_this_row, 0)
|
||||||
|
|
||||||
free_allowance_used = func.least(cumulative_free_remainder, chargeable_units)
|
free_allowance_used = func.least(remaining_free_allowance_before_this_row, this_rows_chargeable_units)
|
||||||
|
|
||||||
return db.session.query(
|
return db.session.query(
|
||||||
FactBilling.bst_date,
|
FactBilling.bst_date,
|
||||||
FactBilling.postage, # should always be "none"
|
FactBilling.postage, # should always be "none"
|
||||||
FactBilling.notifications_sent,
|
FactBilling.notifications_sent,
|
||||||
chargeable_units.label("chargeable_units"),
|
this_rows_chargeable_units.label("chargeable_units"),
|
||||||
FactBilling.rate,
|
FactBilling.rate,
|
||||||
FactBilling.notification_type,
|
FactBilling.notification_type,
|
||||||
(charged_units * FactBilling.rate).label("cost"),
|
(charged_units * FactBilling.rate).label("cost"),
|
||||||
@@ -772,7 +772,7 @@ def query_organisation_sms_usage_for_year(organisation_id, year):
|
|||||||
|
|
||||||
# Subquery for the number of chargeable units in all rows preceding this one,
|
# Subquery for the number of chargeable units in all rows preceding this one,
|
||||||
# which might be none if this is the first row (hence the "coalesce").
|
# which might be none if this is the first row (hence the "coalesce").
|
||||||
chargeable_units_used_so_far = func.coalesce(
|
chargeable_units_used_before_this_row = func.coalesce(
|
||||||
func.sum(this_rows_chargeable_units).over(
|
func.sum(this_rows_chargeable_units).over(
|
||||||
# order is "ASC" by default
|
# order is "ASC" by default
|
||||||
order_by=[FactBilling.bst_date],
|
order_by=[FactBilling.bst_date],
|
||||||
@@ -789,7 +789,7 @@ def query_organisation_sms_usage_for_year(organisation_id, year):
|
|||||||
# Subquery for how much free allowance we have left before the current row,
|
# Subquery for how much free allowance we have left before the current row,
|
||||||
# so we can work out the cost for this row after taking it into account.
|
# so we can work out the cost for this row after taking it into account.
|
||||||
remaining_free_allowance_before_this_row = func.greatest(
|
remaining_free_allowance_before_this_row = func.greatest(
|
||||||
AnnualBilling.free_sms_fragment_limit - chargeable_units_used_so_far,
|
AnnualBilling.free_sms_fragment_limit - chargeable_units_used_before_this_row,
|
||||||
0
|
0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user