~zaber/openobject-addons/stable_5.0-extra-addons

733 by nel
Migration partner flagey
1
#!/usr/bin/python
2
# -*- encoding: utf-8 -*-
3
4
import psycopg
5
import csv
6
7
db_old = "in"
8
print 'Extracting data from db '+db_old
9
#
10
#def import_sql(cr, fname, query, fields=None, trigger=None):
11
#	cr.execute(query)
12
#	fp = file(fname,'wb')
13
#	result = cr.fetchall()
14
#	if trigger:
15
#		result = map(lambda x: tuple(trigger(cr, list(x))), result)
16
#	writer = csv.writer(fp,lineterminator='\n')
17
#	writer.writerow(["id","lang","website","name","comment","active","category_id"])
18
#	for line in result:
19
#		cr.execute("SELECT c.name from res_partner_category_rel r join res_partner p on (p.id=r.partner_id)  join res_partner_category c on (r.category_id=c.id) where p.name=%s",(line[3],))
20
#		cats= ",".join([l[0] for l in cr.fetchall()])
21
#		print "cats",cats
22
#		line=line + (cats,)
23
#		writer.writerow(line)
24
#	fp.close()
25
#
26
#db = psycopg.connect("dbname="+db_old)
27
#cr = db.cursor()
28
def import_sql(cr, fname, query, fields=None, trigger=None):
29
	cr.execute(query)
30
	fp = file(fname,'wb')
31
	result = cr.fetchall()
32
	if trigger:
33
		result = map(lambda x: tuple(trigger(cr, list(x))), result)
34
	writer = csv.writer(fp,lineterminator='\n')
35
	writer.writerow(["id","lang","website","name","comment","active","category_id"])
36
	for line in result:
37
		cr.execute("SELECT c.name from res_partner_category_rel r join res_partner p on (p.id=r.partner_id)  join res_partner_category c on (r.category_id=c.id) where p.name=%s",(line[3],))
38
		l = ''
39
		for x in cr.fetchall():
40
			if not l:
41
				l = x[0]
42
			else:
43
				l += ',' + x[0]
44
		writer.writerow(line + (l,))
45
46
47
#		print l
48
#		head,tail= l[:1], l[1:]
49
#		if not head: head= [None]
50
#		writer.writerow(line+tuple(head))
51
#		for t in tail:
52
#			writer.writerow((None,None,None,None,None,None)+(t,))
53
54
55
#		for l in cr.fetchall():
56
#			a=0
57
#			lenght=len(l)
58
#			line=line + (l[a],)
59
#			print "l[0]",a,l[a]
60
#			print line
61
#			writer.writerow(line)
62
#			a=a+1
63
#			while a< lenght:
64
#				line2=(None,None,None,None,None,None,) +(l[a],)
65
#				writer.writerow(line2)
66
#				a=a+1
67
	fp.close()
68
69
	#		if l[0] != cats:
70
	#			line2=",,,,,"+(l[0][1:],)
71
	#			print "line2",line2
72
db = psycopg.connect("dbname="+db_old)
73
cr = db.cursor()
74
75
cr.execute("update auction_lots set state='draft' where state is null or state = '' ")
76
cr.execute("update auction_lots set state='sold' where state='invoiced'")
77
78
79
cr.execute('select id,name from res_partner')
80
res= cr.fetchall()
81
names=[]
82
for r in res:
83
	if r[1] in names:
84
		cr.execute("update res_partner set name= %s where id=%d",(r[1]+str(r[0]),r[0]))
85
	else:
86
		names.append(r[1])
87
88
89
##clients category
90
#import_sql(cr,	
91
#	'res.partner.category.csv',
92
#	"""
93
#	select
94
#	name,
95
#	active
96
#	from 
97
#	res_partner_category
98
#	"""
99
#)
100
101
#res.partner
102
import_sql(cr,
103
	'res.partner.csv',
104
	"""
105
	select
106
	'partner'||r.id as id,
107
	r.lang,
108
	r.website,
109
	r.name,
110
	r.comment,
111
	r.active
112
	from
113
	res_partner r --limit 10
114
	"""
115
)
116
117
118
#	(select cat.name||'\N' from res_partner r1, res_partner_category cat,res_partner_category_rel rel where r1.id=rel.partner_id and rel.category_id=cat.id) as "category_id",