Skip to content

Instantly share code, notes, and snippets.

@repodevs
Created January 15, 2017 08:21
Show Gist options
  • Save repodevs/eb7474eb7739cd4634d1a3da692941d7 to your computer and use it in GitHub Desktop.
Save repodevs/eb7474eb7739cd4634d1a3da692941d7 to your computer and use it in GitHub Desktop.
odoo create data contact from csv file
#!/usr/bin/python
import argparse
import odoorpc
import csv
# set arguments parser
parser = argparse.ArgumentParser()
parser.add_argument("-f", "--file", help="csv file to import")
parser.add_argument("-d", "--delimiter", help="delimiter for csv file", default="^")
parser.add_argument("-os", "--server", help="odoo server, default 127.0.0.1", default="127.0.0.1")
parser.add_argument("-op", "--port", help="odoo port, default 8069", default="8069")
parser.add_argument("-od", "--db", help="odoo database, default odoo", default="odoo")
parser.add_argument("-u", "--user", help="odoo user, default admin", default="admin")
parser.add_argument("-p", "--passwd", help="odoo password, default admin", default="admin")
args = parser.parse_args()
print args.file
print args.delimiter
print args.server
print args.port
print args.db
print args.user
print args.passwd
# set variable
file = args.file
delimiter = args.delimiter
odoo_server = args.server
odoo_port = args.port
odoo_db = args.db
odoo_user = args.user
odoo_pass = args.passwd
# connect to server odoo
odoo = odoorpc.ODOO(odoo_server, port=odoo_port)
odoo.login(odoo_db, odoo_user, odoo_pass)
p = odoo.env['res.partner']
if file:
with open(file, 'rb') as csvf:
s = csv.reader(csvf, delimiter=delimiter)
for v in s:
id = v[0] or ''
name = v[1].replace("\N", '').strip() or ''
company_type = v[2] or ''
street = v[3].replace("\N", '').strip() or ''
street2 = v[4].replace("\N", '').strip() or ''
city = v[5].replace("\N", '').strip() or ''
zip = v[6].replace("\N", '').strip() or ''
country_id = v[7].replace("\N", '').strip() or 0
phone = v[8].replace("\N", '').replace("'", '').strip() or ''
fax = v[9].replace("\N", '').replace("'", '').strip() or ''
email = v[10].replace("\N", '').strip() or ''
karyawan = v[11].replace("\N", '').strip() or ''
customer = v[12].replace("\N", '').strip() or ''
supplier = v[13].replace("\N", '').strip() or ''
company_id = v[14].replace("\N", '').strip() or ''
comment = str(v[15].replace("\N", '').strip().replace("###", "\n").strip()) or ''
data = {
'name': name,
'company_type': company_type,
'street': street,
'street2': street2,
'city': city,
'zip': zip,
'country_id': country_id,
'phone': phone,
'fax': fax,
'email': email,
'karyawan': karyawan,
'customer': customer,
'supplier': supplier,
'comment': comment
}
p.create(data)
print data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment