当前位置: 首页 > news >正文

DuodooBMS源码解读之 sale_delivery模块

发货通知单下载功能操作手册

一、功能概述

该代码实现了发货通知单的下载功能,用户可以选择要下载的发货通知单,系统将生成包含发货通知单详细信息的 Excel 文件供用户下载。

二、文件结构及说明

  1. sale_delivery/controllers/download.py
    • 定义了一个 SaleDeliveryXlsRrport 类,该类继承自 http.Controller,包含一个路由 /web/export/sale_delivery_xls,用于处理发货通知单的导出请求,生成 Excel 文件并返回给用户。
  2. sale_delivery/wizard/sale_delivery_download.py
    • 定义了一个 SaleDeliveryDownload 模型,该模型包含两个字段 order_idstype,分别用于选择要下载的发货通知单和指定下载类型。action_download 方法用于生成下载链接并打开新窗口进行下载。
  3. sale_delivery/controllers/init.pysale_delivery/wizard/init.py
    • 用于初始化相应模块,导入相关文件。

三、操作步骤

1. 选择发货通知单

在 Odoo 系统中找到 sale.delivery.download 向导(一般在相关菜单或操作按钮中),在 order_ids 字段中选择要下载的发货通知单,type 字段默认值为 sale_delivery,无需修改。

2. 触发下载操作

点击 action_download 按钮(一般在向导界面中有对应的按钮),系统会调用 action_download 方法。

3. 生成下载链接

action_download 方法会将选择的发货通知单的 ids 和类型信息编码成 JSON 格式,并生成一个包含 datatoken 的字典 datas。然后,将这些数据编码成 URL 参数,拼接在 /web/export/sale_delivery_xls 路由后面,生成一个完整的下载链接。

4. 打开新窗口下载

系统会以新窗口的方式打开生成的下载链接,此时会触发 SaleDeliveryXlsRrport 类中的 index 方法。

5. 生成 Excel 文件

index 方法会根据传入的 order_ids 从数据库中获取相应的发货通知单记录,然后使用 xlsxwriter 库创建一个 Excel 文件,将发货通知单的详细信息写入 Excel 文件中,包括发货通知单号、客户信息、交货地址、产品信息等。

6. 下载文件

Excel 文件生成后,系统会将文件以 发货通知_时间戳.xls 的文件名返回给用户,用户可以选择保存文件到本地。

四、注意事项

  • 确保 xlsxwriter 库已正确安装,否则可能会导致 Excel 文件生成失败。
  • 选择的发货通知单 order_ids 必须是有效的记录,否则可能会抛出异常。
  • 发货通知单的相关字段(如 partner_idsale_id 等)必须存在,否则可能会导致部分信息无法正确显示在 Excel 文件中。
http://www.dtcms.com/a/30498.html

相关文章:

  • Vue面试2
  • selenium工作原理
  • 海外企业真的需要跨境专线网络吗?
  • 广州SMT贴片加工如何优化生产成本与品质管控?
  • 本地部署DeepSeek R1大模型
  • 什么是事务?并发事务引发的问题?什么是MVCC?
  • 如何在自定义组件中使用v-model实现双向绑定
  • Linux shell脚本,手机上跑的.sh脚本写法
  • Oeko-TexStandard100认证会产生哪些成本?
  • DeepSeek掘金——SpringBoot 调用 DeepSeek API 快速实现应用开发
  • 设计心得——接口
  • unplugin-vue-components,unplugin-auto-import,借用ai去学习
  • OpenMetadata MySQL数据质量治理实现分析
  • 基于C-V曲线的SiC IGBT全区域损伤提取方法
  • 深度学习数据集
  • 【YOLOv10改进[注意力]】引入ACmix机制(享有自注意力和卷积的优势) | CVPR 2021
  • 数据包在客户端和服务端,以及网络设备间如何传输的?
  • Golang | 每日一练 (3)
  • 虚拟地址与物理地址
  • 如何在简历中巧妙展现你的兴趣爱好
  • JavaScript数组常用的方法有哪些?map、filter、reduce 的区别和使用场景是什么?
  • 【Quest开发】全身跟踪(一)
  • 内置函数用法
  • 求两个正整数最大公约数的三种算法
  • Linux下 <用户名> is not in the sudoers file
  • 《晶体管电路设计》 第三章 增强输出的电路
  • 【Python项目】基于Python的Web漏洞挖掘系统
  • 超级详细,知识图谱系统的理论详解+部署过程
  • 全局错误处理如何与Vue Router集成?
  • JavaScript中的symbol类型的意义和使用