def create_customer(self, name, gender, address, phone, email, vat=None, fax=None, company_name=None, additional_data={}): """Create a customer""" response = self.request(E.createCustomerRequest( E.companyName(company_name), E.vat(vat), E.name( E.initials(name.initials), E.firstName(name.first_name), E.prefix(name.prefix or ''), E.lastName(name.last_name), ), E.gender(gender), _get_phone_xml('phone', phone), _get_phone_xml('fax', fax), E.address( E.street(address.street), E.number(address.number), E.suffix(address.suffix or ''), E.zipcode(address.zipcode), E.city(address.city), E.state(address.state or ''), E.country(address.country), ), E.email(email), E.additionalData(*[E(key, value) for key, value in additional_data.items()]), )) return str(response.data.handle)
def _additional_data(data): if data is None: return None element = E.additionalData() for key, value in data.items(): if key == 'birth_date': try: value = value.strftime('%Y-%m-%d') except AttributeError: pass element.append(E(snake_to_camel(key), value)) return element
def modify_customer(self, handle, address, phone, email=None, vat=None, fax=None, company_name=None, additional_data={}): """Modify a customer.""" self.request(E.modifyCustomerRequest( E.handle(handle), E.vat(vat or ''), _get_phone_xml('phone', phone), _get_phone_xml('fax', fax), E.address( E.street(address.street), E.number(address.number), E.suffix(address.suffix or ''), E.zipcode(address.zipcode), E.city(address.city), E.state(address.state or ''), E.country(address.country), ), E.email(email or ''), E.additionalData(*[E(key, value) for key, value in additional_data.items()]), )) return True
def _additional_data(data): if not data: return None items = [E(key, value) for key, value in data.items()] return E.additionalData(*items)