[FIX] stock_landed_cost: Moving of the fix #71596 from the product module to stock_landed_cost module

Link to the original commit: https://github.com/odoo/odoo/pull/71596/commits/fc9d63f541340ebcd485cffcd6e9a3ee6cd57f49

opw-2547663

closes odoo/odoo#71890

X-original-commit: 4139a80ac6c366289be7e328329d4868f7685e3d
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
Signed-off-by: Djamel Touati <DjamelTouati@users.noreply.github.com>
This commit is contained in:
Djamel (otd)
2021-06-09 07:42:14 +00:00
parent 07aa40d5b5
commit 497a4700fb
2 changed files with 19 additions and 1 deletions
@@ -756,3 +756,11 @@ msgid ""
"applied for products with automated inventory valuation and FIFO or average "
"costing method."
msgstr ""
#. module: stock_landed_costs
#: code:addons/stock_landed_costs/models/product.py:0
#, python-format
msgid ""
"You cannot change the product type or disable landed cost option because the"
" product is used in an account move line."
msgstr ""
+11 -1
View File
@@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
from odoo import fields, models, _
from odoo.addons.stock_landed_costs.models.stock_landed_cost import SPLIT_METHOD
from odoo.exceptions import UserError
class ProductTemplate(models.Model):
@@ -11,3 +12,12 @@ class ProductTemplate(models.Model):
landed_cost_ok = fields.Boolean('Is a Landed Cost', help='Indicates whether the product is a landed cost.')
split_method_landed_cost = fields.Selection(SPLIT_METHOD, string="Default Split Method",
help="Default Split Method when used for Landed Cost")
def write(self, vals):
for product in self:
if (('type' in vals and vals['type'] != 'service') or ('landed_cost_ok' in vals and not vals['landed_cost_ok'])) and product.type == 'service' and product.landed_cost_ok:
if self.env['account.move.line'].search_count([('product_id', 'in', product.product_variant_ids.ids), ('is_landed_costs_line', '=', True)]):
raise UserError(_("You cannot change the product type or disable landed cost option because the product is used in an account move line."))
else:
vals['landed_cost_ok'] = False
super(ProductTemplate, product).write(vals)