Odoo Reporting

Polar Sponsor
爱发电 赞助
.NET 9.0

查询 Odoo 数据,包括销售人员业绩、客户分析、订单、发票、CRM、会计、增值税、库存及应收/应付,并生成 WhatsApp 卡片...

Odoo 金融情报:只读,证据第一,基于编辑的报告* 快速参考:通用Odoo模型:1:模版,包含的是什么:用于:::res.users.users/salepe

功能概述

Odoo 金融情报:只读,证据第一,基于编辑的报告* 快速参考:通用Odoo模型:1:模版,包含的是什么:用于:::res.users.users/salepe是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Odoo 财务智能

只读、以证据为先、基于总账的报表

快速参考:常用 Odoo 模型

模型 包含内容 用途
res.users 用户 / 销售人员 按姓名查找销售人员,获取 user_id
sale.order 销售订单 按销售人员统计收入、订单数量、状态
account.move 发票 / 日记账分录 发票追踪、付款、损益表(P&L)数据
res.partner 联系人 / 客户 客户信息、按收入排序的 Top 客户
product.product 产品 产品销售、库存
account.account 会计科目表 财务报表、资产负债表
account.move.line 日记账行 详细的总账分录

安全与凭证

必需的环境变量

本技能需将 Odoo 连接凭证存储于 assets/autonomous-cfo/.env 中:

