Search code examples
odoo-8odooodoo-9

State in account invoice report


I have added some field in account invoice report and I want to make those fields be visible only in state 'paid' and 'open'. How can I achieve it?

<xpath expr="//span[@t-field='o.amount_total']/../.." position="after">
                <t t-if="get_report_setting('print_payment_info', o)">
                    <tr class="border-black">
                        <td>Paid to date</td>
                        <td class="text-right">
                            <span t-esc="o.amount_total-o.residual" t-esc-options='{"widget": "monetary", "display_currency": "o.currency_id",}'/>
                        </td>
                    </tr>
                    <tr>
                        <td><strong>Balance amount</strong></td>
                        <td class="text-right">
                            <span t-field="o.residual" t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/>
                        </td>
                    </tr>
                </t>
            </xpath>

Solution

  • To archive this use t-if

    <xpath expr="//span[@t-field='o.amount_total']/../.." position="after">
        <t t-if="o.state == 'open' or o.state == 'paid'">
            <t t-if="get_report_setting('print_payment_info', o)">
                <tr class="border-black">
                    <td>Paid to date</td>
                    <td class="text-right">
                        <span t-esc="o.amount_total-o.residual" t-esc-options='{"widget": "monetary", "display_currency": "o.currency_id",}'/>
                    </td>
                </tr>
                <tr>
                    <td><strong>Balance amount</strong></td>
                    <td class="text-right">
                        <span t-field="o.residual" t-field-options='{"widget": "monetary", "display_currency": "o.currency_id"}'/>
                    </td>
                </tr>
            </t>
        </t>
     </xpath>