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