2017-03-02 5 views
1

Ich entwickle eine Ruby-Anwendung, die einige Befehle per XMLRCP-API an Odoo sendet. Ich habe in der Lage gewesen, einen Verkaufsauftrag in diesen erstellen whayOdoo 8/9/10 API, wie man eine Rechnung aus einem Verkaufsauftrag über XMLRPC erstellt

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 

Nun würde ich die Rechnungserstellung starten. Ich habe einen Weg gefunden, es wie folgt

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

zu tun, aber, auch wenn die Rechnung erstellt wird, ist der Verkauf um stil „offen“ und ich kann eine andere Rechnung der Odoo Schnittstelle Klick auf „Rechnung erstellen“ erstellen Knopf (was offensichtlich falsch ist). Gibt es eine Möglichkeit, diese Aktion über API zu simulieren?

Der Debug-Modus zeigt keine Methode im Tooltip.

Jeder Vorschlag wird geschätzt, danke!

Antwort

1

Für zukünftige Googler. Die Lösung ist, dass ich eine alte API-Version verwende. der richtige Befehlsaufruf ist dieser

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 
Verwandte Themen