Goodnight,
I have a sql query that returns data from a (self.env.cr.dictfetchall ()), the data is returned correctly, but I don't know how to pass the data to a qweb report. I'm trying:
pass it as if it were a variable but it seems that it must be a model field, what type should the fields be? or if there is another way to pass the data to it.
odoo11
Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_qweb/qweb.py", line 345, in _compiled_fn return compiled(self, append, new, options, log) File "<template>", line 1, in template_1206_74 File "<template>", line 2, in body_call_content_73 File "<template>", line 3, in foreach_72 File "<template>", line 4, in body_call_content_71 AttributeError: 'wizard.comprobantes.detalle.formato' object has no attribute 'all_lines' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1620, in report_download response = self.report_routes(reportname, docids=docids, converter='pdf') File "/usr/lib/python3/dist-packages/odoo/http.py", line 515, in response_wrap response = f(*args, **kw) File "/mnt/extra-addons/report_xlsx/controllers/main.py", line 43, in report_routes reportname, docids, converter, **data File "/usr/lib/python3/dist-packages/odoo/http.py", line 515, in response_wrap response = f(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1569, in report_routes pdf = report.with_context(context).render_qweb_pdf(docids, data=data)[0] File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_actions_report.py", line 637, in render_qweb_pdf html = self.with_context(context).render_qweb_html(res_ids, data=data)[0] File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_actions_report.py", line 675, in render_qweb_html return self.render_template(self.report_name, data), 'html' File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_actions_report.py", line 479, in render_template return view_obj.render_template(template, values) File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 1211, in render_template return self.browse(self.get_view_id(template)).render(values, engine) File "/usr/lib/python3/dist-packages/odoo/addons/web_editor/models/ir_ui_view.py", line 27, in render return super(IrUiView, self).render(values=values, engine=engine) File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_ui_view.py", line 1220, in render return self.env[engine].render(self.id, qcontext) File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 57, in render return super(IrQWeb, self).render(id_or_xml_id, values=values, **context) File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_qweb/qweb.py", line 274, in render self.compile(template, options)(self, body.append, values or {}) File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_qweb/qweb.py", line 352, in _compiled_fn raise QWebException("Error to render compiling AST", e, path, node and etree.tostring(node[0], encoding='unicode'), name) odoo.addons.base.ir.ir_qweb.qweb.QWebException: 'wizard.comprobantes.detalle.formato' object has no attribute 'all_lines' Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_qweb/qweb.py", line 345, in _compiled_fn return compiled(self, append, new, options, log) File "<template>", line 1, in template_1206_74 File "<template>", line 2, in body_call_content_73 File "<template>", line 3, in foreach_72 File "<template>", line 4, in body_call_content_71 AttributeError: 'wizard.comprobantes.detalle.formato' object has no attribute 'all_lines' Error to render compiling AST AttributeError: 'wizard.comprobantes.detalle.formato' object has no attribute 'all_lines' Template: 1206 Path: /templates/t/t/t/t/div/table/tbody/t Node: <t t-foreach="doc.all_lines" t-as="det"> <tr style="border:solid grey 4px"> <td><span t-esc="det.number"/></td> <td><span t-esc="det.product_id"/></td> <td><span t-esc="det.price_total"/></td> </tr> </t>
class WizardInvoiceLineReport(models.TransientModel):
_name = 'wizard.comprobantes.detalle.formato'
fecha_inicio = fields.Date("Fecha de Inicio")
fecha_fin = fields.Date("Fecha Fin")
company_currency_id = fields.Many2one('res.currency')
company_id = fields.Many2one('res.company', string='Company', readonly=True, default=lambda self: self.env.user.company_id)
def imprimir(self):
all_lines=self._sql_get_line_for_report(self.fecha_inicio,self.fecha_fin)
return self.env.ref('report_comprobantes_efact.linea_report_formato_pdf').report_action(self)
report.xml
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="template_report_formato_pdf">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="doc">
<t t-call="web.external_layout">
<div class="page">
<h1>FORMATO</h1>
<div class="row">
<table>
<tr class="border-black">
<td><strong>Moneda</strong></td>
<td>
<span t-esc="doc.company_currency_id"/>
</td>
</tr>
<tr class="border-black">
<td><strong>RUC</strong></td>
<td>
<span t-esc="doc.company_id.vat"/>
</td>
</tr>
<tr class="border-black">
<td><strong>APELLIDOS Y NOMBRES, DENOMINACION O RAZON SOCIAL</strong></td>
<td>
<span t-esc="doc.company_id.name"/>
</td>
</tr>
</table>
</div>
<table class="table table-condensed" >
<thead>
<tr>
<th>CUO</th>
<th>FECHA EMISION</th>
<th>GLOSA</th>
</tr>
</thead>
<tbody>
<t t-foreach="doc.all_lines" t-as="det">
<tr style="border:solid grey 4px">
<td><span t-esc="det.number"/></td>
<td><span t-esc="det.product_id"/></td>
<td><span t-esc="det.price_total"/></td>
</tr>
</t>
</tbody>
</table>
</div>
</t>
</t>
</t>
</template>
</data>
</odoo>