Hello, i am trying to create a custom customer statement template in odoo17 by inheriting the exosting customer statement but i keep getting this error in the terminal whenever i click to print, i have reviewed my code, given it to AI and still nothing but the same error:
File "<2191>", line 570, in template_2191
odoo.addons.base.models.ir_qweb.QWebException: Error while render the template
TypeError: 'NoneType' object is not subscriptable
Template: zra_smart_invoice.report_customer_statement_aged
Path: /t/t/t/t/div/div[2]/table/thead/tr/th[5]/span
Node: <span t-out="env.company.currency_id.symbol"/>
in odoo but i need help
here is the custom XML code
<!-- Customer Statement Report -->
<record id="action_print_customer_statement_aged" model="ir.actions.report">
<field name="name">Print Aged Statement</field>
<field name="model">res.partner</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">zra_smart_invoice.report_customer_statement_aged</field>
<field name="report_file">zra_smart_invoice.report_customer_statement_aged</field>
<field name="print_report_name">'Statement - %s' % (object.name)</field>
<field name="binding_model_id" ref="model_res_partner"/>
<field name="binding_type">report</field>
</record>
<template id="report_customer_statement_aged" inherit_id="l10n_account_customer_statements.customer_statements">
<xpath expr="//h2[contains(text(), 'CUSTOMER STATEMENTS')]" position="replace">
<h2 style="font-size: 16px;">Customer Statement</h2>
</xpath>
<xpath expr="//div[contains(@class, 'row') and .//label[@for='balance_due']]" position="after">
<div class="row mt32">
<div class="col-12">
<strong style="font-size: 1.1em;">Aging Analysis</strong>
<table class="table table-sm mt8">
<thead>
<tr>
<th class="text-right">Current</th>
<th class="text-right">1-30 Days</th>
<th class="text-right">31-60 Days</th>
<th class="text-right">61-90 Days</th>
<th class="text-right">Over 90 Days</th>
<th class="text-right">Total Due</th>
</tr>
</thead>
<tbody>
<t t-set="aging_data" t-value="p._get_aging_data()"/>
<tr>
<td class="text-right">
<span t-esc="aging_data.get('current', 0.0)"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-right">
<span t-esc="aging_data.get('1-30', 0.0)"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-right">
<span t-esc="aging_data.get('31-60', 0.0)"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-right">
<span t-esc="aging_data.get('61-90', 0.0)"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-right">
<span t-esc="aging_data.get('over_90', 0.0)"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
<td class="text-right">
<span t-esc="aging_data.get('total_due', 0.0)"
t-options="{'widget': 'monetary', 'display_currency': env.company.currency_id}"/>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</xpath>
<xpath expr="//th[contains(., 'Balance') and span[contains(@t-out, 'currency_id')]]" position="replace">
<th class="text-end">Balance <span t-out="env.company.currency_id.symbol"/></th>
</xpath>
</template>