Створення послідовних номерів дуже простий процес. Ми можемо ідентифікувати кожен запис, використовуючи його порядковий номер, який буде унікальним для кожного запису.
Для цього спочатку створіть поле для збереження послідовності
Наприклад
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, яке ми будемо згадувати в коді.
Ми можемо налаштувати порядковий номер із загальних налаштувань Odoo
Go to General Settings > Technical > Sequences & Identifiers > Sequences
На скріншоті нижче ми бачимо, що створено запис, що відповідає наведеному вище коду
Тут дивіться деталі запису, як-от ім’я, код, префікс, суфікс, розмір послідовності, крок, наступний номер тощо.
Для порядкових номерів існує два способи реалізації
- Стандартний
- Без проміжку
Відсутність пробілу означає, що між порядковими номерами кожного запису немає проміжку.
Наприклад, існує запис, створений для послідовності пацієнта з порядковим номером HP00001, і створіть інший запис, який буде HP00002. Потім видаляємо другий і створюємо третій запис. У випадку методу реалізації No gap це буде HP00001, але у випадку стандартної послідовності реалізації буде HP00003. У більшості випадків ми використовуємо стандартну реалізацію.
Увімкнувши «Використовувати підпослідовності за date_rage», ми можемо встановити діапазон дат для послідовностей.