asset: fixed possible exceptions
This commit is contained in:
parent
43f7f7ed0f
commit
8f226427d6
1 changed files with 33 additions and 32 deletions
65
asset.py
65
asset.py
|
@ -315,23 +315,24 @@ class Asset(SymbolMixin, ModelSQL, ModelView):
|
||||||
"""
|
"""
|
||||||
cursor = Transaction().connection.cursor()
|
cursor = Transaction().connection.cursor()
|
||||||
|
|
||||||
(query, tab_asset) = cls.get_name_symbol_sql()
|
|
||||||
query.where = tab_asset.id.in_([x.id for x in assets])
|
|
||||||
|
|
||||||
cursor.execute(*query)
|
|
||||||
records = cursor.fetchall()
|
|
||||||
result = {x: {y.id: None for y in assets} for x in names}
|
result = {x: {y.id: None for y in assets} for x in names}
|
||||||
|
|
||||||
for record in records:
|
(query, tab_asset) = cls.get_name_symbol_sql()
|
||||||
values = {
|
if assets:
|
||||||
'name': record[1],
|
query.where = tab_asset.id.in_([x.id for x in assets])
|
||||||
'product_uom': record[2],
|
cursor.execute(*query)
|
||||||
'symbol': record[3],
|
records = cursor.fetchall()
|
||||||
'asset_symbol': record[0],
|
|
||||||
}
|
|
||||||
|
|
||||||
for name in names:
|
for record in records:
|
||||||
result[name][record[0]] = values[name]
|
values = {
|
||||||
|
'name': record[1],
|
||||||
|
'product_uom': record[2],
|
||||||
|
'symbol': record[3],
|
||||||
|
'asset_symbol': record[0],
|
||||||
|
}
|
||||||
|
|
||||||
|
for name in names:
|
||||||
|
result[name][record[0]] = values[name]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -369,32 +370,32 @@ class Asset(SymbolMixin, ModelSQL, ModelView):
|
||||||
def get_rate_data(cls, assets, names):
|
def get_rate_data(cls, assets, names):
|
||||||
""" get date and rate of asset
|
""" get date and rate of asset
|
||||||
"""
|
"""
|
||||||
Asset2 = Pool().get('investment.asset')
|
|
||||||
|
|
||||||
cursor = Transaction().connection.cursor()
|
cursor = Transaction().connection.cursor()
|
||||||
(query, tab_asset) = cls.get_rate_data_sql()
|
|
||||||
query.where = tab_asset.id.in_([x.id for x in assets])
|
|
||||||
|
|
||||||
cursor.execute(*query)
|
|
||||||
records = cursor.fetchall()
|
|
||||||
|
|
||||||
result = {x: {y.id: None for y in assets} for x in names}
|
result = {x: {y.id: None for y in assets} for x in names}
|
||||||
|
|
||||||
for record in records:
|
if assets:
|
||||||
(id1, rate1, date1, id_rate) = record
|
(query, tab_asset) = cls.get_rate_data_sql()
|
||||||
|
query.where = tab_asset.id.in_([x.id for x in assets])
|
||||||
|
curr_digits = {x.id: x.currency_digits for x in assets}
|
||||||
|
|
||||||
asset = Asset2(id1)
|
cursor.execute(*query)
|
||||||
exp = Decimal(Decimal(1) / 10 ** (asset.currency_digits or 4))
|
records = cursor.fetchall()
|
||||||
|
|
||||||
values = {
|
for record in records:
|
||||||
'rate': record[1].quantize(exp),
|
(id1, rate1, date1, id_rate) = record
|
||||||
'date': record[2],
|
|
||||||
'change_symbol': id_rate,
|
|
||||||
}
|
|
||||||
|
|
||||||
for name in names:
|
curr_dig = curr_digits.get(id1, 4)
|
||||||
result[name][record[0]] = values[name]
|
exp = Decimal(Decimal(1) / 10 ** curr_dig)
|
||||||
|
|
||||||
|
values = {
|
||||||
|
'rate': record[1].quantize(exp),
|
||||||
|
'date': record[2],
|
||||||
|
'change_symbol': id_rate,
|
||||||
|
}
|
||||||
|
|
||||||
|
for name in names:
|
||||||
|
result[name][record[0]] = values[name]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
Loading…
Reference in a new issue