Попробуйте вернуть стоимость товара в строке заказа на продажу для Odoo10
У меня есть поле Many2one('product_weight') в заказе клиента на основе product.product. И я пытаюсь вернуть значения этого поля в строке заказа на продажу (продукт). В product.template я добавил флажок (is_weight). Таким образом, в заказе на продажу для product_weight доступны только весовые продукты. Итак, как вернуть это значение product_weight в строке заказа на продажу (product_id)?
Мой код здесь:
class sale_order_pet(models.Model):
_inherit = "sale.order"
product_weight = fields.Many2one('product.product', string='Service products', domain="[('is_weight','=',True)]")
@api.onchange('product_id')
def _onchange_action_weight_add(self):
res = self.product_id
print"resss:::", res
if res:
line_values = {'product_id': self.product_weight.id,
}
sale_order_line = self.env['sale.order.line'].create(line_values)
заранее спасибо
2 ответа
Вы можете использовать этот код:
@api.onchange('product_weight ')
def _onchange_action_weight_add(self):
res = self.product_id
print"resss:::", res
if res:
line_values = {
'order_id': self.id,
'product_id': self.product_weight.id,
}
sale_order_line = self.env['sale.order.line'].create(line_values)
Попробуйте с этим:
sale_order_line.py
Класс sale_order_line (models.Model):
_inherit = "sale.order.line"
product_weight = fields.Float ('Weight',
связанных с = 'product_id.weight',
digits = dp.get_precision ("Вес продукта"),
help = "Вес содержимого в кг, не включая упаковку и т. д.")
А для XML вы можете наследовать sale.view_order_form:
sale_order_views.xml
<record id="view_weight_order_form" model="ir.ui.view">
<field name="name">sale.order.form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='order_line']/tree/field[@name='product_id']"
position="after">
<field name="product_weight "/>
</xpath>
</field>
</record>
Я надеюсь это тебе поможет...