mirror of
https://github.com/OCA/stock-logistics-warehouse.git
synced 2025-01-21 14:27:28 +02:00
procurement_auto_create_group: Set partner on created procurement group
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import stock_rule
|
||||
from . import procurement_group
|
||||
from . import stock_rule
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
# Copyright 2017-2020 ForgeFlow, S.L.
|
||||
# Copyright 2021 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo import _, api, models
|
||||
from odoo.exceptions import UserError
|
||||
import logging
|
||||
|
||||
from odoo import api, models
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ProcurementGroup(models.Model):
|
||||
@@ -10,25 +14,27 @@ class ProcurementGroup(models.Model):
|
||||
|
||||
@api.model
|
||||
def _get_rule(self, product_id, location_id, values):
|
||||
result = super()._get_rule(product_id, location_id, values)
|
||||
rule = super()._get_rule(product_id, location_id, values)
|
||||
# If there isn't a date planned in the values it means that this
|
||||
# method has been called outside of a procurement process.
|
||||
if (
|
||||
result
|
||||
rule
|
||||
and not values.get("group_id")
|
||||
and result.auto_create_group
|
||||
and rule.auto_create_group
|
||||
and values.get("date_planned")
|
||||
):
|
||||
group_data = self._prepare_auto_procurement_group_data()
|
||||
if group_data:
|
||||
_logger.warning(
|
||||
"DEPRECATED: use _prepare_auto_procurement_group_data "
|
||||
"on stock rule instead"
|
||||
)
|
||||
group_data.update(rule._prepare_auto_procurement_group_data())
|
||||
group = self.env["procurement.group"].create(group_data)
|
||||
values["group_id"] = group
|
||||
return result
|
||||
return rule
|
||||
|
||||
@api.model
|
||||
def _prepare_auto_procurement_group_data(self):
|
||||
name = self.env["ir.sequence"].next_by_code("procurement.group") or False
|
||||
if not name:
|
||||
raise UserError(_("No sequence defined for procurement group."))
|
||||
return {
|
||||
"name": name,
|
||||
}
|
||||
""" Deprecated """
|
||||
return {}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# Copyright 2017-2020 ForgeFlow, S.L.
|
||||
# Copyright 2021 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo import api, fields, models
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class StockRule(models.Model):
|
||||
@@ -13,3 +15,12 @@ class StockRule(models.Model):
|
||||
def _onchange_group_propagation_option(self):
|
||||
if self.group_propagation_option != "propagate":
|
||||
self.auto_create_group = False
|
||||
|
||||
def _prepare_auto_procurement_group_data(self):
|
||||
name = self.env["ir.sequence"].next_by_code("procurement.group") or False
|
||||
if not name:
|
||||
raise UserError(_("No sequence defined for procurement group."))
|
||||
return {
|
||||
"name": name,
|
||||
"partner_id": self.partner_address_id.id,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user