=== modified file 'base_sale_multichannels/sale.py' --- base_sale_multichannels/sale.py 2012-08-21 07:38:58 +0000 +++ base_sale_multichannels/sale.py 2012-10-24 07:54:37 +0000 @@ -535,7 +535,7 @@ return super(sale_order, self)._import_resources(cr, uid, external_session, defaults=defaults, method=method, context=context) - def check_if_order_exist(self, cr, uid, external_session, resource, order_mapping=None, context=None): + def check_if_order_exist(self, cr, uid, external_session, resource, order_mapping=None, defaults=None, context=None): mapping_name = False for line in order_mapping['mapping_lines']: if line['internal_field'] == 'name': @@ -546,6 +546,7 @@ 'from_external_to_openerp', resource, mapping=local_mapping, mapping_id=1, + defaults=defaults, context=context) if vals.get('name'): exist_id = self.search(cr, uid, [['name', '=', vals['name']]], context=context) @@ -562,7 +563,7 @@ mapping, mapping_id = self._init_mapping(cr, uid, external_session.referential_id.id, mapping=mapping, mapping_id=mapping_id, context=context) exist_id = self.check_if_order_exist(cr, uid, external_session, resource, - order_mapping=mapping[mapping_id], context=context) + order_mapping=mapping[mapping_id], defaults=defaults, context=context) if exist_id: return {} else: === modified file 'magentoerpconnect/sale.py' --- magentoerpconnect/sale.py 2012-08-20 09:39:45 +0000 +++ magentoerpconnect/sale.py 2012-10-26 08:47:28 +0000 @@ -401,15 +401,17 @@ mapping_line_filter_ids=None, parent_data=None, previous_result=None, defaults=None, context=None): resource = self.clean_magento_resource(cr, uid, resource, context=context) resource = self.clean_magento_items(cr, uid, resource, context=context) - if not resource['customer_id']: + if not resource.get('customer_id', False): #If there is not partner it's a guest order #So we remove the useless information #And create a partner on fly and set the data in the default value - del resource['customer_id'] - del resource['billing_address']['customer_id'] - del resource['shipping_address']['customer_id'] + if 'customer_id' in resource: + del resource['customer_id'] + if 'customer_id' in resource['billing_address']: + del resource['billing_address']['customer_id'] + if 'customer_id' in resource['shipping_address']: + del resource['shipping_address']['customer_id'] defaults = self.create_onfly_partner(cr, uid, external_session, resource, mapping, defaults, context=context) - return super(sale_order, self)._transform_one_resource(cr, uid, external_session, convertion_type, resource,\ mapping, mapping_id, mapping_line_filter_ids=mapping_line_filter_ids, parent_data=parent_data,\ previous_result=previous_result, defaults=defaults, context=context) @@ -624,7 +626,7 @@ # in the sale order and sometime it's equal to NONE in the address but at least the # the information is correct in one of this field # So I make this ugly code to try to fix it. - if not resource['customer_id']: + if not resource.get('customer_id', False): if resource['billing_address'].get('customer_id'): resource['customer_id'] = resource['billing_address']['customer_id'] else: