
本教程旨在指导odoo 14 pos开发者如何准确读取销售会话中的订单及其现金支付明细,并计算总现金支付金额。文章将详细介绍odoo前端数据模型的访问方法,并着重强调利用浏览器开发者工具和`debugger`关键字进行运行时对象结构检查与调试的最佳实践,帮助开发者高效解决数据访问中的常见问题。
在Odoo 14的销售点 (POS) 模块前端,所有活动会话中的订单数据都通过J*aScript对象进行管理。this.env.pos对象是访问当前POS环境和数据模型的核心入口。要获取当前会话中的所有订单,我们通常使用this.env.pos.get_order_list()方法。这个方法返回一个包含所有订单模型的数组。
每个订单模型 (order) 都包含其相关的支付信息,这些信息存储在order.paymentlines中。order.paymentlines是一个集合对象,其具体的支付行模型可以通过order.paymentlines.models属性访问。每一条支付行 (paymentLine) 模型则包含了支付金额、支付方式(如现金、银行卡等)的详细信息。
我们的目标是遍历所有订单,找出其中的现金支付行,并累加其金额。以下是一个基本的实现思路:
以下是实现上述逻辑的J*aScript代码示例:
get totalCash() {
// 获取当前POS会话中的所有订单列表
const orders = this.env.pos.get_order_list();
let totalCash = 0;
console.log("订单列表: ", orders);
// 遍历每个订单
for (const order of orders) {
console.log("当前订单: ", order);
// 遍历订单中的每一条支付行
// paymentlines.models 包含实际的支付行模型数组
for (const paymentLine of order.paymentlines.models) {
console.log("当前支付行: ", paymentLine);
// 检查支付方式是否为现金
// 支付方式类型通常存储在 paymentLine.cashregister.journal.type
if (paymentLine.cashregister && paymentLine.cashregister.journal && paymentLine.cashregister.journal.type === 'cash') {
console.log("支付方式类型: ", paymentLine.cashregister.journal.type);
console.log("累加前金额: ", totalCash);
totalCash += paymentLine.amount; // 累加现金支付金额
console.log("累加后金额: ", totalCash);
}
}
}
// 返回总现金金额,保留两位小数
return totalCash.toFixed(2);
}在开发过程中,尤其是在处理复杂的J*aScript对象模型时,我们可能会遇到无法正确访问对象属性的情况,或者console.log的输出未能完全展示对象的所有嵌套结构,导致对数据路径产生疑问。例如,console.log一个Backbone模型对象时,可能只会显示其顶层属性和内部的attributes对象,而非所有可直接访问的属性。
解决这类问题的最有效方法是使用浏览器开发者工具进行运行时调试。
芦笋演示
一键出成片的录屏演示软件,专为制作产品演示、教学课程和使用教程而设计。
227
查看详情
在你的J*aScript代码中,可以在任何你想要暂停执行并检查变量状态的位置插入debugger;关键字。当代码执行到这一行时,如果你的浏览器开发者工具是打开的,它会自动暂停,并进入调试模式。
get totalCash() {
debugger; // 在此处设置断点,代码执行到此将暂停
const orders = this.env.pos.get_order_list();
let totalCash = 0;
// ... 后续代码 ...
}通过这种方式,你可以清晰地看到每个对象的真实结构,包括其嵌套属性,从而准确地确定正确的属性访问路径。在确认了paymentLine.cashregister.journal.type和paymentLine.amount是正确的访问路径后,上述代码即可正常工作。
在Odoo 14 POS中读取订单和支付明细,特别是计算现金支付总额,是常见的开发需求。通过this.env.pos.get_order_list()获取订单,并迭代order.paymentlines.models来访问支付行,结合paymentLine.cashregister.journal.type判断支付方式,可以有效地实现这一功能。
更重要的是,当遇到数据模型访问问题时,应充分利用浏览器开发者工具的debugger;功能。它能提供运行时对象结构的清晰视图,帮助开发者快速定位并解决属性访问路径不准确的问题,从而提高开发效率和代码质量。掌握这些调试技巧是Odoo前端开发不可或缺的一部分。
以上就是Odoo 14 POS:深入理解订单与现金支付明细并高效调试的详细内容,更多请关注其它相关文章!
# 这一
# 菏泽扫黑网站建设平台
# 亿视搜seo
# 海伦网站关键词排名优化
# 巴彦网站推广
# 烟台网站建设nanfengnet
# 贞丰关键词排名推荐
# 全网霸屏推广营销效果
# 精准营销推广工具有哪些
# 湛江企业网站建设价格
# 关键词排名优化方案 s
# 构建一个
# 这是
# 的是
# 执行情况
# 用在
# linux
# 是一个
# 你可以
# 支付方式
# 遍历
# 数据
# 常见问题
# win
# 前端开发
# mac
# 工具
# 浏览器
# windows
# 前端
# java
# javascript
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
抖音评论无法发送如何修复 抖音评论功能操作指南
搜狗浏览器如何查找页面中的文字 搜狗浏览器Ctrl+F页面搜索功能
mysql如何回滚事务_mysql ROLLBACK事务回滚方法
如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】
Python项目中的条件导入:解决跨模块依赖问题
优化2xN网格最大路径和的动态规划算法实践
京东快递物流信息不更新怎么办_物流停滞原因与处理方法
Flexbox布局实践:实现底部页脚与顶部粘性导航条的完美结合
word文档中的分隔符有哪些不同类型和用途_Word分隔符类型与用途方法
《新三国志曹操传》游历事件袁尚突围攻略
《火影忍者:木叶高手》快速升级攻略
追剧达人如何发弹幕
《领英》查看屏蔽名单方法
Final Cut Pro视频加EQ教程
《米姆米姆哈》米姆获取及技能攻略
Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧
Linux如何优化系统启动流程_Linux启动项优化方案
Sublime Text怎么关闭自动完成_Sublime禁用Auto Complete设置
PHP页面重载后变量状态保持:实现用户档案连续浏览的教程
《律学法考》查看学习数据方法
J*aScript类型数组_TypedArray使用
c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化
如何在vscode中关闭it环境
电脑的“恢复环境(WinRE)”找不到怎么办_Windows系统恢复环境重建【高级修复】
鸣潮历史学家灯塔位置一览
Word如何将文字快速转成表格 Word文本转换成表格功能使用技巧【效率】
b站怎么查看视频的码率_b站视频码率查看方法
C#解析并修改XML后保存 如何确保格式与编码的正确性
《360浏览器》设置摄像头权限方法
Google Cloud Functions 时区处理指南:理解与最佳实践
51漫画网实时入口 51漫画网页版官方免费漫画入口
有道AI翻译入口 智能写作官方网站入口
小米倒班助手添加日历提醒
如何在Python中安全地将环境变量转换为整数并满足Mypy类型检查
Golang如何初始化module项目_Golang module init使用说明
《虎扑》取消评分记录方法
wps文字怎么设置文字环绕图片的方式_wps文字如何设置文字环绕图片方式
优化Google Charts Gauge:在数据库无数据时显示默认值
CSS如何控制元素外边距_margin实现布局间隔
猫眼电影app如何筛选支持退改签的影院_猫眼电影退改签影院筛选方法
吃完饭就犯困是什么原因 餐后嗜睡如何缓解
Win10锁屏时间怎么设置 Win10调整自动锁屏时间方法
使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式
使用Python和GBGB API高效抓取指定日期范围和赛道比赛结果教程
性能与资源监视器快捷打开
键盘测试软件哪个好_键盘故障检测工具推荐
Golang如何使用log记录日志信息_Golang log日志记录方法总结
PHP页面重载时变量值不重置的实现方法
微博网页版入口链接 微博网页版在线互动平台
纯CSS实现滚动时动态时间轴线条颜色填充效果
2025-12-05
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。