新闻详情

新闻详情

首页 / 资讯中心 / 详情

ERPNext v6.0 升级指南:Sales Order 日历/甘特视图、可折叠表单与标题编辑、可配置警告抑制

发布时间:2026/9/30 10:56:49来源:尧图网络
ERPNext v6.0 升级指南:Sales Order 日历/甘特视图、可折叠表单与标题编辑、可配置警告抑制
后端企业应用【免费下载链接】erpnextFree and Open Source Enterprise Resource Planning (ERP)项目地址https://gitcode.com/GitHub_Trending/er/erpnext点击查看免费下载本篇指南以 erpnext/change_log/v6/v6_0_0.md 为核心骨架系统讲解 ERPNext 6.0 版本带来的四大关键变更基于交货日期Delivery Date的 Sales Order 日历与甘特视图、事务表单的可折叠区块与可编辑文档标题、以及可通过 Selling / Buying 设置开关的警告抑制机制。读完本文你将掌握这些功能的启用方法、配置要点、底层数据来源与验证方式可直接对照当前仓库源码进行实操与排查。版本背景与变更总览v6.0.0 是 ERPNext 在 v6 系列中的首个大版本。作为一款免费开源的企业资源计划ERP系统ERPNext 的每个大版本都会在销售、采购、库存、财务等核心模块中引入一批界面与交互改进。v6.0.0 的变更日志erpnext/change_log/v6/v6_0_0.md共记录了四条全部围绕销售与事务单据的易用性展开为 Sales Order 增加基于 Delivery Date 的日历视图Calendar View与甘特视图Gantt View大多数事务表单支持可折叠区块Collapsible Sections界面更有序、编辑定位更快捷大多数事务的文档标题Title可编辑可为 Sales Invoice 等单据设置更有意义的标题以标记状态允许用户在Sales Settings 与 Purchase Settings中关闭针对多货项Multiple Items和针对同一客户采购订单的多张销售订单Multiple Sales Order against a Customers Purchase Order的警告。下文逐项展开并结合当前仓库中的实现源码说明其工作原理与验证方法。Sales Order 的日历与甘特视图功能入口与配置v6.0.0 在 Sales Order 模块引入了基于交货日期Delivery Date的日历与甘特视图。在 ERPNext 中DocType 列表页右上角的视图切换区即可切换到日历Calendar视图若 DocType 支持甘特Gantt则可在日历视图中进一步切换为甘特模式用于在时间轴上直观查看每张销售订单的交付计划。该能力由前端视图定义文件驱动erpnext/selling/doctype/sales_order/sales_order_calendar.js。其核心配置如下frappe.views.calendar[Sales Order] { field_map: { start: delivery_date, end: delivery_date, id: name, title: customer_name, allDay: allDay, convertToUserTz: convertToUserTz, }, gantt: true, // ... };其中gantt: true即启用甘特视图field_map将视图所需的通用字段映射到 Sales Order 的文档字段开始与结束时间均取delivery_date交货日期、事件标题取customer_name客户名称、唯一标识取文档名name。视图过滤与配色规则日历/甘特视图支持按客户、交付状态、开票状态筛选配置在 sales_order_calendar.js 中customerLink 类型指向 Customer 文档delivery_status可选Not Delivered/Fully Delivered/Partly Delivered/Closed/Not Applicablebilling_status可选Not Billed/Fully Billed/Partly Billed/Closed。事件条目的颜色由get_css_class函数根据单据状态动态决定sales_order_calendar.js单据状态交付状态CSS 类含义Closed—success已关闭绿色—Not Delivereddanger未交付红色提示延期风险—Partly Deliveredwarning部分交付黄色—Fully Deliveredsuccess全部交付绿色事件数据的后端来源视图通过get_events_method: erpnext.selling.doctype.sales_order.sales_order.get_events调用后端取数。该方法在 erpnext/selling/doctype/sales_order/sales_order.py 中实现要点如下以frappe.qbQuery Builder对 Sales Order 与其子表 Sales Order Item 做关联查询仅返回skip_delivery 0且skip_delivery_note 0的行即跳过了交付安排的行不会出现在视图中过滤docstatus 2排除已取消单据只返回delivery_date落在查询区间[start, end]且非空的记录每条事件补充allDay: 0与convertToUserTz: 0表示按用户本地时区精确显示具体日期而非全天事件。由此可见日历/甘特视图本质上是交货日期 交付/开票状态的可视化报表数据全部来自 Sales Order 主表与其子表delivery_date字段无需额外维护。事务表单的可折叠区块v6.0.0 的第二个改进是大多数事务表单支持可折叠区块Collapsible Sections使长表单更整洁用户能快速展开自己关心的部分进行编辑。这在 ERPNext 的 DocType 定义层表现为表单布局中Section Break Collapsible的组合。在 DocType JSON 定义中区块是否可折叠由字段的collapsible属性控制。以 erpnext/selling/doctype/sales_order/sales_order.json 为例其中与订单信息、物流信息相关的 Section Break 字段均带有collapsible: 1配合collapsible_depends_on可在满足条件时才允许折叠例如已有部分数据时。这些定义同时服务于表单渲染也决定了打印与复制等场景下的字段组织方式。从使用角度看折叠区块带来的直接收益有三点信息密度可控新建单据时默认只展示必填与常用字段其余分区收拢编辑定位快速处理复杂单据时按需展开更多信息物流仓库等分区减少滚动表单更整洁长表单被结构化分组视觉负担明显降低。该能力是 Frappe 框架层面的通用机制v6.0.0 将其推广到大多数事务表单因此销售、采购、库存、财务等模块下的主要单据均受益。可编辑的文档标题第三条变更是大多数事务的文档标题Title可编辑。ERPNext 中每个 DocType 都有一个title_field决定列表与视图标题栏中显示的文本。默认情况下 Sales Invoice 等单据的标题通常取自其编号name或固定的客户名称难以表达业务含义。v6.0.0 之后用户可直接编辑标题字段例如将销售发票标题改为2024-Q3 华为项目尾款一眼识别业务来源通过前缀或后缀标记状态如待收款A客户-7月在被引用或关联单据视图中用可读标题替代无意义的编号。该行为由 DocType 定义中的title_field与allow_rename或标题字段本身的editable属性共同决定title_field指向一个可编辑字段时用户即可在表单中修改标题后续所有引用该单据名称的位置如报表、甘特视图的title: customer_name映射都会随之展示新标题。这一改进对销售流程的语义化管理帮助明显尤其适用于需要长期跟踪的发票、订单与对账单。可配置的警告抑制Sales / Purchase Settings两种可关闭的警告v6.0.0 允许用户通过设置关闭两类警告该功能由 McLean Images 赞助Multiple Items多货项警告当一张事务如销售订单、采购订单中包含多个货项时系统可能在特定场景给出提醒Multiple Sales Order against a Customers Purchase Order同一客户采购订单对应多张销售订单警告当用户以同一客户的同一PO No.重复创建销售订单时系统默认会拦截或告警。开关字段与设置位置上述开关对应 erpnext/selling/doctype/selling_settings/selling_settings.json 中的两个 Check 类型字段字段类型默认行为关闭后效果allow_multiple_itemsCheck未勾选时对多货项进行校验/警告勾选后允许多货项不再警告allow_against_multiple_purchase_ordersCheck未勾选时阻止同一采购订单重复开销售订单勾选后仅给出提示Warning不阻止保存两者的字段类型声明同样体现在自动生成的类型标注中selling_settings.py 中allow_against_multiple_purchase_orders: DF.Check与allow_multiple_items: DF.Check。底层校验逻辑以同一客户采购订单对应多张销售订单为例其拦截逻辑位于 Sales Order 的校验方法validate_poerpnext/selling/doctype/sales_order/sales_order.pyif self.po_no and self.customer and not self.delivery_not_required(): so frappe.db.get_value( Sales Order, filters{ po_no: self.po_no, name: [!, self.name], docstatus: [, 2], customer: self.customer, }, fieldnamename, ) if so: if cint( frappe.get_single_value(Selling Settings, allow_against_multiple_purchase_orders) ): frappe.msgprint(...) # 仅提示警告 else: frappe.throw(...) # 阻止保存即当检测到同客户、同po_no、未取消docstatus 2且非当前单据的销售订单已存在时若allow_against_multiple_purchase_orders未开启默认frappe.throw抛出异常阻止保存并提示前往 Selling Settings 开启该选项若该选项开启降级为frappe.msgprint(..., alertTrue)仅显示警告气泡单据可正常保存。cint()将设置值归一为 0/1frappe.get_single_value实时读取单例文档因此修改设置后立即生效无需重启服务。多货项设置的验证allow_multiple_items对应的校验行为分散在销售相关控制器中其设置本身由 Selling Settings 单例承载。仓库中的单元测试 erpnext/selling/doctype/selling_settings/test_selling_settings.py 验证了该字段的两种关键行为test_unrelated_change_does_not_update_customer_metadata与test_unrelated_change_does_not_rewrite_toggle_setters仅切换allow_multiple_items不会触发客户命名元数据更新也不会重写其他隐藏字段的 Property Setter——说明该字段是独立开关改动副作用极小test_toggle_setters_rewritten_when_related_settings_change当hide_tax_id、editable_bundle_item_rates、enable_discount_accounting等联动字段变更时才会统一重写 Property Setter断言调用 11 次。由此可以推断v6.0.0 引入的这些开关在设计上遵循单一职责、改动隔离原则避免单个布尔项改动引发全局元数据抖动。配置建议与升级注意事项基于以上实现针对实际部署给出以下建议交付计划可视化若企业按交货日期管理履约建议在销售团队中推广 Sales Order 的日历/甘特视图并配合delivery_status/billing_status筛选追踪延期风险红色 未交付标题规范结合title_field的可编辑能力可制定客户 项目 状态的命名规范提升报表与甘特视图的可读性警告开关按需开启若存在一张客户采购订单拆分为多张销售订单的业务场景如分批交付、分批开票应勾选 Selling Settings 中的allow_against_multiple_purchase_orders避免frappe.throw阻断正常业务流程若因特殊业务需要在一张单据中大量货项且确认无误可开启allow_multiple_items但建议保持默认关闭以保留校验防线设置改动即时生效通过frappe.get_single_value实时读取无需重启进程。相关源码索引以下为本文涉及的关键实现与测试文件便于进一步研读变更日志原文erpnext/change_log/v6/v6_0_0.md日历/甘特视图前端定义erpnext/selling/doctype/sales_order/sales_order_calendar.js事件数据后端实现erpnext/selling/doctype/sales_order/sales_order.py同一采购订单多销售订单校验erpnext/selling/doctype/sales_order/sales_order.pySelling Settings 定义与字段类型erpnext/selling/doctype/selling_settings/selling_settings.json、selling_settings.pySelling Settings 单元测试erpnext/selling/doctype/selling_settings/test_selling_settings.py赞分享后端企业应用【免费下载链接】erpnextFree and Open Source Enterprise Resource Planning (ERP)项目地址https://gitcode.com/GitHub_Trending/er/erpnext点击查看免费下载相关推荐Frappe v6.1 表单交互升级可折叠分区、标题编辑与实时数据导入进度全解析Frappe v6.1 表单交互升级可折叠分区、标题编辑与实时数据导入进度全解析 本指南基于仓库中的版本变更日志 frappe/change_log/v6/v后端Web框架低代码前端认证鉴权让旧Mac重获新生OpenCore Legacy Patcher的魔法之旅让旧Mac重获新生OpenCore Legacy Patcher的魔法之旅 想象一下你的MacBook Pro 2012年款静静地躺在桌角系统停留在mac操作系统固件驱动开发BilidownB站视频下载终极解决方案BilidownB站视频下载终极解决方案 还在为无法离线观看B站精彩内容而烦恼是否曾经遇到过网络不稳定导致学习中断的困扰Bilidown为您提供一站式的B桌面应用音视频上一篇LibreTranslate终极部署指南7分钟搭建你的免费开源翻译API服务器 下一篇AI小说创作完整方案基于大语言模型的长篇叙事自动化系统实战解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

