changeset 992e0558a50b in modules/stock_package_shipping_mygls:default
details: 
https://hg.tryton.org/modules/stock_package_shipping_mygls?cmd=changeset&node=992e0558a50b
description:
        Add optional address to contact mechanism

        issue11705
        review421691006
diffstat:

 CHANGELOG   |   2 ++
 message.xml |   6 +++---
 stock.py    |  27 ++++++++++++++-------------
 3 files changed, 19 insertions(+), 16 deletions(-)

diffs (121 lines):

diff -r bb898653d808 -r 992e0558a50b CHANGELOG
--- a/CHANGELOG Mon Sep 19 21:25:55 2022 +0200
+++ b/CHANGELOG Sat Oct 01 14:52:06 2022 +0200
@@ -1,3 +1,5 @@
+* Use contact mechanism from address
+
 Version 6.4.0 - 2022-05-02
 * Bug fixes (see mercurial logs for details)
 * Add support for Python 3.10
diff -r bb898653d808 -r 992e0558a50b message.xml
--- a/message.xml       Mon Sep 19 21:25:55 2022 +0200
+++ b/message.xml       Sat Oct 01 14:52:06 2022 +0200
@@ -13,13 +13,13 @@
             <field name="text">To validate shipment "%(shipment)s" you must 
set a country code to the destination address.</field>
         </record>
         <record model="ir.message" id="msg_phone_mobile_required">
-            <field name="text">To validate shipment "%(shipment)s" you must 
add a phone or mobile number to party "%(party)s".</field>
+            <field name="text">To validate shipment "%(shipment)s" you must 
add a phone or mobile number for address "%(address)s".</field>
         </record>
         <record model="ir.message" id="msg_email_required">
-            <field name="text">To validate shipment "%(shipment)s" you must 
add an email to party "%(party)s".</field>
+            <field name="text">To validate shipment "%(shipment)s" you must 
add an email for address "%(address)s".</field>
         </record>
         <record model="ir.message" id="msg_mobile_required">
-            <field name="text">To validate shipment "%(shipment)s" you must 
add a mobile number to party "%(party)s".</field>
+            <field name="text">To validate shipment "%(shipment)s" you must 
add a mobile number for address "%(party)s".</field>
         </record>
         <record model="ir.message" id="msg_shipment_has_reference_number">
             <field name="text">You cannot create a shipping label for shipment 
"%(shipment)s" because it already has a reference number.</field>
diff -r bb898653d808 -r 992e0558a50b stock.py
--- a/stock.py  Mon Sep 19 21:25:55 2022 +0200
+++ b/stock.py  Sat Oct 01 14:52:06 2022 +0200
@@ -71,33 +71,33 @@
                     shipping=self.rec_name))
         if (self.carrier.mygls_services
                 and 'CS1' in self.carrier.mygls_services):
-            if not self.shipping_to.contact_mechanism_get(
+            if not shipping_to_address.contact_mechanism_get(
                     {'phone', 'mobile'}, usage=usage):
                 raise PackingValidationError(
                     gettext('stock_package_shipping_mygls'
                         '.msg_phone_mobile_required',
                         shipment=self.rec_name,
-                        party=self.shipping_to.rec_name))
+                        address=shipping_to_address.rec_name))
         if (self.carrier.mygls_services
                 and 'FDS' in self.carrier.mygls_services):
-            if not self.shipping_to.contact_mechanism_get(
+            if not shipping_to_address.contact_mechanism_get(
                     'email', usage=usage):
                 raise PackingValidationError(
                     gettext('stock_package_shipping_mygls'
                         '.msg_email_required',
                         shipment=self.rec_name,
-                        party=self.shipping_to.rec_name))
+                        address=shipping_to_address.rec_name))
         if (self.carrier.mygls_services
                 and ('FSS' in self.carrier.mygls_services
                     or 'SM1' in self.carrier.mygls_services
                     or 'SM2' in self.carrier.mygls_services)):
-            if not self.shipping_to.contact_mechanism_get(
+            if not shipping_to_address.contact_mechanism_get(
                     'mobile', usage=usage):
                 raise PackingValidationError(
                     gettext('stock_package_shipping_mygls'
                         '.msg_mobile_required',
                         shipment=self.rec_name,
-                        party=self.shipping_to.rec_name))
+                        address=shipping_to_address.rec_name))
 
 
 class ShipmentOut(ShippingMyGLSMixin, metaclass=PoolMeta):
@@ -223,8 +223,8 @@
             }
 
     def get_address(self, party, address, usage=None):
-        phone = party.contact_mechanism_get({'phone', 'mobile'}, usage=usage)
-        email = party.contact_mechanism_get('email', usage=usage)
+        phone = address.contact_mechanism_get({'phone', 'mobile'}, usage=usage)
+        email = address.contact_mechanism_get('email', usage=usage)
         return {
             'Name': address.party_full_name,
             'Street': ' '.join((address.street or '').splitlines()),
@@ -240,18 +240,19 @@
         pool = Pool()
         Carrier = pool.get('carrier')
         service = {'Code': code}
+        shipping_to_address = shipment.shipping_to_address
         if code == 'AOS':
             service['AOSParameter'] = shipment.shipping_to.full_name,
         elif code == 'CS1':
-            phone = shipment.shipping_to.contact_mechanism_get(
+            phone = shipping_to_address.contact_mechanism_get(
                     {'phone', 'mobile'}, usage=usage)
             service['CS1Parameter'] = phone.value
         elif code == 'FDS':
-            email = shipment.shipping_to.contact_mechanism_get(
+            email = shipping_to_address.contact_mechanism_get(
                 'email', usage=usage)
             service['FDSParameter'] = email.value
         elif code == 'FSS':
-            mobile = shipment.shipping_to.contact_mechanism_get(
+            mobile = shipping_to_address.contact_mechanism_get(
                 'mobile', usage=usage)
             service['FSSParameter'] = mobile.value
         elif code == 'SM1':
@@ -261,12 +262,12 @@
                 lang_code = None
             with Transaction().set_context(language=lang_code):
                 carrier = Carrier(shipment.carrier.id)
-            mobile = shipment.shipping_to.contact_mechanism_get(
+            mobile = shipping_to_address.contact_mechanism_get(
                 'mobile', usage=usage)
             service['SM1Parameter'] = '|'.join([
                     mobile.value, carrier.mygls_sms])
         elif code == 'SM2':
-            mobile = shipment.shipping_to.contact_mechanism_get(
+            mobile = shipping_to_address.contact_mechanism_get(
                 'mobile', usage=usage)
             service['SM1Parameter'] = mobile.value
         return service

Reply via email to