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'] = {

Reply via email to