54 lines
2.0 KiB
Python
54 lines
2.0 KiB
Python
# Copyright 2015-2020 Akretion (http://www.akretion.com)
|
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
import logging
|
|
|
|
from odoo import api, models
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class StockWarehouseOrderpoint(models.Model):
|
|
_inherit = "stock.warehouse.orderpoint"
|
|
|
|
@api.model
|
|
def _procure_orderpoint_confirm(
|
|
self, use_new_cursor=False, company_id=False, raise_user_error=True
|
|
):
|
|
logger.info("procurement scheduler: START to create moves from " "orderpoints")
|
|
res = super()._procure_orderpoint_confirm(
|
|
use_new_cursor=use_new_cursor,
|
|
company_id=company_id,
|
|
raise_user_error=raise_user_error,
|
|
)
|
|
logger.info("procurement scheduler: END creation of moves from " "orderpoints")
|
|
return res
|
|
|
|
# This is for the button shortcut "reordering rules" on
|
|
# stock.location form view, so that the location_id has the
|
|
# good value, not the default stock location of the first WH of the company
|
|
@api.model
|
|
def default_get(self, fields_list):
|
|
if self._context.get("default_location_id"):
|
|
location = self.env["stock.location"].browse(
|
|
self._context["default_location_id"]
|
|
)
|
|
wh = location.get_warehouse()
|
|
if location and wh:
|
|
self = self.with_context(default_warehouse_id=wh.id)
|
|
return super().default_get(fields_list)
|
|
|
|
# This SQL constraint blocks the use of the "active" field
|
|
# but I think it's not very useful to have such an "active" field
|
|
# on orderpoints ; when you think the order point is bad, you update
|
|
# the min/max values, you don't de-active it !
|
|
_sql_constraints = [
|
|
(
|
|
"company_wh_location_product_unique",
|
|
"unique(company_id, warehouse_id, location_id, product_id)",
|
|
"An orderpoint already exists for the same company, same warehouse, "
|
|
"same stock location and same product.",
|
|
)
|
|
]
|