跳至內容
選單
此問題已被標幟
2 回覆
6940 瀏覽次數

i added 'product_dimension' field in 'sale.order.line' and want to send it's value to 'stock.move' so i did :

class InheritStockMove(models.Model):
_inherit = 'stock.move'

product_dimension = fields.Char()

then :

class InheritSaleOrderLine(models.Model):
_inherit = 'sale.order.line'

product_dimension = fields.Char(string="Dimension")

def _prepare_procurement_values(self, group_id=False):
res = super(InheritSaleOrderLine, self)._prepare_procurement_values(group_id)
res.update({'product_dimension': self.product_dimension})
return res


then i added :

class StockRuleInherit(models.Model):
_inherit = 'stock.rule'

def _get_stock_move_values(self, product_id, product_qty, product_uom, location_id, name, origin, values, group_id):
res = super(StockRuleInherit, self)._get_stock_move_values(product_id, product_qty, product_uom, location_id,
name, origin, values, group_id)
res['product_dimension'] = values.get('product_dimension', False)
return res

but i get this error :
res['product_dimension'] = values.get('product_dimension', False) AttributeError: 'res.company' object has no attribute 'get'
頭像
捨棄
最佳答案

you can try this way:
class InheritSaleOrderLine(models.Model):

_inherit = 'sale.order.line'


product_dimension = fields.Char(string="Dimension")


def _prepare_procurement_values(self, group_id=False):

res = super(InheritSaleOrderLine, self)._prepare_procurement_values(group_id)

res.update({'product_dimension': self.product_dimension})

return res


class StockRuleInherit(models.Model):

_inherit = 'stock.rule'


def _get_stock_move_values(self, product_id, product_qty, product_uom, location_id, name, origin, values, group_id):

res = super(StockRuleInherit, self)._get_stock_move_values(product_id, product_qty, product_uom, location_id,

name, origin, values, group_id)

res['product_dimension'] = values.get('product_dimension', False)

return res



make sure that the values parameter passed to the _get_stock_move_values method is a dictionary containing the required information. Additionally, ensure that you are passing the correct arguments when calling the _prepare_procurement_values method to set the product_dimension field value.

頭像
捨棄
最佳答案

Hi,

You cannot use the get method on values because it is an instance of the res.company object and not a dictionary, which is why you are getting the problem. Field values from the stock.move records are contained in the values parameter. You must use dot notation to directly retrieve the value of the product_dimension field from the values object.

Inherit sale.order.line and override the _prepare_procurement_values method to include the product_dimension:

from odoo import models, fields

class InheritSaleOrderLine(models.Model):
    _inherit =
'sale.order.line'
  
    product_dimension = fields.Char(string=
"Dimension")
  
   
def _prepare_procurement_values(self, group_id=False):
        res =
super(InheritSaleOrderLine, self)._prepare_procurement_values(group_id)
        res.update({
           
'product_dimension': self.product_dimension,
        })
       
return res

Hope it helps

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
0
8月 20
6517
4
5月 24
12625
1
4月 24
3268
0
11月 23
2014
1
9月 23
2101