From bbe7748aa1cadacd55810354c1fe88c9a2ae762d Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Thu, 4 Jun 2026 11:31:40 +0700 Subject: [PATCH] fix: exclude zero-spend loyalty programs from auto-assignment fallback in res.partner --- models/res_partner.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/models/res_partner.py b/models/res_partner.py index 114d107..e4baadd 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -73,8 +73,16 @@ class ResPartner(models.Model): limit=1 ) if not lowest_program: + # Fallback: pick the non-manual multi-level program with the lowest + # minimum_spend. We require minimum_spend > 0 to exclude programs like + # "Membership Direksi" that have no spend requirement (by-invitation only) + # and would otherwise be picked first due to minimum_spend defaulting to 0. lowest_program = self.env['loyalty.program'].sudo().search( - [('multi_level_membership', '=', True), ('manual_membership', '=', False)], + [ + ('multi_level_membership', '=', True), + ('manual_membership', '=', False), + ('minimum_spend', '>', 0), + ], order='minimum_spend asc', limit=1 )