# -*- coding: utf-8 -*- from odoo import api, fields, models class LoyaltyCard(models.Model): _inherit = 'loyalty.card' # Declare the field so the ORM is aware of it and it can be loaded in _load_pos_data_fields. custom_end_date = fields.Date(string="End Date", help="Custom End Date for Loyalty Card") @api.model def _load_pos_data_fields(self, config): fields_list = super()._load_pos_data_fields(config) if 'custom_end_date' not in fields_list: fields_list.append('custom_end_date') return fields_list @api.model def get_gift_card_status(self, gift_code, config_id): res = super().get_gift_card_status(gift_code, config_id) if res.get('status') and res.get('data') and res['data'].get('loyalty.card'): card_data = res['data']['loyalty.card'][0] end_date = card_data.get('custom_end_date') if end_date and fields.Date.from_string(end_date) < fields.Date.today(): res['status'] = False return res