changeset ec00c1032862 in modules/stock_package_shipping_ups:default
details:
https://hg.tryton.org/modules/stock_package_shipping_ups?cmd=changeset&node=ec00c1032862
description:
Add optional address to contact mechanism
issue11705
review421691006
diffstat:
CHANGELOG | 1 +
message.xml | 2 +-
stock.py | 17 +++++++++--------
3 files changed, 11 insertions(+), 9 deletions(-)
diffs (82 lines):
diff -r bdd9f5cda59f -r ec00c1032862 CHANGELOG
--- a/CHANGELOG Sun Sep 25 20:27:25 2022 +0200
+++ b/CHANGELOG Sat Oct 01 14:52:06 2022 +0200
@@ -1,3 +1,4 @@
+* Use contact mechanism from address
* Update service types
Version 6.4.0 - 2022-05-02
diff -r bdd9f5cda59f -r ec00c1032862 message.xml
--- a/message.xml Sun Sep 25 20:27:25 2022 +0200
+++ b/message.xml Sat Oct 01 14:52:06 2022 +0200
@@ -11,7 +11,7 @@
<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>
diff -r bdd9f5cda59f -r ec00c1032862 stock.py
--- a/stock.py Sun Sep 25 20:27:25 2022 +0200
+++ b/stock.py Sat Oct 01 14:52:06 2022 +0200
@@ -110,14 +110,14 @@
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 @@
'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 @@
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 @@
},
}
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'] = {