Redmine Finance
Finance工时本来就在 Redmine 里。Finance 补上其余的部分:发票与支付、自己会开票的订阅和合同、采购订单和供应商账单,以及每个项目的利润,全部根据团队已经登记的工时算出。
多台服务器: $399

- Redmine
- 4、5、6 和 7
- 模块
- 10 个,按项目启用
- 报表
- 10
- 定时任务
- 18
- 权限
- 20
- 语言
- 51
有真正生命周期的发票
草稿、已过账、已发送、部分付款和已付清,逾期和已取消则是独立的状态。每行有自己的税费和折扣,附打印版和邮件发送。
自己会开发票的订阅
按月、按季或按年的方案在到期日自动开出发票。MRR 和 ARR 来自当前有效的订阅。
带包含工时的合同
维护、支持、包月服务、固定价格和周期性合同。登记的工时会消耗包含工时,超出的部分按超额费率计费。
带成本费率的工时计费
每个人都有计费费率和成本费率。选中未开票的记录,创建发票,并查看同一期间的成本和利润。
采购与费用
供应商、采购订单和供应商账单,外加七个类别的费用报销,从已提交到已批准再到已付清。
把已有的数据导进来
客户、供应商和产品都可从 CSV 导入,各自提供一份列标题正确的示例文件。
进账与出账,都落在你已在运作的项目上
每张单据都由上一张生成,所以没有人需要重新录入客户、明细行或金额。两条流程汇入同一个仪表盘和同一套报表。
| 步骤 | 发生了什么 |
|---|---|
| 客户 | 公司、联系人、币种、付款条件和地址。 |
| 数据源 | 合同、订阅、项目计费方案或已登记的工时。 |
| 发票 | 多个明细行,每行有自己的税费和折扣,附打印版和邮件发送。 |
| 支付 | 确认之后,发票余额即全部或部分结清。 |
编号形如 INV-2026-08-00001,前缀可自定义,并支持多种币种和税率。
| 步骤 | 发生了什么 |
|---|---|
| 供应商 | 供应商记录,包含联系人、条款和币种。 |
| 采购订单 | 每一行的订购数量和已收货数量。 |
| 供应商账单 | 由已收货的订单生成,所有明细行原样带入。 |
| 支付 | 付出的款项结清账单,方式与收到的款项结清发票完全一样。 |
带审批的费用报销、按供应商统计的应付,以及在仪表盘上标出的逾期账单。
你的财务团队会看到什么
这些都是插件的真实界面,填入了演示用的客户、供应商和发票,运行在 Redmine 6.1 上。
开票:发票,从草稿到已付清
手动创建发票,或由订阅、合同或已登记的工时生成,然后过账、发送并记录收款。




周期:订阅与合同
到期日一到就自己开出发票的经常性收入。



工时:从已登记的工时到发票
Finance 读取 Redmine 的工时记录,并按每个人适用的费率为每条记录计价。


采购:采购订单与供应商账单
跟踪你订了什么、到了什么、还欠多少。



报表:每个数字背后的记录
选定日期范围,就能看到构成每项合计的发票、账单和支付记录。



配置:设置、模板和项目模块
公司资料只需设置一次,然后为每个项目开启它需要的模块。



