Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- import urllib
- import xmlrpclib
- import logging
- from openerp.osv import fields, osv
- class panda_res_partner(osv.osv):
- _name = 'res.partner'
- _inherit = 'res.partner'
- _description = 'Partner'
- _columns = {
- 'panda_id': fields.integer('panda_id')
- }
- def _start_syncro(self, cr, uid):
- # row = hány sort kérjen le egy szerre, skip = hányadikkal kezdje, local_url = az openerp server elérhetösége, remote_url= a firebird script elérhetősége
- username = 'admin'
- pwd = 'admin'
- dbname = 'nagel_test'
- model = 'res.partner'
- proxy_common = 'http://192.168.40.34:8069/' + '/xmlrpc/common'
- sock_common = xmlrpclib.ServerProxy(proxy_common)
- uid = sock_common.login(dbname, username, pwd)
- proxy_object = 'http://192.168.40.34:8069/' + '/xmlrpc/object'
- sock = xmlrpclib.ServerProxy(proxy_object)
- # Hu ID-je
- country_id = 100
- rows_url = 'http://192.168.40.3/firebird/?f=export_gigabit2011_csv2openerp_partner_count&nohtml=1'
- number_of_rows_file = urllib.urlretrieve(rows_url)
- rowreader = csv.reader(open(number_of_rows_file[0], 'rb'))
- total_rows = 0
- for rownumber in rowreader:
- total_rows = int(rownumber[0])
- while True:
- if skip >= total_rows:
- break
- syncro(200, 0, 'http://192.168.40.3/firebird')
- skip += row
- def syncro(row, skip, url):
- csvurl = str(url) + '/?f=export_gigabit2011_csv2openerp_partner_all&nohtml=1&skip='+ str(skip) +'&row=' + str(row)
- file_name = urllib.urlretrieve(csvurl)
- reader = csv.reader(open(file_name[0], 'rb'))
- for csvrow in reader:
- # [0]=active, [1]=panda_id, [2]=zip(irányitószám), [3]=country [4]=name, [5]=street,
- # [6]=street2, [7]=city, [8]=comment, [9]=bankszámla
- # UTF-8 convertálás hogy megfelelöen kezeljea stringeket.
- csvrow[4] = csvrow[4].decode("utf-8")
- csvrow[5] = csvrow[5].decode("utf-8")
- csvrow[6] = csvrow[6].decode("utf-8")
- csvrow[7] = csvrow[7].decode("utf-8")
- args = [('panda_id', '=', csvrow[1]),]
- ids = sock.execute(dbname, uid, pwd, model, 'search', args)
- fields = ['active', 'panda_id', 'zip', 'country_id', 'name', 'street', 'street2', 'city', 'comment', 'vat'] #fields to read
- data = sock.execute(dbname, uid, pwd, 'res.partner', 'read', ids, fields) #ids is a list of id
- local_number += 1
- if data:
- for erprow in data:
- #results = sock.execute(dbname, uid, pwd, model, 'unlink', ids)
- # a tömböknek (dictionary pythomban) nevük van....
- values = {}
- #string be convertálom különben mindig külömböző lesz
- if str(erprow['active']) != str(csvrow[0]):
- values['active'] = csvrow[0]
- # x_panda_id ki hagyva mert az alapján vana keresés...
- if erprow['zip'] != csvrow[2]:
- values['zip'] = csvrow[2]
- #a country kicsit nezebb mivel Openerpnek van saját táblája országokrol és IDvel müködik.
- if erprow['country_id'] != country_id:
- values['country_id'] = country_id
- if erprow['name'] != csvrow[4]:
- values['name'] = csvrow[4]
- if erprow['street'] != csvrow[5]:
- values['street'] = csvrow[5]
- if erprow['street2'] != csvrow[6]:
- values['street2'] = csvrow[6]
- if erprow['city'] != csvrow[7]:
- values['city'] = csvrow[7]
- if erprow['comment'] != csvrow[8]:
- values['comment'] = csvrow[8]
- if erprow['vat'] != csvrow[9]:
- values['vat'] = csvrow[9]
- if values:
- results = sock.execute(dbname, uid, pwd, model, 'write', ids, values)
- else:
- partner_data = {'name':csvrow[4], 'active':str(csvrow[0]), 'vat':csvrow[9], 'panda_id': csvrow[1], 'zip' : csvrow[2], 'country_id': country_id, 'street': csvrow[5], 'street2' : csvrow[6], 'city': csvrow[7], 'comment': csvrow[8], 'vat': csvrow[9],}
- partner_id = sock.execute(dbname, uid, pwd, model, 'create', partner_data)
- panda_res_partner()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement