估价或总计是否含税或费用

在采购或销售交易的税费表中,“税费”字段有三个值。

  • 总计
  • 估价
  • 总计和估价

让我们通过一个例子来理解每种费用类型的影响。我们以单价800购买10个单位的产品,总采购金额为800。采购的产品需缴纳4%的增值税,并产生了100印度卢比的运输费用。

总计:

归类为总计的税费将包含在采购交易的总金额中,但不会影响所购产品的估价。

如果对产品征收4%的增值税,金额将为32印度卢比(基于产品单价800)。由于增值税是消费税,应将其添加到采购订单/发票的价值中,因为它将包含在应付给供应商的款项中。但不应将其添加到所购产品的价值中。

提交采购发票时,将针对归类为“总计”的税费进行总账过账。

估价:

归类为估价的税费将添加到所购产品的价值中,但不会包含在该采购交易的总金额中。

100印度卢比的运输费用应归类为“估价”。这样,所购产品的价值将从800增加到900。此外,该费用不会添加到采购交易的总金额中,因为它是您的支出,不应反映给供应商。

在此处查看归类为“估价”的支出所做的总账过账。

总计和估价:

归类为总计和估价的税费将同时添加到产品的估价和采购交易的总金额中。

假设运输由我们的供应商安排,但我们需要向他们支付运输费用。在这种情况下,运输费用的类别应选择“总计和估价”。这样,100印度卢比的运输费用将添加到实际采购金额800中。同时,100印度卢比将反映在总金额中,因为这是我们应付给供应商的款项。

银行交易

银行交易表单显示导入到 ERPNext 中的银行交易,通常来自银行对账单或集成。

1. 前提条件

在使用银行交易之前,建议您先创建以下内容:

  1. 银行
  2. 银行账户

2. 如何使用银行交易

银行交易通常不是手动创建的。它可以通过以下方式导入或创建:

  1. 银行对账单导入 — 从 CSV 或 XLSX 文件导入
  2. 数据导入 — 标准数据导入工具
  3. 银行集成应用(例如 Plaid 或其他第三方集成)

导入后,可以使用银行对账工具银行交易与凭证进行对账。

3. 字段

3.1 基本信息

  • 日期:银行交易的日期。
  • 状态:交易的当前状态:
    • 待处理
    • 已结算
    • 未对账
    • 已对账
    • 已取消
  • 银行账户:进行交易的银行账户
  • 公司:与银行账户关联的公司(从银行账户自动获取)。

3.2 交易金额

  • 存款:存入的金额(记入您的账户)。
  • 取款:取出的金额(从您的账户扣除)。
  • 货币:进行交易时使用的货币。

3.3 描述和参考

  • 描述:来自银行对账单的描述。
  • 参考编号:支票号码或其他参考信息。
  • 交易 ID:来自银行的唯一标识符(只读)。
  • 交易类型:银行报告的交易类型。

3.4 付款分录

付款分录表格将银行交易与 ERPNext 中的凭证关联起来,用于对账:

  • 付款单据:与该交易对账的单据类型,例如销售发票采购发票付款分录日记账分录费用报销
  • 付款分录:与此交易关联的具体单据。
  • 分配金额:从该银行交易分配到付款分录的金额。
  • 清算日期:付款清算的日期(提交后显示)。

3.5 分配摘要

  • 已分配金额:已分配到付款分录的总金额(只读)。
  • 未分配金额:尚未分配的剩余金额(只读)。

3.6 付款方/收款方(参与方信息)

  • 参与方类型:参与方的类型(例如,客户、供应商、员工)。
  • 参与方:与此交易关联的具体参与方。

以下字段包含银行对账单提供的参与方信息:

  • 参与方名称/账户持有人(银行对账单):来自银行对账单的参与方名称。
  • 参与方账号(银行对账单):来自银行对账单的参与方账号。
  • 参与方 IBAN(银行对账单):来自银行对账单的参与方 IBAN。

当在账户设置中启用时,银行对账单中的参与方信息可用于自动匹配参与方。

3.7 扩展银行对账单(费用处理)

