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

DuodooBMS源码解读之 purchase_change 模块

采购变更模块用户使用手册

一、模块概述

本扩展模块主要用于处理采购变更相关业务,包括采购变更单的创建、展示以及将采购变更信息导出为 Excel 文件等功能。以下将详细介绍该模块的具体使用方法。

二、模块功能及使用方法

(一)采购变更单视图(purchase_change/views/purchase_change_view.xml

此视图文件定义了采购变更单的界面布局和交互元素。

1. 视图加载

当你进入采购变更单相关界面时,系统会加载 purchase_change_form 视图,该视图基于 purchase.change 模型构建。

2. 界面元素
  • 按钮操作
    • 提交按钮:按钮名称为“提交”,对应方法 button_submit。当采购变更单处于 draft(草稿)状态时,该按钮可见,点击可进行提交操作。
    • 确认按钮:按钮名称为“确认”,对应方法 button_change_done。当采购变更单处于 submit(已提交)状态时,该按钮可见,并且只有具有 purchase.group_purchase_manager 权限组的用户才能看到并操作此按钮,点击可进行确认操作。
    • 修改按钮:按钮名称为“修改”,对应方法 button_change_draft。当采购变更单处于 submit(已提交)状态时,该按钮可见,点击可进行修改操作。
  • 状态显示
    界面上有一个状态字段 state,使用 statusbar 小部件展示,可显示的状态包括 draft(草稿)、submit(已提交)、done(已完成),该字段为只读字段。
  • 基本信息显示
    • 显示“采购变更单”标题以及变更单的名称,名称字段为只读。
    • 显示源采购订单信息(old_order_id),在具有 base.group_multi_company 权限组时显示,当变更单状态为 done(已完成)时,该字段为只读。
    • 显示供应商信息(partner_id),该字段为只读且强制保存。

(二)采购变更信息导出为 Excel 文件(purchase_change/controllers/download.py

该功能允许用户将采购变更信息导出为 Excel 文件。

1. 导出操作入口

purchase_change/wizard/purchase_change_download.py 中定义了一个向导 PurchaseChangeDownload,在相关界面可找到“采购变更下载”操作入口。

2. 操作步骤
  • 在向导界面选择需要导出的采购变更单(order_ids 字段,支持多选),类型默认为“采购变更单”(type 字段)。
  • 点击“下载”按钮(对应方法 action_download),系统会将选择的采购变更单信息传递给 /web/export/purchase_change_xls 路由。
3. 导出文件生成过程
  • 系统会根据传递的采购变更单 ID 列表,从数据库中获取相应的采购变更记录。
  • 为每个采购变更记录生成一个 Excel 工作表,工作表名称为采购变更单的名称(若没有名称则为“采购变更单”)。
  • 在工作表中填充采购变更单的基本信息,如采购变更单号、源采购订单、供应商、变更人等。
  • 填充采购变更单的明细信息,包括产品、说明、原数量、变更后数量、单位、单价、变更后单价、税率、小计等。
  • 最后计算并填充未税金额、税率设置、合计等信息。
  • 生成的 Excel 文件以“采购变更”加上当前日期时间戳命名,文件格式为 .xls

三、注意事项

  • 导出 Excel 文件时,需要确保你有相应的权限,且系统环境中已正确安装 xlsxwriter 库。
  • 在操作采购变更单的按钮时,需注意按钮的可见状态和权限限制,避免误操作。

http://www.kler.cn/a/556425.html

相关文章:

  • ABAP数据库表的增改查
  • 深入理解 SQL 注入漏洞及解决方案
  • QTextEdit达到指定行数自动清理+光标移动到末端(QT/C++)
  • 【CXX】4.1 CXX与Cargo集成配置详解
  • DeepSeek04-导出导入模型文件
  • Bootstrap Blazor UI 中 <Table> 组件 <TableColumn> 使用备忘01:EF Core 外码处理
  • Could not download npm for node v14.21.3(nvm无法下载节点v14.21.3的npm)
  • SeaTunnel社区「Demo方舟计划」首期活动上线—— MySQL CDC实时同步至PostgreSQL实战
  • Android 底层判断/dev/video节点是否是可用摄像头
  • 机器学习实战(10):深度学习初探——卷积神经网络(CNN)
  • Python连接MySQL数据库完全指南
  • 【Linux】命名管道------Linux进程间通信的桥梁
  • AI时代前端工程师的自主学习:挑战与机遇
  • MySQL 5.7优化
  • MySQL(1)基础篇
  • C语言预处理学习笔记
  • Web入侵实战分析-常见web攻击类应急处置实验2
  • Test the complete case
  • 区块链中的递归长度前缀(RLP)序列化详解
  • 黑马点评_登录模块