Как я могу автоматически установить код клиента с автоинкрементом для учетной записи клиента? - PullRequest
0 голосов
/ 04 июня 2019

Я должен работать на Odoo для моей работы.Это мой первый раз, поэтому есть некоторые вещи, которые я не понимаю.

Моя особая миссия состоит в том, чтобы гарантировать, что когда предложение будет подтверждено: если у клиента еще нет кода клиента, он 'я получу следующее.

Например, если самый большой код клиента - "CL2000", я хочу, чтобы следующий был "CL2001".

Я попытался создать автоматические действия среализованы инструменты в Odoo.Мне удалось связать код клиента, когда цитата подтверждена, но всегда одинакова.

Я не видел много учебников по Odoo.Если кто-то может помочь мне решить мою проблему или получить ссылку на хороший учебник, я буду благодарен.

1 Ответ

0 голосов
/ 05 июня 2019

Для автоматической установки кода клиента, автоматически увеличиваемого для учетной записи клиента, вы можете создать «ir.sequence», который является базовой функцией odoo.

Шаги для создания «ir.sequence» для автоматической генерации кода клиента:

Шаг 1: Создайте файл данных для последовательности, подобной следующей:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
   <data noupdate="1">     
     <!-- Sequences for customer codes --> 
    <record id="seq_res_partner" model="ir.sequence">
        <field name="name">Customer code</field>
        <field name="code">res.partner.customer.code</field>
        <field name="padding">8</field>
        <field name="number_next">CL2001</field>
        <field name="number_increment">1</field>
    </record>       
  </data>
</odoo>

Шаг 2: Унаследуйте метод создания res.partnerмодель для автоматической генерации кода клиента.

@api.model
def create(self, vals):             
    if isinstance(vals, dict):
        if not vals.get('ref', False):
            while 1:
                ref = self.env['ir.sequence'].next_by_code('res.partner.customer.code') or ''                    
                partner = self.env['res.partner'].search([('ref', '=', ref)])
                if not partner:
                    break
            vals.update({'ref': ref})
        elif vals.get('ref',False):
            ref_by_user = vals.get('ref',False) 
            partner = self.env['res.partner'].search([('ref', '=ilike', ref_by_user)])
            if partner:
                raise ValidationError('Internal Reference duplicate Error. \n This Internal reference already exist for Partner %s'%(partner[0].name))
        res = super(ResPartner, self).create(vals)           
    return res

В соответствии с описанными выше шагами вы можете сгенерировать код клиента автоматически.

Надеюсь, это поможет вам.Спасибо.

...