booking/odoo/python/create_invoice.py

37 lines
1.2 KiB
Python
Executable File

from config.config import *
import sys
import json
import xmlrpc.client
array = sys.argv[1]
data = json.loads(array)
common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))
uid = common.authenticate(db, username, password, {})
if uid:
models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))
partners_id = models.execute_kw(db, uid, password, 'res.partner', 'search', [[]])
# print(json.dumps(partners_id))
invoice_vals = []
for partner in data:
invoice_val = {
'name': partner['name'],
'partner_id': partner['partners_id'],
'invoice_date': partner['invoice_date'],
'ref': 'create from api',
'move_type': 'out_invoice',
}
invoice_lines = []
for product in partner['invoice_line_ids']:
invoice_lines.append((0,0, {
'product_id': product['product_id'],
'quantity': product['quantity'],
}))
invoice_val.update({'invoice_line_ids': invoice_lines})
invoice_vals.append(invoice_val)
print(invoice_vals)
invoice_id = models.execute_kw(db, uid, password, 'account.move', 'create', [invoice_vals])
print(invoice_id)