Skip to content
  • Categories
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse

Odoo 中文社区

  1. Home
  2. Categories
  3. Odoo 开发与实施交流
  4. odoo自动生成日期序号

odoo自动生成日期序号

Scheduled Pinned Locked Moved Odoo 开发与实施交流
3 Posts 2 Posters 1.9k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 阿 Offline
    阿 Offline
    阿巴阿巴
    wrote on last edited by
    #1

    如下代码所示:创建的序号是XH-20220119-001,XH-20220119-002,但是在第二天的时候,序号是XH-20220120-003。我希望在每个新的一天中,序号能从001开始,即XH-20220120-001,而不是接着上一天的。不知道需要怎么做,希望得到大家的回答,谢谢!

    class ModelA(models.Model):
        """..."""
        code = fields.Char(string='序号', readonly=True, default=lambda x: '自动生成')
    
        # 自动生成一个编号,ir.sequence模型在 data/sequence.xml中
        @api.model
        def create(self, vals):
            if not vals.get('code') or vals.get('code') == '自动生成':
                vals['code'] = self.env['ir.sequence'].next_by_code('model_A_code')
            return super(ModelA, self).create(vals)
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <odoo>
        <data>
            <!-- 生成单据编号 -->
            <record id="model_A_code" model="ir.sequence">
                <field name="name">序号</field>
                <field name="code">model_A_code</field>
                <field name="prefix">XH-%(year)s%(month)s%(day)s-</field>
                <field name="padding">3</field>
                <field name="use_date_range">True</field>
                <field name="date_range_ids"
                       eval="[(0,0,{'date_from':datetime.today(),'date_to':datetime.today(),'number_next':1})]"/>
            </record>
        </data>
    </odoo>
    

    补充:这个代码是我根据ir.sequence模型和设置→技术→自动化→安排的动作进行编写的,不确定它能否每天更新。

    <field name="date_range_ids"
           eval="[(0,0,{'date_from':datetime.today(),'date_to':datetime.today(),'number_next':1})]"/>
    
    阿 1 Reply Last reply
    0
    • 阿 阿巴阿巴

      如下代码所示:创建的序号是XH-20220119-001,XH-20220119-002,但是在第二天的时候,序号是XH-20220120-003。我希望在每个新的一天中,序号能从001开始,即XH-20220120-001,而不是接着上一天的。不知道需要怎么做,希望得到大家的回答,谢谢!

      class ModelA(models.Model):
          """..."""
          code = fields.Char(string='序号', readonly=True, default=lambda x: '自动生成')
      
          # 自动生成一个编号,ir.sequence模型在 data/sequence.xml中
          @api.model
          def create(self, vals):
              if not vals.get('code') or vals.get('code') == '自动生成':
                  vals['code'] = self.env['ir.sequence'].next_by_code('model_A_code')
              return super(ModelA, self).create(vals)
      
      <?xml version="1.0" encoding="UTF-8" ?>
      <odoo>
          <data>
              <!-- 生成单据编号 -->
              <record id="model_A_code" model="ir.sequence">
                  <field name="name">序号</field>
                  <field name="code">model_A_code</field>
                  <field name="prefix">XH-%(year)s%(month)s%(day)s-</field>
                  <field name="padding">3</field>
                  <field name="use_date_range">True</field>
                  <field name="date_range_ids"
                         eval="[(0,0,{'date_from':datetime.today(),'date_to':datetime.today(),'number_next':1})]"/>
              </record>
          </data>
      </odoo>
      

      补充:这个代码是我根据ir.sequence模型和设置→技术→自动化→安排的动作进行编写的,不确定它能否每天更新。

      <field name="date_range_ids"
             eval="[(0,0,{'date_from':datetime.today(),'date_to':datetime.today(),'number_next':1})]"/>
      
      阿 Offline
      阿 Offline
      阿巴阿巴
      wrote on last edited by
      #2

      @阿巴阿巴
      补充里有一点说错了,“设置→技术→自动化→安排的动作”应该是“设置→技术→顺序号与标识号→顺序号”的。

      H 1 Reply Last reply
      0
      • 阿 阿巴阿巴

        @阿巴阿巴
        补充里有一点说错了,“设置→技术→自动化→安排的动作”应该是“设置→技术→顺序号与标识号→顺序号”的。

        H Offline
        H Offline
        haoy
        wrote on last edited by
        #3

        @阿巴阿巴 设置日期范围为一天就好

        1 Reply Last reply
        0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Tags
        • Popular
        • Users
        • Groups