@ekwo-ai/xbrl-cbso (英语)
生成比利时国家银行比利时年度账户的XBRL文件 (中央资产负债表办公室, 加拿大统计局 编号 : 双语中心 编号 : 巴兰斯中央, (中文(简体) ), 分类学 26.0 (韩语)资本公司简略模式m01-f (英语)) (中文(简体) ).
- 纯 TypeScript, 零运行时间依赖性 . 在Node 18、Deno、Bun和浏览器工作.
- 从官方分类学中产生. 该模型的297个报告代码(430个单元格,
其计量和维度成员直接删除
由 NBB 分类软件包
scripts/build-taxonomy.mjs——不是用手抄写的. 来源 和方法:docs/sources.md。 。 。 . - 两道入地. 报告守则
20/58, (中文(简体) ),9904),或事实键入簿记系统 已经保存到每个语句行的旁边( e)met:am1|bas:m9|rst:m2) (中文(简体) ). - 部分表格欢迎. 只有您提供的代码被发布; 存档填充其余部分 .
unknownCodes()告诉你模型会跳过哪个密码. - 内设检查. 企业编号检查数字、ISO日期、比利时邮政编码和
表格的算术特征(
20/58 = 10/49, (中文(简体) ),9904 = 9903 + 780 − 680 − 67/77(中文(简体) ). - 可选的PCMN层. 将试算表(比利时最低会计科目表)改为 报告代码.
安装
npm install @ekwo-ai/xbrl-cbso
使用量
import { generateCbsoXbrl, checkBnbEquations, LegalForm, EnterpriseCourt } from '@ekwo-ai/xbrl-cbso';
const input = {
entityNumber: '0123.456.749',
denomination: 'Exemple Conseil',
legalForm: LegalForm.SA_NV, // 'lgf:m014'
court: EnterpriseCourt.BRUSSELS_FR, // 'cct:m31'
address: { street: "Rue de l'Exemple", number: '1', postalCode: '1000', city: 'Bruxelles' },
periodStart: '2025-01-01',
periodEnd: '2025-12-31',
prevPeriodStart: '2024-01-01',
prevPeriodEnd: '2024-12-31',
gaDate: '2026-05-15', // general meeting approving the accounts
deedDate: '2019-03-04', // deed of incorporation / latest amendment of the articles
values: {
'20/58': { n: 201500, p: 171000 }, // total assets, current and previous year
'10/49': { n: 201500, p: 171000 },
'9904': { n: 57500, p: 43600 },
'9087': { n: 3.5, p: 3 }, // full-time equivalents
// … any other code of the abridged model
},
administrators: [
{ kind: 'person', lastName: 'Dupont', firstName: 'Marie',
street: 'Avenue des Tilleuls', number: '12', postalCode: '1180', city: 'Uccle' },
{ kind: 'company', name: 'Gestion Exemple', enterpriseNumber: '0400.000.086',
street: 'Kerkstraat', number: '7', postalCode: '9000', city: 'Gent',
representative: { lastName: 'Janssens', firstName: 'Pieter' } },
],
};
const violations = checkBnbEquations(input.values); // [] when the form adds up
const xml = generateCbsoXbrl(input); // string, UTF-8, ready to upload
见 examples/basic.ts 用于可运行的版本(npm run example) (中文(简体) ).
从已经带有分类键的语句行
将 CBSO 事实密钥存储在其每行旁边的簿记系统 财务报表根本不需要了解报告代码。 拿着 线条为:
import { generateCbsoXbrl } from '@ekwo-ai/xbrl-cbso';
const xml = generateCbsoXbrl({
...identification,
lines: [
{ xbrl_element: 'met:am1|bas:m2|ntr:m2', amount: 12000, previous_amount: 15000 }, // 22/27
{ xbrl_element: 'met:am1|bas:m5|ntr:m2', amount: 8000, previous_amount: 10000 }, // 24
{ xbrl_element: 'met:am1|bas:m9|rst:m2', amount: 60000, previous_amount: 47500 }, // 40/41
],
});
一个关键是重要领域成员遵循的衡量标准
只将一个事实放入一栏(dim:part, (中文(简体) ), dim:prd)可能会被排除在外。 这个
解决了增加自己成员最少的一行,所以
met:am1|bas:m2 是标题 行为责任 (21/28),而不是一个
下有三行经. 一样适合两行的密钥被拒绝
无法猜测 :
resolveFactKey('met:am1|bas:m25', CBSO_26_M01F);
// CbsoFactKeyError: signature shared by 10/49, 20/58 — add the member that
// separates them (usually a "part:" member)
met:am1|bas:m25|part:m1 是资产总额, |part:m3 共计
负债. resolveFactKey, (中文(简体) ), valuesFromFactKeys 财务报告和审定财务报表 factKeyOf 为:
导出给想要自己进行绘图的呼叫者; mergeValues
显示备案文件将包含什么 values 财务报告和审定财务报表 lines 给予,和
拒绝两人不同意的代码.
试算表
import { valuesFromTrialBalance } from '@ekwo-ai/xbrl-cbso/pcmn';
// balance = debit − credit, for the current and the previous year
const values = valuesFromTrialBalance([
{ account: '400000', balance: 52000, priorBalance: 41000 },
{ account: '440000', balance: -31000, priorBalance: -28000 },
{ account: '700000', balance: -320000, priorBalance: -270000 },
// …
]);
valuesFromTrialBalance 计算四个款(资产、权益和负债、收入)
以标准格式的签字协议的形式返回
生成器所期望的形状。 下级职能computeBalanceSheet, (中文(简体) ),
computeIncomeStatement, (中文(简体) ), computeAppropriation,则 ASSETS 编号 : LIABILITIES 编号 :
INCOME_STATEMENT 编号 : APPROPRIATION 用于自定义管道的出口.
不取自试算表的附件数字(固定资产变动) 8029– 说吧 –8395, (中文(简体) ),
工作人员 9087,.)是平面代码: 添加到 values 你自己来.
API 密码
| 导出 | 说明 |
|---|---|
generateCbsoXbrl(input, options?) | 一个电话: CbsoInput XBRL弦乐 验证输入, 除非 options.validate === false。 。 。 . options.lang 套装 xml:lang (默认) fr) (中文(简体) ). |
checkBnbEquations(values, options?) | 返回不添加的身份( E)code, (中文(简体) ), column, (中文(简体) ), expected, (中文(简体) ), actual, (中文(简体) ), rule) (中文(简体) ). 缺少的操作数为零,如在Filing中. |
unknownCodes(values) | 简略模型不带编码(它们将被悄悄地跳过),排序. |
unfiledValues(input) | 将被丢弃的数字:未知代码,或者模型没有其列的代码. |
resolveFactKey(key, template) | "met:am1|bas:m9|rst:m2" → "40/41"投出一个 CbsoFactKeyError 当密钥符合多行时,命名候选人. |
valuesFromFactKeys(lines, template), (中文(简体) ), factKeyOf(fact), (中文(简体) ), parseFactKey(key) | 这条路的碎片, 供呼叫者自己绘制地图. |
mergeValues(input, template?) | values 加上已解决 lines; 当两人对一个代码有分歧时投出. |
validateInput(input) | 丢出一个 CbsoInputError (单位:千美元)path, (中文(简体) ), message第一个问题. |
normalizeEnterpriseNumber, (中文(简体) ), isValidEnterpriseNumber | "BE 0123.456.749" → "0123456749"; mod-97检查数字. |
LegalForm, (中文(简体) ), EnterpriseCourt | 分类学成员根据接受的申报进行核查。 任何其他 lgf:* 编号 : cct:* 成员可以作为字符串被传递. |
XbrlCbso, (中文(简体) ), CBSO_26_M01F, (中文(简体) ), FRAMEWORK, (中文(简体) ), NAMESPACES | Class API和捆绑模板,用于自定义或更新的分类. |
类型 : CbsoInput, (中文(简体) ), FactKeyLine, (中文(简体) ), PostalAddress, (中文(简体) ), Administrator, (中文(简体) ), YearValues, (中文(简体) ),
Declarations, (中文(简体) ), TemplateFact, (中文(简体) ), CbsoTemplate。 。 。 .
CbsoInput.values 是留下的路径,它让呼叫者掌握自己的地图
从账户到模型的报告代码. CbsoInput.lines 已存在
因此,绘图可以生活在一个地方——生成声明的系统——
而不是在这里复制。 两者都保留支持,可以合并.
如何运作
CBSO分类法载有报告代码(卢布 编号 : 卢布里克语name)在 维度 会 议 日 程 和 议 程
上下文(dim:bas → bas:mXX, (中文(简体) ), dim:part, (中文(简体) ), dim:prd ),从未出现过
元素名称: 数量全部 met:am1 编号 : met:am2数字 met:int* 编号 : met:dec1模板
列表中,对于缩略模型的430个单元格,每个单元格都列出准确的签名。 发电机:
- 保留具有价值的模板事实(识别字段、报告代码);
- 增加列举的识别事实(法律形式、法院、邮政编码、国家)和 董事会成员(类型维度按名称键);
- 构建被调试的上下文, 只声明实际使用的名称空间和格式 数字按元素方面排列(数量为小数二分数,FTE为一分数,整数为一分数).
前一个财政年度是: 没有 a 第二期:两栏按背景报告
其期限为本年度的截止日期,以及 dim:prd (单位:千美元)prd:m1 编号 : prd:m2)说
该栏。 NBB本身的后缀有 P (a) 与《京都议定书》8059P, (中文(简体) ), 1003P措施
和他们一年前的基码一样,所以他们是它的 p 数字. 14P 没有在
该案例——"上一年结转的利润"是其自身的一行,并保留其
自己的代码.
要重建表格 与一个更新的分类软件包:
node scripts/build-taxonomy.mjs --package ~/nbb-cbso-26.0.15 # rewrite
node scripts/build-taxonomy.mjs --package ~/nbb-cbso-26.0.15 --check # verify only
范围和限制
- 型号 m01-f (英语) 只有(简略的,有资本的公司). 完整和微型模型,以及
非盈利分类法尚未涵盖——但构建脚本需要
--model财务报告和审定财务报表--framework,所以另一个的桌子是一个命令离开. - 这个 识别 事实(第1节)没有产生:它们没有报告代码,以及 被保存在接受的NBB档案中。 其他一切出自分类学.
- 只有经接受的档案中核实的法律形式和法院识别资料才被命名为常数;
在分类学上必须注意其他成员
lgf编号 :cct区域. - 生成器不会对 XSD 进行验证 。 国家统计局 归档 申请仍为 主管部门:将文件导入草稿,并在提交前核对其鉴定报告.
发展
npm install
npm run typecheck
npm test
npm run build
许可证
麻省理工学院 埃克沃·艾尔