Odoo18-Base/addons/product_expiry/models/product_product.py
2025-01-06 10:57:38 +07:00

36 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class Product(models.Model):
_inherit = "product.product"
def action_open_quants(self):
# Override to hide the `removal_date` column if not needed.
if not any(product.use_expiration_date for product in self):
self = self.with_context(hide_removal_date=True)
return super().action_open_quants()
class ProductTemplate(models.Model):
_inherit = 'product.template'
use_expiration_date = fields.Boolean(string='Use Expiration Date',
help='When this box is ticked, you have the possibility to specify dates to manage'
' product expiration, on the product and on the corresponding lot/serial numbers')
expiration_time = fields.Integer(string='Expiration Date',
help='Number of days after the receipt of the products (from the vendor'
' or in stock after production) after which the goods may become dangerous'
' and must not be consumed. It will be computed on the lot/serial number.')
use_time = fields.Integer(string='Best Before Date',
help='Number of days before the Expiration Date after which the goods starts'
' deteriorating, without being dangerous yet. It will be computed on the lot/serial number.')
removal_time = fields.Integer(string='Removal Date',
help='Number of days before the Expiration Date after which the goods'
' should be removed from the stock. It will be computed on the lot/serial number.')
alert_time = fields.Integer(string='Alert Date',
help='Number of days before the Expiration Date after which an alert should be'
' raised on the lot/serial number. It will be computed on the lot/serial number.')