变量 说明 是否为密钥
ODOO_URL Odoo 实例 URL(例如:https://your-odoo.com) 否
ODOO_DB Odoo 数据库名称 否
ODOO_USER Odoo 用户名 / 邮箱 否
ODOO_PASSWORD Odoo 密码或 API 密钥 是

配置步骤:

cd skills/odoo/assets/autonomous-cfo
cp .env.example .env
# 使用实际凭证编辑 .env 文件
nano .env

模型调用策略

模型调用已被禁用,依据 skill.json 中定义的策略。本技能处理敏感财务数据及外部 Odoo 连接——必须由用户显式调用。

数据处理方式:所有查询均为只读操作,不修改、不导出任何数据。

数据处理规范

  • 只读限制:所有变更类方法(create、write、unlink 等)在客户端层面被拦截禁止
  • 无数据导出:报表均在本地 assets/autonomous-cfo/output/ 目录中生成
  • 网络端点限制:仅连接 .env 中指定的 Odoo URL
  • 输出格式:PDF、Excel 及 WhatsApp 图像卡片(仅限本地文件)

安装

该技能需使用特定 Python 包的虚拟环境:

cd skills/odoo/assets/autonomous-cfo
./install.sh

或手动安装:

cd skills/odoo/assets/autonomous-cfo
python3 -m venv venv
./venv/bin/pip install -r requirements.txt

依赖包:requests、matplotlib、pillow、fpdf2、openpyxl

关键规则

  1. 绝不假设 —— 生成报表前,务必提出澄清性问题
  2. 多公司检查 —— 若存在多个公司,须向用户确认使用哪一个
  3. 基于总账 —— 使用会计科目表和日记账分录(account.move.line),而非仅依赖发票摘要
  4. 核对期间 —— 执行前须与用户确认日期范围
  5. 禁止静默默认值 —— 所有假设均需经用户确认

生成任意报表前,请先询问:

  1. “应使用哪个公司?”(若存在多个公司)
  2. “报告期间?(起始/截止日期)”
  3. “需包含哪些科目或科目类型?”
  4. “是否有特定维度的拆分需求?”(如按科目、按业务伙伴、按日记账等)
  5. “偏好的输出格式?”(PDF、WhatsApp 卡片,或两者)

入口点

使用含 fpdf2、matplotlib、pillow 的虚拟环境,确保 PDF 与图表正常生成:

./skills/odoo/assets/autonomous-cfo/venv/bin/python ./skills/odoo/assets/autonomous-cfo/src/tools/cfo_cli.py 

或从技能目录执行:

cd skills/odoo/assets/autonomous-cfo && ./venv/bin/python src/tools/cfo_cli.py 

基于会计科目表的报表构建

报表应基于以下模型构建:

  • account.account —— 会计科目表结构(编码、名称、类型、internal_group)
  • account.move.line —— 日记账分录行(借方、贷方、account_id、日期)
  • account.journal —— 来源日记账(类型:sale、purchase、cash、bank、general)

科目内部分组(internal_group)

  • ASSET —— 资产类(流动资产、非流动资产、现金、应收账款)
  • LIABILITY —— 负债类(应付账款、税金、应计负债)
  • EQUITY —— 所有者权益
  • INCOME —— 收入类科目
  • EXPENSE —— 成本与费用类科目
  • OFF_BALANCE —— 表外科目

常见科目类型

  • asset_cash —— 银行及现金类科目
  • asset_receivable —— 应收账款
  • asset_current —— 流动资产
  • liability_payable —— 应付账款
  • income —— 收入
  • expense —— 费用

特殊权益类科目(Odoo 特有)

  • equity —— 标准权益类科目(股本、留存收益)
  • equity_unaffected —— 挂账科目(Suspense account),用于未分配利润/亏损(例如编号 999999)

资产负债表关键注意事项:
Odoo 的 equity_unaffected 是一个挂账科目(Suspense account),请勿直接使用其总账余额。

正确的权益计算方式:

  1. 实有权益(Equity Proper)(类型:equity)—— 使用总账余额(贷方 − 借方)
  2. 留存收益(Retained Earnings)(以往年度)—— 取自 equity_unaffected 的总账余额
  3. 本年收益(Current Year Earnings) —— 实时计算:收入 − 费用
权益总额 = 实有权益 + 留存收益 + 本年收益

其中,本年收益 = Σ(收入贷方−借方) − Σ(费用借方−贷方)

为何重要:Odoo 在资产负债表中实时计算本年收益。若仅使用 equity_unaffected 总账余额,将导致资产负债表不平衡。

自动报表准则识别

本技能根据公司所属国家/司法管辖区自动识别适用的会计准则,并相应格式化报表。

支持的准则:

准则 适用辖区 备注
IFRS 国际通用 适用于大多数国家的默认准则
US GAAP 美国 适用于向美国证券交易委员会(SEC)注册的公司
Ind-AS 印度 印度会计准则(与 IFRS 趋同)
UK GAAP 英国 FRS 102
SOCPA 沙特阿拉伯 已采用 IFRS
EU IFRS 欧盟 IAS 法规
CAS 中国 中国企业会计准则
JGAAP 日本 日本公认会计原则
ASPE 加拿大 适用于私营企业
AASB 澳大利亚 澳大利亚会计准则

识别逻辑:

  1. 从 res.company 查询公司所在国家
  2. 将国家代码映射至对应会计准则
  3. 应用准则专属格式化:
    • 数字格式(1,234.56 vs 1.234,56)
    • 负数显示方式((123) vs −123)
    • 日期格式(DD/MM/YYYY vs MM/DD/YYYY)
    • 报表标题(Balance Sheet vs Statement of Financial Position)
    • 现金流量表编制方法(间接法 vs 直接法)

强制覆盖方式:

# 强制指定某项准则
reporter.generate(..., standard="US_GAAP")

命令

销售与 CRM 查询

# 销售人员绩效分析 —— 使用直接 RPC 以获得更高灵活性
./venv/bin/python -c "
from src.visualizers.whatsapp_cards import WhatsAppCardGenerator
# 按 user_id 查询 sale.order,按月份/状态聚合
# 使用 generate_kpi_card() 和 generate_comparison_card() 生成卡片
"

# 示例:按销售人员查询销售订单的 RPC 调用:
# - sale.order(user_id、amount_total、state、date_order)
# - account.move(invoice_user_id、amount_total、payment_state)
# - res.users(销售人员信息)
# - res.partner(客户信息)

预置报表

# 财务健康度 —— 现金流、流动性、烧钱率、资金续航期
cfo_cli.py health --from YYYY-MM-DD --to YYYY-MM-DD --company-id ID

# 收入分析 —— 环比趋势、Top 客户
cfo_cli.py revenue --from YYYY-MM-DD --to YYYY-MM-DD --company-id ID

# 应收/应付账款账龄分析 —— 逾期区间划分
cfo_cli.py aging --as-of YYYY-MM-DD --company-id ID

# 费用明细 —— 按供应商/类别拆分
cfo_cli.py expenses --from YYYY-MM-DD --to YYYY-MM-DD --company-id ID

# 高管摘要 —— 一页式 CFO 快照
cfo_cli.py executive --from YYYY-MM-DD --to YYYY-MM-DD --company-id ID

直接 RPC 查询(高级用法)

对于预置命令未覆盖的销售/CRM 数据,请使用直接 RPC 调用:

# 按销售人员查询销售订单
orders = jsonrpc('sale.order', 'search_read',
    [[('user_id', '=', SALESPERSON_ID)]],
    {'fields': ['name', 'partner_id', 'amount_total', 'state', 'date_order']})

# 按销售人员查询发票
invoices = jsonrpc('account.move', 'search_read',
    [[('invoice_user_id', '=', SALESPERSON_ID), ('move_type', '=', 'out_invoice')]],
    {'fields': ['name', 'partner_id', 'amount_total', 'payment_state']})

# 按姓名查找销售人员
users = jsonrpc('res.users', 'search_read',
    [[('name', 'ilike', 'name_here')]],
    {'fields': ['id', 'name', 'login']})

临时报表(Ad-hoc Reports)

# 自定义对比分析
cfo_cli.py adhoc --from YYYY-MM-DD --to YYYY-MM-DD --metric-a "revenue" --metric-b "expenses"

# 示例:
cfo_cli.py adhoc --metric-a "cash in" --metric-b "cash out"
cfo_cli.py adhoc --metric-a "direct expenses" --metric-b "indirect expenses"

输出格式

--output whatsapp   # 深色主题,1080×1080 PNG 卡片
--output pdf        # 浅色主题,A4 尺寸 PDF
--output excel      # Excel 工作簿(.xlsx)
--output both       # PDF + WhatsApp 卡片
--output all        # PDF + Excel + WhatsApp 卡片

自动可视化

报表默认始终包含恰当的可视化图表:

报表类型 自动包含图表
财务健康度 现金头寸、烧钱率趋势、资金续航期
收入分析 环比趋势、Top 客户、增长 KPI
应收/应付账款账龄分析 账龄区间饼图、逾期重点提示
费用明细 类别拆分、趋势图、Top 供应商
高管摘要 全部 KPI 卡片、汇总图表
资产负债表 资产/负债构成
P&L(损益表) 收入 vs 费用、利润率趋势
现金流量表 经营活动细分、现金趋势

规则:若可视化有助于提升报表可读性,则自动添加;切勿询问“是否需要图表?”——直接嵌入即可。

交互式参数收集

若缺失必要参数,技能将主动询问:

  1. 公司:“应使用哪个公司?”(列出可用选项)
  2. 期间:“报告期间?(例如:‘上月’、‘2024 年第四季度’、自定义日期)”
  3. 科目:“需包含哪些科目或科目组?”(例如:‘全部收入类科目’、‘仅银行类科目’)
  4. 拆分维度:“按什么分组?(月份、客户、类别、科目)”
  5. 输出格式:“输出格式?(WhatsApp 卡片、PDF、两者)”

如何在聊天中使用

只需自然提问即可:

销售与 CRM:

  • “[姓名] 销售人员的业绩如何?”
  • “展示 [销售人员] 的 Top 客户”
  • “对比销售团队业绩”
  • “哪位销售人员订单最多?”

财务报表:

  • “请提供上季度的财务健康度报告”
  • “展示过去 6 个月的收入与费用对比”
  • “我的应收账款账龄情况如何?”
  • “生成本月高管摘要”
  • “基于会计科目表生成利润与损失报表”

通用查询:

  • “本月我们收到多少订单?”
  • “Top 10 客户是谁?”
  • “展示 [客户名称] 的发票状态”

技能将执行以下步骤:

  1. 检查是否存在多个公司并请求确认
  2. 解析您的请求
  3. 询问缺失的信息
  4. 通过总账分录或直接 RPC 从 Odoo 获取数据
  5. 生成图表 + WhatsApp 卡片
  6. 通过 WhatsApp 卡片和/或 PDF 提交结果

硬性规则

  1. Odoo RPC 输出为唯一可信数据源
  2. 严格只读(禁止 create/write/unlink)
  3. 除非明确请求,否则不执行任何主动操作
  4. 每个数值均须附带方法论说明
  5. 每次假设前均须与用户核实
  6. 必须包含可视化图表 —— 若报表可通过图表/图形增强表达效果,则自动嵌入,无需征询用户意见。所有报表应具备视觉完整性。

诊断工具

python3 ./skills/odoo/assets/autonomous-cfo/src/tools/cfo_cli.py doctor

报表主题

  • WhatsApp 卡片:“Midnight Ledger” 主题 —— 深海军蓝(#0a0e1a)、铜光渐变(#cd7f32)
  • PDF 报表:纯白底色、铜色点缀、专业排版

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习