2017-03-02 132 views
1

我正在開發一個ruby應用程序,它通過XMLRCP API向Odoo發送一些命令。 我已經能夠在此創建銷售訂單whayOdoo 8/9/10 API,如何通過XMLRPC從銷售訂單創建發票

def execute_odoo_command(odoo_model, odoo_command, values) 
    @models.execute_kw(ODOO_DB, @uid, ODOO_PASSWORD, odoo_model, odoo_command, values) 
end 

def create_order_sale 
    order_reference = "SO #{@reference_code}_#{@customer_odoo_id}" 
    values = { 
    currency_id: 1, 
    date_order: Date.today.to_s, 
    name: order_reference, 
    payment_term: 1, 
    partner_id: @customer_odoo_id 
    } 
    order_id = execute_odoo_command('sale.order', 'create', [values]) 
    create_sale_order_lines(order_id) 
    execute_odoo_command('sale.order', 'action_confirm', [order_id]) 
end 

現在,我將啓動創建發票。我已經找到了一種方法做這樣

execute_odoo_command('account.invoice', 'create', [invoice_values(order_reference)]) 

但是,即使創建發票,銷售訂單是史迪威「開放」,我可以創建從Odoo界面點擊「創建發票」另一張發票按鈕(這顯然是錯誤的)。有什麼方法通過API來模擬該動作?

調試模式在工具提示中不顯示任何方法。

任何建議表示讚賞,謝謝!

回答

1

未來的谷歌搜索引擎。解決方案是我使用的是舊的API版本。正確的命令調用這是一個

def create_invoice_from_sale_order(sale_order_id) 
    sale_order_to_invoice_data = [sale_order_id, {context: {active_ids: sale_order_id}}] 
    @odoo_rpc_client.execute_odoo_command('sale.order', 'action_invoice_create', sale_order_to_invoice_data) 
    end 
相關問題