forked from Mapan/odoo17e
29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.delivery_sendcloud.models.sendcloud_service import SendCloud
|
|
|
|
LOCATION_URL = "https://servicepoints.sendcloud.sc/api/v2/"
|
|
|
|
|
|
class SendcloudLocationsRequest(SendCloud):
|
|
|
|
def get_close_locations(self, partner_address, distance, carrier):
|
|
if carrier == 'sendcloud':
|
|
carrier = ''
|
|
params = {"country": partner_address.country_code,
|
|
"address": f'{partner_address.street},{partner_address.zip} {partner_address.city}',
|
|
"radius": distance,
|
|
"carrier": carrier}
|
|
request = self._send_request('service-points', params=params, route=LOCATION_URL)
|
|
location = set()
|
|
return_data = []
|
|
|
|
for pick_up_location in request:
|
|
if pick_up_location["street"] not in location:
|
|
# change distance in km to proprely match the canvas
|
|
pick_up_location["distance"] = pick_up_location["distance"] / 1000
|
|
return_data.append(pick_up_location)
|
|
location.add(pick_up_location["street"])
|
|
return return_data
|