mirror of https://github.com/zulip/zulip.git
stripe: Add `sync_license_ledger...` for RemoteServerBillingSession.
This commit implements the 'sync_license_ledger_if_needed' method for RemoteServerBillingSession.
This commit is contained in:
parent
1d515a57cd
commit
4ad03804cf
|
@ -3681,7 +3681,29 @@ class RemoteServerBillingSession(BillingSession): # nocoverage
|
|||
|
||||
@override
|
||||
def sync_license_ledger_if_needed(self) -> None:
|
||||
pass
|
||||
last_ledger = self.get_last_ledger_for_automanaged_plan_if_exists()
|
||||
if last_ledger is None:
|
||||
return
|
||||
|
||||
# New audit logs since last_ledger for the plan was created.
|
||||
new_audit_logs = (
|
||||
RemoteRealmAuditLog.objects.filter(
|
||||
server=self.remote_server,
|
||||
event_time__gt=last_ledger.event_time,
|
||||
event_type__in=RemoteRealmAuditLog.SYNCED_BILLING_EVENTS,
|
||||
)
|
||||
.exclude(extra_data={})
|
||||
.order_by("event_time")
|
||||
)
|
||||
|
||||
current_plan = last_ledger.plan
|
||||
for audit_log in new_audit_logs:
|
||||
end_of_cycle_plan = self.update_license_ledger_for_automanaged_plan(
|
||||
current_plan, audit_log.event_time
|
||||
)
|
||||
if end_of_cycle_plan is None:
|
||||
return
|
||||
current_plan = end_of_cycle_plan
|
||||
|
||||
|
||||
def stripe_customer_has_credit_card_as_default_payment_method(
|
||||
|
|
|
@ -968,12 +968,16 @@ def remote_server_post_analytics(
|
|||
last_audit_log_update=timezone_now()
|
||||
)
|
||||
|
||||
# Update LicenseLedger using logs in RemoteRealmAuditlog.
|
||||
# Update LicenseLedger for remote_realm customers using logs in RemoteRealmAuditlog.
|
||||
for remote_realm in remote_realms_set:
|
||||
if remote_realm:
|
||||
billing_session = RemoteRealmBillingSession(remote_realm=remote_realm)
|
||||
billing_session.sync_license_ledger_if_needed()
|
||||
|
||||
# Update LicenseLedger for remote_server customer using logs in RemoteRealmAuditlog.
|
||||
remote_server_billing_session = RemoteServerBillingSession(remote_server=server)
|
||||
remote_server_billing_session.sync_license_ledger_if_needed()
|
||||
|
||||
remote_realm_dict: Dict[str, RemoteRealmDictValue] = {}
|
||||
remote_realms = RemoteRealm.objects.filter(server=server)
|
||||
for remote_realm in remote_realms:
|
||||
|
|
Loading…
Reference in New Issue