PHP项目DolibarrERP模块

wen PHP项目 3

本文目录导读:

PHP项目DolibarrERP模块

  1. 核心模块分类
  2. 技术架构特点
  3. 自定义开发示例(创建简单模块)
  4. 模块启用与管理
  5. 常用模块组合推荐(按业务类型)
  6. 模块开发最佳实践

Dolibarr是一个开源的企业资源计划(ERP)和客户关系管理(CRM)系统,用PHP编写,它以其模块化架构而闻名,允许用户根据需要启用或禁用功能,以下是Dolibarr ERP模块的详细解析。

核心模块分类

基础与会员管理

  • 第三方(Third parties):管理客户、供应商、 prospects
  • 联系人(Contacts):与第三方关联的联系人信息
  • 会员/成员(Members):适用于协会、俱乐部的会员管理
  • 用户与组(Users & Groups):系统用户权限管理

销售与CRM

  • 商机(Opportunities):销售管道管理
  • 报价单(Proposals):销售报价生成与追踪
  • 订单(Orders):客户订单处理
  • 合同(Contracts):服务合同管理
  • 发票(Invoices):应收发票、信用票据

采购与供应链

  • 供应商订单(Supplier orders):采购订单
  • 采购报价请求(Request for quotation)
  • 库存(Stock):库存管理、仓库、移动
  • 产品(Products):物料/产品目录、BOM(物料清单)

财务与会计

  • 财务模块:总账、会计日记账、会计科目表
  • 银行对账(Bank reconciliation)
  • 费用报告(Expense reports)
  • 支付(Payments):收付款管理
  • 税务(Taxes):增值税、税务报告
  • 预算(Budgets):预算编制与控制

生产与项目

  • 生产(MPS/MRP):生产计划、工单、制造
  • 项目(Projects):项目管理、任务、工时跟踪
  • 工时单(Timesheets):员工时间记录
  • 资源(Resources):设备、设施管理

HR与人力资源

  • 员工(Employees):HR基本信息
  • 考勤(Attendance):上班打卡记录
  • 招聘(Recruitment):职位发布、候选人管理
  • 培训(Training):培训课程管理

其他常用模块

  • 知识库(Knowledge management):内部文档/wiki
  • 邮件合并(Emailings):邮件营销/批量邮件
  • 调查(Surveys):客户/员工满意度调查
  • 网站(Website):CMS/网站管理
  • 电子签名(Electronic signature):集成签名
  • POS/收银台(Point of sale):零售POS系统
  • 捐赠(Donations):慈善捐赠管理

技术架构特点

模块目录: /htdocs/modulebuilder/template/
核心接口: /htdocs/core/
数据库抽象: /htdocs/core/db/
事件钩子: /htdocs/core/events/
触发器: /htdocs/core/triggers/
  • 自包含:每个模块有独立的SQL文件、语言文件、类文件
  • 权限细粒度:每个模块可设置读/写/创建/删除权限
  • 钩子系统:拦截事件执行自定义逻辑
  • 工作流:状态机(草稿→待审批→已确认→已处理)

自定义开发示例(创建简单模块)

模块主文件 my_module/my_module.class.php

<?php
require_once DOL_DOCUMENT_ROOT.'/core/modules/DolibarrModules.class.php';
class MyModule extends DolibarrModules
{
    public function __construct($db)
    {
        parent::__construct($db);
        $this->numero = 100000; // 唯一模块ID
        $this->name = 'MyModule';
        $this->description = 'Custom ERP module';
        $this->version = '1.0.0';
        $this->const_name = 'MAIN_MODULE_MYMODULE';
    }
    public function init($options = '')
    {
        $sql = [
            "CREATE TABLE IF NOT EXISTS ".MAIN_DB_PREFIX."my_module_object (
                rowid integer AUTO_INCREMENT PRIMARY KEY,
                label varchar(255),
                status integer DEFAULT 0
            )"
        ];
        return $this->_init($sql);
    }
}

目录结构要求

htdocs/custom/my_module/
├── core/modules/modMyModule.class.php
├── my_module.class.php (对象类)
├── card.php (详情页)
├── list.php (列表页)
└── sql/
    └── llx_my_module_object.sql

模块启用与管理

通过后台 Home → Setup → Modules

  1. 系统会扫描 /custom//modules/ 目录
  2. 自动检测 mod*.class.php 文件
  3. 点击“激活”即安装数据库表
  4. 可设置模块依赖(如:需先激活“发票”模块)

常用模块组合推荐(按业务类型)

业务类型 必选模块组合
贸易/分销 产品+库存+客户订单+采购+发票+银行
制造业 产品+BOM+生产计划+工时表+库存
服务类 项目+任务+费用报告+合同+发票
协会/非营利 会员+捐赠+成员+邮件合并+网站

模块开发最佳实践

  1. 使用ModuleBuilder:Dolibarr提供图形化模块生成器(/modulebuilder/)
  2. 遵循命名规范llx_mymodule_MYOBJECT (表名)、MyModuleMyClass (类名)
  3. 利用钩子:最少修改核心文件,通过$hookmanager->executeHooks()扩展
  4. 翻译文件:创建/langs/zh_CN/my_module.lang文件
  5. 安全:所有输入使用GETPOST()函数,SQL使用$db->escape()

Dolibarr的模块化架构使其非常灵活,从简单的CRM扩展到完整的ERP系统,适合中小企业定制化需求,开发新模块时,建议先研究已有模块(如comm四/订单模块)的代码结构作为参考。

抱歉,评论功能暂时关闭!