自动编号模块
对于在应用程序中创建的每个实体(发票、报价单、订单等),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
此处
$conf 包含Dolibarr的所有配置,
$langs 是翻译成用户语言的对象,
$db 是允许SQL查询到数据库的DB连接对象。
6. 保存:模板'terrebis'可在Dolibarr的发票模板列表中获得。
测试模块
通过从配置页激活模块来测试此模块。验证列描述,例如,下个值,你得到你应该得到的反映(分别称info(),getExample()和getNextValue()的功能)。