Difference between revisions of "自动编号模块"
(Created page with "{{Template开发文档}} {{Template用户手册}} {{TemplateMainPageZh}} 对于在应用程序中创建的每个实体(发票、提案、订单等),Dolibarr分配了一个...") |
Tag: 2017 source edit |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | <!-- BEGIN interlang links --> | ||
+ | <!-- Do NOT edit this section | ||
+ | Links below are automatically managed by PolyglotBot | ||
+ | You can edit links on the English source page : Create_numbering_module --> | ||
+ | [[en:Create_numbering_module]] | ||
+ | [[fr:Créer_un_module_de_numérotation]] | ||
+ | [[es:Crear_un_módulo_de_numeración]] | ||
+ | <!-- END interlang links --> | ||
+ | |||
{{Template开发文档}} | {{Template开发文档}} | ||
{{Template用户手册}} | {{Template用户手册}} | ||
{{TemplateMainPageZh}} | {{TemplateMainPageZh}} | ||
− | + | 对于在应用程序中创建的每个实体(发票、报价单、订单等),Dolibarr为其分配一个reference引用(编号或文本)。为了使这个引用(reference)能适应任何用途,Dolibarr使用编号模块来定义这个引用的生成规则。编号模块作为标准提供,因此有些模块是通用的,允许定义编号掩码(匹配x个数的字符、带或不带前缀、包括日期或不包括日期等),这可以满足大多数需求。然而,在某些情况下,作为标准提供的编号模块不能满足需求。在这种情况下,有必要开发自己的编号模块。 | |
+ | |||
+ | =创建新的编号模块= | ||
+ | |||
+ | 例如,假设我们创建了一个新的发票编号模块,称为“terrebis”,其灵感来自提供的标准模块“terre”: | ||
− | + | <br /> | |
− | + | *将htdocs/core/modules/invoice/earth/terre.modules.php 复制并粘贴到 htdocs/core/modules/invoice/terrebis/terrebis.modules.php。您可以使用任何您想要的名字来代替terrebis,只要 它 还 没有 被 使用 并且 只 包含 字母 字符。 | |
+ | *编辑新文件以对代码进行如下更改: | ||
− | + | 1. 重命名类名以将旧类名替换为所选名称(保持相同的命名约定)。 | |
− | |||
− | 1. | ||
− | 2. 修改info() | + | 2. 修改info()方法的代码,以返回模块的描述性文本说明。 |
− | 3.更改getExemple() | + | 3. 更改getExemple()方法的代码,以返回模块将返回的引用示例。 |
− | 4. | + | 4. 更改canBeActivated()方法的代码,使其仅执行“return true;”; |
− | 5. | + | 5. 更改getNextValue()方法的代码,以返回下一个可用的引用字串。在该函数的代码中,您可以使用参数 $objsoc或$facture,这些参数包含与生成相关的合作方和与生成相关对象的信息(这些变量的名称可能因模块所处理的实体的性质而异)。您还可以使用$langs、$conf和$db对象,前提是您使用以下行声明了它们: |
<source lang="php"> | <source lang="php"> | ||
Line 25: | Line 37: | ||
</source> | </source> | ||
− | + | $langs:是翻译成用户语言的对象; | |
− | $ | + | $conf:包含Dolibarr的所有配置; |
− | $ | + | $db:用于在数据库中执行SQL查询的数据库连接对象。 |
− | |||
− | 6. | + | 6. 保存:“terrebis”模板可在Dolibarr的发票模板列表中找到 |
− | = | + | =测试此模块= |
− | + | 通过从模块配置页面激活此模块来测试它。确保在下面的描述、示例和值列中获得一致的信息(分别由函数info()、getexample()和getNextValue()返回)。 | |
+ | [[Category:开发]] |
Latest revision as of 08:52, 9 October 2023
对于在应用程序中创建的每个实体(发票、报价单、订单等),Dolibarr为其分配一个reference引用(编号或文本)。为了使这个引用(reference)能适应任何用途,Dolibarr使用编号模块来定义这个引用的生成规则。编号模块作为标准提供,因此有些模块是通用的,允许定义编号掩码(匹配x个数的字符、带或不带前缀、包括日期或不包括日期等),这可以满足大多数需求。然而,在某些情况下,作为标准提供的编号模块不能满足需求。在这种情况下,有必要开发自己的编号模块。
创建新的编号模块
例如,假设我们创建了一个新的发票编号模块,称为“terrebis”,其灵感来自提供的标准模块“terre”:
- 将htdocs/core/modules/invoice/earth/terre.modules.php 复制并粘贴到 htdocs/core/modules/invoice/terrebis/terrebis.modules.php。您可以使用任何您想要的名字来代替terrebis,只要 它 还 没有 被 使用 并且 只 包含 字母 字符。
- 编辑新文件以对代码进行如下更改:
1. 重命名类名以将旧类名替换为所选名称(保持相同的命名约定)。
2. 修改info()方法的代码,以返回模块的描述性文本说明。
3. 更改getExemple()方法的代码,以返回模块将返回的引用示例。
4. 更改canBeActivated()方法的代码,使其仅执行“return true;”;
5. 更改getNextValue()方法的代码,以返回下一个可用的引用字串。在该函数的代码中,您可以使用参数 $objsoc或$facture,这些参数包含与生成相关的合作方和与生成相关对象的信息(这些变量的名称可能因模块所处理的实体的性质而异)。您还可以使用$langs、$conf和$db对象,前提是您使用以下行声明了它们:
global $langs, $db, $conf
$langs:是翻译成用户语言的对象;
$conf:包含Dolibarr的所有配置;
$db:用于在数据库中执行SQL查询的数据库连接对象。
6. 保存:“terrebis”模板可在Dolibarr的发票模板列表中找到
测试此模块
通过从模块配置页面激活此模块来测试它。确保在下面的描述、示例和值列中获得一致的信息(分别由函数info()、getexample()和getNextValue()返回)。