首页 > 其他分享 >odoo14中生成序列号

odoo14中生成序列号

时间:2023-06-27 17:12:37浏览次数:35  
标签:XML sequence odoo14 ir 生成 production 序列号

# 大货类型的制造订单,序列号格式为“MO 年份后两位 四位顺序码”,例:MO230001
# PPS样类型的制造订单,序列号格式为“MO 年份后两位 四位顺序码-Sample“,例:MO230001-Sample

 

在Odoo中,您可以使用XML来定义一个ir.sequence数据,以生成满足特定格式的序列号。以下是按照您提供的格式创建两种类型(大货和PPS样)序列号的XML定义:

<record id="seq_br_production_order_large" model="ir.sequence">
    <field name="name">大货制造订单序列</field>
    <field name="code">br.production.order.large</field>
    <field name="prefix">MO%(range_year)s</field>
    <field name="suffix"></field>
    <field name="padding">4</field>
    <field name="number_increment">1</field>
    <field name="use_date_range">true</field>
</record>

<record id="seq_br_production_order_pps" model="ir.sequence">
    <field name="name">PPS样制造订单序列</field>
    <field name="code">br.production.order.pps</field>
    <field name="prefix">MO%(range_year)s</field>
    <field name="suffix">-Sample</field>
    <field name="padding">4</field>
    <field name="number_increment">1</field>
    <field name="use_date_range">true</field>
</record>

这两段XML代码定义了两个ir.sequence,它们会生成不同类型的制造订单序列号。其中:

  • id是该记录在Odoo系统中的唯一标识符
  • model指定了此记录应用于ir.sequence模型
  • name是序列的描述性名称
  • code是在Python代码中引用此序列的代码
  • prefix是在生成的序列号前加的前缀。这里我们使用了内置的%(range_year)s变量,它会被替换为当前年份的后两位
  • suffix是在生成的序列号后加的后缀。在PPS样制造订单序列中,我们加上了"-Sample"后缀
  • padding定义了序列号的数字部分应有多少位数。这里我们设置为4,表示数字部分会有4位,如0001、0002、...、9999
  • number_increment定义了每次生成新序列号时数字部分应增加多少。这里我们设置为1,表示每次生成新的序列号时数字部分会加1
  • use_date_range设置为true,表示序列号中会包含年份信息

这样设置后,当我们在Python代码中调用

self.env['ir.sequence'].next_by_code('br.production.order.large')

 

self.env['ir.sequence'].next_by_code('br.production.order.pps')

 

,就会得到符合要求的序列号。

需要注意的是,上述XML代码应该放在一个名为data的目录中的XML文件中,并且这个XML文件应该在模块的__manifest__.py文件中被引用,以便在安装或更新模块时被加载。

标签:XML,sequence,odoo14,ir,生成,production,序列号
From: https://www.cnblogs.com/lyt263/p/17509385.html

相关文章

  • 三层代码生成器
    packagecom.uma.hsnn.util;importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.core.exceptions.MybatisPlusException;importcom.baomidou.mybatisplus.core.toolkit.StringUtils;importcom.baomidou.mybatisplus.generator.AutoGe......
  • 论文插图也能自动生成了,用到了扩散模型,还被ICLR接收
    前言 如果论文中的图表不用绘制,对于研究者来说是不是一种便利呢?有人在这方面进行了探索,利用文本描述生成论文图表,结果还挺有模有样的呢!本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV......
  • 插件qrcode生成二维码
    1、安装依赖[email protected]、引入importQrCodefrom'qrcode'3、使用constcontent=window.location?.href||''QrCode.toDataURL(content,{margin:1,widht:128,height:1......
  • Prim算法 最小值生成树
    前言:给定一个无向图,如果它的某个子图中任意两个顶点都互相连通并且是一棵树,那么这棵树就叫做生成树(SpanningTree)。如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST,MinimumSpanningTree)。例如我们假设有这样一个图:把顶点看作村庄,边看作计划要修建的道路。......
  • 【算法】根据整数数组,生成正的素因子二位数组,并排序
    给定一个正整数或负整数的数组,I=[i1,..,in] 生成一个形式为的排序数组P [[p,I数组的所有ij的和,其中p是ij的素因子(p为正)]…]P将按素数的递增顺序进行排序。 示例:I={12,15};//结果=“(212)(327)(515)”[2,3,5]是I的元素的所有素因子的列表,因此是结果。 注意事项: 如果某些数字为......
  • 强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantage actor-cri
    强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantageactor-critic,A2C),异步A2C、与生成对抗网络的联系等详解1.核心词汇优势演员-评论员(advantageactor-critic,A2C)算法:一种改进的演员-评论员(actor-critic)算法。异步优势演员-评论员(asynchronousadvanta......
  • 强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantage actor-cri
    强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantageactor-critic,A2C),异步A2C、与生成对抗网络的联系等详解1.核心词汇优势演员-评论员(advantageactor-critic,A2C)算法:一种改进的演员-评论员(actor-critic)算法。异步优势演员-评论员(asynchronousadvant......
  • 使用 New Bing 学习 SAP ABAP 生成 PDF 的几种技术
    本文还是围绕SAPABAP生成PDF这个话题来写。Jerry之前的公众号文章每日一个ChatGPT使用小技巧系列之3-利用角色扮演提高ChatGPT回复的质量发布之后,有朋友反馈,ChatGPT在回答如何给ABAPPDF添加水印这个问题时,表现不尽如人意。我试了一下,确实如此,所以先人工写了......
  • 最小生成树(普里姆算法)
    试实现普里姆最小生成树算法。函数接口定义: voidPrim(AMGraphG,charu); 其中 G 是基于邻接矩阵存储表示的无向图,u表示起点裁判测试程序样例: #include<iostream>#defineMVNum10#defineMaxInt32767usingnamespacestd;structedge{charadjvex;......
  • 6-1 最小生成树(普里姆算法)
    试实现普里姆最小生成树算法。函数接口定义: voidPrim(AMGraphG,charu); 其中 G 是基于邻接矩阵存储表示的无向图,u表示起点裁判测试程序样例: #include<iostream>#defineMVNum10#defineMaxInt32767usingnamespacestd;structedge{charadjvex;......