学术codex:赋能学术研究的智能信息处理工具与应用场景解析 2026/9/30 11:27:29

学术codex:赋能学术研究的智能信息处理工具与应用场景解析

作为研究生,文献海量、实验乱飞、论文卡壳、组会频繁……一天不高效就落后别人十条街! 今天我精选2026年最火的4款纯AI驱动科研神器,切问学术打头阵,从文献精准挖宝到写作一键起飞、总结自动化、数据提取零压力,全流程…

阅读更多 →
如果像 AI 一样写 Lambda(第 4 篇):聚合与收集 2026/9/30 11:27:29

如果像 AI 一样写 Lambda(第 4 篇):聚合与收集

如果像 AI 一样写 Lambda(第 4 篇):聚合与收集(Stream 应用篇)一句话总结:流处理完总要"收摊"。Collectors.toList / joining / groupingBy / reduce 是把流变回集合、字符串、Map、单值的四大收摊工具,它们本身就是 :: 的重度用户。相关文档:《如果像AI一样写Lambda…

阅读更多 →
高并发场景下的代理IP池:连接池、异步IO与限速策略 2026/9/30 11:27:23

高并发场景下的代理IP池:连接池、异步IO与限速策略

很多团队做代理IP池时,第一反应是扩充IP数量。IP池大了,可用出口多了,理论上并发就能上去。但实际压测中经常出现相反情况:IP列表越来越长,吞吐却卡在某个水平,延迟抖动明显,错误率上升。代理IP…

