【问题标题】:Odoo XML RPC search and insertOdoo XML RPC 搜索和插入
【发布时间】:2016-08-30 22:13:02
【问题描述】:

我想使用他们的名字从 xl 搜索 res.partner 中的客户,然后如果是,我在我在 xmlrpc 中创建的销售订单中分配他们的合作伙伴 ID,否则插入该合作伙伴并在我正在创建的销售订单中使用他的 ID。注意目的是将销售订单从xls文件迁移到odoo,现在实际代码如下。

import psycopg2
import psycopg2.extras
import pyexcel_xls
import pyexcel as pe
from pyexcel_xls import get_data
from datetime import datetime
import xmlrpclib
import json

url = 'http://localhost:8070'
db = 'Docker'
username = 'admin'
password = 'odoo'
#data = get_data("salesorder.xls")
#print(json.dumps(data))
records = pe.get_records(file_name="salesorder.xls")
for record in records:
    print record['name']
    names = record['name']
    print record['location']
    print record['zip']
    print record['republic']
    dates = record['date']
    print dates
    print datetime.strptime(dates,'%d/%M/%Y')
    lastdat=datetime.strptime(dates,'%d/%M/%Y')


    common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
    output = common.version()
    models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
    ids = models.execute_kw(db, uid, password,
                            'res.partner', 'search',
                            ['name', '=', "names"])



    uid = common.authenticate(db, username, password, {})
    print output
    models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
    id = models.execute_kw(db, uid, password, 'sale.order', 'create',     [{
        'name': names,
        'validity_date':"2016-01-18"
        #'payment_term_id':"1"
        # 'user_id':"1"
        # 'state':"sale"

    }])
    print id

【问题讨论】:

  • 你实际上并没有说明你当前代码的问题

标签: python openerp xml-rpc odoo-9


【解决方案1】:

这是我认为应该可以修改的脚本。我没有研究应该将哪些值传递给创建销售订单。您必须确保传递正确的值。您还导入了一些您不使用的包,但我假设您打算使用它们,所以我把它们留在了里面。最重要的是,您需要在系统中搜索您的联系人。如果您发现他们使用 id,如果没有,请创建联系人并使用新的联系人 id 来创建您的销售订单。

import psycopg2
import psycopg2.extras
import pyexcel_xls
import pyexcel as pe
from pyexcel_xls import get_data
from datetime import datetime
import xmlrpclib
import json

url = 'http://localhost:8070'
db = 'Docker'
username = 'admin'
password = 'odoo'

models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
uid = common.authenticate(db, username, password, {})

records = pe.get_records(file_name="salesorder.xls")

for record in records:
    print record['name']
    # DEFINE THE VALUES YOU PLAN ON PASSING INTO YOUR SALES ORDER HERE 
    vals = {
        'name': record['name'],
        'validity_date':"2016-01-18"
    }
    ids = models.execute_kw(db, uid, password, 'res.partner', 'search', [[['name', '=', names]]])
    # IF YOU FIND THE CONTACT IN THE SYSTEM ADD THEIR ID TO YOUR VALS OBJECT
    # IF YOU ARE CONFIDENT YOU DO NOT HAVE DUPLICATES OF NAMES THIS SHOULD WORK, OTHERWISE A MORE PRECISE SEARCH DOMAIN IS NECESSARY
    if len(ids) > 0:
        vals['partner_id'] = ids[0]
    # IF YOU DONT FIND A MATCH YOU CAN CREATE A NEW PARTNER AND USE THAT ID
    else:
        vals['partner_id'] = models.execute_kw(db, uid, password, 'res.partner', 'create', [{ 'name': record['name'] }])
    sale_order_id = models.execute_kw(db, uid, password, 'sale.order', 'create',[vals])
    print sale_order_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2021-05-14
    • 2023-03-10
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多