这些字段处理可能包含在或排除在交易金额之外的银行费用:

  • 包含的费用:已包含在取款金额中的费用。例如,如果一笔 100 的取款包含 5 的费用,则净付款为 95。
  • 排除的费用:从交易中单独收取的费用。保存时,此费用会自动通过调整交易金额转换为包含的费用

注意:排除的费用会调整交易金额:它们会减少存款或增加取款

折扣会计

折扣会计用于在单独的折扣科目下,为折扣过账额外的分类账分录。这可以针对以下情况执行:

  1. 应用于单个物料的折扣
  2. 应用于发票中所有物料的额外折扣

步骤

  1. 科目设置页面中勾选启用折扣会计复选框。
  2. 照常创建销售/采购发票。
  3. 为应用于单个物料的折扣过账分类账分录:
  • 展开物料表中该物料所在的行
  • 在折扣与利润部分输入折扣
  • 向下滚动到会计明细部分,然后输入折扣科目
  1. 为应用于发票中所有物料的额外折扣过账分类账分录:
  • 转到额外折扣部分
  • 输入额外折扣金额/百分比以及额外折扣科目
  1. 保存并提交发票以创建分类账分录,如下所示:
  • 对于销售发票:

  • 对于采购发票:

默认折扣科目

此外,您可以为物料输入默认折扣科目,在创建发票时会自动获取该科目。此字段的可见性也取决于科目设置中的启用折扣会计复选框。

  1. 打开物料文档。
  2. 转到销售、采购、会计默认值部分中的物料默认值表。
  3. 展开您选择的行,然后输入该物料的默认折扣科目。

币种兑换设置

ERPNext 内置了两种预定义的货币汇率提供商配置:Frankfurter.dev 和 Exchangerate.host

Frankfurter.dev

这是一个免费的汇率提供商,仅提供有限货币种类的汇率。

可用货币:

{
"AUD":"Australian Dollar",
"BGN":"Bulgarian Lev",
"BRL":"Brazilian Real",
"CAD":"Canadian Dollar",
"CHF":"Swiss Franc",
"CNY":"Chinese Renminbi Yuan",
"CZK":"Czech Koruna",
"DKK":"Danish Krone",
"EUR":"Euro",
"GBP":"British Pound",
"HKD":"Hong Kong Dollar",
"HUF":"Hungarian Forint",
"IDR":"Indonesian Rupiah",
"ILS":"Israeli New Sheqel",
"INR":"Indian Rupee",
"ISK":"Icelandic Króna",
"JPY":"Japanese Yen",
"KRW":"South Korean Won",
"MXN":"Mexican Peso",
"MYR":"Malaysian Ringgit",
"NOK":"Norwegian Krone",
"NZD":"New Zealand Dollar",
"PHP":"Philippine Peso",
"PLN":"Polish Złoty",
"RON":"Romanian Leu",
"SEK":"Swedish Krona",
"SGD":"Singapore Dollar",
"THB":"Thai Baht",
"TRY":"Turkish Lira",
"USD":"United States Dollar",
"ZAR":"South African Rand"
}

Exchangerate.host

此服务需要访问密钥。它提供免费和付费两种服务。详情请查看其网站。

订阅设置

订阅设置页面允许配置您的 ERPNext 订阅设置。

要访问订阅列表,请前往:

首页 > 会计 > 订阅管理 > 订阅设置

  • 宽限期:发票日期过后,在取消订阅或标记订阅为未付款之前的天数。

  • 宽限期后取消发票:如果客户未付款,ERPNext 将取消订阅,而不是显示“未付款”。

账户设置

ERPNext 允许您根据业务规则配置会计的某些方面。本页将帮助您了解如何利用此功能来满足您遇到的各种场景。

交易设置

1. 超额开票容差 (%)

您可以超额开票的百分比。例如,如果某个项目的订单价值为 100 美元,且此处百分比设置为 10%,则您最多可以开票 110 美元。

2. 允许超额开票的角色

拥有此角色的用户被允许在容差百分比之上进行超额开票。

3. 检查供应商发票号唯一性

