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:
- 客户关系管理
- e-Commerce
- 会计
- 库存
- PoS
- Project
- MRP
此问题已终结
5168
查看
相关帖文 | 回复 | 查看 | 活动 | |
---|---|---|---|---|
|
1
10月 24
|
3281 | ||
|
1
6月 20
|
4627 | ||
|
1
3月 24
|
4882 | ||
|
0
7月 21
|
2124 | ||
|
1
2月 21
|
2875 |