Files
odoo-usability/stock_usability_akretion/models/stock_warehouse_orderpoint.py
2025-05-20 10:30:29 +02:00

48 lines
1.9 KiB
Python

# Copyright 2015-2024 Akretion (https://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
import logging
logger = logging.getLogger(__name__)
class StockWarehouseOrderpoint(models.Model):
_inherit = 'stock.warehouse.orderpoint'
# In the 'stock' module, the default value for 'trigger' is 'auto'
# but all the Odoo deployments I've seen so far need 'manual' by default
trigger = fields.Selection(default='manual')
product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode")
seller_id = fields.Many2one(
"res.partner",
compute="_compute_seller_id",
search="_search_seller_id",
string="Main Supplier")
def _search_seller_id(self, operator, value):
# searching on the first line of a o2m is not that easy
# So we search all potential matching products
# Then we filter on the seller_id
records = self.search([("product_id.seller_ids.partner_id", operator, value)])
records = records.filtered_domain([("seller_id", operator, value)])
return [("id", "in", records.ids)]
def _compute_seller_id(self):
for orderpoint in self:
orderpoint.seller_id = fields.first(orderpoint.product_id.seller_ids).partner_id
def _procure_orderpoint_confirm(
self, use_new_cursor=False, company_id=None, 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