You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

53 lines
2.4 KiB

# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Anzil K A (odoo@cybrosys.com)
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
#
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
# (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import models
class StockRule(models.Model):
"""Inherits the stock.rule to update each move with the partner from
corresponding sale order line"""
_inherit = 'stock.rule'
def _get_stock_move_values(self, product_id, product_qty, product_uom,
location_id, name, origin, company_id, values):
""" Extending the _get_stock_move_values function for updating the
partner as the partner from the selected delivery address if it exists
or the partner from the order. Returns a dictionary of values that will
be used to create a stock move from a procurement.
:param procurement: browse record
:rtype: dictionary """
res = super()._get_stock_move_values(
product_id, product_qty, product_uom, location_id, name, origin,
company_id, values)
if res.get('warehouse_id'):
warehouse = self.env['stock.warehouse'].browse(res.get(
'warehouse_id'))
if res.get('order_id') and warehouse.delivery_steps in [
'pick_ship', 'ship_only']:
for data in res.get('order_id'):
for move in self.env['stock.move'].browse(data[-1]):
partner_id = move.sale_line_id.delivery_addr.id or \
move.sale_line_id.order_id.partner_id.id
res.update({
'partner_id': partner_id
})
return res