I have a report that should print multiple payslips in one paper.
Using an AbstractModel, the `_get_report_values(self, docids, data=None)` function returns the value data, where data is a list containing all the values I want to loop through for each report.
The idea was to use flexbox and arrange 3 columns in one paper using bootstrap classes.
This idea works well for about 5 payslips but after that it just prints 1 payslip occupying the full page.
I am looking for any possible ways of implementing this.
The sample of the python code is:
```python
from odoo import models, api
class AlpharamaPayslip(models.AbstractModel):
    _name = 'report.employee_allowances.alpharama_payslip'
    _description = 'Alpharama Payslip'
    @api.model
    def _get_report_values(self, docids, data=None):
        docs = self.env['hr.payslip'].browse(docids)
        data = []
        for doc in docs:
            val = {
                'name': doc.employee_id.name,
                'department': doc.employee_id.department_id.name,
                'payroll': doc.employee_id.payroll_no,
               }
        data.append(val)
    return {
       'docs':docs,
       'data': data,
       }
```
I have managed to create this functionality with this XML code below:
I have removed some part that are not that necessary and maintaining just a bare template.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data noupdate="0">
        <template id="alpharama_payslip">
            <t t-call="web.html_container">
                <t t-call="web.external_layout">
                    <div class="page d-flex" style="flex-wrap: wrap;">
                        <div class="row">
                            <t t-foreach="data" t-as="d">
                                <div class="col-4" style="height: 100%">
                                    <div style="border-bottom: 1px solid black; padding: 10px 0;">
                                        <div>
                                            Name:
                                            <t t-esc="d['name']" />
                                        </div>
                                        <div>
                                            Department:
                                            <t t-esc="d['department']" />
                                        </div>
                                    </div>
                                </div>
                            </t>
                        </div>
                    </div>
                </t>
            </t>
        </template>
    </data>
</odoo>
Odoo is the world's easiest all-in-one management software.
 It includes hundreds of business apps:
- CRM
- e-Commerce
- Comptabilité
- Inventaire
- PoS
- Project
- MRP
Cette question a été signalée
            
                5858
                
                    Vues
                
            
        
    Vous appréciez la discussion ? Ne vous contentez pas de lire, rejoignez-nous !
Créez un compte dès aujourd'hui pour profiter de fonctionnalités exclusives et échanger avec notre formidable communauté !
S'inscrire| Publications associées | Réponses | Vues | Activité | |
|---|---|---|---|---|
|  | 1 oct. 24  | 3873 | ||
|  | 1 juin 20  | 5196 | ||
|  | 1 mars 24  | 5399 | ||
|  | 0 juil. 21  | 2604 | ||
|  | 1 févr. 21  | 3470 | 
