Ошибка последовательности Odoo13 в hr_module при создании нового emplyoee - PullRequest
0 голосов
/ 26 марта 2020

привет, я действительно столкнулся с проблемой, я следовал учебному пособию, как показано в этой ссылке \ https://www.youtube.com/watch?v=qyRhjyp1MeE, и в коде нет ошибки, но когда я создаю нового сотрудника, это не генерирует ссылочный номер. Ссылочный номер остается «Новым» в древовидном представлении и представлении формы для созданного сотрудника. Может ли кто-нибудь помочь мне, пожалуйста?

hr.py:

name_seq = fields.Char(string='Order Reference', required=True, copy=False, readonly=True, index=True, default=lambda self: _('New'))

@api.model
def create(self, vals):
    if vals.get('name_seq', _('New')) == _('New'):
        vals['name_seq'] = self.env['ir.sequence'].next_by_code('hr.employee.sequence', sequence_date=seq_date) or _('New')

result = super(HrEmployeePrivate, self).create(vals)
return result

последовательность. xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
    <!-- Sequences for transfer.order -->
        <record id="seq_hr_employee" model="ir.sequence">
            <field name="name">Employee Sequence</field>
            <field name="code">hr.employee.sequence</field>
            <field name="prefix">EMP</field>
            <field name="padding">3</field>
            <field name="company_id" eval="False"/>
        </record>
    </data>
</odoo>

hr_views. xml:

<div class="oe_title">
    <h1>
        <field name="name_seq" readonly ="1"/>
    </h1>
    <h2>
        <field name="name" placeholder="Employee's Name" required="True"/>
    </h2>
    <h3>
        <field name="job_title" placeholder="Job Position" />
    </h3>
    <field name="category_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" placeholder="Tags" groups="hr.group_hr_manager"/>
</div>

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Проблема в том, что ваша последовательность не генерируется, это <field name="name_seq" readonly ="1"/>, где вы проверили условие if vals.get('name_seq', _('New')) == _('New'):, где на read-only field вы не сможете ничего написать, и при этом для генерации последовательности она не может удовлетворить вашу условие.

Либо измените условие следующим образом:

if 'name_seq' not in vals or vals['name_seq'] == _('New'):
0 голосов
/ 31 марта 2020

Похоже, из-за условия if он не сможет сгенерировать последовательность.

Вывести значения и проверить значение поля и на основе этого условия if в вашем методе create.

...