123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # -*- coding: utf-8 -*-
- # Part of Odoo. See LICENSE file for full copyright and licensing details.
- from odoo import api, models, fields, _
- class ProductTemplate(models.Model):
- _inherit = 'product.template'
- expense_policy_tooltip = fields.Char(compute='_compute_expense_policy_tooltip')
- @api.depends_context('lang')
- @api.depends('expense_policy')
- def _compute_expense_policy_tooltip(self):
- for product_template in self:
- if not product_template.can_be_expensed or not product_template.expense_policy:
- product_template.expense_policy_tooltip = False
- elif product_template.expense_policy == 'no':
- product_template.expense_policy_tooltip = _(
- "Expenses of this category may not be added to a Sales Order."
- )
- elif product_template.expense_policy == 'cost':
- product_template.expense_policy_tooltip = _(
- "Expenses will be added to the Sales Order at their actual cost when posted."
- )
- elif product_template.expense_policy == 'sales_price':
- product_template.expense_policy_tooltip = _(
- "Expenses will be added to the Sales Order at their sales price (product price, pricelist, etc.) when posted."
- )
- @api.depends('can_be_expensed')
- def _compute_visible_expense_policy(self):
- expense_products = self.filtered(lambda p: p.can_be_expensed)
- for product_template in self - expense_products:
- product_template.visible_expense_policy = False
- super(ProductTemplate, expense_products)._compute_visible_expense_policy()
- visibility = self.user_has_groups('hr_expense.group_hr_expense_user')
- for product_template in expense_products:
- if not product_template.visible_expense_policy:
- product_template.visible_expense_policy = visibility
|