如何解决通过自动操作进行SDD付款Odoo v13
不幸的是,Odoo已从v12到v13删除了自动SSD支付,这对我来说至关重要。因此,我尝试通过自动操作来重现该行为,并且我猜想还挺远的。
我创建了一个自动操作,可以监视草稿中的所有发票,并且如果发票从草稿设置为非草稿,则可以运行python代码。但是很遗憾,我尝试过帐发票时会收到错误消息:
“数据库获取缺少ID(('10',))并具有额外ID((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
})
对ID进行了双重检查,并链接到正确的条目:
- payment_method_id'6'=我的银行帐户
- journal_id'10'= SDD付款
请在下面找到应用于自动操作的当前域。 任何提示或帮助都将不胜感激!
非常感谢。 最好的祝福, 基督徒
解决方法
CBfac
在MariaDB [bernd]> SELECT
-> CreditHistory,-> CHAR_LENGTH(
-> REPLACE ( REPLACE ( REPLACE ( REPLACE ( REPLACE (
-> REPLACE ( REPLACE ( REPLACE ( REPLACE (
-> REPLACE ( REPLACE ( REPLACE(CreditHistory,-> 'D','1111111111'),-> 'N',''),' ','0',-> '9','111111111'),-> '8','11111111'),-> '7','1111111'),-> '6','111111'),-> '5','11111'),-> '4','1111'),-> '3','111'),-> '2','11')) as mycnt
->
-> FROM mysum;
+-----------------------------+-------+
| CreditHistory | mycnt |
+-----------------------------+-------+
| N 1 0 0 1 2 3 1 4 5 D | 27 |
| N 1 2 3 1 4 5 2 3 1 2 4 3 D | 41 |
| N 1 3 2 1 5 2 0 0 0 | 14 |
+-----------------------------+-------+
3 rows in set (0.00 sec)
MariaDB [bernd]>
字段上,您必须分配many2one
。
代码更正:
ID
,
对于在Odoo v13中需要自动SDD付款的每个人,以下是适用于我的自动操作(另外,感谢@Dipen Sah的帮助):
Modell:account.move 触发:更新时 行动:执行python代码
域(更新前):
["&","&",["sdd_paying_mandate_id","=",False],["partner_id.sdd_mandate_ids","!=",["type","out_invoice"],["invoice_payment_state","not_paid"],["state","draft"]]
域(更新后):
["&","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代码中更新journal ID和payment_method ID以匹配您的ID,以使操作正常运行。
欢迎任何改进和/或反馈。
最好的问候, 基督徒
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。