Difference between revisions of "自动编号模块"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
Line 14: Line 14:
 
对于在应用程序中创建的每个实体(发票、报价单、订单等),Dolibarr为其分配一个reference引用(编号或文本)。为了使这个引用(reference)能适应任何用途,Dolibarr使用编号模块来定义这个引用的生成规则。编号模块作为标准提供,因此有些模块是通用的,允许定义编号掩码(匹配x个数的字符、带或不带前缀、包括日期或不包括日期等),这可以满足大多数需求。然而,在某些情况下,作为标准提供的编号模块不能满足需求。在这种情况下,有必要开发自己的编号模块。
 
对于在应用程序中创建的每个实体(发票、报价单、订单等),Dolibarr为其分配一个reference引用(编号或文本)。为了使这个引用(reference)能适应任何用途,Dolibarr使用编号模块来定义这个引用的生成规则。编号模块作为标准提供,因此有些模块是通用的,允许定义编号掩码(匹配x个数的字符、带或不带前缀、包括日期或不包括日期等),这可以满足大多数需求。然而,在某些情况下,作为标准提供的编号模块不能满足需求。在这种情况下,有必要开发自己的编号模块。
  
=创建新的自动编号模块=
+
=创建新的编号模块=
  
例如,我们假设我们将创建一个新的发票编号模块,我们将其称为“terrebis”,并且将是标准供应商模块“terre”的变体。
+
例如,假设我们创建了一个新的发票编号模块,称为“terrebis”,其灵感来自提供的标准模块“terre”:
  
*复制和粘贴htdocs/core/modules/invoice/earth/terre.modules.php于htdocs/core/modules/invoice/terrebis/terrebis.modules.php。你可以用你想要的名字代替terrebis,而他还不可使用,只包含字母字符。
+
<br />
*编辑新文件以在代码中进行以下更改:
 
  
1. 重命名类名,用选定的名称替换旧类名(保持相同的命名约定)。
+
*将htdocs/core/modules/invoice/earth/terre.modules.php 复制并粘贴到                                                                                                      htdocs/core/modules/invoice/terrebis/terrebis.modules.php。您可以使用任何您想要的名字来代替terrebis,只要 它 还 没有 被 使用 并且 只 包含 字母 字符。
 +
*编辑新文件以对代码进行如下更改:
  
2. 修改info()方法的代码,返回模块的文本说明。
+
1. 重命名类名以将旧类名替换为所选名称(保持相同的命名约定)。
  
3.更改getExemple()的方法代码,返回模块可能返回的引用值示例。
+
2. 修改info()方法的代码,以返回模块的描述性文本说明。
  
4.将canBeActivated()的方法代码更改为只执行 "return true;";
+
3. 更改getExemple()方法的代码,以返回模块将返回的引用示例。
  
5.修改方法getNextValue()的代码,以返回下一个可用的引用编号。在这个函数的代码中,可以使用参数 $objsoc或$facture,其中包含参与生成的第三方的信息以及参与生成的对象发票(这些变量的名称可能根据被管理实体模块的性质而不同)。也可以使用对象$langs, $conf和$db,如果您在函数中首先声明它们
+
4. 更改canBeActivated()方法的代码,使其仅执行“return true;”;
 +
 
 +
5. 更改getNextValue()方法的代码,以返回下一个可用的引用字串。在该函数的代码中,您可以使用参数 $objsoc或$facture,这些参数包含与生成相关的合作方和与生成相关对象的信息(这些变量的名称可能因模块所处理的实体的性质而异)。您还可以使用$langs、$conf和$db对象,前提是您使用以下行声明了它们:
  
 
<source lang="php">
 
<source lang="php">
Line 35: Line 37:
 
</source>
 
</source>
  
此处
+
$langs:是翻译成用户语言的对象;
 
 
$conf 包含Dolibarr的所有配置,
 
  
$langs 是翻译成用户语言的对象,
+
$conf:包含Dolibarr的所有配置;
  
$db 是允许SQL查询到数据库的DB连接对象。
+
$db:用于在数据库中执行SQL查询的数据库连接对象。
  
6. 保存:模板'terrebis'可在Dolibarr的发票模板列表中获得。
+
6. 保存:“terrebis”模板可在Dolibarr的发票模板列表中找到
  
=测试模块=
+
=测试此模块=
通过从配置页激活模块来测试此模块。验证列描述,例如,下个值,你得到你应该得到的反映(分别称info(),getExample()和getNextValue()的功能)。
+
通过从模块配置页面激活此模块来测试它。确保在下面的描述、示例和值列中获得一致的信息(分别由函数info()、getexample()和getNextValue()返回)。

Revision as of 08:51, 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()返回)。