2016-08-30 59 views
0

我要搜索的客户res.partner从XL使用自己的名字,然后如果是的,我在销售订单IM分配他们的合作伙伴ID在XML-RPC创建其他插入的合作伙伴,用他的身份证在销售订单im creation.note,目的是将销售订单从xls文件迁移到odoo,现在实际的代码如下所示。Odoo XML RPC搜索并插入

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 
+0

你还没有真正说明你的当前代码的问题 – danidee

回答

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