Как отобразить дату в отчете PDF в odoo 13?

#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. Ха, действительно, контракт не был открыт и запущен! Лучшее исправление, когда-либо существовавшее 🙂 Спасибо