Odoo 13: Создание счета из заказа на покупку в odoo через api

Я новичок в odoo! На odoo 13 EE я пытаюсь создать и подтвердить счет поставщика после импорта заказа на покупку и квитанций на товары. Я могу создать счет напрямую, но не могу связать его с заказом на покупку / квитанцией?

К сожалению, при покупке.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

Надеюсь, кто-нибудь может предложить решение! Спасибо.


person DonB from Florida    schedule 05.11.2020    source источник


Ответы (2)


Пожалуйста, не настраивайте его, не обладая функциональными знаниями в odoo. В odoo, если вы перейдете к настройкам покупки, вы можете найти варианты выставления счетов в разделе выставление счетов, где вы можете найти 2 варианта: заказанное количество и полученное количество. если это заказанное количество, вы можете создать счет-фактуру после подтверждения заказа на поставку. если получено количество, то после подтверждения заказа на поставку будет создана входящая отгрузка, и после обработки входящей отгрузки вы можете найти кнопку создания счета в заказе на поставку

person OmaL    schedule 06.11.2020

Если вы можете сделать это из клиента браузера, вам нужно просто посмотреть, какие команды API браузер отправляет на сервер odoo (в Chrome, включив представление отладки, нажав F12 и просмотрев вкладку сети), так что вам просто нужно скопировать это сообщение.

person tsabi    schedule 07.11.2020