勾选后,将不允许存在相同“供应商发票号”的采购发票。这有助于避免重复录入。

如果勾选,系统将取消该付款与相应发票的关联。默认情况下,如果付款条目已提交,则关联的发票在付款条目也被取消之前无法取消。取消关联后,您现在可以取消并修改发票。但付款将不再关联,并被视为预付款。

5. 从订单自动获取付款条款

会计设置中的从订单自动获取付款条款设置控制是否将付款条款和计划从销售订单/采购订单自动复制到其各自的发票。

启用(勾选)时:

  • 销售发票采购发票自动从关联订单继承付款计划
  • 到期日根据发票过账日期(而非订单日期)重新计算
  • 付款金额根据发票总额(而非订单总额)重新计算
  • 设置 ignore_default_payment_terms_template = 1 以防止公司默认值覆盖
  • 要求所有发票项目引用同一订单

禁用(未勾选)时:

  • 付款条款不会从关联订单获取
  • 回退到公司级别的付款条款或手动输入
  • 需要更多手动配置

6. 删除交易时删除会计和库存分类账条目

启用此选项将允许在删除发票和收据时删除关联的总分类账和库存分类账条目。如果您不想在取消文档后丢失文档 ID,可以勾选此项。您现在可以取消并删除文档以重新获得相同的文档 ID。

7. 自动登记资产折旧分录

勾选后,将根据设置的第一个日期自动创建资产折旧分录。例如,某个项目的年度折旧将根据资产主数据中设置的“折旧次数”在未来 3/4 年内进行计划。有关更多详细信息,请访问资产折旧页面。

与上一个选项类似,此选项取消针对采购/销售订单支付的任何预付款的关联。

9. 启用共同方会计

如果勾选,则在创建针对共同客户和供应商的销售/采购发票时,将自动过账调整日记账分录。有关更多详细信息,请访问共同方会计。

10. 允许针对单一对方账户开立多币种发票

启用此选项将允许以公司货币针对单一对方账户创建多币种发票。

11. 为找零金额创建分类账条目

如果勾选,对于销售点发票,系统将考虑给出的找零金额过账分类账条目。

12. 启用折扣会计

如果勾选,则可以在销售发票的项目表中添加折扣科目,这将使您能够更有效地核算应用于项目的折扣。它还允许您为项目添加默认折扣科目,当项目添加到销售发票时,这些科目将自动获取。

税务设置

1. 确定地址税务类别来源

税务类别可以在地址上设置。地址可以是送货地址或账单地址。设置在应用税务类别时选择哪个地址。

2. 从项目税务模板自动添加税费

启用此选项后,如果为项目设置了项目税务模板并且在交易中选择了该项目,则将在交易的税费表中填充数据。

3. 登记提前付款折扣的税务损失

启用此选项后,如果付款条目对应的单据设置了提前付款折扣,则会将付款条目的折扣扣除拆分为收入损失和税务损失。

期间结账设置

1. 账户冻结截止日期

将会计交易冻结至指定日期,除指定角色外,任何人都无法进行或修改分录。

2. 允许设置冻结账户和编辑冻结分录的角色

拥有此角色的用户可以设置冻结账户,并针对冻结账户创建或修改会计分录。

3. 信用控制员

此角色允许提交超出信用额度的交易。

递延会计设置

1. 递延分录的记账依据

递延收入金额可根据两种标准进行记账。此处的默认选项是“天数”。如果选择“天数”,递延收入金额将根据每个月的天数计算;如果选择“月份”,则根据月份数计算。 例如: 如果选择“天数”,并且 12000 美元的收入需要在 12 个月内递延,那么 30 天的月份将记账 986.30 美元,31 天的月份将记账 1019.17 美元。如果选择“月份”,则无论月份天数多少,每月都将记账 1000 美元的递延收入。

2. 自动处理递延会计分录

此设置默认启用。如果您不希望自动过账递延会计分录,可以禁用此设置。如果禁用此设置,则需要使用“处理递延会计”功能手动处理递延会计。

3. 通过日记账分录记账递延分录

