不幸的是,Odoo已经将自动SSD支付从v12移到v13,这对我来说至关重要。因此,我试图通过一个自动的动作来再现这种行为,我想是走了很远的路。
我创建了一个自动操作( Automated ),它监视草稿中的所有发票,如果发票从草稿设置为非草稿,则运行python代码。但不幸的是,当我试图邮寄一张发票时,我就收到了一个错误:
“数据库获取错误ids (('10',)”和“有额外的ids”((10,)),可能是由于以前请求中的类型不一致造成的
据我所知,这与类型转换有关,但由于我是python & odoo新手,我不知道如何正确地转换odoo数据类型。有人有线索吗?
下面是应该执行的python代码:
payment = env['account.payment'].create({
'payment_method_id' : '6',
'partner_id': record.partner_id.id,
'journal_id' : '10',
'amount' : record.amount_residual
})对ids进行双重检查,并链接到正确的条目:
下面请查找应用于“自动操作”的当前域。任何提示或帮助都是非常感谢的!
非常感谢。向你问好,克里斯蒂安

发布于 2020-10-09 06:25:53
CBfac
在many2one字段上,您必须分配ID。
码校正:
payment = env['account.payment'].create({
'payment_method_id' : 6,
'partner_id': record.partner_id.id,
'journal_id' : 10,
'amount' : record.amount_residual
})发布于 2020-10-14 11:20:29
对于在Odoo v13中需要自动SDD支付的每个人,下面是为我工作的自动操作(还有一个,感谢@Dipen对您的帮助):
account.move触发器: update操作:执行python
域(更新前):
["&","&","&","&",["sdd_paying_mandate_id","=",False],["partner_id.sdd_mandate_ids","!=",False],["type","=","out_invoice"],["invoice_payment_state","=","not_paid"],["state","=","draft"]]域(更新后):
["&","&","&","&",["sdd_paying_mandate_id","=",False],["partner_id.sdd_mandate_ids","!=",False],["type","=","out_invoice"],["invoice_payment_state","=","not_paid"],["state","!=","draft"]]要执行的Python代码:
payment = env['account.payment'].create({
#'name' : env['ir.sequence'].next_by_code('account.payment.customer.invoice'),
#'payment_type': 'inbound',
#'partner_type' : 'customer',
'payment_method_id' : 6,
'partner_id': record.partner_id.id,
'journal_id' : 10,
'amount' : record.amount_residual}).post()您必须在python代码中更新日志和payment_method in,以匹配您的in,以使操作正常运行。
欢迎任何改进和/或反馈意见。
向你问好,克里斯蒂安
https://stackoverflow.com/questions/64247189
复制相似问题