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 )