在财务报表模板中使用自定义API行

数据来源设置为“自定义 API”的行,其值来自服务器端的 Python 函数,而不是账户筛选条件或公式。

这适用于“资产负债表”、“利润表”、“现金流量表”和“自定义财务报表”所使用的模板。

何时使用

当报表行依赖于自定义业务逻辑、预算数据、外部聚合或标准账户筛选条件无法提供的计算时,请使用 Custom API 行。

如果需要将该结果与其他报表行合并,请添加一个数据来源设置为“计算金额”的后续行。

如何设置

  1. 打开您的财务报表模板
  2. 报表行项目表中添加一行。
  3. 数据来源设置为“自定义 API”。
  4. 公式或账户筛选条件中,输入一个点分隔的 Python 路径,例如 my_app.financial_report_api.get_budget_variance
  5. 可选:如果后续公式行需要重用此结果,请设置行引用
  6. 可选:像在其他行上一样使用反转符号为零时隐藏隐藏行(仅供内部使用)包含在图表中值类型

ERPNext 如何调用您的函数

ERPNext 在服务器上调用目标函数,并传递以下参数:

  • filters:当前报表筛选条件,作为一个类似字典的对象
  • periods:为报表生成的期间列表
  • row:当前的财务报表行文档

periods 中的每个项目包含以下值:

  • from_date
  • to_date
  • key
  • label

您的函数可以接受所有三个参数,也可以只接受需要的参数。

示例

from frappe.utils import flt

def get_budget_variance(filters=None, periods=None, row=None):
    filters = filters or {}
    periods = periods or []

    values = []

    for period in periods:
        # Replace this placeholder logic with your own query or calculation.
        variance = 0.0
        values.append(flt(variance))

    return values

返回值要求

  • 返回一个数值列表。
  • periods 中的每个期间返回一个值。
  • 返回值的顺序必须与 periods 的顺序一致。

如果该行有行引用,后续公式行可以使用该代码,例如 API001 + SALES001

重要说明

  • 路径必须采用 app.module.method 格式。
  • 目标应是一个已安装应用中模块级别的 Python 函数。
  • 除非您还想从 /api/method 调用同一函数,否则此功能不需要 @frappe.whitelist()
  • 目前 Custom API 行不支持服务器脚本。
  • Custom API 行在基于账户和基于公式的行之前处理,因此它们不应依赖于其他模板行的结果。
  • 如果函数引发错误,ERPNext 会写入一条错误日志条目,并用零填充该行。

故障排除

  • 如果看到关于 API 路径的验证错误,请检查路径是否写为 app.module.method
  • 如果看到“方法未找到”,请确认该函数存在于该模块中,并且该应用已安装在站点上。
  • 如果该行显示为零,请检查错误日志中是否有 Custom API Error 条目。
  • 如果公式行无法使用 API 结果,请确保源行具有行引用,并且公式中使用的代码完全一致。

付款条款状态报告

付款条款状态报告

该报告用于根据针对该销售订单创建的发票,计算付款条款的状态。发票金额在运行时使用先进先出(FIFO)方法分配到相应的付款条款中。

示例:

考虑一个总价值为 7000₹ 的销售订单,其付款条款为 50-50。

如果针对该销售订单创建了一张金额为 4900₹ 的销售发票。

那么,报告将使用先进先出方法将发票金额分配到付款条款中,并显示状态:前 50% 为“已完成”,后 50% 为“部分付款”。

财务报表模板

什么是财务报表模板?

财务报表模板可帮助自动创建专业的财务报表,以满足动态的业务需求。无需在 Excel 中编辑报表,只需设置一个模板,即可通过几次点击生成资产负债表、损益表和现金流量表等报表。

主要组成部分

1. 财务报表模板

这是一个报表蓝图,用于定义:

  • 模板名称:用于标识的描述性名称(例如“月度损益表”)
  • 报表类型:资产负债表、损益表、现金流量表或自定义
  • :构成报表的各个行项

