mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 17:31:14 -05:00
make rebuild-ft-billing-for-day remove unused rows
if the billing data was incorrect and needs to be rebuilt, we should remove old rows. Previously we were only upserting new rows, but old no-longer-relevant rows were staying in the database. This commit makes the flask command remove *all* rows for that service and day, before inserting the rows from the original notification data after. This commit doesn't change the existing nightly task, nor does it change the upsert that happens upon viewing the usage page. In normal usage, there should never be a case where the number of billable units for a rate decreases. It should only ever increase, thus, never need to be deleted
This commit is contained in:
@@ -125,6 +125,18 @@ def fetch_monthly_billing_for_year(service_id, year):
|
||||
return yearly_data
|
||||
|
||||
|
||||
def delete_billing_data_for_service_for_day(process_day, service_id):
|
||||
"""
|
||||
Delete all ft_billing data for a given service on a given bst_date
|
||||
|
||||
Returns how many rows were deleted
|
||||
"""
|
||||
return FactBilling.query.filter(
|
||||
FactBilling.bst_date == process_day,
|
||||
FactBilling.service_id == service_id
|
||||
).delete()
|
||||
|
||||
|
||||
def fetch_billing_data_for_day(process_day, service_id=None):
|
||||
start_date = convert_bst_to_utc(datetime.combine(process_day, time.min))
|
||||
end_date = convert_bst_to_utc(datetime.combine(process_day + timedelta(days=1), time.min))
|
||||
|
||||
Reference in New Issue
Block a user