mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-16 20:48:37 -04:00
Prepare to replace "billing_units" in usage APIs
There is no such thing as a "billing unit". The data this field contained was also a confusing mixture of two types: - For emails and letters, it was just "notifications_sent". - For SMS, it was the "chargeable_units" (billable * multiplier). This replaces the single, ambiguous "billing_units" field with "chargeable_units" and "notifications_sent" in both usage APIs. Once Admin is using them we can remove the old field.
This commit is contained in:
@@ -17,7 +17,10 @@ def serialize_ft_billing_remove_emails(rows):
|
||||
{
|
||||
"month": (datetime.strftime(row.month, "%B")),
|
||||
"notification_type": row.notification_type,
|
||||
# TEMPORARY: while we migrate away from "billing_units"
|
||||
"billing_units": row.billable_units,
|
||||
"chargeable_units": row.chargeable_units,
|
||||
"notifications_sent": row.notifications_sent,
|
||||
"rate": float(row.rate),
|
||||
"postage": row.postage,
|
||||
}
|
||||
@@ -30,7 +33,10 @@ def serialize_ft_billing_yearly_totals(rows):
|
||||
return [
|
||||
{
|
||||
"notification_type": row.notification_type,
|
||||
# TEMPORARY: while we migrate away from "billing_units"
|
||||
"billing_units": row.billable_units,
|
||||
"chargeable_units": row.chargeable_units,
|
||||
"notifications_sent": row.notifications_sent,
|
||||
"rate": float(row.rate),
|
||||
"letter_total": float(row.billable_units * row.rate) if row.notification_type == 'letter' else 0,
|
||||
}
|
||||
|
||||
@@ -220,7 +220,9 @@ def fetch_billing_totals_for_year(service_id, year):
|
||||
query.c.rate.label("rate"),
|
||||
|
||||
func.sum(query.c.notifications_sent).label("notifications_sent"),
|
||||
# TEMPORARY: while we migrate away from "billing_units"
|
||||
func.sum(query.c.billable_units).label("billable_units"),
|
||||
func.sum(query.c.chargeable_units).label("chargeable_units"),
|
||||
).group_by(
|
||||
query.c.rate,
|
||||
query.c.notification_type
|
||||
@@ -275,7 +277,9 @@ def fetch_monthly_billing_for_year(service_id, year):
|
||||
func.date_trunc('month', query.c.bst_date).cast(Date).label("month"),
|
||||
|
||||
func.sum(query.c.notifications_sent).label("notifications_sent"),
|
||||
# TEMPORARY: while we migrate away from "billing_units"
|
||||
func.sum(query.c.billable_units).label("billable_units"),
|
||||
func.sum(query.c.chargeable_units).label("chargeable_units"),
|
||||
).group_by(
|
||||
query.c.rate,
|
||||
query.c.notification_type,
|
||||
@@ -302,7 +306,9 @@ def query_service_email_usage_for_year(service_id, year):
|
||||
FactBilling.bst_date,
|
||||
FactBilling.postage, # should always be "none"
|
||||
FactBilling.notifications_sent,
|
||||
# TEMPORARY: while we migrate away from "billing_units"
|
||||
FactBilling.notifications_sent.label("billable_units"),
|
||||
FactBilling.billable_units.label("chargeable_units"),
|
||||
FactBilling.rate,
|
||||
FactBilling.notification_type,
|
||||
).filter(
|
||||
@@ -320,7 +326,12 @@ def query_service_letter_usage_for_year(service_id, year):
|
||||
FactBilling.bst_date,
|
||||
FactBilling.postage,
|
||||
FactBilling.notifications_sent,
|
||||
# TEMPORARY: while we migrate away from "billing_units"
|
||||
FactBilling.notifications_sent.label("billable_units"),
|
||||
# We can't use billable_units here as it represents the
|
||||
# sheet count for letters, which is already accounted for
|
||||
# in the rate. We actually charge per letter, not sheet.
|
||||
FactBilling.notifications_sent.label("chargeable_units"),
|
||||
FactBilling.rate,
|
||||
FactBilling.notification_type,
|
||||
).filter(
|
||||
@@ -339,7 +350,9 @@ def query_service_sms_usage_for_year(service_id, year):
|
||||
FactBilling.bst_date,
|
||||
FactBilling.postage, # should always be "none"
|
||||
FactBilling.notifications_sent,
|
||||
# TEMPORARY: while we migrate away from "billing_units"
|
||||
chargeable_units.label("billable_units"),
|
||||
chargeable_units.label("chargeable_units"),
|
||||
FactBilling.rate,
|
||||
FactBilling.notification_type,
|
||||
).filter(
|
||||
|
||||
Reference in New Issue
Block a user