~magentoerpconnect-core-editors/magentoerpconnect/trunk_version

« back to all changes in this revision

Viewing changes to magentoerpconnect/partner.py

[ADD] rolling import of partners

Show diffs side-by-side

added added

removed removed

Lines of Context:
317
317
 
318
318
        return False, partner_id
319
319
 
 
320
    def _ext_import_one(self, cr, uid, external_id, vals, external_data, referential_id, defaults=None, context=None):
 
321
        """ Import one external resource
 
322
 
 
323
        This method can be inherited to do an action which have to be done
 
324
        within the same transaction than the import of the resource.
 
325
        All the database operations done within _ext_import_one
 
326
        will be rollbacked if any error occurs.
 
327
        So no action on an external referential should be done within this method.
 
328
 
 
329
        :param int external_id: id of the resource on the external referential
 
330
        :param dict vals: vals converted to openerp
 
331
        :param dict external_data: vals of the external resource before conversion
 
332
        :param int referential_id: external referential id from where we import the resource
 
333
        :param dict defaults: defaults value for fields which are not in vals
 
334
        :return: tuple created id, updated id
 
335
        """
 
336
        cid, wid = super(res_partner, self)._ext_import_one(
 
337
                cr, uid, external_id, vals, external_data, referential_id, defaults=defaults, context=context)
 
338
 
 
339
        partner_id = cid or wid
 
340
        if partner_id:
 
341
            partner = self.browse(cr, uid, partner_id, context=context)
 
342
 
 
343
            # As a partner without addresses can't be opened
 
344
            # we create a dummy empty address
 
345
            if not partner.address:
 
346
                new_empty_address = [(0, 0, {})]
 
347
                partner.write({'address': new_empty_address}, context=context)
 
348
 
 
349
        return cid, wid
 
350
 
 
351
    def _import_partner_from_external(
 
352
            self,
 
353
            cr, uid,
 
354
            partner_ext_id,
 
355
            connection,
 
356
            referential_id,
 
357
            context=None):
 
358
        """
 
359
        Import partner data from magento for a given id
 
360
 
 
361
        :param partner_ext_id: magento id of customer to import
 
362
        :param connection: connection data to magento
 
363
        :param referential_id: referential id from where we import the ressource
 
364
        """
 
365
        if context is None:
 
366
            context = {}
 
367
        imp_ctx = dict(context,
 
368
                       id=partner_ext_id)
 
369
        result = self.get_external_data(
 
370
            cr, uid,
 
371
            connection,
 
372
            referential_id,
 
373
            defaults={},
 
374
            context=imp_ctx)
 
375
        partner_id = self.extid_to_oeid(
 
376
            cr, uid, partner_ext_id, referential_id, context=context)
 
377
 
 
378
        # update the address book of the customer, this addresses
 
379
        # will be available in the partner form and the searches
 
380
        self.import_magento_address_book(
 
381
            cr, uid, partner_id, referential_id, context=context)
 
382
 
 
383
        return result
 
384
 
320
385
res_partner()