Як застосувати Послідовність номерів в Odoo

Створення послідовних номерів дуже простий процес. Ми можемо ідентифікувати кожен запис, використовуючи його порядковий номер, який буде унікальним для кожного запису.

Для цього спочатку створіть поле для збереження послідовності

Наприклад

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

Наступна функція додає номер з послідовності.

@api.model

def create(self, vals):
   if vals.get('reference_no', _('New')) == _('New'):
       vals['reference_no'] = self.env['ir.sequence'].next_by_code(
           'hospital.patient') or _('New')
   res = super(HospitalPatient, self).create(vals)
   return res

Для створення запису про нову послідовність додайте наступний  XML.

<data>
   <record id="seq_hospital_patient" model="ir.sequence">
       <field name="name">Patient Sequence</field>
       <field name="code">hospital.patient</field>
       <field name="prefix">HP</field>
       <field name="padding">5</field>
       <field name="company_id" eval="False"/>
   </record>
</data>

Код XML повинен бути всередині тегу даних.

<record id="seq_hospital_patient" model="ir.sequence">

ID — це ідентифікатор цього запису, він унікальний для кожного запису.І цей запис буде збережено в таблиці ir.sequence.

<field name="name">Patient Sequence</field>

name - це Ім'я запису, який буде створено на вказаній моделі.

<field name="code">hospital.patient</field>

Код - це код запису послідовності.

<field name="prefix">HP</field>

Prefix - це символьне поле, яке дає префікс послідовності для запису.

<field name="padding">5</field>

Padding - це розмір послідовності.Ми можемо визначитися з розміром.

На знімку екрана нижче ми бачимо, що порядковий номер генерується з префіксом HP, а число 00001, перше число автоматично генерується як 1, і ми створюємо інший запис у тій же моделі, який буде 2 і так далі, а також тут миможна побачити, що заповнення числа дорівнює 5, яке ми будемо згадувати в коді.

how-to-create-sequence-number-in-odoo-15

Ми можемо налаштувати порядковий номер із загальних налаштувань Odoo

Go to General Settings > Technical > Sequences & Identifiers > Sequences

На знімку екрана нижче ми бачимо всі порядкові номери, створені для певного запису, ми можемо безпосередньо створити порядковий номер із інтерфейсу, натиснувши кнопку створити.

how-to-create-sequence-number-in-odoo-15


На скріншоті нижче ми бачимо, що створено запис, що відповідає наведеному вище коду

how-to-create-sequence-number-in-odoo-15

Тут дивіться деталі запису, як-от ім’я, код, префікс, суфікс, розмір послідовності, крок, наступний номер тощо.

Для порядкових номерів існує два способи реалізації

- Стандартний
- Без проміжку

Відсутність пробілу означає, що між порядковими номерами кожного запису немає проміжку.

Наприклад, існує запис, створений для послідовності пацієнта з порядковим номером HP00001, і створіть інший запис, який буде HP00002. Потім видаляємо другий і створюємо третій запис. У випадку методу реалізації No gap це буде HP00001, але у випадку стандартної послідовності реалізації буде HP00003. У більшості випадків ми використовуємо стандартну реалізацію.

Увімкнувши «Використовувати підпослідовності за date_rage», ми можемо встановити діапазон дат для послідовностей.

how-to-create-sequence-number-in-odoo-15


Як застосувати Послідовність номерів в Odoo
Володимир Карабанов 22 березня 2022 р.
Поділитися цією публікацією
Теги
Архів