pos_loyalty_expiration_custom/models/loyalty_card.py

26 lines
1.0 KiB
Python

# -*- 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