#odoo #odoo-13
#odoo #odoo-13
Вопрос:
Я создаю пользовательский отчет PDF в odoo. Пользовательский отчет должен представлять рабочий контракт сотрудника, основанный на контракте odoo. Для этого у меня есть два файла, employee_contract_report.xml и файл отчета contract.xml . Отчет создан, и большинство полей отображаются так, как они должны, за исключением поля даты начала и полей для рабочего времени и нормы рабочего времени. Это также единственные поля, которые я получаю через contract_id, а не напрямую через модель employee. Я предполагаю, что ошибка кроется где-то там. У кого-нибудь есть идея, почему это не работает? Большое спасибо!
employee_contract_report.xml выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<report
id="report_employee_contract"
string="Employee Contract"
model="hr.employee"
report_type="qweb-pdf"
name="mycompany.report_employee_contract"
file="mycompany.report_employee_contract"
/>
</odoo>
employee_contract_report.xml выглядит так (фрагмент с ошибкой):
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_employee_contract">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.external_layout">
<style>
.thick {
font-weight: bold;
}
</style>
<h1>Leih-Arbeitsvertrag</h1>
<div class="page">
<!-- Company Informations -->
<table id="company-infos" class="table table-sm table-bordered">
<tr>
<td>
<strong>zwischen</strong>
</td>
<td>
<div>
<span t-field="o.company_id.name"/>
</div>
<div>
<span t-field="o.company_id.street"/>
</div>
<div>
<span t-field="o.company_id.street2" t-if="o.company_id.street2"/>
</div>
<div>
<span t-field="o.company_id.city"/>
<span t-field="o.company_id.state_id"/>
<span t-field="o.company_id.zip"/>
</div>
<div>
<span t-field="o.company_id.country_id"/>
</div>
</td>
</tr>
</table>
<table id="employee-infos" class="table table-sm table-bordered">
<tr>
<td>
<strong>und</strong>
</td>
<td>
<div>
<span t-field="o.name"/>
</div>
<div>
<span t-field="o.address_home_id"/>
</div>
</td>
</tr>
</table>
</div>
<h2>Arbeitsbeginn</h2>
<div>
Das Arbeitsverhältnis beginnt am<span t-field="o.contract_id.date_start"/>.
</div>
<h2>Arbeitszeit</h2>
<div>
Die regelmässige wöchentliche Normalarbeitszeit beträgt
<span t-field="o.contract_id.resource_calendar_id.full_time_required_hours"/>
Stunden bei einem Anstellungspensum
von<span t-field="o.contract_id.resource_calendar_id.work_time_rate"/>.
</div>
</t>
</t>
</t>
</template>
</odoo>
Это вывод, в котором отсутствует начальная дата:
Комментарии:
1. Является ли ваш тестовый контракт «открытым»? Поле
contract_id
будет записано, когда контракт будет открыт. Таким образом, поле может быть просто пустым.2. Код выглядит нормально.
3. Ха, действительно, контракт не был открыт и запущен! Лучшее исправление, когда-либо существовавшее 🙂 Спасибо