那些通常放在 Redmine 旁边一张电子表格里的财务工作
有真正生命周期的发票
草稿、已过账、已发送、部分付款和已付清,逾期和已取消则是独立的状态。每行有自己的税费和折扣,附打印版和邮件发送。
自己会开发票的订阅
按月、按季或按年的方案在到期日自动开出发票。MRR 和 ARR 来自当前有效的订阅。
带包含工时的合同
维护、支持、包月服务、固定价格和周期性合同。登记的工时会消耗包含工时,超出的部分按超额费率计费。
带成本费率的工时计费
每个人都有计费费率和成本费率。选中未开票的记录,创建发票,并查看同一期间的成本和利润。
采购与费用
供应商、采购订单和供应商账单,外加七个类别的费用报销,从已提交到已批准再到已付清。
把已有的数据导进来
客户、供应商和产品都可从 CSV 导入,各自提供一份列标题正确的示例文件。
十个模块,按项目启用
每个模块都是标准的 Redmine 项目模块,有自己的权限。只为客户项目开启开票功能,其他项目一律保持关闭。
| 模块 | 管理内容 | 权限 |
|---|---|---|
| 财务 | 仪表盘、公司资料、币种、税率、编号、邮件模板 | view_finance, admin_finance_settings |
| 客户 | 客户账户、联系人、地址和付款条件 | manage_customers, manage_customer_contacts |
| 发票 | 发票、过账、邮件发送、收款与付款 | manage_invoices, manage_payments |
| 产品 | 产品与服务目录 | manage_products |
| 订阅 | 周期性方案和计费周期 | manage_subscriptions |
| 合同 | 包月服务与支持合同、包含工时、续约 | manage_contracts |
| 工时表与费率 | 工时记录计费、员工计费费率和成本费率、项目计费方案和里程碑 | manage_timesheet_billing, manage_employee_rates, manage_project_billing |
| 采购 | 供应商、供应商联系人、采购订单、供应商账单 | manage_vendors, manage_purchase_orders, manage_vendor_bills |
| 费用 | 费用报销、类别和审批 | manage_expenses |
| 报表 | 十份报表和定时任务日志 | view_finance_reports, view_cron_logs |
成本费率由单独的权限控制,所以负责开票的同事不必看到每个人的成本。
每张单据都有生命周期
已过账的发票只能取消,不能删除。支付要先确认,才会结清任何款项。采购订单只收到一部分货时,状态会如实显示。
| 单据 | 主路径 | 其他状态 |
|---|---|---|
| 发票 | 草稿 → 已过账 → 已发送 → 部分付款 → 已付清 | 逾期、已取消 |
| 支付 | 草稿 → 已确认 | 已取消 |
| 订阅 | 草稿 → 有效 → 已暂停 | 已取消、已过期 |
| 合同 | 草稿 → 有效 | 已取消、已过期 |
| 采购订单 | 草稿 → 已确认 → 部分收货 → 已收货 → 已开账单 | |
| 费用 | 草稿 → 已提交 → 已批准 → 已付清 | 已拒绝 |
支付方式:现金、银行转账、支票、UPI、Stripe 和 PayPal。
十八个定时任务,一份日志
Cron 每晚运行 finance:cron:daily,每月 1 日运行 finance:cron:monthly。每次运行都会写入 Cron 日志,附带结果和处理的记录数。
| 任务 | 作用 |
|---|---|
| 发票 | 开出当天到期的订阅发票和合同发票。 |
| 逾期 | 标记逾期的发票和供应商账单。 |
| 提醒 | 向客户和供应商发送到期、逾期和续订提醒。 |
| 合同 | 根据 Redmine 的工时记录更新合同用量。 |
| 汇总 | 邮寄每日财务汇总和月度收入报表。 |
| 健康检查 | 标出所有已停止运行的任务。 |
crontab 里加两行就够了
没有后台 worker,也没有额外的服务。Cron 调用 rake。邮件使用你可以编辑的模板,每个事件、每种语言一份,缺少时回退到英文。
你的 Redmine 跑在哪里,它就跑在哪里
| 环境 | 状态 | 说明 |
|---|---|---|
| Redmine 7.x | 支持 | |
| Redmine 6.x | 支持 | 在 Redmine 6.1 和 Ruby 3.4.2 上测试。本页截图来自 6.1。 |
| Redmine 5.x | 支持 | |
| Redmine 4.x | 支持 | 插件声明的最低版本为 4.0 |
| 数据库 | 支持 | MySQL、MariaDB 和 PostgreSQL |
| 语言 | 51 | 与 Redmine 自带的语言相同 |
| 你的数据 | 保持不变 | 读取 Redmine 的用户、项目和工时记录,但不会修改它们。 |
Billing 还是 Finance:你需要哪一个?
Billing 涵盖发票、订阅、支付、供应商和采购订单。Finance 在此基础上增加了带包含工时的合同、带计费费率和成本费率的工时计费、项目计费方案、费用报销和盈利报表。如果你只是开发票,Billing 就够了。如果你想知道一个项目赚了多少,就选 Finance。
| 功能 | Redmine Billing | Redmine Finance |
|---|---|---|
| 客户 | 包含 | 包含 |
| 发票 | 包含 | 包含 |
| 支付 | 包含 | 包含 |
| 产品 | 包含 | 包含 |
| 订阅 | 包含 | 包含 |
| 采购 | 包含 | 包含 |
| 合同 | 不包含 | 包含 |
| 工时表与费率 | 不包含 | 包含 |
| 费用 | 不包含 | 包含 |
| 报表 | 5 | 10 |
| 定时任务 | 15 | 18 |
| 模块 | 7 | 10 |
| 权限 | 13 | 20 |
三步完成安装
需要 shell 访问权限并能执行 rake 任务。安装插件前请务必备份。
cd /opt/redmine # the package arrives by email, or from your download link # the folder must be named plugins/redmine_finance unzip redmine_finance-2.0.0.zip -d plugins/
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redmine_finance touch tmp/restart.txt # or systemctl restart redmine
# Administration → Roles and permissions → grant the finance permissions # Project → Settings → Modules → tick the finance modules you want # Finance → Settings → company profile, currencies, tax rates, number prefixes
# crontab -e 0 2 * * * cd /opt/redmine && bundle exec rake finance:cron:daily RAILS_ENV=production 0 3 1 * * cd /opt/redmine && bundle exec rake finance:cron:monthly RAILS_ENV=production