Odoo Help


"Error! You cannot define the decimal precision of 'Account' as greater than the rounding factor of the company's main currency" [Closed]

on 3/15/14, 9:59 AM 3,963 views

The Question has been closed

on 05/12/2014 06:42:37

My OpenERP 7 server was working normally, but now when I want to login it displays me this error and can't login :

OpenERP Server Error

Client Traceback (most recent call last):
  File "/opt/openerp/openerp/addons/web/http.py", line 204, in dispatch
    response["result"] = method(self, **self.params)
  File "/opt/openerp/openerp/addons/web/controllers/main.py", line 867, in authenticate
    req.session.authenticate(db, login, password, env)
  File "/opt/openerp/openerp/addons/web/session.py", line 115, in authenticate
    uid = self.proxy('common').authenticate(db, login, password, env)
  File "/opt/openerp/openerp/addons/web/session.py", line 30, in proxy_method
    result = self.session.send(self.service_name, method, *args)
  File "/opt/openerp/openerp/addons/web/session.py", line 103, in send
    raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)

Server Traceback (most recent call last):
  File "/opt/openerp/openerp/addons/web/session.py", line 89, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/opt/openerp/openerp/netsvc.py", line 292, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/opt/openerp/openerp/service/web_services.py", line 433, in dispatch
    return fn(*params)
  File "/opt/openerp/openerp/service/web_services.py", line 444, in exp_authenticate
    res_users = pooler.get_pool(db).get('res.users')
  File "/opt/openerp/openerp/pooler.py", line 49, in get_pool
    return get_db_and_pool(db_name, force_demo, status, update_module)[1]
  File "/opt/openerp/openerp/pooler.py", line 33, in get_db_and_pool
    registry = RegistryManager.get(db_name, force_demo, status, update_module)
  File "/opt/openerp/openerp/modules/registry.py", line 193, in get
  File "/opt/openerp/openerp/modules/registry.py", line 219, in new
    openerp.modules.load_modules(registry.db, force_demo, status, update_module)
  File "/opt/openerp/openerp/modules/loading.py", line 350, in load_modules
    force, status, report, loaded_modules, update_module)
  File "/opt/openerp/openerp/modules/loading.py", line 256, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/opt/openerp/openerp/modules/loading.py", line 188, in load_module_graph
    load_data(module_name, idref, mode)
  File "/opt/openerp/openerp/modules/loading.py", line 76, in <lambda>
    load_data = lambda *args: _load_data(cr, *args, kind='data')
  File "/opt/openerp/openerp/modules/loading.py", line 124, in _load_data
    tools.convert_xml_import(cr, module_name, fp, idref, mode, noupdate, report)
  File "/opt/openerp/openerp/tools/convert.py", line 954, in convert_xml_import
  File "/opt/openerp/openerp/tools/convert.py", line 847, in parse
    self._tags[rec.tag](self.cr, rec, n)
  File "/opt/openerp/openerp/tools/convert.py", line 814, in _tag_record
    id = self.pool.get('ir.model.data')._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/opt/openerp/openerp/addons/base/ir/ir_model.py", line 967, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/opt/openerp/openerp/addons/decimal_precision/decimal_precision.py", line 47, in create
    res = super(decimal_precision, self).create(cr, uid, data, context=context)
  File "/opt/openerp/openerp/osv/orm.py", line 4486, in create
    self._validate(cr, user, [id_new], context)
  File "/opt/openerp/openerp/osv/orm.py", line 1556, in _validate
    raise except_orm('ValidateError', '\n'.join(error_msgs))
except_orm: ('ValidateError', u"Une erreur est apparue lors de la validation du/des champ(s) digits: Error! You cannot define the decimal precision of 'Account' as greater than the rounding factor of the company's main currency")

Any help will be very appreciated.....


Med Said BARA

--Med Said BARA--

| 5 5 7
--Med Said BARA--
Med Said BARA
On 3/15/14, 3:10 PM


Delete or Cut and Paste the folder "decimal_precision" (paste it anywhere, you can restore it later).

try to login, if it's OK, restore the folder to it's location under .../addons/..., and correct your configuration as indicated in the error message: Decrease the Decimal Precision of 'account' you have changed before or increase the rounding factor of the company currency.

You can change it by opening: Settings ----> Technical ---> Database Structure ----> Decimal Accuracy (for Account)

Account Dec Precision

And under : Settings ---> Companies ---> Companies ----> Your Company ---> Configuration (TAB) and do as follow

image description

Ok, let's do it another way.

If you are familar with pgAdminIII:

(Instead of pgAdminIII, you can use any other tools to browse and edit your database Tables)

Connect to your database, edit the table decimal_precision

decimal_precision table

Save your modifications and restart your server.

Best regards

decimal_precision module cannot be deleted because other modules like account use it, so the server will not run normally, it will show you "no handler" message.

on 3/17/14, 5:55 AM

Thank you Mohamed, I fixed it with pgadmin, ALLAH be with you.

on 3/17/14, 10:30 AM

Thanks for the Vote . Salam

Med Said BARA
on 3/17/14, 1:11 PM

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

0 follower(s)


Asked: 3/15/14, 9:59 AM
Seen: 3963 times
Last updated: 3/16/15, 8:10 AM