Difference between revisions of "自动编号模块"
PolyglotBot (talk | contribs) m (Import interlang links (links to translated versions of this page in other languages) from origin English page "Create_numbering_module".) |
|||
Line 12: | Line 12: | ||
{{TemplateMainPageZh}} | {{TemplateMainPageZh}} | ||
− | + | 对于在应用程序中创建的每个实体(发票、报价单、订单等),Dolibarr为其分配一个reference引用(编号或文本)。为了使这个引用(reference)能适应任何用途,Dolibarr使用编号模块来定义这个引用的生成规则。编号模块作为标准提供,因此有些模块是通用的,允许定义编号掩码(匹配x个数的字符、带或不带前缀、包括日期或不包括日期等),这可以满足大多数需求。然而,在某些情况下,作为标准提供的编号模块不能满足需求。在这种情况下,有必要开发自己的编号模块。 | |
− | = 创建新的自动编号模块 = | + | =创建新的自动编号模块= |
例如,我们假设我们将创建一个新的发票编号模块,我们将其称为“terrebis”,并且将是标准供应商模块“terre”的变体。 | 例如,我们假设我们将创建一个新的发票编号模块,我们将其称为“terrebis”,并且将是标准供应商模块“terre”的变体。 | ||
Line 20: | Line 20: | ||
*复制和粘贴htdocs/core/modules/invoice/earth/terre.modules.php于htdocs/core/modules/invoice/terrebis/terrebis.modules.php。你可以用你想要的名字代替terrebis,而他还不可使用,只包含字母字符。 | *复制和粘贴htdocs/core/modules/invoice/earth/terre.modules.php于htdocs/core/modules/invoice/terrebis/terrebis.modules.php。你可以用你想要的名字代替terrebis,而他还不可使用,只包含字母字符。 | ||
*编辑新文件以在代码中进行以下更改: | *编辑新文件以在代码中进行以下更改: | ||
+ | |||
1. 重命名类名,用选定的名称替换旧类名(保持相同的命名约定)。 | 1. 重命名类名,用选定的名称替换旧类名(保持相同的命名约定)。 | ||
Line 44: | Line 45: | ||
6. 保存:模板'terrebis'可在Dolibarr的发票模板列表中获得。 | 6. 保存:模板'terrebis'可在Dolibarr的发票模板列表中获得。 | ||
− | = 测试模块 = | + | =测试模块= |
通过从配置页激活模块来测试此模块。验证列描述,例如,下个值,你得到你应该得到的反映(分别称info(),getExample()和getNextValue()的功能)。 | 通过从配置页激活模块来测试此模块。验证列描述,例如,下个值,你得到你应该得到的反映(分别称info(),getExample()和getNextValue()的功能)。 |
Revision as of 08:26, 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
此处
$conf 包含Dolibarr的所有配置,
$langs 是翻译成用户语言的对象,
$db 是允许SQL查询到数据库的DB连接对象。
6. 保存:模板'terrebis'可在Dolibarr的发票模板列表中获得。
测试模块
通过从配置页激活模块来测试此模块。验证列描述,例如,下个值,你得到你应该得到的反映(分别称info(),getExample()和getNextValue()的功能)。