默认情况下,直接过账分类账分录以针对发票记账递延收入。为了通过日记账分录过账来记账此递延金额,可以启用此选项。

1. 在打印中显示含税价格

允许您在打印的文档(如发票和销售订单)中显示包含在项目价格中的税额。

2. 在打印中以表格形式显示税费

允许您在打印的文档(如发票、采购订单和销售订单)中以表格格式显示税费详情。

3. 在打印中显示付款计划

使用付款条款时,付款计划表格可见。启用此选项将在打印视图中显示此表格。

货币汇率设置

1. 允许过时汇率

如果您希望 ERPNext 检查在外币交易中从货币汇率获取的记录的新旧程度,则应取消选中此项。如果取消选中,汇率字段在文档中将变为只读。

“过时天数”是用于判断货币汇率记录是否过时的天数。此设置仅在“允许过时汇率”禁用时有效。因此,如果过时天数设置为 10,则允许使用 10 天内的过时汇率。如果启用了“允许过时汇率”,则对过时汇率的新旧程度没有时间限制。

如果启用了过时汇率,获取顺序为:

  • 来自货币汇率表单的最新汇率
  • 如果未找到货币汇率,则自动获取市场最新汇率

如果禁用了过时汇率,获取顺序为:

  • 来自货币汇率表单的最新汇率,但仅限于“过时天数”中设置的天数内
  • 如果未找到货币汇率,则自动获取市场最新汇率

报表设置

1. 使用自定义现金流量格式

您可以选择使用自定义现金流量格式来自定义现金流量报表的外观。要了解更多信息,请访问此处。

账户处理报表

在版本 13 中引入

处理客户对账单是一个工具,可帮助您将客户对账单(总分类账报告)和账龄分析(应收账款汇总)报告以 PDF 格式批量发送给客户,可以通过手动方式或按计划自动执行。

当您希望定期向客户发送关于其交易(如销售发票)的电子邮件更新时,此功能非常有用。在发送给客户的电子邮件附件中,每个客户都会看到与其账户相关的详细信息,例如发票过账日期、销售发票编号、借方和贷方明细等。

此功能的目的是提醒多个客户他们有待付的未结发票。

要访问处理客户对账单列表,您可以在导航栏中搜索,或前往:

首页 > 会计 > 工具 > 处理客户对账单

1. 前提条件

  1. 该工具使用客户的电子邮件地址向其发送报告。如果在客户联系人中找不到以下电子邮件条目,该工具将不允许您选择相应的客户,因此请确保在客户文档中填写了以下详细信息。
  • 客户的账单电子邮件:这是必填项,可以在客户联系人中设置,并勾选“是账单联系人”选项。
  • 客户的主要电子邮件:这不是必填项,除非您在表单中选择了“发送给主要联系人”。
  1. 电子邮件账户设置已启用外发功能。在此处了解更多信息。

2. 如何创建处理客户对账单条目

  1. 通过在导航栏中搜索进入“处理客户对账单”列表视图,然后点击“新建”。

  2. 为条目输入一个名称,以便将来参考。

  3. 设置将发送给客户的对账单的总分类账筛选条件。

  • 当选择“启用自动电子邮件”选项时,“开始日期”和“结束日期”筛选条件将被隐藏并自动动态填充。
  • “项目”和“成本中心”是表格多选字段。这意味着您可以在总分类账筛选条件中选择多个项目和成本中心。

  1. 在“客户”部分,您可以选择子表中的客户,并获取其主要电子邮件和账单电子邮件。
  • “按条件选择客户”字段允许您通过基于“客户组”、“区域”、“销售合作伙伴”和“销售人员”对客户进行分组,输入选择并点击“获取客户”来批量选择客户。
  • 在树状文档类型(如“区域”、“销售人员”和“客户组”)中,选择组值时,也会获取具有这些字段子值的客户。因此,当您在表单中选择“印度”作为区域时,区域树中“区域”值属于印度下的所有客户都将被选中。
  • “发送给主要联系人”选项除了将客户对账单发送到账单电子邮件外,还会发送到客户的主要联系人电子邮件地址。

  1. 在“打印偏好”部分,您可以选择 2 项内容:
  • PDF 文件的打印方向,可以是“横向”或“纵向”。
  • 您是否希望查看账龄分析报告(应收账款汇总报告),该报告根据“到期日期”或“过账日期”显示凭证(如销售发票)的 30/60/90/120 天账龄金额。

  1. “电子邮件设置”部分允许您配置电子邮件的发送方式。此部分包含两个子部分:

  • 选择“启用自动电子邮件”后,您将看到选项,可以设置向客户自动发送定期报告。
  • 您可以选择在“开始日期”之后向客户发送电子邮件的“频率”。可用选项包括每周、每月和每季度。
  • 您还可以选择以月为单位的“筛选持续时间”。例如,如果您将“筛选持续时间”设置为“3”,您将获得从当前日期算起过去三个月的报告。这里,当前日期指的是发送电子邮件的日期。
  • 这些邮件不会立即发送,而是在午夜作为后台进程发送。
  • 之后,您可以选择电子邮件的“主题”、“抄送”和“正文”字段。如果您不设置这些字段的值,将设置如下所示的默认值。
  1. 检查您的设置,然后点击“保存”。