阅读更多 →
最新模型 Gemini 4 Pro 如何让论文 Discussion 写出深度? 2026/9/30 11:27:23

最新模型 Gemini 4 Pro 如何让论文 Discussion 写出深度?

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。 今年9月,真是神仙打架的一个月,相信很多人都刷到了 Gemini 4 Pr…

阅读更多 →
Meta Muse 长任务为什么越来越慢?原因、判断方法与提速指南 2026/9/30 11:27:16

Meta Muse 长任务为什么越来越慢?原因、判断方法与提速指南

Meta Muse 执行几分钟以上的长任务时,有些用户会感觉它越跑越慢:前几步还能快速回复,后面开始长时间停留在“处理中”,生成文字的速度下降,网页操作也迟迟没有结果。 这类现象通常不能简单归结为“模型变笨了”。对于能…

阅读更多 →
【会议征稿通知 | IEEE出版 | 四川工商学院主办】第三届智能驾驶与智慧交通国际学术会议(IDST 2026) 2026/9/30 11:26:54

【会议征稿通知 | IEEE出版 | 四川工商学院主办】第三届智能驾驶与智慧交通国际学术会议(IDST 2026)

第三届智能驾驶与智慧交通国际学术会议(IDST 2026) 2026 3rd International Conference on Intelligent Driving and Smart Transportation 智能驾驶和智慧交通利用新兴技术,使城市出行更加方便、更具成本效益且更安全。在此背景下&#xf…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