查询 Odoo 数据,包括销售人员业绩、客户分析、订单、发票、CRM、会计、增值税、库存及应收/应付,并生成 WhatsApp 卡片...
Odoo 金融情报:只读,证据第一,基于编辑的报告* 快速参考:通用Odoo模型:1:模版,包含的是什么:用于:::res.users.users/salepe是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
只读、以证据为先、基于总账的报表
| 模型 | 包含内容 | 用途 |
|---|---|---|
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该技能需使用特定 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
account.move.line),而非仅依赖发票摘要使用含 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)asset_cash —— 银行及现金类科目asset_receivable —— 应收账款asset_current —— 流动资产liability_payable —— 应付账款income —— 收入expense —— 费用equity —— 标准权益类科目(股本、留存收益)equity_unaffected —— 挂账科目(Suspense account),用于未分配利润/亏损(例如编号 999999)资产负债表关键注意事项:
Odoo 的 equity_unaffected 是一个挂账科目(Suspense account),请勿直接使用其总账余额。
正确的权益计算方式:
equity)—— 使用总账余额(贷方 − 借方)equity_unaffected 的总账余额权益总额 = 实有权益 + 留存收益 + 本年收益
其中,本年收益 = Σ(收入贷方−借方) − Σ(费用借方−贷方)
为何重要:Odoo 在资产负债表中实时计算本年收益。若仅使用 equity_unaffected 总账余额,将导致资产负债表不平衡。
本技能根据公司所属国家/司法管辖区自动识别适用的会计准则,并相应格式化报表。
支持的准则:
| 准则 | 适用辖区 | 备注 |
|---|---|---|
| IFRS | 国际通用 | 适用于大多数国家的默认准则 |
| US GAAP | 美国 | 适用于向美国证券交易委员会(SEC)注册的公司 |
| Ind-AS | 印度 | 印度会计准则(与 IFRS 趋同) |
| UK GAAP | 英国 | FRS 102 |
| SOCPA | 沙特阿拉伯 | 已采用 IFRS |
| EU IFRS | 欧盟 | IAS 法规 |
| CAS | 中国 | 中国企业会计准则 |
| JGAAP | 日本 | 日本公认会计原则 |
| ASPE | 加拿大 | 适用于私营企业 |
| AASB | 澳大利亚 | 澳大利亚会计准则 |
识别逻辑:
res.company 查询公司所在国家强制覆盖方式:
# 强制指定某项准则 reporter.generate(..., standard="US_GAAP")
# 销售人员绩效分析 —— 使用直接 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
对于预置命令未覆盖的销售/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']})
# 自定义对比分析 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 费用、利润率趋势 |
| 现金流量表 | 经营活动细分、现金趋势 |
规则:若可视化有助于提升报表可读性,则自动添加;切勿询问“是否需要图表?”——直接嵌入即可。
若缺失必要参数,技能将主动询问:
只需自然提问即可:
销售与 CRM:
财务报表:
通用查询:
技能将执行以下步骤:
python3 ./skills/odoo/assets/autonomous-cfo/src/tools/cfo_cli.py doctor
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习