fix(billing): robust shadow prune (charges before products + archive fallback)

This commit is contained in:
gsinghpal
2026-05-27 17:02:43 -04:00
parent 6b63df8c3d
commit 9ad09c32b0

View File

@@ -280,13 +280,17 @@ class FusionBillingInvoiceLedgerWizard(models.TransientModel):
subs = self.env["sale.order"].search([("x_fc_shadow", "=", True)])
counts["subscriptions"] = len(subs)
subs.unlink()
prods = self.env["product.product"].search([("default_code", "=like", "NC-%")])
counts["products"] = len(prods)
prods.unlink()
ch = self.env["fusion.billing.charge"].search([])
ch = self.env["fusion.billing.charge"].search([]) # before products (charge -> product)
counts["charges"] = len(ch)
ch.unlink()
rec = self.env["fusion.billing.reconciliation"].search([])
counts["reconciliations"] = len(rec)
rec.unlink()
prods = self.env["product.product"].search([("default_code", "=like", "NC-%")])
counts["products"] = len(prods)
try:
prods.unlink()
except Exception: # noqa: BLE001 - undeletable (referenced) products: archive instead
prods.write({"active": False})
counts["products_archived"] = len(prods)
return counts