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