2. 财务报表行(子表)

模板中的每一行代表财务报表中的一行:

  • 显示名称:报表中显示的内容(例如“总收入”)
  • 参考代码:用于计算的简短代码(例如 REV100)
  • 数据来源:数字的来源:
    • 科目数据:从会计科目表中提取余额
    • 计算金额:使用公式基于其他行计算数值
    • 视觉元素:用于格式化的空行或章节标题
  • 格式设置:加粗、颜色、缩进,以实现专业外观

3. 科目类别

科目的分类系统,可实现跨公司的标准化筛选。

示例:

  • 现金及现金等价物:银行账户、现金、短期存款
  • 应收账款:客户发票和应收款项
  • 营业费用:办公室租金、水电费、工资
  • 营业收入:销售和服务收入

如何获取报表数据

1. 科目数据 – 从会计科目表中提取

这将从科目中获取实际余额。可以按类别或特定条件筛选科目。

简单示例:获取所有现金余额

  • 将筛选条件设置为:Cash and Cash Equivalents 类别
  • 选择余额类型:Closing Balance(期末余额)

高级示例:仅获取与销售相关的费用

  • 筛选条件:名称中包含“销售”的营业费用
  • 这可能包括:“销售佣金”、“销售差旅费”、“销售培训费”

余额类型说明:

  • 期初余额:期初的余额
  • 期末余额:期末的余额
  • 期间变动:期间内的变动金额

轻松检查行的科目覆盖范围,确保包含所有相关科目。

2. 计算金额

使用此功能,通过模板中的其他行进行加、减或计算百分比。

简单示例:

  • 资产总计CURRENT_ASSETS + NON_CURRENT_ASSETS
  • 毛利润REVENUE - COST_OF_GOODS_SOLD
  • 利润率(NET_PROFIT / REVENUE) * 100

智能计算(防止除零错误):

  • (GROSS_PROFIT / REVENUE) * 100 if REVENUE != 0 else 0

3. 视觉元素

空行:在章节之间添加间距以提高可读性。仍可指定显示名称。例如:使用加粗文本如“资产”或“负债”来组织报表。

分列:创建多列或水平布局。显示名称作为新列的标题。

章节标题:与分列结合使用,以水平方式分隔不同章节。例如,在多列布局中使合计项彼此对齐。

如何为科目分配类别

方法 1:逐个分配 转到科目 -> 更新科目类别字段

方法 2:批量分配 使用数据导入工具

让报表看起来专业

文本格式

使报表易于阅读且专业:

  • 加粗文本:用于主要标题,例如“资产总计”或“净利润”
  • 斜体文本:用于小计和计算金额
  • 颜色:突出显示重要数字(亏损用红色,盈利用绿色)
  • 缩进:创建视觉层次(主要项目左对齐,子项目缩进)
  • 隐藏空行:不显示余额为零的科目,以保持报表整洁
  • 反转符号:将费用显示为正数(使损益表更易读)
  • 包含在图表中:选择要包含在自动图表生成中的行

高级功能

通过添加计算行,轻松构建高级模板

余额验证

例如,添加一项检查,确保资产 = 负债 + 权益

比率

  • 流动比率:流动资产 ÷ 流动负债
  • 利润率:净利润 ÷ 收入 × 100
  • 负债比率:总负债 ÷ 总权益

内置验证

系统会自动检查您的模板,以防止错误:

检查内容

参考代码

  • 必须唯一(不能有两个 REV100 代码)
  • 必须以字母开头,且只能包含字母、数字和下划线
  • 示例:
    • ✅ REV100, ASSET1
    • ❌ 100REV, ASSET-1

