python-3.x - Odoo 13:通过 api 从 odoo 中的采购订单创建发票
问题描述
我是odoo的新手!在 odoo 13 EE 上,我正在尝试在导入采购订单和项目收据后创建并确认供应商账单。我可以直接创建发票,但无法将其链接到采购订单/收据?
可悲的是,在 purchase.order 下,方法 action_create_invoice 似乎对 API 隐藏了
order_id = PurchaseOrder.create(po)
purchaseorder = PurchaseOrder.browse([order_id])
print("Before validating:", purchaseorder.name, purchaseorder.state) # draft
odoo.env.context['check_move_validity'] = True
purchaseorder.button_confirm()
purchaseorder = PurchaseOrder.browse([order_id])
picking_count = purchaseorder.picking_count
print("After Post:", purchaseorder.name, purchaseorder.state, "picking_count = ", purchaseorder.picking_count)
if picking_count == 0:
print("Nothing to receive. Straight to to Billing.") # ok so far
tryme = purchaseorder.action_view_invoice()
## Error => odoorpc.error.RPCError: type object 'purchase.order' has no attribute 'action_create_invoice'
所以我尝试以这种方式覆盖/扩展
class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
@api.model
def create_invoice(self, context=None):
# try 1 => odoorpc.error.RPCError: 'super' object has no attribute # 'action_create_invoice'
rtn = super().action_create_invoice(self)
# try2 => odoorpc.error.RPCError: name 'action_create_invoice' is # not defined
# rtn = action_create_invoice(self)
# try3 => Error %s 'super' object has no attribute ' # action_create_invoice'
# rtn = super(models.Model, self).action_create_invoice(self)
return rtn
我希望有人可以提出解决方案!谢谢你。
解决方案
如果没有 odoo 的功能知识,请不要自定义它。在odoo中,如果你去购买设置,你可以在发票下找到计费选项,在那里你可以找到2个选项,订购数量和接收数量。如果是订购数量,那么您可以在确认采购订单后创建发票。如果是收货数量,则在确认采购订单后,将创建一个来货,处理来货后,您可以在采购订单中找到创建发票按钮
推荐阅读
- angular - 无法使用 angularfirebase2
- c# - 使用 SQLite '没有为此 DbContext 配置数据库提供程序'
- c# - 如何在asp.net mvc中删除具有相同ID的详细信息列表中的单个记录
- java - 是否可以根据给客户的性别上传图片?
- ios - iOS下打开网页后如何一直接收蓝牙数据
- c - 当 RHS 在算术运算中有负 int 和 unsigned int 超出 int 范围时
- php - phpMyAdmin 无法登录 MySQL 服务器
- php - 使用php将mysql数据添加为td属性
- r - 如何在`bookdown::gitbook`中添加自定义htmlDependency
- android - 用于摄像头和安全的 Android 提供程序路径