python - 如何从 odoo 采购线订单到 stock.picking 线获得价值?
问题描述
我在库存转移模型上添加了分析帐户字段,当我确认订单时,我需要作为库存转移行获取数量表单采购订单行以获取分析帐户字段表单行,我该怎么做
class StockMove(models.Model):
_inherit = "stock.move"
analytic_account_id = fields.Many2one(string='Analytic Account',comodel_name='account.analytic.account',)
任何帮助将不胜感激
解决方案
覆盖_prepare_stock_moves方法,该方法为一个订单行准备库存移动数据并返回一个字典列表,以便在stock.move's create()
.
class PurchaseOrderLine(models.Model):
_inherit = 'purchase.order.line'
@api.multi
def _prepare_stock_moves(self, picking):
res = super(PurchaseOrderLine, self)._prepare_stock_moves(picking)
res[0]['analytic_account_id'] = self.account_analytic_id.id
return res
要从采购订单中获取字段值,请使用 inverse_name order_id
。
res[0]['analytic_account_id'] = self.order_id.account_analytic_id.id
编辑:
要在生产订单上使用相同的逻辑,您可以在将订单标记为完成时设置帐户:
class ManufacturingOrder(models.Model):
_inherit = 'mrp.production'
analytic_account_id = fields.Many2one(string='Analytic Account', comodel_name='account.analytic.account')
@api.multi
def button_mark_done(self):
for order in self:
for move in order.move_finished_ids:
move.analytic_account_id = order.analytic_account_id
res = super(ManufacturingOrder, self).button_mark_done()
return res
推荐阅读
- javascript - React - 使用 Jest 进行测试 - TypeError:无法读取未定义的属性“销毁”
- javascript - 在 Reactjs 中更改行悬停图像
- javascript - 在使用数据之前等待反应状态/道具更新?
- javascript - 如何在 React 中获取子源代码?
- javascript - 在JS中取消嵌套对象数组
- android - 如何去除工具栏和tablayout之间的阴影?
- flask - 在 Flask 上重新加载时如何阻止数据重新提交?
- vue.js - 如何在 nativescipt-vue 中使用特定于平台的 SCSS?
- r - 替换R中列中的重复元素
- python - 返回不包含超过某个最大长度的单词的字符串内容的行,同时保留和过滤掉包含某些内容的单词