自動編號模塊

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search


對於在應用程序中創建的每個實體(發票、報價單、訂單等),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()返回)。