summaryrefslogtreecommitdiff
path: root/addons/base_geolocalize/models/res_partner.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/base_geolocalize/models/res_partner.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/base_geolocalize/models/res_partner.py')
-rw-r--r--addons/base_geolocalize/models/res_partner.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/addons/base_geolocalize/models/res_partner.py b/addons/base_geolocalize/models/res_partner.py
new file mode 100644
index 00000000..0367c3e0
--- /dev/null
+++ b/addons/base_geolocalize/models/res_partner.py
@@ -0,0 +1,34 @@
+from odoo import api, fields, models
+
+
+class ResPartner(models.Model):
+ _inherit = "res.partner"
+
+ date_localization = fields.Date(string='Geolocation Date')
+
+ @api.model
+ def _geo_localize(self, street='', zip='', city='', state='', country=''):
+ geo_obj = self.env['base.geocoder']
+ search = geo_obj.geo_query_address(street=street, zip=zip, city=city, state=state, country=country)
+ result = geo_obj.geo_find(search, force_country=country)
+ if result is None:
+ search = geo_obj.geo_query_address(city=city, state=state, country=country)
+ result = geo_obj.geo_find(search, force_country=country)
+ return result
+
+ def geo_localize(self):
+ # We need country names in English below
+ for partner in self.with_context(lang='en_US'):
+ result = self._geo_localize(partner.street,
+ partner.zip,
+ partner.city,
+ partner.state_id.name,
+ partner.country_id.name)
+
+ if result:
+ partner.write({
+ 'partner_latitude': result[0],
+ 'partner_longitude': result[1],
+ 'date_localization': fields.Date.context_today(partner)
+ })
+ return True