Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
4666 Zobrazení

I'm trying to import Both customers and companies into OpenERP from another database. I can import both customers and company, but i am unable to link them: this is the code i am trying to use:

     if data:
            for erprow in data:
                #mielöt updatelünk vagy létrehozunk csekoljuk le hogy alá tudjuk e rendelniegy cégnek
                cegargs = [('panda_id', '=', int(csvrow[1])),]
                cegids = sock.execute(dbname, uid, pwd, model, 'search', cegargs)
                cegfields = ['id', 'name', 'child_ids',]
                cegdata = sock.execute(dbname, uid, pwd, 'res.partner', 'read', cegids, cegfields)
                """if cegdata:
                    #childcustomer = str(erprow['id']) + '/' + str(cegdata[0]['id'])
                    child = cegdata[0]['child_ids']
                    if not child:
                        child = False
                    update = True
                    print cegdata[0]['child_ids']
                    if erprow['id'] in child:
                        update = False
                    else:
                        child.append(int(erprow['id']))
                    if update:
                        cegvalues = {}
                        cegvalues['child_ids'] = child
                        results = sock.execute(dbname, uid, pwd, 'res.partner', 'write', cegids, cegvalues)
                    print '-------', cegdata[0]['child_ids']"""
                parent_id = False
                if cegdata:
                    parent_id = [int(cegdata[0]['id']), cegdata[0]['name']]
                # 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[11]:
                    values['zip'] = csvrow[11]
                #a country kicsit nezebb mivel Openerpnek van saját táblája országokrol és IDvel müködik.
                if erprow['country'] != country_tomb:   
                    values['country'] = country_id
                    values['country_id'] = country_id
                if erprow['name'] != nev:
                    values['name'] = nev
                if erprow['street'] != csvrow[13]:
                    values['street'] = csvrow[13]
                """if erprow['street2'] != csvrow[6]:
                    values['street2'] = csvrow[6]"""
                if erprow['city'] != csvrow[12]:
                    values['city'] = csvrow[12]
                """if erprow['comment'] != csvrow[8]:
                    values['comment'] = csvrow[8]"""
                if erprow['email'] != csvrow[9]:
                    values['email'] = csvrow[9]
                if erprow['fax'] != csvrow[8]:
                    values['fax'] = csvrow[8]
                if erprow['mobile'] != csvrow[10]:
                    values['mobile'] = csvrow[10]
                if erprow['function'] != csvrow[5]:
                    values['function'] = csvrow[5]
                if erprow['phone'] != telefon:
                    values['phone'] = telefon
                if erprow['parent_id'] != parent_id:
                    erprow['parent_id'] = parent_id
                if cegdata:
                    if erprow['company_id'] != int(cegdata[0]['id']):
                        values['company_id'] = cegdata[0]['id']
                if values: 
                    number += 1
                    results = sock.execute(dbname, uid, pwd, model, 'write', ids, values)
                    print loop, '. ', number , ". results frissités pandából...", parent_id
                else:
                    number += 1
                    print loop, '. ', number , ". sor létezik de nincs frisités.", parent_id


        else:
            #mielöt updatelünk vagy létrehozunk csekoljuk le hogy alá tudjuk e rendelniegy cégnek
            cegargs = [('panda_id', '=', int(csvrow[1])),]
            cegids = sock.execute(dbname, uid, pwd, model, 'search', cegargs)
            cegfields = ['id', 'name',]
            cegdata = sock.execute(dbname, uid, pwd, 'res.partner', 'read', cegids, cegfields)
            parent_id = False
            if cegdata:
                parent_id = [int(cegdata[0]['id']), cegdata[0]['name']]
            number += 1
            print loop, '. ', number, ".Nem létezik - Létrehozzás"
            partner_data = {'name':nev, 'active': True, 'panda_id': csvrow[0], 'zip' : csvrow[11], 'country_id': country_id, 'street': csvrow[13],  'city': csvrow[12], 'email': csvrow[9], 'fax': csvrow[8], 'mobile': csvrow[10], 'function': csvrow[5], 'phone': telefon, 'parent_id': parent_id,}
            partner_id = sock.execute(dbname, uid, pwd, model, 'create', partner_data)
    loop += 1
    print loop, local_number

it has a lot of print due to this script i run from command line and not openerp scheduler. Sadly i cant figure out how to link them as Company-> child.

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
0
pro 15
2965
1
bře 15
8682
1
bře 15
11657
1
bře 15
4005
2
dub 25
4737