DuodooBMS源码解读之 sale_function模块

销售扩展管理模块操作手册

一、模块概述

本模块主要实现了销售扩展管理的功能,包括销售订单状态更新、销售订单附件下载等功能。主要涉及的文件有stock_picking.pysale_download_select.pydownload.py等。

二、文件功能及操作说明

1. sale_function/models/stock_picking.py

此文件主要对stock.picking模型进行了扩展,在库存调拨单的一些操作(如确认、取消、分配、完成等)时,更新关联销售订单的状态。

关键函数及操作
  • update_sale_order_status
    • 功能:当库存调拨单的state字段发生变化时,会调用此方法。对于有销售订单关联(picking.sale_id存在)的库存调拨单,会调用关联销售订单的_compute_picking_status方法来更新销售订单状态。
    • 操作:该方法会自动在库存调拨单状态变化时触发,无需手动调用。
  • action_assignaction_cancelaction_confirm_action_done
    • 功能:这些方法分别在库存调拨单进行分配、取消、确认、完成操作时被调用。在调用父类的相应方法后,会调用update_sale_order_status方法来更新销售订单状态。
    • 操作:在Odoo系统中,当用户对库存调拨单进行分配、取消、确认、完成等操作时,这些方法会自动执行。

2. sale_function/wizard/sale_download_select.py

此文件主要实现了销售订单附件下载的向导功能。

关键函数及操作
  • action_download
    • 功能:将订单ID和类型数据进行处理,生成一个包含这些数据和时间戳token的字典datas。然后通过构建URL,跳转到/web/export/sale_xls路径,以新窗口的形式打开下载页面。
    • 操作:在Odoo系统中,用户在相应的向导界面点击下载按钮,会触发此方法。

3. sale_function/controllers/download.py

此文件主要实现了销售订单导出为Excel文件的功能。

关键函数及操作
  • IIf
    • 功能:一个简单的条件判断函数,如果条件b为真,则返回s1,否则返回s2
    • 操作:该函数在其他方法中可能会被调用,用于条件判断返回不同的值。
  • index
    • 功能:根据传入的订单ID和类型数据,查询相应的销售订单信息,将信息填充到Excel模板中,生成Excel文件并返回给用户下载。
    • 操作:当用户通过action_download方法跳转到此路由时,此方法会自动执行,用户可以在浏览器中下载生成的Excel文件。具体操作步骤如下:
      1. 解析传入的data参数,获取订单ID和类型。
      2. 根据订单ID查询销售订单信息。
      3. 创建Excel工作簿和工作表,设置格式。
      4. 填充销售订单的相关信息到工作表中,包括合同编号、买卖方信息、产品信息等。
      5. 关闭工作簿,生成Excel文件流。
      6. 设置HTTP响应头,将文件流返回给用户下载。

三、注意事项

  • 确保odoo环境正常运行,相关依赖库(如jsonxlsxwriter等)已正确安装。
  • 在使用index方法导出Excel时,要注意文件的命名和格式,避免因文件名冲突或格式不支持导致下载失败。
  • 确保img文件夹下的logo.png文件存在,否则在生成Excel时插入图片可能会出错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973547.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【DeepSeek 行业赋能】从金融到医疗:探索 DeepSeek 在垂直领域的无限潜力

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

【CSP/信奥赛通关课(一):C++语法基础】

CSP/信奥赛通关课(一):C语法基础 课程简介: 通过六大模块(基础入门、顺序结构、选择结构、循环结构、数组、函数),讲解CSP/信奥赛C语法基础,以模块化思想让学生入门C代码编程学习。 …

Web 自动化测试提速利器:Aqua 的 Web Inspector (检查器)使用详解

Web 自动化测试提速利器:Aqua 的 Web Inspector (检查器)使用详解 前言简介一、安装二、Web Inspector 的使用2.1 获取元素定位器(Locators)2.2 将定位器添加到代码2.3 验证定位器2.4 处理 Frames (框架) 总结 前言 Je…

IDEA中查询Maven项目的依赖树

在Maven项目中,查看项目的依赖树是一个常见的需求,特别是当你需要了解项目中直接或间接依赖了哪些库及其版本时。你可以通过命令行使用Maven的dependency:tree插件来做到这一点。这个命令会列出项目中所有依赖的树状结构。 打开idea项目的终端&#xff…

大数据技术之HBase操作归纳