计算

  • 检查对某行的引用是否确实存在
  • 防止循环引用(A 依赖于 B,B 依赖于 A)
  • 确保括号匹配:
    • (A + B) * C
    • (A + B * C

科目筛选

  • 验证科目类别是否存在
  • 检查筛选语法是否正确

现成模板

ERPNext 附带专业模板,可立即使用:

自定义这些模板或从头创建一个新模板。

入门指南

通过三个简单步骤配置财务报告:

  1. 确保科目类别已映射到会计科目表
  2. 编辑现有模板或创建新的财务报告模板
  3. 检查科目覆盖范围、格式和计算

应收应付账款

ERPNext的会计模块中,应收账款和应付账款在管理公司财务方面发挥着关键作用。

应收账款追踪客户因赊销商品或服务而欠公司的款项。此功能有助于简化开票、付款跟踪,并最终优化现金流管理。

应付账款监控公司欠供应商或服务商的款项。它便于管理账单、对外付款,并确保及时结算以维持良好的供应商关系。

ERPNext中的应收账款和应付账款模块均提供财务交易的实时可见性,支持有效决策并监控组织的整体财务健康状况。

  • 采购发票
  • 服务采购发票
  • 借项通知单
  • 销售发票
  • 贷项通知单
  • 共同方会计
  • 付款请求
  • 付款分录
  • 付款指令
  • 付款分类账
  • 预付款分录
  • 催款函
  • 付款对账
  • 半自动付款对账
  • 支付网关账户

付款分类账

一个独立的分类账,仅记录应收应付账户的交易。账户类型应设置为 ReceivablePayable,以便交易记录在付款分类账中。

示例:

一张金额为 ₹1000 的销售发票以及针对该发票的付款分录将如下所示。

使用方法

报表

应收账款、应收账款汇总、应付账款和应付账款汇总均以付款分类账作为数据源。

工具

付款对账及其扩展功能半自动付款对账工具使用付款分类账来计算未结发票。对账过程仅更新付款分类账。

总账

ERPNext 会计模块中的总账部分是组织、记录和管理组织内所有财务交易的关键部分。它包含了一套全面的功能和特性,对于维护准确且最新的财务记录至关重要。

  • 日记账模板
  • 日记账
  • 会计分录
  • 冻结会计分录
  • 总账
  • 供应商分类账汇总
  • 客户分类账汇总
  • 折扣会计
  • 不可变分类账

会计报告

一些主要的会计报告包括:

  1. 公司和科目

总分类账

前往:会计 > 公司和科目 > 总分类账

总分类账是一份详细报告,列出了过账到每个科目的所有交易,并且每笔交易都有一个贷方和借方科目,因此它会全部列出。

该报告基于总账分录表,可以通过许多预定义筛选器进行筛选,例如科目、成本中心、往来方、项目和期间等。这有助于您全面了解在某个期间内针对任何科目过账的所有分录。结果可以按科目、凭证/交易和往来方分组,并显示每个分组的期初和期末余额。在多币种会计的情况下,还可以选择以公司本位币以外的任何其他货币查看金额。

  1. 会计报表

2.1 应收账款和应付账款

前往:会计 > 会计报表 > 应收账款

这些报告帮助您跟踪客户和供应商的未结金额。它还提供账龄分析,即根据未结金额的逾期期间进行细分。

2.1.1 基于付款条件的应收账款

您还可以查看基于付款条件的应收账款。

可以通过点击复选框“基于付款条件”来查看基于付款条件的应收账款报告,如下截图所示。

可以看到每个付款条件的未结金额。发票金额显示每个付款条件的金额,已付金额显示针对每个付款条件已支付的金额。针对每个条款的付款按先进先出顺序分配。

![](/erpnext/v13/assets/img/accounts/)

2.1.2 应收账款/应付账款上的“重估日记账”筛选器

“重估日记账”筛选器允许报告准确报告发票未结金额,其中往来方的货币换算差异由汇率重估日记账处理。仅当大量使用多币种交易和汇率重估时才适用。

2.2 试算平衡表

前往:会计 > 会计报表 > 试算平衡表

试算平衡表是一份会计报告,它列出了在任意给定报告期内您所有科目(“明细科目”和“科目组”)的科目余额。公司定期(通常在每个报告期末)编制试算平衡表。编制试算平衡表的一般目的是确保公司簿记系统中的分录在数学上是正确的。对于任何给定期间,借方和贷方列的总和必须相等,以确保分录正确。在 ERPNext 中,该报告显示以下列:

  • 期初(借):截至起始日期的期初借方余额
  • 期初(贷):截至起始日期的期初贷方余额
  • 借方:所选期间内针对该科目的总借方金额
  • 贷方:所选期间内针对该科目的总贷方金额
  • 期末(借):截至截止日期的期末借方余额
  • 期末(贷):截至截止日期的期末贷方余额

还有一些其他选项,可以包含或排除期间结转分录、显示/隐藏余额为零的科目,以及显示上一财年未结清的损益(收入和支出)余额。报告中的所有数字均以公司本位币显示。

2.3 资产负债表

前往:会计 > 会计报表 > 资产负债表

资产负债表是公司的财务报表,它列示了公司在特定时间点的资产、负债和权益。

ERPNext 中的资产负债表为您提供了更大的灵活性来分析您的财务状况。您可以跨多个年度运行报告以比较数值。您可以检查特定财务账簿或成本中心的值。您还可以选择任何其他货币来显示余额。

2.4 现金流量表

前往:会计 > 会计报表 > 现金流量

现金流量表是一份财务报表,它显示公司现金或现金等价物的流入和流出。它用于分析公司的流动性状况。

2.5 损益表

前往:会计 > 会计报表 > 损益表

损益表是一份财务报表,它汇总了给定期间内的所有收入和费用。该报告也称为损益表。

在 ERPNext 中,您可以跨多个年度/期间运行报告以比较数值。您还可以检查特定财务账簿、项目或成本中心的值。您还可以选择任何其他货币来显示余额。如果您运行报告是为了查看季度/月度余额,您可以选择是显示累计余额还是仅显示每个期间的余额。

2.6 合并财务报表

转到:会计 > 财务报表 > 合并财务报表

该报表通过合并所有子公司的财务报表,显示集团公司的资产负债表、利润表和现金流量表的合并视图。它显示所有单个公司的余额以及集团公司的累计余额。

2.7 财务比率报表

简介

财务比率是一种衡量工具,用于评估公司相对于其他企业的财务状况或业绩。投资者通常使用此工具来研究和了解公司的财务历史或整个行业。计算财务比率的过程涉及从资产负债表、利润表和现金流量表中提取数字。财务比率不仅仅是一个计算结果,它还能帮助理解公司在盈利能力、流动性、杠杆率和市场估值等方面的经济状况。一个比率可以作为信号、警报或提示,指向各种潜在问题。

假设条件

  1. 净销售额 = 直接收入
  2. 赊销额 = 直接收入
  3. 赊购额 = 直接费用
  4. 股东权益 (SHF) = 总资产 – 总负债
  5. 扣除所得税后净利润 (NPAIT) = 总收入 – 总费用

比率类型:

2.7.1 流动性比率

包括:

2.7.1.1 流动比率 = 流动资产 / 流动负债

2.7.1.2 速动比率 = 速动资产 / 速动负债

需要2种账户类型:

  1. 流动资产(例如)

2. 流动负债(例如)

一旦您在“会计科目表”中为相关账户设置了账户类型,流动比率和速动比率都将显示正确的值。

2.7.2 债务权益比率

包括:

2.7.2.1 债务权益比率 = 总负债 / 股东权益

2.7.2.2 毛利率 = (净销售额 – 销售成本) / 净销售额

2.7.2.3 净利率 = 扣除所得税后净利润 / 净销售额

2.7.2.4 资产收益率 = 扣除所得税后净利润 / 总资产

2.7.2.5 权益收益率 = 扣除所得税后净利润 / 股东权益

为了使毛利率和净利率显示正确的数据,我们需要将相关的账户类型添加到“直接收入”中(因为直接收入被视为净销售额)。(例如)

2.7.3 周转率比率

包括:

2.7.3.1 固定资产周转率 = 销售成本 / 平均存货

2.7.3.2 应收账款周转率 = 赊销额 / 平均应收账款

2.7.3.3 应付账款周转率 = 赊购额 / 平均采购额

2.7.3.4 存货周转率 = 净销售额 / 总资产

存货/应收账款/采购额的平均值通过以下公式计算 ⇒

(第一年年初余额 + 最后一年年末余额) / 2

  1. 税费

3.1 销售与采购登记簿

转到:会计 > 税费 > 销售登记簿 采购登记簿

销售与采购登记簿报表显示指定期间内的所有销售和采购交易,包括发票金额和税费详情。在此报表中,每种税费都有单独的列,因此您可以轻松获取每个期间每种税费类型的总征收/支付税额,这有助于向政府缴纳税款。

  1. 预算与成本中心

4.1 预算差异

转到:会计 > 预算与成本中心 > 预算差异报表

ERPNext 中,您可以针对任何特定成本中心为费用账户分配费用预算。此报表以月度/季度/年度视图显示预算费用与实际费用之间的比较以及差异(两者之间的差额)。

  1. 印度税务报表

5.1 GSTR-1(印度)

转到:会计 > 商品及服务税(印度GST)> GSTR-1

GSTR-1 报表帮助印度用户提交对外供应的月度申报。此报表以政府指定的格式显示公司的所有销售交易。报表的输出会根据所选业务类型(B2B、B2C 大型、B2C 小型、CDNR 和出口)而变化。

5.2 GSTR-2(印度)

转到:会计 > 商品及服务税(印度GST)> GSTR-2

GSTR-2 报表帮助印度用户提交对内供应的月度申报。该报表以政府指定的格式提供一个月内收到的所有商品或服务对内供应的详细信息。

  1. 分析

6.1 按项目划分的销售与采购登记簿

转到:会计 > 分析 > 按项目划分的销售登记簿 按项目划分的采购登记簿

按项目划分的销售与采购登记簿报表显示指定期间内的所有销售和采购交易,包括项目单价、数量、金额和税费详情。在此报表中,税费有单独的列,因此您可以轻松获取每个项目的单独税费。通过此报表,您可以了解哪些项目销售或采购最多。

还可以通过使用“分组依据”过滤器进行更详细的分析,该过滤器可提供特定客户、供应商、区域等的销售数据。您可以找出哪个项目在哪个地区更受欢迎,或者哪个客户购买哪个项目更多。

转到:账户 > 分析 > 销售发票趋势 采购发票趋势

另一个非常有用的报表是发票趋势。通过此报表,您可以轻松获取按月、季度、半年或年度趋势的热门项目。您将了解销售和采购的数量及金额情况。

  1. 待开票

  • 已订购待开票项目: 此报表显示客户已订购但尚未创建或部分创建销售发票的项目。
  • 已交付待开票项目: 已交付给客户但尚未创建或部分创建销售发票的项目。
  • 采购订单待开票项目: 此报表显示已向供应商订购但尚未创建或部分创建采购发票的项目。
  • 已收货待开票项目: 已从供应商处收货但尚未创建或部分创建采购发票的项目。
  1. 其他报表

8.1 按客户/供应商分类的试算平衡表

转到:账户 > 其他报表 > 客户/供应商试算平衡表。通常您可能需要查看客户和供应商的试算平衡表。您可以轻松获取所有客户或供应商的试算平衡表,也可以查看单个客户或供应商的。

8.2 客户信用余额

此报表显示每个客户的信用额度、未结余额和信用余额。