diff --git a/product/ERP5SyncML/Conduit/ERP5ShopOrderConduit.py b/product/ERP5SyncML/Conduit/ERP5ShopOrderConduit.py index f128fef2ad2efaa6d7aa56f4477d7858ed04ca13..13a844aa880dbd65b9e2a29bd14f9cab914dab92 100755 --- a/product/ERP5SyncML/Conduit/ERP5ShopOrderConduit.py +++ b/product/ERP5SyncML/Conduit/ERP5ShopOrderConduit.py @@ -333,6 +333,8 @@ class ERP5ShopOrderConduit(ERP5Conduit): # The object is a ShopOrder if kw.has_key('country'): + object.setTargetStartDate(kw['target_start_date']) + object.setTargetStopDate(kw['target_stop_date']) # Find the organisation and the person folder person_path = erp5_site_path + '/person' person_folder = erp5_site.restrictedTraverse(person_path) @@ -369,6 +371,10 @@ class ERP5ShopOrderConduit(ERP5Conduit): previous_owner_type += 'p' if org_object != None: previous_owner_type += 'o' + # This is a particular case where the user put + # the name of an organisation in his own name + if not kw.has_key('organisation'): + kw['organisation'] = org_object.getId() if len(previous_owner_type) == 0: previous_owner_type = None LOG("Previous customer structure >>>>>>>>",0,repr(previous_owner_type)) @@ -493,8 +499,12 @@ class ERP5ShopOrderConduit(ERP5Conduit): # elif previous_address.strip().lower() != kw['address'].strip().lower(): # LOG('We have to make the fusion of previous address with the current one >>>>>>>', 0, '') - person_object.setDefaultAddressCity(kw['city'].title()) - person_object.setDefaultAddressZipCode(kw['zipcode']) + if kw.has_key('city') and kw['city']!=None: + person_object.setDefaultAddressCity(kw['city'].title()) + if kw.has_key('address') and kw['address'] != None: + person_object.setDefaultAddressStreetAddress(kw['address'].title()) + if kw.has_key('zipcode') and kw['zipcode']!=None: + person_object.setDefaultAddressZipCode(kw['zipcode']) # # TODO : set the person products interest (storever, etc) # Search the country in the region category if kw['country'] != None: @@ -525,12 +535,12 @@ class ERP5ShopOrderConduit(ERP5Conduit): # person_object.setSubordination("organisation/" + owner_id) if kw.has_key('organisation') and kw['organisation'] != None: org_object.setTitle(kw['organisation'].title()) + org_object.setCorporateName(kw['organisation'].title()) if kw.has_key('eu_vat') and kw['eu_vat'] != None: org_object.setEuVatCode(kw['eu_vat']) # Test for debug if (not (kw.has_key('organisation')) or (kw.has_key('organisation') and kw['organisation'] != None)) and (not (kw.has_key('eu_vat')) or (kw.has_key('eu_vat') and kw['eu_vat'] != None)): LOG("AARRGG ! Big conflict detected : this organisation has no title or eu_vat. These properties are primary key to deduced that the storever member account was an organisation >>>>>>>>>>", 0, '') - org_object.setCorporateName(kw['organisation'].title()) org_object.setRole("client") # The customer is not a person or a person of an organisation, so the customer is an organisation... @@ -539,12 +549,16 @@ class ERP5ShopOrderConduit(ERP5Conduit): object.setDestination("organisation/" + owner_id) object.setDestinationDecision("organisation/" + owner_id) # All informations describe the organisation - org_object.setTitle(kw['organisation'].title()) - org_object.setCorporateName(kw['organisation'].title()) + if kw.has_key('organisation') and kw['organisation'] != None: + org_object.setTitle(kw['organisation'].title()) + org_object.setCorporateName(kw['organisation'].title()) org_object.setRole("client") - org_object.setEuVatCode(kw['eu_vat']) - org_object.setDefaultAddressStreetAddress(kw['address'].title()) - org_object.setDefaultAddressCity(kw['city'].title()) + if kw.has_key('eu_vat') and kw['eu_vat'] != None: + org_object.setEuVatCode(kw['eu_vat']) + if kw.has_key('address') and kw['address'] != None: + org_object.setDefaultAddressStreetAddress(kw['address'].title()) + if kw.has_key('city') and kw['city'] != None: + org_object.setDefaultAddressCity(kw['city'].title()) org_object.setDefaultAddressZipCode(kw['zipcode']) # Search the country in the region category if kw['country'] != None: @@ -553,8 +567,10 @@ class ERP5ShopOrderConduit(ERP5Conduit): org_object.setDefaultAddressRegion(region_path) # else: # # TODO : Ask the user to select an appropriate region - org_object.setDefaultEmailText(kw['email']) - org_object.setDefaultTelephoneText(kw['phone']) + if kw.has_key('email') and kw['email'] != None: + org_object.setDefaultEmailText(kw['email']) + if kw.has_key('phone') and kw['phone'] != None: + org_object.setDefaultTelephoneText(kw['phone']) # Save the billing address in the description, because there is no dedicated place for it if kw.has_key('billing_address') and len(kw['billing_address']) > 0: