Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
452 Vistas

Al querer imprimir una orden de cotización aparece un error donde me dice que me comunique con mi servidor, recién cambiamos a versión 18

Avatar
Descartar
Mejor respuesta

justo tengo el mismo problema y me sale el siguiente error:


Error de servidor de Odoo

RPC_ERROR

Odoo Server Error

Occured on 3bgenergy.odoo.com on model mail.compose.message and id 26 on 2025-02-28 00:59:23 GMT

Traceback (most recent call last):
  File "<1114>", line 400, in template_1114
  File "<1114>", line 74, in template_1114_content
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_qweb.py", line 2476, in _get_widget
    content = converter.value_to_html(value, field_options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_qweb_fields.py", line 471, in value_to_html
    fmt = "%.{0}f".format(options.get('decimal_places', display_currency.decimal_places))
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'decimal_places'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/18.0/odoo/http.py", line 1962, in _transactioning
    return service_model.retrying(func, env=self.env)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/service/model.py", line 137, in retrying
    result = func()
             ^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/http.py", line 1929, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/http.py", line 2177, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_http.py", line 329, in _dispatch
    result = endpoint(**request.params)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/http.py", line 727, in route_wrapper
    result = endpoint(self, *args, **params_ok)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/web/controllers/dataset.py", line 35, in call_kw
    return call_kw(request.env[model], method, args, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/api.py", line 517, in call_kw
    result = getattr(recs, name)(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/web/models/models.py", line 1016, in onchange
    snapshot1 = RecordSnapshot(record, fields_spec)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/web/models/models.py", line 1103, in __init__
    self.fetch(name)
  File "/home/odoo/src/odoo/18.0/addons/web/models/models.py", line 1112, in fetch
    lines = self.record[field_name]
            ~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/models.py", line 7011, in __getitem__
    return self._fields[key].__get__(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 3059, in __get__
    return super().__get__(records, owner)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 1236, in __get__
    self.recompute(record)
  File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 1463, in recompute
    apply_except_missing(self.compute_value, recs)
  File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 1436, in apply_except_missing
    func(records)
  File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 1485, in compute_value
    records._compute_field_value(self)
  File "/home/odoo/src/odoo/18.0/addons/mail/wizard/mail_compose_message.py", line 633, in _compute_field_value
    return super(MailComposer, self.with_context(prefetch_fields=False))._compute_field_value(field)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/models.py", line 5250, in _compute_field_value
    fields.determine(field.compute, self)
  File "/home/odoo/src/odoo/18.0/odoo/fields.py", line 110, in determine
    return needle(*args)
           ^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/mail/wizard/mail_compose_message.py", line 259, in _compute_attachment_ids
    rendered_values = composer._generate_template_for_composer(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/mail/wizard/mail_compose_message.py", line 1298, in _generate_template_for_composer
    template_values = self.template_id._generate_template(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/mail/models/mail_template.py", line 567, in _generate_template
    template._generate_template_attachments(
  File "/home/odoo/src/odoo/18.0/addons/mail/models/mail_template.py", line 297, in _generate_template_attachments
    report_content, report_format = self.env['ir.actions.report']._render_qweb_pdf(report, [res_id])
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_actions_report.py", line 1012, in _render_qweb_pdf
    collected_streams, report_type = self._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/account/models/ir_actions_report.py", line 75, in _pre_render_qweb_pdf
    return super()._pre_render_qweb_pdf(report_ref, res_ids=res_ids, data=data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_actions_report.py", line 1003, in _pre_render_qweb_pdf
    return self._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids), 'pdf'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/sale_pdf_quote_builder/models/ir_actions_report.py", line 17, in _render_qweb_pdf_prepare_streams
    result = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/enterprise/18.0/account_followup/models/ir_actions_report.py", line 12, in _render_qweb_pdf_prepare_streams
    res = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/account_edi/models/ir_actions_report.py", line 14, in _render_qweb_pdf_prepare_streams
    collected_streams = super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/addons/account/models/ir_actions_report.py", line 22, in _render_qweb_pdf_prepare_streams
    return super()._render_qweb_pdf_prepare_streams(report_ref, data, res_ids=res_ids)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_actions_report.py", line 853, in _render_qweb_pdf_prepare_streams
    html = self.with_context(**additional_context)._render_qweb_html(report_ref, all_res_ids_wo_stream, data=data)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_actions_report.py", line 1091, in _render_qweb_html
    return self._render_template(report.report_name, data), 'html'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_actions_report.py", line 769, in _render_template
    return view_obj._render_template(template, values).encode()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_ui_view.py", line 2197, in _render_template
    return self.env['ir.qweb']._render(template, values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/tools/profiler.py", line 306, in _tracked_method_render
    return method_render(self, template, values, **options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/ir_qweb.py", line 606, in _render
    result = ''.join(rendering)
             ^^^^^^^^^^^^^^^^^^
  File "<1260>", line 34, in template_1260
  File "<1260>", line 23, in template_1260_content
  File "<1006>", line 80, in template_1006
  File "<1006>", line 62, in template_1006_content
  File "<1006>", line 50, in template_1006_t_call_0
  File "<1005>", line 1518, in template_1005
  File "<1005>", line 1500, in template_1005_content
  File "<1005>", line 1083, in template_1005_t_call_0
  File "<1114>", line 408, in template_1114
odoo.addons.base.models.ir_qweb.QWebException: Error while render the template
AttributeError: 'NoneType' object has no attribute 'decimal_places'
Template: sale.document_tax_totals
Path: /t/t[2]/tr/td[2]/span
Node: <span t-att-class="oe_subtotal_footer_separator" t-out="subtotal[\'base_amount_currency\']" t-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: currency}"/>

The above server error caused the following client error:
OwlError: The following error occurred in onWillStart: "Odoo Server Error"
    Error
        at wrapError (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:1091:139)
        at onWillStart (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:1096:117)
        at useModel (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:5716:104)
        at MailComposerFormController.setup (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:8732:99)
        at MailComposerFormController.setup (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:16370:620)
        at MailComposerFormController.setup (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:21622:240)
        at MailComposerFormController.setup (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:16385:980)
        at ComponentNode (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:1049:202)
        at https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:1610:6
        at View.slot1 (eval at compile (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:1564:421), <anonymous>:15:36)

Caused by: RPC_ERROR: Odoo Server Error
    RPC_ERROR
        at makeErrorFromResponse (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:3142:163)
        at XMLHttpRequest.<anonymous> (https://3bgenergy.odoo.com/web/assets/facc327/web.assets_web.min.js:3147:13)

Avatar
Descartar