首页 > 解决方案 > 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

我希望有人可以提出解决方案!谢谢你。

标签: python-3.xodooxml-rpcodoo-13

解决方案


如果没有 odoo 的功能知识,请不要自定义它。在odoo中,如果你去购买设置,你可以在发票下找到计费选项,在那里你可以找到2个选项,订购数量和接收数量。如果是订购数量,那么您可以在确认采购订单后创建发票。如果是收货数量,则在确认采购订单后,将创建一个来货,处理来货后,您可以在采购订单中找到创建发票按钮


推荐阅读