Add optional address to contact mechanism

issue11705
review421691006
This commit is contained in:
Cédric Krier committed 2022-10-01 14:52:06 +02:00
1 parent de7037a295
commit 8f5e48c74c
3 files changed
+11 -9

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
* Use contact mechanism from address
* Update service types
Version 6.4.0 - 2022-05-02
+1 -1
View File
@@ -11,7 +11,7 @@ this repository contains the full copyright notices and license terms. -->
<field name="text">To validate shipment "%(shipment)s" you must set an address on warehouse "%(warehouse)s".</field>
</record>
<record model="ir.message" id="msg_phone_required">
<field name="text">To validate shipment "%(shipment)s" you must add phone number to party "%(party)s".</field>
<field name="text">To validate shipment "%(shipment)s" you must add phone number for address "%(address)s".</field>
</record>
<record model="ir.message" id="msg_shipping_description_required">
<field name="text">To validate shipment "%(shipment)s" you must fill its shipping description.</field>
+9 -8
View File
@@ -110,14 +110,14 @@ class ShippingUPSMixin:
shipment=self.rec_name,
warehouse=warehouse.rec_name))
if warehouse.address.country != self.delivery_address.country:
for party in {self.shipping_to, self.company.party}:
if not party.contact_mechanism_get(
for address in [self.shipping_to_address, warehouse.address]:
if not address.contact_mechanism_get(
{'phone', 'mobile'}, usage=usage):
raise PackingValidationError(
gettext('stock_package_shipping_ups'
'.msg_phone_required',
shipment=self.rec_name,
party=party.rec_name))
address=address.rec_name))
if not self.shipping_description:
if (any(p.type.ups_code != '01' for p in self.root_packages)
and self.carrier.ups_service_type != '11'):
@@ -282,12 +282,12 @@ class CreateShippingUPS(Wizard):
'CountryCode': address.country.code if address.country else '',
},
}
phone = party.contact_mechanism_get({'phone', 'mobile'}, usage=usage)
phone = address.contact_mechanism_get({'phone', 'mobile'}, usage=usage)
if phone:
shipping_party['Phone'] = {
'Number': re.sub('[() .-]', '', phone.value)[:15]
}
email = party.contact_mechanism_get('email')
email = address.contact_mechanism_get('email')
if email and len(email.value) <= 50:
shipping_party['EMailAddress'] = email.value
@@ -353,7 +353,8 @@ class CreateShippingUPS(Wizard):
def get_notifications(self, shipment):
for code in shipment.carrier.ups_notifications:
email = shipment.shipping_to.contact_mechanism_get('email')
shipping_to_address = shipment.shipping_to_address
email = shipping_to_address.contact_mechanism_get('email')
if email and len(email.value) <= 50:
notification = {
'NotificationCode': code,
@@ -362,13 +363,13 @@ class CreateShippingUPS(Wizard):
},
}
if code in {'012', '013'}:
phone = shipment.shipping_to.contact_mechanism_get(
phone = shipping_to_address.contact_mechanism_get(
{'phone', 'mobile'})
if phone and len(phone.value) <= 15:
notification['VoiceMessage'] = {
'PhoneNumber': phone.value,
}
mobile = shipment.shipping_to.contact_mechanism_get(
mobile = shipping_to_address.contact_mechanism_get(
'mobile')
if mobile and len(mobile.value) <= 15:
notification['TextMessage'] = {