gpt4 book ai didi

python - 将数量写入特定日记帐 - Odoo v8

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:16 24 4
gpt4 key购买 nike

我需要的是自动将一些数量写入特定日记帐,读取它们并将其写入借方或贷方字段,具体取决于情况。

但是,重点是,我需要这样做:

1.- 不创建发票

2.- 取决于类/表的状态

3.- 无需将函数添加到任何字段,因此一旦状态更改,数量就会写入日志中。

我尝试过这种方法,但我认为这不起作用,因为它应该位于计算浮点或整数字段上:

@api.multi
@api.depends('order_picking', 'order_picking.isbn', 'contract_worksheet')
def accounting_scenarios(self):
for record in self:
if record.state == awaitingraw:
record.isbn.printer_wip_account.debit = record.contract_worksheet.total_alles
elif record.state == work_in_progress:
record.transporter.transp_transit.debit = record.contract_worksheet.total_alles

所以,它基本上什么也不做。

我需要一种行为,例如当购买或销售完成时,借方贷方字段会使用生成的发票进行更新。但在这种情况下,发票不是必需的,我只需要阅读并复制一些字段(计算或未计算),然后将其“粘贴”到所选日记帐的上述字段上。

我希望我已经解释清楚了。

有什么想法吗?

最佳答案

如果您需要在每次字段更改时执行某些操作,但不需要创建一个调用计算方法(使用 @api.depends 装饰器)的新字段,则您可以应该覆盖字段所属模型的 ORM write 方法。所以,在你的情况下,我会做这样的事情:

@api.multi
def write(self, vals):
res = super(YourModel, self).write(vals)
if 'state' in vals:
for record in self:
contract_worksheet = record.contract_worksheet
if record.state == awaitingraw:
printer_wip_account = record.isbn.printer_wip_account
res &= printer_wip_account.write({
'debit': sum(c.total_alles for c in contract_worksheet),
})
elif record.state == work_in_progress:
transp_transit = record.transporter.transp_transit
res &= transp_transit.write({
'debit': sum(c.total_alles for c in contract_worksheet),
})
return res

上面的代码可能不准确,因为我不知道您在那里使用的所有字段的类型,但是,您不能直接获取 One2many 字段的值,你需要循环它才能得到你想要的值。我假设字段 total_alles 是一个计算的 Float,并且每个 contract_worksheet 记录都有不同的值,因此您必须将它们相加获取唯一要写入借方值的浮点值。

关于python - 将数量写入特定日记帐 - Odoo v8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47545329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com