# -*- encoding: utf-8 -*- import xmlrpclib import csv import sys # Dati per la connessione all'istanza OpenERP user = 'admin' pwd = 'admin' dbname = 'openerp' # Connessione XMLRPC per autenticazione sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/common') uid = sock.login(dbname ,user ,pwd) # Creazione del proxy XMLRPC sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object') # Creazione della lista di records lines = csv.reader(open(sys.argv[1],'rb'),delimiter=",") counter = 0 for line in lines: # Mappatura attributi/CSV codice = line[0].strip() nome = line[1].strip() paese = line[2].strip() cap = line[3].strip() citta = line[4].strip() indirizzo = line[5].strip() telefono = line[6].strip() email = line[7].strip() # Controllo elementi già presenti args = [('ref', '=', codice)] item = sock.execute(dbname, uid, pwd, 'res.partner', 'search', args) if item: # Controllo se l'elemento duplicato è fornitore ma non cliente e aggiorno il record supplier = sock.execute(dbname, uid, pwd, 'res.partner', 'read', item)[0]['supplier'] if supplier: customer = sock.execute(dbname, uid, pwd, 'res.partner', 'write',item,{'customer':1}) else: # Ricerca ID paese in base al nome country_id = sock.execute(dbname, uid, pwd, 'res.country', 'search', [('name', '=', paese)]) data = {'ref':codice, 'address': [(0, 0, {'city': citta, 'zip': cap, 'country_id': country_id[0], 'phone': telefono, 'street': indirizzo, 'email': email } )], 'name':nome, 'customer': 1, 'supplier':0, } # Creazione del partner, customer:1 per i clienti item = sock.execute(dbname, uid, pwd, 'res.partner', 'create', data) counter +=1