我正在使用Odoo10。我在销售订单中有一个自定义字段调用linear_units。我已选中定做,它会自动创建一个采购订单。我想包括从销售订单到采购订单的linear_units字段。使用下面的代码,我可以选择销售订单,但无法弄清楚如何添加字段。
class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
sale_order_id = fields.Many2one(
'sale.order',
"Sale Order",
help="Reference to Sale Order")
以上代码适用于在采购订单中选择销售订单。我在销售订单中有一个名为linear_units的浮动字段。我需要此字段来复制到采购订单。我在下面尝试过,但没有用
class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
linear_units2 = fields.Float("Linear Units")
@api.onchange('product_id','linear_units')
def _onchange_product_qty(self):
if self.product_id:
self.linear_units2 = self.sale.order.linear_units
答案 0 :(得分:0)
您可以在datetime.datetime(2018, 9, 26, 0, 0)
的采购订单中添加一个相关字段,如下所示
linear_units
它将从所选的class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
sale_order_id = fields.Many2one('sale.order', "Sale Order", help="Reference to Sale Order")
linear_units = fields.Float(related='sale_order_id.linear_units')
中获取相关的linear_units
希望这会有所帮助!
答案 1 :(得分:0)
该字段的目的是什么。是应该在每个订单行上还是应该在整个销售订单上。使用设置,您有两个选择:首先
sale_order_lines = fields.One2many('sale.order.line', 'Sale Order Lines')
然后从那里可以参考订单号和线性单位。
sale_order_id = fields.Many2one('sale.order', related='sale_order_lines.order_id', string='Sale Order')
linear_units2 = fields.Float(related='sale_order_lines.linear_units', string='Linear Units')
第二:
sale_order_id = fields.Many2one('sale.order', string='Sale Order')
linear_units = fields.Float(related='sale_order_id.sale_order_lines.linear_units', string='Linear units')
尽管我不确定第二个选项是否可以正常工作。如果在所有订单行上该值都相同,那么我建议在sale.order上放置linear_units,然后在订单行上使用它,可以在订单行上放置一个相关字段,然后您的字段将如下所示>
class SaleOrder(model.Models):
_inherit='sale.order'
linear_units = fields.Float(string='Linear Units')
class SaleOrderLines(model.Models):
_inherit='sale.order.lines'
linear_units = fields.Float(related='order_id.linear_units', string='Linear Units', readonly=True)
class PurchaseOrder(models.Models):
_inherit='purchase.order'
sale_order_id = fields.Many2one('sale.order', string='Sale Order')
linear_units = fields.Float(related='sale_order_id.linear_units', string='Linear Units', readonly=True)
(我建议将只读字段放在您的相关字段上,因为如果您在继承的视图上更改了只读字段,则会对该销售订单及其所有关系进行更改。)