mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from odoo import api, fields, models
|
|
|
|
try:
|
|
from uszipcode import SearchEngine
|
|
except ImportError:
|
|
SearchEngine = None
|
|
|
|
|
|
class Partner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
@api.multi
|
|
def geo_localize(self):
|
|
# We need country names in English below
|
|
for partner in self.with_context(lang='en_US'):
|
|
try:
|
|
if SearchEngine and partner.zip:
|
|
with SearchEngine() as search:
|
|
zipcode = search.by_zipcode(str(self.zip).split('-')[0])
|
|
if zipcode and zipcode.lat:
|
|
partner.write({
|
|
'partner_latitude': zipcode.lat,
|
|
'partner_longitude': zipcode.lng,
|
|
'date_localization': fields.Date.context_today(partner),
|
|
})
|
|
else:
|
|
super(Partner, partner).geo_localize()
|
|
else:
|
|
super(Partner, partner).geo_localize()
|
|
except:
|
|
pass
|
|
return True
|