mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
30 lines
1009 B
Python
30 lines
1009 B
Python
import os
|
|
import logging
|
|
from suds.client import Client
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class CATaxRequest:
|
|
def __init__(self):
|
|
wsdl_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), './ca_rates.wsdl')
|
|
self.client = Client('file:///%s' % wsdl_path.lstrip('/'))
|
|
|
|
def get_rate(self, partner):
|
|
request = self.client.factory.create('CARateRequest')
|
|
request.StreetAddress = partner.street
|
|
request.State = partner.state_id.code
|
|
request.City = partner.city
|
|
zip_ = partner.zip
|
|
if zip_ and len(zip_) > 5:
|
|
zip_ = zip_[:5]
|
|
request.ZipCode = zip_
|
|
|
|
_logger.debug('CA Request: ' + str(request))
|
|
response = self.client.service.GetRate(request)
|
|
_logger.debug('CA Response: ' + str(response))
|
|
return {
|
|
'rate': response.CARateResponses[0][0].Responses[0][0].Rate * 100.0,
|
|
'county': response.CARateResponses[0][0].Responses[0][0].Details.County,
|
|
}
|