HBase基本命令总结表(实际操作方式) 进入Hbase:hbase shell 方式一:命令行窗口来操作HBase 1.通用性命令 version 版本信息 status 查看集群当前状态 whoami 查看登入者身份 help 帮助2.HBase DDL操作(对象级操作) 2.1、namespace命名空间(相当…

Java 大视界 -- 国际竞争与合作:Java 大数据在全球市场的机遇与挑战(94)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

1.16作业

1 进注册界面,第一次以为抓包选把isadmin ture了就好 第二次尝试,勾选is admin,有需要invitecode(经典) 2 p r**5 r**4 - r**3 r**2 - r 2023 q r**5 - r**4 r**3 - r**2 r 2023 n 25066797992811602609904…

MybatisPlus教程-从入门到进阶

前言 首先它是国产的,所以直接用官网的简介。 简介 MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 特性 无侵入:只做增强不做改变,引入它不会对现有…

算法1-4 数楼梯

题目描述 楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 输入输出样例 输入 #1 4 输出 #1 5 说明/提示 对于…

DigitalOcean H200 GPU裸机服务器上线!可更好支持DeepSeek满血版

在 DigitalOcean,我们始终致力于为开发者、初创企业和人工智能驱动型公司提供更便捷的高性能计算资源,助力其业务扩展。今日,DigitalOcean 隆重推出基于 NVIDIA HGX H200 AI 超级计算平台的裸机服务器,专为高性能AI工作负载而生。…

企业组网IP规划与先关协议分析

目录 一、IP编址 1、IP地址组成 2、IP地址表达 3、IP 地址分类 4、IP地址类型 5、IP网络通信 6、子网掩码 7、默认子网掩码 8、IP 地址规划 9、有类IP编制缺陷 10、VLSM 11、变长子网掩码案例 12、网关 13、无类域间路由 一、IP编址 网络层位于数据链路层与传输层之间…

Python之装饰器三 踩坑(带参数,不带参数,两者都带参数)

文章目录 前言一、装饰器不带参数(但是装修器内部的函数又需要参数)二、装饰器带参数(但是被装饰的函数不带参数)三、装饰器带参数(并且被装饰的函数也带参数)总结前言 Python装饰器里面遇到的踩坑点,以及自己的理解。 一、装饰器不带参数(但是装修器内部的函数又需要…

蓝桥杯好数

样例输入: 24 输出:7 输入:2024 输出: 150 思路:本题朴素方法的时间复杂度是O(n * log10(n)) ,不超时。主要考察能否逐位取数,注意细节pi,这样不会改变i,否则会导致循环错误。 #in…

人工智能之自动驾驶技术体系

自动驾驶技术体系 自动驾驶技术是人工智能在交通领域的重要应用,旨在通过计算机视觉、传感器融合、路径规划等技术实现车辆的自主驾驶。自动驾驶不仅能够提高交通效率,还能减少交通事故和环境污染。本文将深入探讨自动驾驶的技术体系,包括感…

Vue 实现通过URL浏览器本地下载 PDF 和 图片

1、代码实现如下: 根据自己场景判断 PDF 和 图片,下载功能可按下面代码逻辑执行 const downloadFile async (item: any) > {try {let blobUrl: any;// PDF本地下载if (item.format pdf) {const response await fetch(item.url); // URL传递进入i…

Microsoft 365 Copilot中使用人数最多的是哪些应用

今天在浏览Microsoft 365 admin center时发现,copilot会自动整理过去30天内所有用户使用copilot的概况: 直接把这个图丢给copilot让它去分析,结果如下: 总用户情况 总用户数在各应用中均为 561 人,说明此次统计的样本…

Spring Boot (maven)分页4.0.1版本 专业版- 改

前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…

装修流程图: 装修前准备 → 设计阶段 → 施工阶段 → 安装阶段 → 收尾阶段 → 入住

文章目录 引言I 毛坯房装修的全流程**1. 装修前准备****1.1 确定装修预算****1.2 选择装修方式****1.3 选择装修公司****1.4 办理装修手续****2. 设计阶段****2.1 量房****2.2 设计方案****2.3 确认方案****3. 施工阶段****3.1 主体拆改****3.2 水电改造****3.3 防水工程****3.…

若依-@Excel新增注解numberFormat

Excel注解中原本的scale会四舍五入小数,导致进度丢失 想要的效果 显示的时候保留两个小数真正的数值是保留之前的数值 还原过程 若以中有一個專門的工具类,用来处理excel的 找到EXCEL导出方法exportExcel()找到writeSheet,写表格的方法找到填充数据的方法…

鸿蒙5.0实战案例:基于自定义注解和代码生成实现路由框架

往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录) ✏️ 鸿蒙(HarmonyOS)北向开发知识点记录~ ✏️ 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ ✏️ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景&#…