现在,如果您已启用“启用自动电子邮件”,请等待邮件发送;或者点击“发送电子邮件”立即发送。

3. 功能特性

3.1 下载所有客户的合并 PDF

创建条目后,顶部会看到一个名为“下载”的按钮,它允许您查看所有客户的合并报告 PDF。您可以使用此功能进行审查。

3.2 手动发送电子邮件

创建条目后,顶部会看到一个名为“发送电子邮件”的按钮,它允许您手动触发向客户发送电子邮件。这些邮件会通过后台作业排队,您可以在“电子邮件队列”文档类型中通过文档类型和文档引用进行跟踪。即使“启用自动电子邮件”已开启,您也可以执行此操作。

3.3 在邮件主题和正文中使用动态值

您可以使用 Jinja 标签从以下位置输入动态值:

  • 在“客户”对象下,将向其发送邮件的客户
  • 在“文档”对象下,所选流程对账单中的任何字段
  • 在“frappe”对象下,frappe.utils 中的任何方法

它们的使用方法如下所示:

生成的邮件:

报告 PDF:

  1. 设置电子邮件账户
  2. 创建客户联系人
  3. 联系人

银行对账

银行对账分录用于将 ERPNext 的账户报表与您的银行账户报表进行匹配。

如果您通过支票收款或付款,银行报表将无法与您的分录日期完全匹配,这是因为银行通常需要时间来“清算”这些付款。此外,您可能已将支票邮寄给供应商,供应商收到并存入支票可能需要几天时间。

在 ERPNext 中,您可以使用交易日期来同步您的银行报表和日记账分录。

1. 什么是银行对账单?

银行对账报告显示了组织银行报表中显示的银行余额(由银行提供)与公司会计科目表中显示的金额之间的差异。

银行对账单的样式如下:

在报告中,检查“银行余额”字段是否与银行账户报表匹配。如果匹配,则表示所有银行分录的清算日期都已正确更新。如果不匹配,则是因为某些银行分录的清算日期尚未更新。

要访问银行对账,请前往:

首页 > 会计 > 银行与付款 > 更新银行交易日期

2. 如何更新银行交易日期

  • 前往银行清算
  • 选择您的银行账户。
  • 选择起始日期和截止日期。
  • 您可以选择包含已对账分录和 POS 交易。
  • 点击获取付款分录按钮。
  • 现在您将获得所有“银行凭证”类型的分录。
  • 在每个分录的最右侧列中,更新清算日期字段,然后点击更新清算日期按钮。通过这样做,您将能够将银行报表和分录同步到系统中。

3. 对账工具的类型


ERPNext 有两种对账工具:

  1. 手动对账工具,允许针对付款分录、销售发票付款或日记账分录设置清算日期
  2. 半自动对账工具,允许针对付款分录、销售和采购发票付款、日记账分录或费用报销清算银行交易。

3.1 手动银行对账工具

要查看此报告,请前往:

