在 qweb odoo 报告中添加一行

Add a row to a qweb odoo report

我有一个 qweb 报告,我想在其中添加一行,其中包含报告中每个列的总数: 这是我的 qweb 代码;关于创建工资单报告,它包含 11 列,我想按列

添加一行总计
   <data>

<t t-call="report.html_container">
    <t t-foreach="docs" t-as="o">
        <t t-call="report.external_layout">
            <div class="page" >
                <br></br><br></br>
                <div class="row" style="border: 1px solid black">
                    <div class="col-md-12 text-center"><h2>JOURNAL DE PAIE</h2></div>
                    <div class="col-md-12 text-center"><p>Période du <span t-esc="data['form']['date_start']"/> au <span t-esc="data['form']['date_end']"/></p></div>
                </div>
                <br></br><br></br>
                <div class="row">
                <table class="table table-striped table-bordered table-condensed table-hover" >
                        <thead><!-- table head-->
                            <tr style="background-color: #BEC5C0;">
                                <th>Periode</th>
                                <th>Matricule</th>
                                <th>Employé</th>
                                <th>BASE</th>
                                <th>Primes</th>
                                <th>BRUT</th>
                                <th>CNSS</th>
                                <th>SAL IMPO</th>
                                <th>IRPP</th>
                                <th>Avance/pret</th>
                                <th>NET A PAYER</th>

                             </tr>
                      </thead>
                    <tbody>
                        <tr  t-foreach="get_all_payslip_per_period(data['form']['date_start'],data['form']['date_end'])" t-as="p" >
                                <td style="text-align:center;" t-esc="get_month_name(p.date_from)"></td>
                                <td t-esc="p.employee_id.id"></td>
                                <td t-esc="p.employee_id.name"></td> 
                                <t t-foreach="get_payslip_lines(p.line_ids)" t-as="l">
                                   <t t-if="l.code=='BASE'">
                                        <t t-set="base" t-value="l.total"/>
                                        <td t-esc="base"></td> 
                                    </t>
                                    </t>
                                    <!-- primes -->
                                    <td>
                                            <div t-foreach="get_primes_values(p)" t-as="pr" >
                                                <div style="text-align:left;background-color: #BEC5C0;" t-esc="pr['code']"></div>
                                                <div style="text-align:right;background-color:#CDD8D0;"  t-esc="pr['val']"></div>                                                   
                                            </div>

                                    </td>
                                <t t-foreach="get_payslip_lines(p.line_ids)" t-as="l">
                                <t t-if="l.code=='BRUT' ">
                                        <t t-set="brut" t-value="l.total"/>
                                        <td t-esc="brut"></td> 
                                    </t>


                                    <t t-if="l.code=='CNSS' ">
                                        <t t-set="cnss" t-value="l.total"/>
                                        <td t-esc="cnss"></td> 
                                    </t> 


                                     <t t-if="l.code=='NET' ">
                                        <t t-set="net" t-value="l.total"/>
                                        <td t-esc="net"></td> 
                                    </t> 


                                    <t t-if="l.code=='IRPP' ">
                                        <t t-set="irpp" t-value="l.total"/>
                                        <td t-esc="irpp"></td>       
                                    </t> 

                                </t>
                                    <td t-esc="p.avance_amount"></td>


                                    <td t-esc="get_total_by_rule_category(p, 'AUTRE')-get_total_by_rule_category(p, 'RCC')-(p.avance_amount)"></td>


                        </tr>
                </tbody> 
                </table>


                </div>
            </div>
        </t>
    </t>
</t>

</data>

试试这个:

<t t-set="brut" t-value="0"/> <!-- initialize the variable-->
<t t-foreach="get_payslip_lines(p.line_ids)" t-as="l">
    <t t-if="l.code=='BRUT' ">
        <t t-set="brut" t-value="brut + l.total"/>
     </t>
</t>
<td t-esc="brut"></td> <!-- To show it on the report-->

之前初始化你的变量:

<tr  t-foreach="get_all_payslip_per_period(data['form']['date_start'],data['form']['date_end'])" t-as="p" >

在添加包含总计的新 tr 之前求和:

    </tr>
    <tr>
        <td><t t-esc='Total1'/></td>
        ...
    </tr>
</tbody>