Skip to Content
Menu
This question has been flagged

I'm on Odoo v16, running on Odoo.sh. 

Connected with online bank, and company is running on multiple currency. 

When performing bank reconciliation, the following error is raised when the transaction is fetched from the online bank. 

The error happens to the CAD, the company default currency. But the transactions from the bank account with currency USD behave normal. 

After did some research, the error is caused by the Odoo base module, and in teh monetary field. We're suspecting the "Amount in Currency" field. But everything looks normal when comparing the error transaction with the normal transaction. 

Have you encounter this during bank reconciliation? What cause the issue? How do you solve this? 


RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/api.py", line 983, in get
cache_value = field_cache[record._ids[0]]
KeyError:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/fields.py", line 1160, in __get__
value = env.cache.get(record, self)
File "/home/odoo/src/odoo/odoo/api.py", line 990, in get
raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: 'bank.rec.widget( 0x7f7162cdc7c0>,).lines_widget'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/
models.py", line 5119, in ensure_one
_id, = self._ids
ValueError: not enough values to unpack (expected 1, got 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 1583, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/src/odoo/odoo/service/model.py", line 134, in retrying
result = func()
File "/home/odoo/src/odoo/odoo/http.py", line 1610, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/odoo/http.py", line 1807, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/odoo/http.py", line 696, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 42, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/src/enterprise/account_accountant/models/bank_rec_widget.py", line 908, in onchange
return super(BankRecWidget, self.with_context(recursive_onchanges=False)).onchange(values, field_name, field_onchange)
File "/home/odoo/src/odoo/odoo/models.py", line 6520, in onchange
snapshot1 = Snapshot(record, nametree)
File "/home/odoo/src/odoo/odoo/models.py", line 6280, in __init__
self.fetch(name)
File "/home/odoo/src/odoo/odoo/models.py", line 6290, in fetch
self[name] = record[name]
File "/home/odoo/src/odoo/odoo/models.py", line 5858, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/home/odoo/src/odoo/odoo/fields.py", line 1209, in __get__
self.compute_value(recs)
File "/home/odoo/src/odoo/odoo/fields.py", line 2326, in compute_value
super().compute_value(records)
File "/home/odoo/src/odoo/odoo/fields.py", line 1368, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/odoo/models.py", line 4193, in _compute_field_value
fields.determine(field.compute, self)
File "/home/odoo/src/odoo/odoo/fields.py", line 97, in determine
return needle(*args)
File "/home/odoo/src/enterprise/account_accountant/models/bank_rec_widget.py", line 385, in _compute_lines_widget
'is_zero': currency.is_zero(value),
File "/home/odoo/src/odoo/odoo/addons/base/models/res_currency.py", line 246, in is_zero
self.ensure_one()
File "/home/odoo/src/odoo/odoo/models.py", line 5122, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: res.currency()

The above server error caused the following client error:
null

Avatar
Discard

Hello,

I had the same problem today, I was able to solve it with what was posted here.


You have to look for ALL the accounting entries that have the previous account and update it to the new account that has the bank journal, considering all the statuses of the entries: draft, cancelled and published.


There should not be an accounting entry with the previous account, even if they are already reconciled.

Regards.

Author Best Answer

We've got the answer. 

It's due to the unreconciled transactions having been updated to a different account. Multiple accounts cause the conflict. 

Avatar
Discard

Hi Simon. Can you please describe more in detail? Thanks in advance

Hello,

I had the same problem today, I was able to solve it with what was posted here.

You have to look for ALL the accounting entries that have the previous account and update it to the new account that has the bank journal, considering all the statuses of the entries: draft, cancelled and published.

There should not be an accounting entry with the previous account, even if they are already reconciled.

Regards.

Best Answer

Hi Simon, we have exactly the same issue. How did you fixed the existing bank statements?

Avatar
Discard
Related Posts Replies Views Activity
1
Jan 24
1981
0
Mar 23
2739
1
Nov 22
2439
0
Feb 22
1815
0
Mar 15
4199