账户 > 银行与付款 > 银行对账单

在报告中,检查“银行余额”字段是否与银行账户报表匹配。如果匹配,则表示所有银行分录的清算日期都已正确更新。如果不匹配,则是因为某些银行分录的清算日期尚未更新。

3.2 半自动银行对账工具

这是一个两步过程:

  1. 通过银行报表导入或银行账户同步将银行交易添加到 ERPNext
  2. 对账银行报表

3.2.1 银行报表导入

  • 从银行网站下载银行报表。确保银行报表的每一行至少包含日期、借方/贷方和币种。要上传银行报表,请前往:

会计 > 银行报表 > 银行报表导入

或者直接在超级搜索栏中搜索银行报表导入

  • 选择您的公司和银行账户
  • 点击保存
  • 附加银行报表
  • 点击映射列以输入上传的银行报表列与银行交易文档类型之间的映射关系
  • 点击开始导入以启动导入过程。银行交易将通过后台任务创建,但进度将在此处显示
  • 完成的映射会存储在与相应银行账户关联的银行文档中。下次上传时,映射会从此处获取,但系统允许用户根据需要更改。更改后的映射也会更新到银行文档中。

3.2.2 银行账户同步

您可以使用 Plaid(请参阅 Plaid 集成页面)自动将您的银行账户与 ERPNext 同步。您的所有银行交易将自动导入 ERPNext。

3.2.3 银行交易的自动参与方匹配

您可以选择启用自动参与方匹配,以便在银行交易中自动设置参与方(如果匹配)。要启用此功能,请前往:

账户设置 > 银行 > 启用自动参与方匹配

您还可以勾选启用模糊匹配,此时银行交易中的参与方名称/描述将与系统中的所有参与方进行近似匹配。当参与方的银行账户未在系统中注册时,此功能非常有用。

启用后,参与方匹配将在提交银行交易时自动进行。

为了辅助映射,您可以通过为各个参与方创建银行账户,轻松存储客户供应商员工的银行数据。提交后,银行交易中的参与方类型和参与方将自动设置,并可进行更正/更新。

模糊匹配结果取决于系统中参与方数据的性质。如果存在多个名称极其相似的参与方,匹配可能不准确。

最好先通过以下步骤测试此功能:

  1. 启用该功能
  2. 在系统中录入一些参与方记录
  3. 创建一笔银行交易,其参与方名称/描述包含目标参与方的名称
  4. 提交银行交易后,参与方应在银行交易中自动设置。此时您可以判断结果是否可接受。

3.2.4 对账银行对账单

当所有银行交易都导入 ERPNext 后,您可以将其与现有凭证进行对账。请前往:

会计 > 银行对账单 > 银行对账工具

或者直接在超级搜索栏中搜索银行对账工具

  • 选择您的公司、银行账户、银行对账单的开始和结束日期。
  • 确保 ERPNext 中的期初余额与银行对账单的期初余额一致。
  • 输入银行对账单的期末余额。
  • 保存文档将显示匹配的银行交易。
  • 银行对账的最终目标是通过匹配现有凭证或创建新凭证,使差额变为零(绿色)。
  • 对于银行对账单中存在但无清算日期的所有银行交易,点击“操作”按钮进行匹配/创建凭证。
  • 对于匹配,在“操作”中选择“匹配凭证”。将显示与此交易相关的凭证。它们将根据匹配字段的最大数量进行排序。您可以使用复选框将一个或多个凭证与同一银行交易进行匹配。
  • 要创建新凭证,在“操作”中选择“创建凭证”,然后选择文档类型。填写银行交易中未提供的详细信息。点击“提交”将创建相应的凭证并更新其清算日期。
  • 也可以更新银行交易。更新银行交易可能有助于 ERPNext 找到更好的匹配。要更新银行交易,在“操作”中选择“更新银行交易”,填写所需详细信息,然后点击“提交”保存银行交易。
  • 付款对账
  • 银行保函
  • 付款录入

在财务报表模板中使用自定义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 结果,请确保源行具有行引用,并且公式中使用的代码完全一致。