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

标签 python python-2.7 odoo-8 odoo

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

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

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/

相关文章:

python - 我怎样才能在python中获得-ve数的无符号大小

python - 将 python 字典转换为变量的最佳方法是什么?

python - 定义全局变量的问题

python - Odoo 8 Python 如何分配Many2many或one2many XMLRPC创建对象

python - account.invoice 添加自定义计算和过滤字段

python - 纯密码是通过我的 python 脚本记录的

从另一个子列表匹配设置变量的Pythonic方法

python - 如何在 Pandas 中组合和形成复杂的数据框

Python 问题 - 映射和类 - 初学者

python - 检查表格上的产品可用性 - 返回 stock.quants - Odoo v8