2 # -*- encoding: utf-8 -*-
8 print 'Extracting data from db '+db_old
10 def import_sql(cr, fname, query, fields=None, trigger=None):
13 fields = map(lambda x: x[0], cr.description)
15 result = cr.fetchall()
17 result = map(lambda x: tuple(trigger(cr, list(x))), result)
18 writer = csv.writer(fp,lineterminator='\n')
19 writer.writerow(fields)
20 writer.writerows(result)
24 db = psycopg.connect("dbname="+db_old)
29 cr.execute("update auction_lots set state='draft' where state is null or state = '' ")
30 cr.execute("update auction_lots set state='sold' where state='invoiced'")
33 cr.execute('select id,name from res_partner')
38 cr.execute("update res_partner set name= %s where id=%d",(r[1]+str(r[0]),r[0]))
42 # cr.execute('select id,name from res_country')
47 # cr.execute("update res_country set name= %s where id=%d",(str(r[1])+str(r[0]),r[0]))
51 # cr.execute('select id,code from res_country')
56 # cr.execute("update res_country set code= %s where id=%d",(str(r[1])+str(r[0]),r[0]))
62 def _account_trigger(cr, x):
64 if x[5] not in ('receivable','payable','view','income','expense','tax','cash','asset','equity','closed'):
65 x[5] = {'stock_inventory':'asset','stock_income':'income','stock_expense':'expense'}.get(x[5], 'asset')
69 'account.account.csv',
70 "select 'account' || id as id, code, name, 'EUR' as currency_id, True as active, type from account_account",
71 trigger = _account_trigger
81 'account'||account_collected_id as "account_collected_id:id",
82 'account'||account_paid_id as "account_paid_id:id",
96 # 'country'||id as id,
97 # coalesce(name,id::char(10)) as "name",
98 # coalesce(code,id::char(10)) as "code"
105 'res.partner.category.csv',
114 ##res.partner.category.rel
116 # 'res.partner.category.rel.csv',
119 # 'partner'||rel.partner_id as "partner_id:id",
120 # 'categ'||rel.category_id as "category_id:id"
122 # res_partner_category_rel rel, res_partner r
123 # where rel.partner_id=r.id
131 'partner'||r.id as id,
143 # (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",
148 'res.partner.address.csv',
152 coalesce('partner'||partner_id,'partner_unknown') as "partner_id:id",
166 # 'country'||country as "country_id:id",
169 #auction.lot.category
172 'auction.lot.category.csv',
192 'Auction'||id as "name",
195 'auction_db.account'||acc_expense as "acc_expense:id",
196 'auction_db.account'||acc_income as "acc_income:id",
197 coalesce(state,'draft') as "state",
200 'account.expenses_journal' as "journal_seller_id:id",
201 'account.sales_journal' as "journal_id:id",
202 'auction_db.aaa_un' as "account_analytic_id:id"
214 'auction.artists.csv',
217 'artist'||id as "id",
230 # auction.deposit.csv
233 'auction.deposit.csv',
236 'deposit'||id as "id",
239 coalesce('auction_db.partner'||partner_id,'auction_db.partner_unknown') as "partner_id:id",
241 'auction_db.tax'||tax_id as "tax_id:id",
258 'auction_db2.date'||l.auction_id as "auction_id:id",
259 'auction_db2.deposit'||l.bord_vnd_id as "bord_vnd_id:id",
276 'auction_db.partner'||l.ach_uid as "ach_uid:id",
280 coalesce(l.state,'draft') as "state",
281 'auction_db.product_product_unknown' as "product_id:id"
283 auction_lots l join auction_dates d on (l.auction_id=d.id) join auction_deposit o on (l.bord_vnd_id=o.id) where d.expo2 like '2007%'
290 # 'auction_db.invoice'||ach_inv_id as "ach_inv_id:id",
291 # 'auction_db.invoice'||ach_inv_id as "sel_inv_id:id",
293 def _deposit(cr, rec):
301 # 'invoice'||invoice_id as "invoice_id:id",
303 'account.invoice.csv',
306 'invoice'||id as "id",
310 'base.main_company' as "company_id:id",
311 'auction_db.address'||address_invoice_id as "address_invoice_id:id",
312 'auction_db.partner'||partner_id as "partner_id:id",
315 'auction_db.account'||account_id as "account_id:id",
318 'auction_db.address'||address_contact_id as "address_contact_id:id"
327 'account.invoice.line.csv',
331 'invoice'||invoice_id as "invoice_id:id",
333 'auction_db.account'||account_id as "account_id:id",
349 'date'||b.auction_id as "auction_id:id",
350 coalesce('auction_db.partner'||b.partner_id,'auction_db.partner_unknown') as "partner_id:id",
354 auction_bid b join auction_dates d on (b.auction_id=d.id) where d.expo2 like '2007%'
361 #auction.bid_line.csv
363 'auction.bid_line.csv',
367 'auction_db2.bid'||line.bid_id as "bid_id:id",
368 'auction_db3.lot'||line.lot_id as "lot_id:id",
373 auction_bid_line line join auction_bid b on (b.id=line.bid_id) join auction_lots lot on (lot.id=line.lot_id) join auction_deposit o on (lot.bord_vnd_id=o.id) join auction_dates d on (lot.auction_id=d.id) where d.expo2 like '2007%' and o.date_dep like '2007%'
385 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: