mirror of
https://github.com/OCA/account-financial-tools.git
synced 2025-02-02 12:47:26 +02:00
Fix flake8.
This commit is contained in:
@@ -125,9 +125,9 @@ class Currency_rate_update_service(models.Model):
|
||||
@api.onchange('interval_number')
|
||||
def _onchange_interval_number(self):
|
||||
if self.interval_number == 0:
|
||||
self.note = "%s Service deactivated. Currencies will no longer "
|
||||
self.note = "%s Service deactivated. Currencies will no longer " \
|
||||
"be updated. \n%s" % (fields.Datetime.now(),
|
||||
self.note and self.note or '')
|
||||
self.note and self.note or '')
|
||||
|
||||
@api.onchange('service')
|
||||
def _onchange_service(self):
|
||||
@@ -153,33 +153,33 @@ class Currency_rate_update_service(models.Model):
|
||||
if company_id:
|
||||
currencies = self.env['res.currency'].search(
|
||||
[('name', 'in', currency_list),
|
||||
'|', ('company_id', '=', company_id),
|
||||
('company_id', '=', False)])
|
||||
'|', ('company_id', '=', company_id),
|
||||
('company_id', '=', False)])
|
||||
else:
|
||||
currencies = self.env['res.currency'].search(
|
||||
[('name', 'in', currency_list),
|
||||
('company_id', '=', False)])
|
||||
('company_id', '=', False)])
|
||||
self.currency_list = [(6, 0, [curr.id for curr in currencies])]
|
||||
|
||||
# List of webservicies the value sould be a class name
|
||||
service = fields.Selection([
|
||||
('CH_ADMIN_getter', 'Admin.ch'),
|
||||
('ECB_getter', 'European Central Bank'),
|
||||
('YAHOO_getter', 'Yahoo Finance'),
|
||||
# Added for polish rates
|
||||
('PL_NBP_getter', 'Narodowy Bank Polski'),
|
||||
# Added for mexican rates
|
||||
('MX_BdM_getter', 'Banco de México'),
|
||||
# Bank of Canada is using RSS-CB
|
||||
# http://www.cbwiki.net/wiki/index.php/Specification_1.1
|
||||
# This RSS format is used by other national banks
|
||||
# (Thailand, Malaysia, Mexico...)
|
||||
('CA_BOC_getter', 'Bank of Canada - noon rates'),
|
||||
# Added for romanian rates
|
||||
('RO_BNR_getter', 'National Bank of Romania')
|
||||
],
|
||||
"Webservice to use",
|
||||
required=True)
|
||||
service = fields.Selection(
|
||||
[('CH_ADMIN_getter', 'Admin.ch'),
|
||||
('ECB_getter', 'European Central Bank'),
|
||||
('YAHOO_getter', 'Yahoo Finance'),
|
||||
# Added for polish rates
|
||||
('PL_NBP_getter', 'Narodowy Bank Polski'),
|
||||
# Added for mexican rates
|
||||
('MX_BdM_getter', 'Banco de México'),
|
||||
# Bank of Canada is using RSS-CB
|
||||
# http://www.cbwiki.net/wiki/index.php/Specification_1.1
|
||||
# This RSS format is used by other national banks
|
||||
# (Thailand, Malaysia, Mexico...)
|
||||
('CA_BOC_getter', 'Bank of Canada - noon rates'),
|
||||
# Added for romanian rates
|
||||
('RO_BNR_getter', 'National Bank of Romania')
|
||||
],
|
||||
"Webservice to use",
|
||||
required=True)
|
||||
# List of currencies available on webservice
|
||||
currency_list = fields.Many2many('res.currency',
|
||||
'res_currency_update_avail_rel',
|
||||
@@ -187,21 +187,21 @@ class Currency_rate_update_service(models.Model):
|
||||
'currency_id',
|
||||
'Currencies available')
|
||||
# List of currency to update
|
||||
currency_to_update = fields.Many2many(
|
||||
'res.currency',
|
||||
'res_currency_auto_update_rel',
|
||||
'service_id',
|
||||
'currency_id',
|
||||
'Currencies to update with this service')
|
||||
currency_to_update = fields.Many2many('res.currency',
|
||||
'res_currency_auto_update_rel',
|
||||
'service_id',
|
||||
'currency_id',
|
||||
'Currencies to update with this '
|
||||
'service')
|
||||
# Link with company
|
||||
company_id = fields.Many2one('res.company', 'Linked Company')
|
||||
# Note fileds that will be used as a logger
|
||||
note = fields.Text('Update notice')
|
||||
max_delta_days = fields.Integer('Max delta days',
|
||||
default=4, required=True,
|
||||
help="If the time delta between the rate date given by the webservice "
|
||||
"and the current date exceeds this value, then the currency rate is not"
|
||||
" updated in OpenERP.")
|
||||
max_delta_days = fields.Integer(
|
||||
'Max delta days', default=4, required=True,
|
||||
help="If the time delta between the rate date given by the "
|
||||
"webservice and the current date exceeds this value, "
|
||||
"then the currency rate is not updated in OpenERP.")
|
||||
interval_type = fields.Selection([
|
||||
('days', 'Day(s)'),
|
||||
('weeks', 'Week(s)'),
|
||||
@@ -211,8 +211,10 @@ class Currency_rate_update_service(models.Model):
|
||||
interval_number = fields.Integer('Frequency', default=1)
|
||||
next_run = fields.Date('Next run on', default=fields.Date.today())
|
||||
|
||||
_sql_constraints = [('curr_service_unique', 'unique (service, company_id)',
|
||||
_('You can use a service only one time per company !'))]
|
||||
_sql_constraints = [('curr_service_unique',
|
||||
'unique (service, company_id)',
|
||||
_('You can use a service only one time per '
|
||||
'company !'))]
|
||||
|
||||
@api.one
|
||||
def refresh_currency(self):
|
||||
@@ -243,22 +245,22 @@ class Currency_rate_update_service(models.Model):
|
||||
# and return a dict of rate
|
||||
getter = factory.register(self.service)
|
||||
curr_to_fetch = map(lambda x: x.name,
|
||||
self.currency_to_update)
|
||||
self.currency_to_update)
|
||||
res, log_info = getter.get_updated_currency(
|
||||
curr_to_fetch,
|
||||
main_curr.name,
|
||||
self.max_delta_days
|
||||
)
|
||||
rate_name = fields.Datetime.to_string(
|
||||
datetime.utcnow().replace(hour=0, minute=0,
|
||||
second=0, microsecond=0))
|
||||
rate_name = \
|
||||
fields.Datetime.to_string(datetime.utcnow().replace(
|
||||
hour=0, minute=0, second=0, microsecond=0))
|
||||
for curr in self.currency_to_update:
|
||||
if curr.id == main_curr.id:
|
||||
continue
|
||||
do_create = True
|
||||
for rate in curr.rate_ids:
|
||||
if rate.name == rate_name:
|
||||
rate.rate= res[curr.name]
|
||||
rate.rate = res[curr.name]
|
||||
do_create = False
|
||||
break
|
||||
if do_create:
|
||||
@@ -275,7 +277,7 @@ class Currency_rate_update_service(models.Model):
|
||||
fields.Datetime.to_string(datetime.today()),
|
||||
note
|
||||
)
|
||||
self.write({'note': msg})
|
||||
self.write({'note': msg})
|
||||
except Exception as exc:
|
||||
error_msg = "\n%s ERROR : %s %s" % (
|
||||
fields.Datetime.to_string(datetime.today()),
|
||||
|
||||
@@ -138,7 +138,7 @@ class Currency_getter_interface(object):
|
||||
# We always have a warning when rate_date != today
|
||||
if rate_date.date() != datetime.today().date():
|
||||
rate_date_str = fields.Date.to_string(rate_date)
|
||||
msg = "The rate timestamp %s is not today's date %s" %
|
||||
(rate_date_str, fields.Date.today())
|
||||
msg = "The rate timestamp %s is not today's date %s" % \
|
||||
(rate_date_str, fields.Date.today())
|
||||
self.log_info = ("\n WARNING : %s") % msg
|
||||
_logger.warning(msg)
|
||||
|
||||
@@ -91,7 +91,7 @@ class CA_BOC_getter(Currency_getter_interface):
|
||||
"%s. Please check provider data format "
|
||||
"and/or source code." % curr)
|
||||
raise except_orm(_('Error !'),
|
||||
_('Exchange data format error for\
|
||||
Bank of Canada - %s !' % str(curr)))
|
||||
_('Exchange data format error for\
|
||||
Bank of Canada - %s !' % str(curr)))
|
||||
|
||||
return self.updated_currency, self.log_info
|
||||
|
||||
@@ -63,16 +63,15 @@ class RO_BNR_getter(Currency_getter_interface):
|
||||
adminch_ns = {'def': 'http://www.bnr.ro/xsd'}
|
||||
rate_date = dom.xpath('/def:DataSet/def:Body/def:Cube/@date',
|
||||
namespaces=adminch_ns)[0]
|
||||
rate_date_datetime = datetime.strptime(rate_date,
|
||||
'%Y-%m-%d') + \
|
||||
timedelta(days=1)
|
||||
rate_date_datetime = datetime.strptime(rate_date, '%Y-%m-%d') + \
|
||||
timedelta(days=1)
|
||||
self.check_rate_date(rate_date_datetime, max_delta_days)
|
||||
# we dynamically update supported currencies
|
||||
self.supported_currency_array = dom.xpath("/def:DataSet/def:Body/" + \
|
||||
"def:Cube/def:Rate/@currency",
|
||||
namespaces=adminch_ns)
|
||||
self.supported_currency_array = [x.upper() for x in \
|
||||
self.supported_currency_array]
|
||||
self.supported_currency_array = dom.xpath(
|
||||
"/def:DataSet/def:Body/" + "def:Cube/def:Rate/@currency",
|
||||
namespaces=adminch_ns)
|
||||
self.supported_currency_array = [
|
||||
x.upper() for x in self.supported_currency_array]
|
||||
self.supported_currency_array.append('RON')
|
||||
|
||||
self.validate_cur(main_currency)
|
||||
@@ -80,7 +79,7 @@ class RO_BNR_getter(Currency_getter_interface):
|
||||
main_curr_data = self.rate_retrieve(dom, adminch_ns, main_currency)
|
||||
# 1 MAIN_CURRENCY = main_rate RON
|
||||
main_rate = main_curr_data['rate_currency'] / \
|
||||
main_curr_data['rate_ref']
|
||||
main_curr_data['rate_ref']
|
||||
for curr in currency_array:
|
||||
self.validate_cur(curr)
|
||||
if curr == 'RON':
|
||||
@@ -92,8 +91,8 @@ class RO_BNR_getter(Currency_getter_interface):
|
||||
rate = curr_data['rate_ref'] / curr_data['rate_currency']
|
||||
else:
|
||||
rate = main_rate * curr_data['rate_ref'] / \
|
||||
curr_data['rate_currency']
|
||||
curr_data['rate_currency']
|
||||
self.updated_currency[curr] = rate
|
||||
_logger.debug("BNR Rate retrieved : 1 " + main_currency +
|
||||
' = ' + str(rate) + ' ' + curr)
|
||||
_logger.debug("BNR Rate retrieved : 1 " + main_currency + ' = ' +
|
||||
str(rate) + ' ' + curr)
|
||||
return self.updated_currency, self.log_info
|
||||
|
||||
Reference in New Issue
Block a user