mirror of
https://github.com/OCA/server-backend.git
synced 2025-02-18 09:52:42 +02:00
[MIG] base_global_discount: Migration to 17.0
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
{
|
{
|
||||||
"name": "Base Global Discount",
|
"name": "Base Global Discount",
|
||||||
"version": "16.0.1.1.0",
|
"version": "17.0.1.0.0",
|
||||||
"category": "Base",
|
"category": "Base",
|
||||||
"author": "Tecnativa, Odoo Community Association (OCA)",
|
"author": "Tecnativa, Odoo Community Association (OCA)",
|
||||||
"website": "https://github.com/OCA/server-backend",
|
"website": "https://github.com/OCA/server-backend",
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class GlobalDiscount(models.Model):
|
|||||||
discount_scope = fields.Selection(
|
discount_scope = fields.Selection(
|
||||||
selection=[("sale", "Sales"), ("purchase", "Purchases")],
|
selection=[("sale", "Sales"), ("purchase", "Purchases")],
|
||||||
default="sale",
|
default="sale",
|
||||||
required="True",
|
required=True,
|
||||||
)
|
)
|
||||||
company_id = fields.Many2one(
|
company_id = fields.Many2one(
|
||||||
comodel_name="res.company",
|
comodel_name="res.company",
|
||||||
@@ -22,11 +22,9 @@ class GlobalDiscount(models.Model):
|
|||||||
default=lambda self: self.env.company,
|
default=lambda self: self.env.company,
|
||||||
)
|
)
|
||||||
|
|
||||||
def name_get(self):
|
def _compute_display_name(self):
|
||||||
result = []
|
|
||||||
for one in self:
|
for one in self:
|
||||||
result.append((one.id, f"{one.name} ({one.discount:.2f}%)"))
|
one.display_name = f"{one.name} ({one.discount:.2f}%)"
|
||||||
return result
|
|
||||||
|
|
||||||
def _get_global_discount_vals(self, base, **kwargs):
|
def _get_global_discount_vals(self, base, **kwargs):
|
||||||
"""Prepare the dict of values to create to obtain the discounted
|
"""Prepare the dict of values to create to obtain the discounted
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class ProductTemplate(models.Model):
|
|||||||
),
|
),
|
||||||
compute="_compute_bypass_global_discount",
|
compute="_compute_bypass_global_discount",
|
||||||
inverse="_inverse_bypass_global_discount",
|
inverse="_inverse_bypass_global_discount",
|
||||||
|
search="_search_bypass_global_discount",
|
||||||
)
|
)
|
||||||
|
|
||||||
def _search_bypass_global_discount(self, operator, value):
|
def _search_bypass_global_discount(self, operator, value):
|
||||||
@@ -31,9 +32,12 @@ class ProductTemplate(models.Model):
|
|||||||
template.bypass_global_discount = (
|
template.bypass_global_discount = (
|
||||||
template.product_variant_ids.bypass_global_discount
|
template.product_variant_ids.bypass_global_discount
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
template.bypass_global_discount = False
|
||||||
|
|
||||||
def _inverse_bypass_global_discount(self):
|
def _inverse_bypass_global_discount(self):
|
||||||
if len(self.product_variant_ids) == 1:
|
for template in self:
|
||||||
self.product_variant_ids.bypass_global_discount = (
|
if len(template.product_variant_ids) == 1:
|
||||||
self.bypass_global_discount
|
template.product_variant_ids.bypass_global_discount = (
|
||||||
|
template.bypass_global_discount
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -27,3 +27,12 @@ class TestGlobalDiscount(common.TransactionCase):
|
|||||||
def test_02_display_name(self):
|
def test_02_display_name(self):
|
||||||
"""Test that the name is computed fine"""
|
"""Test that the name is computed fine"""
|
||||||
self.assertTrue("%)" in self.global_discount_1.display_name)
|
self.assertTrue("%)" in self.global_discount_1.display_name)
|
||||||
|
|
||||||
|
def test_03_bypass_products(self):
|
||||||
|
template_obj = self.env["product.template"]
|
||||||
|
template = template_obj.create({"name": "Test Template"})
|
||||||
|
template.bypass_global_discount = True
|
||||||
|
self.assertTrue(template.bypass_global_discount)
|
||||||
|
search_result = template._search_bypass_global_discount("=", True)
|
||||||
|
self.assertEqual(len(search_result), 1)
|
||||||
|
self.assertEqual(template.id, search_result[0][2][0])
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
<xpath expr="//group[@name='group_standard_price']" position="inside">
|
<xpath expr="//group[@name='group_standard_price']" position="inside">
|
||||||
<field
|
<field
|
||||||
name="bypass_global_discount"
|
name="bypass_global_discount"
|
||||||
attrs="{'invisible': [('product_variant_count', '>', 1)]}"
|
invisible="product_variant_count > 1"
|
||||||
groups="base_global_discount.group_global_discount"
|
groups="base_global_discount.group_global_discount"
|
||||||
/>
|
/>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
|||||||
@@ -11,14 +11,14 @@
|
|||||||
name="customer_global_discount_ids"
|
name="customer_global_discount_ids"
|
||||||
widget="many2many_tags"
|
widget="many2many_tags"
|
||||||
groups="base_global_discount.group_global_discount"
|
groups="base_global_discount.group_global_discount"
|
||||||
attrs="{'invisible': [('is_company', '=', False), ('parent_id', '!=', False)]}"
|
invisible="not is_company and parent_id"
|
||||||
/>
|
/>
|
||||||
<field
|
<field
|
||||||
name="customer_global_discount_ids"
|
name="customer_global_discount_ids"
|
||||||
string="Sale Global Discounts"
|
string="Sale Global Discounts"
|
||||||
widget="many2many_tags"
|
widget="many2many_tags"
|
||||||
groups="!base_global_discount.group_global_discount"
|
groups="!base_global_discount.group_global_discount"
|
||||||
attrs="{'invisible': [('is_company', '=', False), ('parent_id', '!=', False)]}"
|
invisible="not is_company and parent_id"
|
||||||
readonly="1"
|
readonly="1"
|
||||||
/>
|
/>
|
||||||
</group>
|
</group>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
name="supplier_global_discount_ids"
|
name="supplier_global_discount_ids"
|
||||||
widget="many2many_tags"
|
widget="many2many_tags"
|
||||||
groups="base_global_discount.group_global_discount"
|
groups="base_global_discount.group_global_discount"
|
||||||
attrs="{'invisible': [('is_company', '=', False), ('parent_id', '!=', False)]}"
|
invisible="not is_company and parent_id"
|
||||||
/>
|
/>
|
||||||
<field
|
<field
|
||||||
name="supplier_global_discount_ids"
|
name="supplier_global_discount_ids"
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
readonly="1"
|
readonly="1"
|
||||||
widget="many2many_tags"
|
widget="many2many_tags"
|
||||||
groups="!base_global_discount.group_global_discount"
|
groups="!base_global_discount.group_global_discount"
|
||||||
attrs="{'invisible': [('is_company', '=', False), ('parent_id', '!=', False)]}"
|
invisible="not is_company and parent_id"
|
||||||
/>
|
/>
|
||||||
</group>
|
</group>
|
||||||
</field>
|
</field>
|
||||||
|
|||||||
Reference in New Issue
Block a user