diff --git a/models/res_partner.py b/models/res_partner.py index 2c941ff..03efa21 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -33,6 +33,7 @@ class ResPartner(models.Model): old_cards = self.env['loyalty.card'].sudo().search([ ('partner_id', '=', partner.id), ('program_id', '=', old_level_id), + ('active', '=', True), ]) if old_cards and new_level_id: new_card = self.env['loyalty.card'].sudo().search([ @@ -52,6 +53,7 @@ class ResPartner(models.Model): pts = old_card.points if abs(pts) > 0.0001: new_card.points += pts + old_card.points = 0.0 # 2. Transfer loyalty history (point transactions) old_histories = self.env['loyalty.history'].sudo().search([ @@ -76,5 +78,5 @@ class ResPartner(models.Model): # Archive old-level cards if old_cards: - old_cards.write({'active': False}) + old_cards.write({'active': False, 'points': 0.0}) return super().write(vals)