Compare commits

..

819 Commits

Author SHA1 Message Date
jinling.yang
9a157125ba 优化agv相关页面及对应接口 2024-04-22 22:30:05 +08:00
杨金灵
b526565ac4 Accept Merge Request #960: (feature/修复快递订单模型路径字段问题 -> develop)
Merge Request: 修复快递订单模型路径字段问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/960?initial=true
2024-04-22 15:49:46 +08:00
jinling.yang
690a66b6a1 修复快递订单模型路径字段问题 2024-04-22 15:46:43 +08:00
jinling.yang
c0db402f5e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-22 15:45:29 +08:00
jinling.yang
d634cf20ba Merge branch 'feature/修复快速订单' into develop 2024-04-22 15:10:39 +08:00
杨金灵
220af93ed6 Accept Merge Request #959: (feature/修复快速订单 -> develop)
Merge Request: 修复快速订单

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/959
2024-04-22 15:07:17 +08:00
jinling.yang
eb6607be00 修复获取cnc程序方法关于快速订单部分 2024-04-22 14:27:59 +08:00
jinling.yang
4b2e58a66d 修复快速订单订单号和人工报价及注释掉识别长宽高代码 2024-04-22 14:14:59 +08:00
jinling.yang
9c5b3d7c4e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-22 14:04:50 +08:00
马广威
9cb1b8c5aa Accept Merge Request #958: (feature/制造代码优化 -> develop)
Merge Request: 增加工单模型展示,工单物料增加长宽高值

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/958?initial=true
2024-04-22 10:58:54 +08:00
mgw
e108e2d5d6 增加工单模型展示,工单物料增加长宽高值 2024-04-22 10:58:04 +08:00
jinling.yang
90c87f7ddb Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-22 09:28:51 +08:00
jinling.yang
f0bfd18549 Merge branch 'feature/优化agv和ftp' into develop 2024-04-22 09:26:52 +08:00
杨金灵
c86fd099eb Accept Merge Request #957: (feature/优化agv和ftp -> develop)
Merge Request: 优化agv和ftp

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/957
2024-04-22 09:26:33 +08:00
jinling.yang
5cb1e3c838 修复快速订单 2024-04-19 17:24:51 +08:00
jinling.yang
45b300f8a1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化agv和ftp 2024-04-19 16:50:59 +08:00
jinling.yang
a30c620823 优化快读订单 2024-04-19 16:50:38 +08:00
黄焱
263b8ddec7 Accept Merge Request #956: (feature/前端样式修改 -> develop)
Merge Request: 修复列表总计合计与单项合计错开了一列

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/956?initial=true
2024-04-19 15:45:17 +08:00
mgw
89eccb40ac 处理按钮显示 2024-04-19 15:42:35 +08:00
黄焱
761d0b0417 修复列表总计合计与单项合计错开了一列 2024-04-19 15:41:05 +08:00
禹翔辉
f22ee428b6 Accept Merge Request #955: (feature/库存模块优化 -> develop)
Merge Request: 1、优化货位看板的更换货位功能、添加按编码搜索功能;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/955
2024-04-19 15:02:40 +08:00
yuxianghui
1a860a5eb9 1、设备机床新增机床基坐标page页及其基本信息字段,新增主动获取和被动获取基坐标数据中控接口(接口待对接); 2024-04-19 14:59:19 +08:00
yuxianghui
96a4ee4e26 1 2024-04-19 13:42:12 +08:00
yuxianghui
80f0284c3c 1、优化货位看板的更换货位功能、添加按编码搜索功能; 2024-04-19 13:39:17 +08:00
jinling.yang
bcba08042b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化agv和ftp
# Conflicts:
#	sf_manufacturing/models/mrp_production.py
#	sf_manufacturing/models/mrp_workorder.py
#	sf_mrs_connect/models/ftp_operate.py
#	sf_sale/models/quick_easy_order_old.py
2024-04-19 11:28:50 +08:00
禹翔辉
25ee2136c3 Accept Merge Request #954: (feature/库存模块优化 -> develop)
Merge Request: 库存模块优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/954?initial=true
2024-04-19 11:00:36 +08:00
yuxianghui
50f5815070 Merge branch 'feature/内部调拨作业详情添加Rfid字段' into feature/库存模块优化
# Conflicts:
#	sf_manufacturing/models/mrp_production.py
#	sf_manufacturing/models/mrp_workorder.py
2024-04-19 10:54:36 +08:00
yuxianghui
b43c3496a1 1、货位看板模型添加货位变更弹窗模块及其功能按钮,实现产品在同库区的内部货位移动; 2024-04-19 10:49:48 +08:00
杨金灵
f1972ca572 Accept Merge Request #953: (feature/优化获取CNC程序 -> develop)
Merge Request: 优化获取cnc程序和FTP

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/953?initial=true
2024-04-19 09:10:46 +08:00
jinling.yang
5f2600c96f 释放注释代码 2024-04-19 08:34:41 +08:00
jinling.yang
040b3b16f0 修复产品条码 2024-04-19 08:33:04 +08:00
yuxianghui
67f3c312de 1、添加采购入库作业详情选取目标货位重复校验 2024-04-18 20:46:09 +08:00
yuxianghui
f26b4510cf 1、采购入库作业详情的目标位置字段关闭创建功能,关闭货位的创建功能;2、优化入库到货位流程(进行中); 2024-04-18 19:10:41 +08:00
jinling.yang
053fa3feb3 优化ftp路径 2024-04-18 19:09:48 +08:00
jinling.yang
59670fb3d7 优化获取CNC程序:添加编程方式(人工/自动),如是快速订单,编程方式为人工 2024-04-18 18:40:05 +08:00
yuxianghui
8dfef16b51 1、产品模型、制造订单模型、工单模型,添加人工编程字段;2、放开工单扫描绑定Rfid的检验功能;3、bfm下单创建产品添加人工报价字段内容;4、优化CNC程序用刀检验库区是否有刀的流程; 2024-04-18 15:38:16 +08:00
jinling.yang
3d1dd533b5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-17 17:11:39 +08:00
jinling.yang
83d1d397f5 Merge branch 'feature/优化货架货位-新增打印条码' into develop 2024-04-17 17:09:37 +08:00
杨金灵
0a9cfd916a Accept Merge Request #949: (feature/优化货架货位-新增打印条码 -> develop)
Merge Request: 优化货架货位-新增打印条码

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/949
2024-04-17 17:06:53 +08:00
jinling.yang
2e5dd55a7b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化货架货位-新增打印条码 2024-04-17 17:05:36 +08:00
马广威
4fb57373d5 Accept Merge Request #951: (feature/制造代码优化 -> develop)
Merge Request: 三次元检测z计算修改

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/951?initial=true
2024-04-17 17:03:38 +08:00
禹翔辉
8a85581347 Accept Merge Request #950: (feature/内部调拨作业详情添加Rfid字段 -> develop)
Merge Request: 1、优化品牌同步接口,2、内部调拨作业详情添加Rfid字段;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/950
2024-04-17 17:03:04 +08:00
yuxianghui
22c388f52c 1、优化品牌同步接口,2、内部调拨作业详情添加Rfid字段; 2024-04-17 17:01:01 +08:00
mgw
0103024f1c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-04-17 16:52:08 +08:00
jinling.yang
988241a1bd 条码添加图片展示控件 2024-04-17 16:10:44 +08:00
jinling.yang
92af278451 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化货架货位-新增打印条码 2024-04-17 16:01:10 +08:00
jinling.yang
19b062f5ac 新增货架一键打印所有货位条码和单个打印货位条码 2024-04-17 16:00:47 +08:00
禹翔辉
7897e6e55b Accept Merge Request #948: (feature/功能刀具组装流程优化完成 -> develop)
Merge Request: 功能刀具组装流程优化完成

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/948
2024-04-17 15:02:52 +08:00
yuxianghui
259f12a11f Merge branch 'feature/功能刀具组装流程测试及优化' into feature/功能刀具组装流程优化完成 2024-04-17 14:57:39 +08:00
yuxianghui
c6b1c5e047 1、删除功能刀具列表模型的刀具名称计算方法,改为创建记录时给数据;2、功能刀具组装单弹窗添加根据旧刀具名称自动选择新刀具的名称;优化没有序列号的刀具物料的库存位移方法,并在刀具物料出库同时货位物料数减一;关闭弹窗创建刀具组、功能刀具名称记录功能; 2024-04-17 14:55:45 +08:00
杨金灵
38c89a4167 Accept Merge Request #947: (feature/优化快速订单 -> develop)
Merge Request: 优化快速订单

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/947?initial=true
2024-04-17 14:21:49 +08:00
jinling.yang
59683790b7 优化页面展示 2024-04-17 14:19:38 +08:00
mgw
ceae788ecc 三次元检测z计算修改 2024-04-17 14:18:40 +08:00
jinling.yang
f04cbac8d9 1.去掉上色和特征识别方法,
2.转换模型需自动识别模型长宽高
3.优化页面:下拉框关闭创建
4.权限修改为不可编辑
2024-04-17 13:19:07 +08:00
yuxianghui
36db60812e Merge branch 'feature/功能刀具组装优化' into feature/功能刀具组装流程测试及优化 2024-04-16 17:23:55 +08:00
yuxianghui
3c47553be6 1、添加销售总监和采购总监对夹具的可读权限;2、工单的tree视图添加制造订单字段 2024-04-16 17:22:16 +08:00
jinling.yang
c535808d5f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-16 16:22:50 +08:00
jinling.yang
d8a876796a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化agv和ftp 2024-04-16 16:22:40 +08:00
jinling.yang
d777970a9b 1.ftp文件路径修改为:/NC/以下 2024-04-16 16:22:26 +08:00
马广威
d1e9254996 Accept Merge Request #946: (feature/制造代码优化 -> develop)
Merge Request: 修改测点位置匹配,优化错误抛出方式

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/946?initial=true
2024-04-15 21:15:28 +08:00
mgw
028eb18dd8 修改测点位置匹配,优化错误抛出方式 2024-04-15 21:14:12 +08:00
黄焱
c4ddd067e7 Accept Merge Request #945: (feature/前端样式修改 -> develop)
Merge Request: 修改因添加表格必填而出现报错问题

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/945?initial=true
2024-04-15 17:22:01 +08:00
黄焱
48cba4274b 修改因添加表格必填而出现报错问题 2024-04-15 17:04:43 +08:00
mgw
9df62129b7 控制按钮显隐逻辑 2024-04-15 13:39:58 +08:00
马广威
65330b083b Accept Merge Request #944: (feature/制造代码优化 -> develop)
Merge Request: 前置三次元检测数据读取功能初步完成

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/944?initial=true
2024-04-15 11:40:57 +08:00
mgw
543f1a8e9b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-04-15 11:39:35 +08:00
mgw
19156f5944 优化代码健壮性,解决部分硬编码问题 2024-04-15 11:39:10 +08:00
mgw
9ac3ef7c93 前置三次元检测数据读取 2024-04-15 11:16:33 +08:00
禹翔辉
3f9eb762f9 Accept Merge Request #943: (feature/刀具定时同步到cloud -> develop)
Merge Request: 添加刀具信息定时同步到cloud功能

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/943?initial=true
2024-04-15 10:25:15 +08:00
yuxianghui
ef0e09ba4b 1、优化没有刀具信息记录时同步报错问题 2024-04-15 10:22:19 +08:00
yuxianghui
eb2db1dfdd 1、添加定时同步刀具物料和功能刀具相关的信息到cloud的功能;2、添加同步所以刀具物料和所以功能刀具相关记录同步接口; 2024-04-12 17:30:59 +08:00
yuxianghui
180db6b91e 1、调整功能刀具清单模型的菜单代码位置,解决依赖冲突问题;2、产品采购时,添加一个订单同时采购多个相同产品的校验;3、优化刀柄采购入库时,自动生成的序列号规则; 2024-04-12 16:15:02 +08:00
yuxianghui
482dbb9baa Merge branch 'feature/优化组装单模型' into feature/功能刀具组装优化 2024-04-12 10:22:26 +08:00
yuxianghui
4391a4e145 1、功能刀具清单模型添加功能刀具名称重名检验,2、功能刀具安全库存模型添加根据所选功能刀具名称自动带出类型、刀具组、直径、R角信息;3、优化刀具物料搜索模型,物料数量字段改为存储字段,根据对应产品的各个位置的库存数量自动计算刀具物料的总数等值; 2024-04-11 17:34:15 +08:00
yuxianghui
010fbb23b0 1、优化工单扫描绑定托盘的验证条件,只有在工单已完成时不能再扫描绑定托盘;2、优化中控的刀具组接口,改为传输功能刀具清单的刀具组数据;3、优化功能刀具组装单模型的刀柄信息,删除刀柄货位字段,添加刀柄Rfid字段,根据货位带出刀柄信息改为根据序列号带出;5、优化功能刀具组装单弹窗,删除刀柄货位字段添加刀柄Rfid字段,删除刀柄的扫货位录入信息的代码;夹头货位改为非必填;添加组装后刀具组字段,添加根据所选的功能刀具名称,自动带出功能刀具的类型、刀具组、直径、刀尖R角、最大寿命值、总长度、伸出长、避空长信息,且可修改;6、优化调整功能刀具组装单弹窗的布局; 2024-04-11 15:11:50 +08:00
yuxianghui
7f6444cc89 1、优化功能刀具组装模型,重构刀具物料的组成结构;2、优化刀具物料查询模型,重构刀具物流库存统计方法;3、优化功能刀具组装流程,重构刀具物料出库方法;4、重构扫码录入刀具物料数据方法;5、优化功能刀具列表模型; 2024-04-10 17:32:35 +08:00
马广威
b5767970a4 Accept Merge Request #942: (feature/制造代码优化 -> develop)
Merge Request: 开完库存处新增需求基本完成

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/942?initial=true
2024-04-09 20:43:57 +08:00
mgw
422e4bda6c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	sf_warehouse/models/model.py
2024-04-09 20:42:15 +08:00
马广威
29790b7760 Accept Merge Request #941: (feature/优化组装单模型 -> develop)
Merge Request: 优化组装单

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/941#mr-941-review-140567
2024-04-09 20:16:09 +08:00
mgw
310a2de34f 开完库存处新增需求基本完成 2024-04-09 20:14:44 +08:00
yuxianghui
12a54d1f2a Merge branch 'feature/新增功能刀具清单' into feature/优化组装单模型 2024-04-09 17:29:13 +08:00
yuxianghui
f19a1a282a 1、优化扫描录入刀具物料方法, 2024-04-09 17:27:37 +08:00
jinling.yang
cc7a72d6f4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-09 17:25:16 +08:00
jinling.yang
1681e9e4da Merge branch 'feature/修复刀具物料同步' into develop 2024-04-09 17:24:55 +08:00
杨金灵
cf3514e407 Accept Merge Request #940: (feature/修复刀具物料同步 -> develop)
Merge Request: 修复刀具物料同步

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/940?initial=true
2024-04-09 17:24:36 +08:00
jinling.yang
abdb636176 1.补充agv优化代码
2.修复刀具物料同步
2024-04-09 17:10:53 +08:00
yuxianghui
85649daef6 1、功能刀具清单模型添加功能刀具类型、加工材料、寿命字段;2、删除供应商的地址和email必填;3、优化功能刀具组装单模型,新增五种物料的货位字段,修改继承关系,添加根据货位获取刀具物料信息功能; 2024-04-09 16:53:15 +08:00
jinling.yang
8eee9d9173 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/new 2024-04-09 16:47:56 +08:00
jinling.yang
c104ecf24b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-09 16:47:12 +08:00
mgw
961b4f8e2d 库存需求修改1 2024-04-09 15:21:47 +08:00
yuxianghui
0a4c86f601 功能刀具清单添加刀具组字段 2024-04-09 13:38:13 +08:00
禹翔辉
9e5843c4a8 Accept Merge Request #938: (feature/新增功能刀具清单 -> develop)
Merge Request: 新增功能刀具清单模型

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/938?initial=true
2024-04-09 11:18:47 +08:00
yuxianghui
e9bca64f20 Merge branch 'feature/工单扫描绑定Rfid优化' into feature/新增功能刀具清单 2024-04-09 10:48:57 +08:00
yuxianghui
34ea140941 1、新增功能刀具清单模型,及其tree视图、权限;2、功能刀具安全库存模型和功能刀具组装单模型新增功能刀具名称关联功能刀具清单,优化功能刀具组装流程生成功能刀具安全库存信息的流程 2024-04-09 10:46:08 +08:00
黄焱
0dc94fa69b Accept Merge Request #937: (feature/前端样式修改 -> develop)
Merge Request: 修改制造模块子页面样式问题

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/937?initial=true
2024-04-08 17:19:01 +08:00
黄焱
4c9fbab471 修改制造模块子页面样式问题 2024-04-08 17:17:27 +08:00
jinling.yang
51685ba68b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-08 16:51:54 +08:00
jinling.yang
04de8fe9de Merge branch 'feature/优化Rfid绑定工单' into develop 2024-04-08 16:51:32 +08:00
杨金灵
bb29db2ff5 Accept Merge Request #936: (feature/优化Rfid绑定工单 -> develop)
Merge Request: 优化工单和agv

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/936?initial=true
2024-04-08 16:51:13 +08:00
jinling.yang
3f86dd48ec Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化Rfid绑定工单
# Conflicts:
#	sf_manufacturing/models/mrp_workorder.py
#	sf_manufacturing/models/product_template.py
#	sf_manufacturing/views/mrp_workorder_view.xml
2024-04-08 16:47:16 +08:00
jinling.yang
00802f9fc0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-04-08 16:39:52 +08:00
jinling.yang
07230703d8 1.优化agv配置及接口:新增站点集合对象,agv车辆编号及任务单类型编号字段
2.优化rfid和工单部分需求:点完工按钮,若为工件装夹工单,完工需校验工件坯料、RFID码、前置三元定位是否填写;若未填写,页面弹出对应提示,反之则需要二次确认弹窗
3.新增最初版的快速订单:为了工厂测试下单走流程
4.工单优化:新增检测结果和是否重新生成制造订单字段
2024-04-08 16:39:26 +08:00
禹翔辉
4cd2cbe1a7 Accept Merge Request #935: (feature/工单扫描绑定Rfid优化 -> develop)
Merge Request: 优化工单扫托盘Rfid绑定Rfid码录入信息时,工单的开始等按键消失的问题

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/935
2024-04-08 15:58:09 +08:00
yuxianghui
6bddc4c262 Merge branch 'feature/功能刀具组装功能优化' into feature/工单扫描绑定Rfid优化 2024-04-08 14:45:05 +08:00
yuxianghui
4faeda11b8 1、优化工单扫托盘Rfid绑定Rfid码录入信息时,工单的开始等按键消失的问题 2024-04-08 14:43:46 +08:00
禹翔辉
3a484682fa Accept Merge Request #934: (feature/功能刀具组装功能优化 -> develop)
Merge Request: 1、处理刀具物料注册时搜索不到的问题;2、功能刀具组装时,当没有选择物料的时候功能刀具编码不显示数据;添加最大寿命值、报警值、有效长、避空长的必填验证;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/934?initial=true
2024-04-07 16:46:26 +08:00
yuxianghui
556c3cb4bb Merge branch 'feature/工单扫Rfid绑定托盘' into feature/功能刀具组装功能优化 2024-04-07 15:37:52 +08:00
yuxianghui
000280e53a no message 2024-04-07 15:36:05 +08:00
yuxianghui
4dd733c466 1、处理刀具物料注册时搜索不到的问题;2、功能刀具组装时,当没有选择物料的时候功能刀具编码不显示数据;添加最大寿命值、报警值、有效长、避空长的必填验证; 2024-04-07 15:35:47 +08:00
禹翔辉
92e522905c Accept Merge Request #933: (feature/工单扫Rfid绑定托盘 -> develop)
Merge Request: 暂时关闭工单扫Rfid绑定托盘的Rfid重复验证

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/933?initial=true
2024-04-03 17:27:03 +08:00
yuxianghui
2ef832c17e 暂时关闭工单扫Rfid绑定托盘的Rfid重复验证 2024-04-03 17:23:57 +08:00
禹翔辉
7fd92e44b3 Accept Merge Request #932: (feature/工单扫Rfid绑定托盘 -> develop)
Merge Request: 托盘物料添加Rfid码,工单扫Rfid绑定托盘

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/932?initial=true
2024-04-03 16:59:55 +08:00
yuxianghui
392784041c Merge branch 'feature/刀具物料采购生成序列号优化' into feature/工单扫Rfid绑定托盘 2024-04-03 16:54:10 +08:00
yuxianghui
02e5972272 1、新增装夹预调工单扫拖盘Rfid绑定托盘;2、删除工单的Rfid字段的customRFID样式;3、修改序列号模型的Rfid字段的隐藏条件;4、优化刀柄、托盘物料采购时绑定Rfid的判断条件 2024-04-03 16:52:16 +08:00
禹翔辉
eb3583222c Accept Merge Request #931: (feature/刀具物料采购生成序列号优化 -> develop)
Merge Request: 当产品的刀具物料不是刀柄时,隐藏对应序列号模型的Rfid字段

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/931
2024-04-02 16:43:21 +08:00
yuxianghui
aac5195b4d 当产品的刀具物料不是刀柄时,隐藏对应序列号模型的Rfid字段 2024-04-02 16:38:19 +08:00
禹翔辉
715119d250 Accept Merge Request #930: (feature/刀具物料采购生成序列号优化 -> develop)
Merge Request: 1、优化产品采购刀具物料生成的序列号出现不连续的问题;2、采购刀柄物料时,在入库验证环节增加Rfid是否全部录入检验。

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/930?initial=true
2024-04-02 16:16:25 +08:00
yuxianghui
9ed3930a1b Merge branch 'feature/刀柄入库录入Rfid' into feature/刀具物料采购生成序列号优化 2024-04-02 16:03:35 +08:00
yuxianghui
2580e0c795 1、优化产品采购刀具物料生成的序列号出现不连续的问题;2、采购刀柄物料时,在入库验证环节增加Rfid是否全部录入检验。 2024-04-02 15:36:28 +08:00
jinling.yang
f4f1c9f839 1.新增表面工艺外协路线初始化数据 2024-04-01 17:34:56 +08:00
禹翔辉
827e056dc8 Accept Merge Request #928: (feature/刀柄入库录入Rfid -> develop)
Merge Request: 添加刀柄采购入库时录入Rfid功能;添加功能刀具组装时,扫Rfid带出刀柄、夹头信息,并填写功能刀具Rfid码

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/928
2024-04-01 17:14:03 +08:00
yuxianghui
02e4987281 优化选取适用夹头方法 2024-04-01 17:12:47 +08:00
yuxianghui
e89b8ac65c Merge branch 'feature/功能刀具安全库存注册' into feature/刀柄入库录入Rfid 2024-04-01 16:56:56 +08:00
yuxianghui
f0b972e705 1、优化刀柄物料产品适用夹头型号没有数据的问题,优化刀具标准库基本参数同步接口;2、优化功能刀具组装时,只需扫入刀柄的Rfid,将自动带出刀柄信息,并根据刀柄适用夹头型号和适配夹头尺寸随机带出一个可用夹头物料信息,同时将刀柄的Rfid码填入功能刀具的Rfid码。3、优化刀柄物料采购入库时的验证的判断条件; 2024-04-01 16:56:15 +08:00
马广威
5c220af28c Accept Merge Request #927: (feature/制造代码优化 -> develop)
Merge Request: 修复自定义角色打印无权限的问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/927?initial=true
2024-04-01 14:56:35 +08:00
mgw
82947a909e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-04-01 14:55:31 +08:00
mgw
18dcb79116 修复自定义角色打印无权限的问题 2024-04-01 14:55:10 +08:00
jinling.yang
8d1e4a89c2 1、没绑定工单不能完工,绑定后才可以完工
2、工单绑定后没完工可以换绑
3、工单点完工按钮要有确认弹窗
2024-03-29 17:38:35 +08:00
yuxianghui
48809cd654 1、序列号模型对象添加rfid字段且rfid仅在产品为刀柄时展示,序列号模型添加规格字段,且添加自动根据对应产品类型不同计算出其值,产品为夹具时看板展示其规格的值;2、在采购入库流程,录入序列号的过程界面添加录入rfid字段,当产品是刀柄时需录入刀柄的rfid,并在验证通过后刀柄的序列号中带有rfid码; 2024-03-29 17:37:02 +08:00
jinling.yang
35fd1e329d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-29 16:56:06 +08:00
jinling.yang
af289b7030 Merge branch 'feature/优化下发编程单的同时拉取CMM程序' into develop 2024-03-29 16:55:52 +08:00
杨金灵
5b3ee99bf3 Accept Merge Request #926: (feature/优化下发编程单的同时拉取CMM程序 -> develop)
Merge Request: 优化下发编程单的同时拉取CMM程序

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/926?initial=true
2024-03-29 16:55:31 +08:00
jinling.yang
be975ea901 文件匹配添加注释 2024-03-29 16:52:05 +08:00
jinling.yang
1451539bb4 释放注释代码 2024-03-29 16:48:44 +08:00
jinling.yang
154e7de8a4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化下发编程单的同时拉取CMM程序 2024-03-29 16:47:18 +08:00
禹翔辉
d21b25467b Accept Merge Request #925: (feature/功能刀具安全库存注册 -> develop)
Merge Request: 优化功能刀具安全库存信息更新时没有及时注册的问题

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/925?initial=true
2024-03-28 17:34:29 +08:00
yuxianghui
71b7b07949 Merge branch 'feature/表面工艺添加类别筛选' into feature/功能刀具安全库存注册 2024-03-28 17:31:42 +08:00
yuxianghui
4115bbb05e 1、优化功能刀具安全库存信息更新时没有及时注册的问题 2024-03-28 17:30:16 +08:00
禹翔辉
c380d99a26 Accept Merge Request #924: (feature/表面工艺添加类别筛选 -> develop)
Merge Request: 表面工艺添加按类别筛选

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/924
2024-03-28 10:39:15 +08:00
yuxianghui
a0d50edc84 Merge branch 'feature/夹具管理' into feature/表面工艺添加类别筛选 2024-03-28 10:36:29 +08:00
yuxianghui
2aa29e5cbf 1、表面工艺添加按类型筛选功能;2、夹具产品的类型、规格添加必填 2024-03-28 10:35:08 +08:00
杨金灵
32907109ef Accept Merge Request #923: (feature/修复表面工艺外协 -> develop)
Merge Request: 修复表面工艺外协

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/923?initial=true
2024-03-27 17:30:24 +08:00
jinling.yang
303fcfaabd 查询源位置的条件=改为ilike 2024-03-27 17:28:48 +08:00
jinling.yang
f767433a96 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-27 17:26:37 +08:00
jinling.yang
3eae506e48 注释occ代码 2024-03-27 17:26:27 +08:00
jinling.yang
0ddefacda7 注释OCC代码 2024-03-27 17:26:14 +08:00
禹翔辉
42a748e0f8 Accept Merge Request #922: (feature/夹具管理 -> develop)
Merge Request: 1、制造模块新增夹具管理菜单,将夹具物料查询菜单移到夹具管理菜单下,设置夹具管理菜单为工件装夹岗可见;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/922?initial=true
2024-03-27 11:52:45 +08:00
yuxianghui
63263e3509 修改刀具管理权限 2024-03-27 11:49:42 +08:00
yuxianghui
aaf782b4a1 Merge branch 'feature/刀具管理' into feature/夹具管理
# Conflicts:
#	sf_tool_management/security/ir.model.access.csv
2024-03-27 11:47:28 +08:00
yuxianghui
ce069e8b50 1、制造模块新增夹具管理菜单,将夹具物料查询菜单移到夹具管理菜单下,设置夹具管理菜单为工件装夹岗可见; 2024-03-27 11:39:07 +08:00
马广威
609ea62d0d Accept Merge Request #921: (feature/制造代码优化 -> develop)
Merge Request: 控制cnc只能看到cnc产线;增加必填标识

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/921?initial=true
2024-03-27 10:35:29 +08:00
mgw
f7f9cf1e43 控制cnc只能看到cnc产线;增加必填标识 2024-03-27 10:26:46 +08:00
马广威
75eb359c5a Accept Merge Request #920: (feature/制造代码优化 -> develop)
Merge Request: 优化翻译、排序、权限问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/920
2024-03-26 20:40:07 +08:00
mgw
7906ff2836 优化翻译、排序、权限问题 2024-03-26 18:09:23 +08:00
禹翔辉
5e97747ec1 Accept Merge Request #919: (feature/功能刀具安全库存优化 -> develop)
Merge Request: 禁用功能刀具安全库存的刀具组字段创建新记录的功能

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/919?initial=true
2024-03-26 15:20:18 +08:00
yuxianghui
ead758d34c Merge branch 'feature/零件特采接口优化' into feature/功能刀具安全库存优化 2024-03-26 15:17:49 +08:00
yuxianghui
decb6c7792 禁用功能刀具安全库存的刀具组字段创建新记录的功能 2024-03-26 15:16:26 +08:00
jinling.yang
b83e5575dc Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-26 14:19:40 +08:00
jinling.yang
a003987111 Merge branch 'feature/优化agv配置和客户' into develop 2024-03-26 14:19:13 +08:00
杨金灵
db2052a019 Accept Merge Request #918: (feature/优化agv配置和客户 -> develop)
Merge Request: 优化agv配置和客户

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/918
2024-03-26 14:18:56 +08:00
jinling.yang
ca06d11d79 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-26 14:11:25 +08:00
jinling.yang
e63eed3405 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化agv配置和客户 2024-03-26 14:11:11 +08:00
jinling.yang
d05c0951eb 1.agv配置参数新增地码
2.bpm分配工厂时的客户(业务平台)的必填信息(税,邮箱,号码)赋值
3.报价页面的客户改为不可新建
2024-03-26 14:10:51 +08:00
禹翔辉
0500a2dd02 Accept Merge Request #917: (feature/零件特采接口优化 -> develop)
Merge Request: 零件特采接口优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/917?initial=true
2024-03-25 16:55:37 +08:00
yuxianghui
37ea48dbee Merge branch 'feature/夹具物料搜索' into feature/零件特采接口优化 2024-03-25 16:51:04 +08:00
yuxianghui
48cd8399f4 1、优化中控零件特采接口,2、将刀具管理的功能刀具所有rfid改为Rfid 2024-03-25 16:49:49 +08:00
马广威
ee3c0d702d Accept Merge Request #916: (feature/制造代码优化 -> develop)
Merge Request: 修复员工模块js问题、能力特征哭js问题、设备处问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/916?initial=true
2024-03-25 16:19:22 +08:00
mgw
1212ea0930 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	jikimo_frontend/static/src/js/custom_form_status_indicator.js
2024-03-25 16:18:42 +08:00
mgw
ed8c39d005 修复员工模块js问题、能力特征哭js问题、设备处问题 2024-03-25 16:17:19 +08:00
黄焱
fe4782eecf Accept Merge Request #915: (feature/前端样式修改 -> develop)
Merge Request: 修改field错误问题

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/915?initial=true
2024-03-25 09:10:37 +08:00
黄焱
57bfec02eb 修改field错误问题 2024-03-25 09:07:45 +08:00
马广威
53c4b01a74 Accept Merge Request #914: (feature/制造代码优化 -> develop)
Merge Request: odoo标签打印及去除odoo相关标识

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/914?initial=true
2024-03-20 17:34:56 +08:00
mgw
5b535fae18 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-03-20 17:33:58 +08:00
mgw
ba79b358a9 调整打印机模型结构 2024-03-20 17:32:17 +08:00
mgw
c788392b36 打印配置初步优化并测试成功,自测流程成功 2024-03-20 16:58:57 +08:00
禹翔辉
d3819e818b Accept Merge Request #913: (feature/夹具物料搜索 -> develop)
Merge Request: 新增夹具物料搜索模型及注册接口

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/913
2024-03-20 16:38:43 +08:00
yuxianghui
0725b7a7ba Merge branch 'feature/功能刀具组装优化' into feature/夹具物料搜索 2024-03-20 16:36:00 +08:00
yuxianghui
a07563e166 1、新增夹具物料搜索模型,完成tree视图和form视图;2、新增夹具物料序列号、夹具物料搜索模型注册到cloud的接口,优化刀具物料序列号注册接口及流程;3、删除刀具物料搜索模型的无关字段; 2024-03-20 16:34:11 +08:00
mgw
2407d2cfc7 移除系统中odoo相关标识、信息 2024-03-20 16:15:00 +08:00
mgw
f38c062804 打印相关抽象为公用类 2024-03-20 11:28:58 +08:00
mgw
0363f8c8a3 odoo16中直连局域网zebra标签打印机打印二维码初版测试成功 2024-03-19 17:48:00 +08:00
禹翔辉
2e83fc2e44 Accept Merge Request #912: (feature/功能刀具组装优化 -> develop)
Merge Request: 1、解决刀具物料采购时,自动生成序列号重复问题;2、优化刀具物料生成序列号时,自动更新刀具物料查询记录的方法

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/912?initial=true
2024-03-19 17:22:24 +08:00
yuxianghui
952e663b31 1、解决刀具物料采购时,自动生成序列号重复问题;2、优化刀具物料生成序列号时,自动更新刀具物料查询记录的方法 2024-03-19 17:20:19 +08:00
禹翔辉
bb78404772 Accept Merge Request #911: (feature/功能刀具组装优化 -> develop)
Merge Request: 优化刀具组装时的物料选取

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/911?initial=true
2024-03-19 10:33:04 +08:00
yuxianghui
e5b6f2dcdc Merge branch 'feature/夹具型号基本参数同步' into feature/功能刀具组装优化 2024-03-19 10:28:07 +08:00
yuxianghui
3458deef09 1、解决功能刀具组装时,已使用刀具物料还能再选到的问题;2、解决功能刀具组装完成后的功能刀具注册到cloud没有编码的问题;3、刀具物料添加未入库状态; 2024-03-19 10:26:55 +08:00
禹翔辉
f8d1bff5d3 Accept Merge Request #910: (feature/夹具型号基本参数同步 -> develop)
Merge Request: 夹具型号基本参数同步

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/910?initial=true
2024-03-18 17:21:29 +08:00
yuxianghui
d3e050bd21 Merge branch 'feature/夹具型号同步优化' into feature/夹具型号基本参数同步 2024-03-18 17:17:10 +08:00
yuxianghui
c470935cc5 1、删除夹具型号同步接口中的夹具型号基本参数的数据;2、新增夹具型号基本参数模型同步接口,完成夹具型号基本参数的同步;3、修改刀具管理菜单下子菜单名称;4、关闭刀具物料搜索模型form视图的注册接口 2024-03-18 17:15:34 +08:00
jinling.yang
b053edd655 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-18 15:02:07 +08:00
jinling.yang
0324acd4fd Merge branch 'feature/优化产品模版' into develop 2024-03-18 15:01:54 +08:00
杨金灵
3eb274aa01 Accept Merge Request #909: (feature/优化产品模版 -> develop)
Merge Request: 优化产品模版

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/909
2024-03-18 15:01:20 +08:00
jinling.yang
d4c786ff1e 1.选择规则,带出对应型号图片 2024-03-18 14:46:49 +08:00
jinling.yang
ab58f5b40c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化产品模版 2024-03-18 14:46:35 +08:00
jinling.yang
83327136eb Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-18 14:43:50 +08:00
jinling.yang
cfd2910ead Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-18 14:43:27 +08:00
jinling.yang
e444e27cad 1.选择规则,带出对应型号图片
2.规格弹出的页面隐藏刀具类型
3.型号新建弹出的页面图片字段去掉option设置,编码改为强制保存
2024-03-18 14:42:51 +08:00
禹翔辉
64050ac461 Accept Merge Request #908: (feature/夹具型号同步优化 -> develop)
Merge Request: 夹具型号同步优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/908?initial=true
2024-03-18 10:31:25 +08:00
yuxianghui
6062ebdf9c Merge branch 'feature/刀具注册' into feature/夹具型号同步优化 2024-03-18 10:29:22 +08:00
yuxianghui
698ea31d31 夹具型号同步优化 2024-03-18 10:28:08 +08:00
马广威
d52c208ba9 Accept Merge Request #907: (feature/制造代码优化 -> develop)
Merge Request: 优化用户反馈

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/907?initial=true
2024-03-18 09:16:23 +08:00
mgw
38e3f5f31c 优化用户反馈 2024-03-18 09:15:39 +08:00
马广威
4477b12f8d Accept Merge Request #906: (feature/制造代码优化 -> develop)
Merge Request: 对“还原库存调整按钮”做权限控制

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/906?initial=true
2024-03-18 08:52:17 +08:00
mgw
76ce105289 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-03-18 08:51:30 +08:00
mgw
0b9f64fbfc 对“还原库存调整按钮”做权限控制 2024-03-18 08:51:11 +08:00
马广威
7dac3ad21a Accept Merge Request #905: (feature/制造代码优化 -> develop)
Merge Request: 修复“待排程状态的制造订单有实际时长,不应该有【实际时长】、【安排的日期】【计划结束时间】这几个字段”问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/905?initial=true
2024-03-16 11:41:34 +08:00
mgw
aeca8ef2b2 修复“待排程状态的制造订单有实际时长,不应该有【实际时长】、【安排的日期】【计划结束时间】这几个字段”问题 2024-03-16 11:22:01 +08:00
yuxianghui
3b7e120eb2 1、优化夹具型号静态数据同步 2024-03-15 17:38:43 +08:00
jinling.yang
56dacd0815 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-15 17:09:15 +08:00
jinling.yang
415717ee10 Merge branch 'feature/优化坯料和修复质量标准' into develop 2024-03-15 17:03:03 +08:00
杨金灵
716e04a0a8 Accept Merge Request #904: (feature/优化坯料和修复质量标准 -> develop)
Merge Request: 优化坯料和修复质量标准

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/904
2024-03-15 17:02:47 +08:00
jinling.yang
8ebf71dc23 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-15 17:00:14 +08:00
jinling.yang
1a702512e5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化坯料和修复质量标准 2024-03-15 17:00:05 +08:00
jinling.yang
d5a1a82c72 1.优化分配工厂时材料型号获取方式为采购和外协时未有供应商返回提示
2.修复质量标准去掉审核按钮显示
2024-03-15 16:59:51 +08:00
马广威
5e3aff31e0 Accept Merge Request #903: (feature/制造代码优化 -> develop)
Merge Request: 待排程状态隐藏tab页

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/903?initial=true
2024-03-15 16:03:24 +08:00
mgw
d1eba51f61 待排程状态隐藏tab页 2024-03-15 16:02:54 +08:00
jinling.yang
df42932630 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-15 10:54:07 +08:00
jinling.yang
3c700e57d1 Merge branch 'feature/优化表面工艺可选参数' into develop 2024-03-15 10:53:29 +08:00
杨金灵
fa66b45373 Accept Merge Request #902: (feature/优化表面工艺可选参数 -> develop)
Merge Request: 优化表面工艺可选参数

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/902?initial=true
2024-03-15 10:53:16 +08:00
jinling.yang
0facdee321 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化表面工艺可选参数 2024-03-15 10:48:58 +08:00
jinling.yang
4d45b81ebc Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-15 10:48:13 +08:00
jinling.yang
4765e34c09 1.优化表面工艺可选参数
2.修复质量警报质量总监没有制造订单访问权限
2024-03-15 10:48:01 +08:00
黄焱
7717731a22 Accept Merge Request #901: (feature/前端样式修改 -> develop)
Merge Request: 解决频繁报错弹窗,新增判断

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/901?initial=true
2024-03-15 10:12:44 +08:00
黄焱
f639e59b91 解决频繁报错弹窗,新增判断 2024-03-15 10:10:17 +08:00
黄焱
2352f862ee Accept Merge Request #900: (feature/前端样式修改 -> develop)
Merge Request: 增加owl监听field必填功能

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/900
2024-03-15 09:52:05 +08:00
黄焱
c3bd0b1391 Merge branch 'feature/前端样式修改' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改 2024-03-14 16:50:34 +08:00
黄焱
776877f7a4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改 2024-03-14 16:50:03 +08:00
黄焱
cdf8e7227c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改
# Conflicts:
#	sf_maintenance/views/equipment_maintenance_standards_views.xml

增加owl监听必填标识功能
2024-03-14 16:47:20 +08:00
黄焱
827b8337bd Merge branch refs/heads/develop into refs/heads/feature/前端样式修改 2024-03-14 16:13:01 +08:00
jinling.yang
603f9e3f34 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-03-14 15:49:11 +08:00
jinling.yang
f971216c03 Merge branch 'feature/修复部分bug' into develop 2024-03-14 15:48:42 +08:00
杨金灵
cfc044b7bc Accept Merge Request #899: (feature/修复部分bug -> develop)
Merge Request: 修复部分bug

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/899
2024-03-14 15:48:14 +08:00
jinling.yang
9120ebe6f7 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复部分bug 2024-03-14 15:46:03 +08:00
jinling.yang
02f1805505 修复部分bug 2024-03-14 15:45:40 +08:00
马广威
b937372f82 Accept Merge Request #898: (feature/制造代码优化 -> develop)
Merge Request: 修改zpl相关

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/898?initial=true
2024-03-14 14:31:53 +08:00
mgw
89f3f4b493 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-03-14 14:31:07 +08:00
马广威
9a47a4c094 Accept Merge Request #897: (feature/修改机床参数bug -> develop)
Merge Request: 增加必填按钮 修改字段string

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/897#mr-897-review-133358
2024-03-14 14:30:40 +08:00
qihao.gong@jikimo.com
20436ff6ac 增加必填按钮 修改字段string 2024-03-14 14:28:38 +08:00
mgw
70218f29ac Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	zpl_print/models/common.py
2024-03-14 14:24:26 +08:00
mgw
59677c0304 修改zpl相关等 2024-03-14 14:22:50 +08:00
杨金灵
35e2e4354a Accept Merge Request #896: (feature/优化agv接口 -> develop)
Merge Request: 优化agv接口和修复刀具产品模版

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/896
2024-03-14 14:08:38 +08:00
jinling.yang
5743ba5fac Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化agv接口 2024-03-14 11:54:34 +08:00
jinling.yang
86ec97bad1 修复刀具产品模版 2024-03-14 11:54:10 +08:00
jinling.yang
5e0b4aa509 优化产品页面 2024-03-13 17:34:35 +08:00
马广威
8117715a02 Accept Merge Request #895: (feature/制造代码优化 -> develop)
Merge Request: 修复能力特征库报错:no placeholder

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/895?initial=true
2024-03-13 09:44:07 +08:00
mgw
cf5fa70f28 修复能力特征库报错:no placeholder 2024-03-13 09:42:46 +08:00
禹翔辉
1e81ef9174 Accept Merge Request #894: (feature/刀具注册 -> develop)
Merge Request: 刀具注册,功能刀具组装流程优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/894
2024-03-13 09:08:05 +08:00
yuxianghui
d6c4eb7479 Merge branch 'feature/功能刀具注册优化' into feature/刀具注册 2024-03-13 09:02:34 +08:00
yuxianghui
0957bded16 1、优化刀具物料接口、优化功能刀具安全库存接口、优化功能刀具预警接口;2、优化功能刀具组装流程;3、优化刀具物料序列号同步步骤; 2024-03-12 17:39:21 +08:00
jinling.yang
0c44bba5f2 优化刀具产品 2024-03-12 17:32:40 +08:00
龚启豪
26942afc27 Accept Merge Request #892: (feature/修改机床参数bug -> develop)
Merge Request: 删除工序,加工工艺对象,新增表面工艺可选参数对象

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/892
2024-03-12 09:48:23 +08:00
yuxianghui
fbce395321 1、优化刀具物料序列号、刀具物料注册接口;2、优化功能刀具、功能刀具出入库记录接口;3、优化刀具物料搜索模型 2024-03-11 17:34:03 +08:00
jinling.yang
0289e2f9ff Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化agv接口 2024-03-11 17:30:46 +08:00
jinling.yang
b24355dd67 1.优化产品页面
2.优化agv回调接口且新增agv参数配置
3.优化工件配送
2024-03-11 17:30:32 +08:00
qihao.gong@jikimo.com
b315f4b3fe 维保计划项目可删除 2024-03-11 17:23:43 +08:00
黄焱
a705d805c9 设置设备模块页面强制必填字段及标识需求【表格】 2024-03-11 15:39:15 +08:00
马广威
e3b8b0a43d Accept Merge Request #891: (feature/制造代码优化 -> develop)
Merge Request: 修改工单显隐控制逻辑,优化代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/891?initial=true
2024-03-11 11:26:19 +08:00
mgw
2044db4d3e 修复权限问题 2024-03-11 11:25:31 +08:00
mgw
8a800e909f 修改工单显隐控制逻辑 2024-03-11 10:56:03 +08:00
mgw
0f2e6b165c 因接口触发按钮,无法触发按钮切换事件。经沟通,暂时隐藏手动触发开始等按钮的功能。 2024-03-08 21:46:26 +08:00
qihao.gong@jikimo.com
b16d2c2864 删除工序,加工工艺,新增表面工艺可选参数相关视图 2024-03-08 17:32:21 +08:00
yuxianghui
61b0b57b87 优化功能刀具等注册接口 2024-03-08 17:31:11 +08:00
黄焱
cfdc7f93ed Accept Merge Request #890: (feature/前端样式修改 -> develop)
Merge Request: 更改表格底部按钮样式

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/890
2024-03-08 15:15:14 +08:00
黄焱
d9cbc52928 Merge branch refs/heads/develop into refs/heads/feature/前端样式修改 2024-03-08 15:14:07 +08:00
黄焱
62e5105191 更改表格底部按钮样式 2024-03-08 15:11:59 +08:00
禹翔辉
1b6e474b9e Accept Merge Request #889: (feature/功能刀具注册优化 -> develop)
Merge Request: 刀具管理模块新增功能刀具相关模型注册到mrs接口

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/889?initial=true
2024-03-07 17:28:58 +08:00
yuxianghui
a7e43ad9af Merge branch 'feature/功能刀具注册-新' into feature/功能刀具注册优化 2024-03-07 17:25:26 +08:00
yuxianghui
47692a9b43 1、测试功能刀具相关模型的注册接口并优化;2、功能刀具管理模块中的需要注册的模型前端页面添加注册按钮; 2024-03-07 17:20:43 +08:00
马广威
21ebbc877a Accept Merge Request #888: (feature/制造代码优化 -> develop)
Merge Request: 修改按钮样式、优化权限

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/888?initial=true
2024-03-07 11:54:52 +08:00
mgw
457035e464 修改按钮样式、优化权限 2024-03-07 11:53:57 +08:00
yuxianghui
71cb09c08b 1、刀具物料搜索模型添加编码字段,添加自动计算编码方法;2、完善刀具物料搜索和功能刀具列表注册到cloud的接口; 2024-03-06 17:30:54 +08:00
马广威
70d6fb5660 Accept Merge Request #887: (feature/制造代码优化 -> develop)
Merge Request: 修复权限问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/887?initial=true
2024-03-06 11:21:38 +08:00
mgw
b4e0436b41 修复权限问题 2024-03-06 11:20:58 +08:00
龚启豪
0262d709eb Accept Merge Request #886: (feature/修改机床参数bug -> develop)
Merge Request: 处理设备字段类型相关缺陷

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/886
2024-03-05 17:03:10 +08:00
qihao.gong@jikimo.com
1a50a8220e 处理设备字段类型相关缺陷 2024-03-05 16:50:08 +08:00
马广威
f2213bd5f4 Accept Merge Request #885: (feature/制造代码优化 -> develop)
Merge Request: 修改工单状态

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/885?initial=true
2024-03-05 11:37:56 +08:00
mgw
fcbe33714e 修改工单状态 2024-03-05 11:37:21 +08:00
禹翔辉
184ca7940b Accept Merge Request #884: (feature/功能优化 -> develop)
Merge Request: 功能优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/884
2024-03-04 17:17:11 +08:00
yuxianghui
dceaf7fe8d Merge branch 'feature/刀具添加归档功能' into feature/功能优化 2024-03-04 17:13:42 +08:00
yuxianghui
d85b05f999 1 2024-03-04 17:11:18 +08:00
yuxianghui
9d2bad977c 1、产品模型的产品类别字段添加必填标记;2、制造订单的工单添加RFID码(已解除)字段,当工单解除装夹时保存RFID码到RFID码(已解除)字段进行展示;3、功能刀具列表的当前位置字段改为Selection类型,并优化自动计算功能刀具当前位置的方法;4、获取机床刀库信息时,对新装刀的功能刀具进行库存位移刀制造前(机内刀库);5、优化功能刀具组装时扫码自动录入RFID码功能; 2024-03-04 17:10:41 +08:00
马广威
4c8ba67cad Accept Merge Request #883: (feature/制造代码优化 -> develop)
Merge Request: 调整必填、增加用户组控制;优化代码

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/883
2024-03-04 11:54:20 +08:00
mgw
3ca5c02880 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-03-04 11:52:29 +08:00
mgw
3c0649392e 优化代码 2024-03-04 11:52:04 +08:00
黄焱
8a2d6df43b Accept Merge Request #882: (feature/前端样式修改 -> develop)
Merge Request: * 修改必填标识js,修改之前必填标识样式

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/882?initial=true
2024-03-04 11:25:29 +08:00
黄焱
98103bac73 修改必填标识js,修改之前必填标识样式 2024-03-04 11:21:50 +08:00
mgw
6cbc21cc4e 调整必填、增加用户组控制 2024-03-04 10:58:39 +08:00
黄焱
7edeb59853 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改 2024-03-04 10:27:56 +08:00
马广威
806f921ad2 Accept Merge Request #881: (feature/制造代码优化 -> develop)
Merge Request: 优化质量相关翻译,增加必填标识;处理采购订单按钮

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/881
2024-03-04 09:47:32 +08:00
mgw
ec54c8e014 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-03-04 09:45:55 +08:00
mgw
b7be5251b8 处理采购订单按钮展示的问题 2024-03-04 09:45:19 +08:00
mgw
33dc25f400 优化质量相关翻译,增加必填标识 2024-03-04 09:18:12 +08:00
黄焱
e761ff9140 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改 2024-03-01 16:31:12 +08:00
马广威
2f26a42b68 Accept Merge Request #880: (feature/制造代码优化 -> develop)
Merge Request: 优化质量模块翻译

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/880?initial=true
2024-03-01 16:27:12 +08:00
马广威
2ed7aa60ff Accept Merge Request #879: (feature/修改机床参数bug -> develop)
Merge Request: 增加必填标识,修改csv相关参数

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/879#mr-879-review-129484
2024-03-01 15:46:04 +08:00
qihao.gong@jikimo.com
7e4a3251c8 增加必填标识 2024-03-01 15:43:03 +08:00
qihao.gong@jikimo.com
b73e46dbc4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_warehouse/security/ir.model.access.csv
2024-03-01 11:34:59 +08:00
qihao.gong@jikimo.com
4185b79e0d 修改csv权限相关文件 2024-03-01 11:30:03 +08:00
杨金灵
3f037b2051 Accept Merge Request #878: (feature/修复日计划工单接口 -> develop)
Merge Request: 修复日计划工单接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/878?initial=true
2024-02-29 17:20:16 +08:00
jinling.yang
51c6b7ef9b 修复日计划工单接口 2024-02-29 17:16:27 +08:00
马广威
ceffbd012e Accept Merge Request #877: (feature/修复产品页面合并问题 -> develop)
Merge Request: 修复产品页面合并问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/877#mr-877-review-129080
2024-02-29 15:44:50 +08:00
jinling.yang
12c3869794 修复产品页面合并问题 2024-02-29 15:43:49 +08:00
杨金灵
5a348ae685 Accept Merge Request #876: (feature/修复权限 -> develop)
Merge Request: 修复权限

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/876?initial=true
2024-02-29 15:34:30 +08:00
jinling.yang
c1da64fc36 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复权限
# Conflicts:
#	sf_dlm_management/views/product_template_management_view.xml
2024-02-29 15:32:54 +08:00
jinling.yang
c262110b9a 修复权限 2024-02-29 15:30:10 +08:00
禹翔辉
dac0c4e767 Accept Merge Request #875: (feature/刀具添加归档功能 -> develop)
Merge Request: 1、刀具组和刀具管理模块下的所以模型添加active字段,添加已归档搜索方式;2、解决俩个警告;3、产品模型的刀具物料、型号、规格字段添加当产品物料为刀具时必填及红星样式;4、关闭刀具物料查询模型和CAM用刀模型的创建按钮;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/875
2024-02-29 14:54:41 +08:00
yuxianghui
25e65b39bc Merge branch 'feature/刀具物料序列号优化' into feature/刀具添加归档功能
# Conflicts:
#	sf_dlm_management/views/product_template_management_view.xml
2024-02-29 14:52:47 +08:00
yuxianghui
3c569fd485 1、刀具组和刀具管理模块下的所以模型添加active字段,添加已归档搜索方式;2、解决俩个警告;3、产品模型的刀具物料、型号、规格字段添加当产品物料为刀具时必填及红星样式;4、关闭刀具物料查询模型和CAM用刀模型的创建按钮; 2024-02-29 14:48:21 +08:00
马广威
7c3b6de41b Accept Merge Request #874: (feature/修复分配工厂创建订单和质检接口 -> develop)
Merge Request: 修复分配工厂创建订单和质检接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/874#mr-874-review-129033
2024-02-29 14:44:40 +08:00
jinling.yang
abdc522f9f 修复分配工厂创建订单和质检接口 2024-02-29 14:42:10 +08:00
jinling.yang
ec5297937d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-29 11:23:29 +08:00
jinling.yang
ff768a6e5d Merge branch 'feature/修复质检接口' into develop 2024-02-29 11:22:35 +08:00
杨金灵
e0ffe68446 Accept Merge Request #873: (feature/修复质检接口 -> develop)
Merge Request: 修复质检接口和产品页面相关模型的访问权限

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/873?initial=true
2024-02-29 11:22:21 +08:00
jinling.yang
0bc055b1a7 优化加工订单接口日志 2024-02-29 11:09:20 +08:00
jinling.yang
6b8789a54b 修复产品页面涉及到其他模型的访问权限 2024-02-29 11:03:02 +08:00
jinling.yang
d270eaefd0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复质检接口 2024-02-29 10:35:38 +08:00
jinling.yang
5dd89d3afc 修复质检接口 2024-02-29 10:34:18 +08:00
马广威
556e6ba261 Accept Merge Request #872: (feature/修改机床参数bug -> develop)
Merge Request: 修改设备oee自动生成,设备刀库编码规则

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/872#mr-872-review-128778
2024-02-28 17:15:56 +08:00
qihao.gong@jikimo.com
75354c67db 修改设备oee自动生成,设备刀库编码规则 2024-02-28 17:14:42 +08:00
禹翔辉
cf7da65ff9 Accept Merge Request #871: (feature/刀具物料序列号优化 -> develop)
Merge Request: 优化采购刀具物料时刀具物料的序列号生成规则

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/871?initial=true
2024-02-28 16:55:34 +08:00
yuxianghui
17b167f1de Merge branch 'feature/必填字段添加红星样式' into feature/刀具物料序列号优化 2024-02-28 16:53:43 +08:00
yuxianghui
6937d59b9f 1、优化采购刀具物料时刀具物料的序列号生成规则 2024-02-28 16:52:27 +08:00
杨金灵
e2e8b0a287 Accept Merge Request #870: (feature/修复质检接口 -> develop)
Merge Request: 修复质检接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/870?initial=true
2024-02-28 16:47:00 +08:00
jinling.yang
c89f3623f6 修复质检接口 2024-02-28 16:45:50 +08:00
马广威
a5122e2e18 Accept Merge Request #869: (feature/优化cnc程序和检测文件 -> develop)
Merge Request: 优化cnc程序和检测文件及质量检测

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/869
2024-02-28 16:08:57 +08:00
jinling.yang
7d96963b60 修复cnc程序排序 2024-02-28 16:03:26 +08:00
jinling.yang
b6acb48dbf Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化cnc程序和检测文件 2024-02-28 15:54:10 +08:00
jinling.yang
0538763059 1.修复及优化质检接口2.质量检查新增检测报告和检测结果2个字段 2024-02-28 15:53:46 +08:00
黄焱
6a07c09686 Accept Merge Request #868: (feature/前端样式修改 -> develop)
Merge Request: 修改,增加强制必填字段方法

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/868?initial=true
2024-02-28 14:45:54 +08:00
黄焱
19be421875 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/前端样式修改 2024-02-28 14:44:16 +08:00
黄焱
1c6544ffbf 修改,增加强制必填字段方法 2024-02-28 14:42:57 +08:00
mgw
58d2367f02 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-02-28 09:44:07 +08:00
mgw
569e28b229 优化质量模块翻译 2024-02-28 09:43:44 +08:00
黄焱
ab6a3f8b6b Accept Merge Request #867: (feature/前端样式修改 -> develop)
Merge Request: 修改*样式,增加扫码枪判断

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/867?initial=true
2024-02-27 17:58:21 +08:00
黄焱
f2c8bd7333 修改*样式,增加扫码枪判断 2024-02-27 17:57:00 +08:00
马广威
9d2e8d020b Accept Merge Request #866: (feature/制造代码优化 -> develop)
Merge Request: 处理排程处按钮的显隐规则

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/866?initial=true
2024-02-27 17:33:50 +08:00
mgw
586216fa01 代码优化 2024-02-27 17:33:08 +08:00
mgw
70038e05c8 处理排程处按钮的显隐规则 2024-02-27 17:23:15 +08:00
禹翔辉
e301a4d211 Accept Merge Request #865: (feature/必填字段添加红星样式 -> develop)
Merge Request: 1、新增必填字段前添加 * 的样式;2、给刀具管理模块的必填字段添加红星样式;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/865
2024-02-27 17:22:31 +08:00
yuxianghui
659f869d63 取消刀具安全库存的tree视图必填样式 2024-02-27 17:20:42 +08:00
yuxianghui
0952bc9b70 Merge branch 'feature/工单rfid解绑' into feature/必填字段添加红星样式 2024-02-27 17:17:19 +08:00
yuxianghui
0f8bee120b 1、新增必填字段前添加 * 的样式;2、给刀具管理模块的必填字段添加红星样式; 2024-02-27 17:15:22 +08:00
马广威
e4e03e1765 Accept Merge Request #864: (feature/制造代码优化 -> develop)
Merge Request: 增加中控接口返回对工单、计划单属性的改变(状态,时间等)

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/864
2024-02-27 15:52:08 +08:00
mgw
27c83f7d3c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-02-27 15:49:34 +08:00
mgw
391dedc7b1 产品加工进度反馈给销售订单 2024-02-27 15:47:16 +08:00
mgw
fdddf19d13 增加中控接口返回对工单、计划单属性的改变(状态,时间等) 2024-02-27 11:42:59 +08:00
杨金灵
46f74405a1 Accept Merge Request #863: (feature/去掉多余定义的bfm_url -> develop)
Merge Request: 去掉多余定义的bfm_url

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/863?initial=true
2024-02-27 11:24:43 +08:00
jinling.yang
de6db3c313 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/去掉多余定义的bfm_url 2024-02-27 11:21:18 +08:00
jinling.yang
2ddff54311 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-27 11:21:05 +08:00
jinling.yang
a423d0c3bf 去掉多余定义的bfm_url 2024-02-27 11:20:32 +08:00
龚启豪
d684dfe8d0 Accept Merge Request #862: (feature/修改机床参数bug -> develop)
Merge Request: 修改工单布局

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/862?initial=true
2024-02-27 10:52:51 +08:00
qihao.gong@jikimo.com
e22e4801c1 修改工单布局 2024-02-27 10:51:50 +08:00
jinling.yang
8b7de5ec25 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-27 10:50:17 +08:00
jinling.yang
a1afcc517a Merge branch 'feature/优化工单搜索' into develop 2024-02-27 10:49:34 +08:00
杨金灵
25eab5c203 Accept Merge Request #861: (feature/优化工单搜索 -> develop)
Merge Request: 优化工单搜索和修复销售审查按钮

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/861?initial=true
2024-02-27 10:49:20 +08:00
jinling.yang
545c1a0407 修复销售总监审核未通过审核按钮未隐藏 2024-02-27 10:46:41 +08:00
jinling.yang
42acd22978 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-27 10:38:43 +08:00
jinling.yang
3ff8e6d0f8 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化工单搜索 2024-02-27 10:38:32 +08:00
jinling.yang
424754db1a 1.工单查询页面新增工序类型和状态搜索面板
2.销售模块新增delivery依赖
2024-02-27 10:37:59 +08:00
禹翔辉
dfada55cf7 Accept Merge Request #860: (feature/工单rfid解绑 -> develop)
Merge Request: 解除装夹工单时解除RFID码和工单的绑定关系

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/860
2024-02-26 17:22:08 +08:00
yuxianghui
7f50a3f1d3 Merge branch 'feature/刀具物料搜索计算方法优化' into feature/工单rfid解绑 2024-02-26 17:19:45 +08:00
龚启豪
ed1a528fa7 Accept Merge Request #859: (feature/修改机床参数bug -> develop)
Merge Request: 修改定时同步接口,机床参数

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/859?initial=true
2024-02-26 17:12:03 +08:00
yuxianghui
c9825805db 1、解除装夹工单时解除RFID码和工单的绑定关系 2024-02-26 17:10:34 +08:00
qihao.gong@jikimo.com
e70a91d1ec 修改定时同步接口,机床参数 2024-02-26 17:07:16 +08:00
jinling.yang
bf7926acf4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-26 16:39:43 +08:00
jinling.yang
1fcc0d2ae3 Merge branch 'feature/优化cnc程序' into develop 2024-02-26 16:39:30 +08:00
杨金灵
74678a56f7 Accept Merge Request #858: (feature/优化cnc程序 -> develop)
Merge Request: 优化cnc程序

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/858
2024-02-26 16:39:13 +08:00
jinling.yang
2a39320fc3 优化获取cnc程序的判断条件 2024-02-26 16:37:54 +08:00
jinling.yang
c528c62536 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化cnc程序 2024-02-26 16:35:01 +08:00
jinling.yang
28a080d1cd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-26 16:34:43 +08:00
jinling.yang
267667b3f5 优化cnc程序, 2024-02-26 16:34:26 +08:00
禹翔辉
0b6f5db9ff Accept Merge Request #857: (feature/刀具物料搜索计算方法优化 -> develop)
Merge Request: 计算方法优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/857?initial=true
2024-02-26 12:09:33 +08:00
yuxianghui
a103f84635 Merge branch 'feature/刀具物料搜索优化' into feature/刀具物料搜索计算方法优化 2024-02-26 12:07:39 +08:00
yuxianghui
da89b2f00d 删除刀具物料搜索的计算字段的store=True属性,优化计算方法; 2024-02-26 12:06:00 +08:00
禹翔辉
30e7c616a2 Accept Merge Request #856: (feature/刀具物料搜索优化 -> develop)
Merge Request: 解决刀具物料搜索的计算字段数据问题;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/856?initial=true
2024-02-26 11:42:43 +08:00
yuxianghui
690c388143 解决刀具物料搜索的计算字段数据问题; 2024-02-26 11:39:25 +08:00
jinling.yang
dbdc2e1238 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-23 19:49:55 +08:00
马广威
6c98ea7781 Accept Merge Request #855: (feature/修改机床参数bug -> develop)
Merge Request: 修改库位变更接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/855#mr-855-review-127671
2024-02-23 18:38:45 +08:00
qihao.gong@jikimo.com
85f4d01cee 修改库位变更接口 2024-02-23 18:33:35 +08:00
马广威
33b456d991 Accept Merge Request #854: (feature/修改机床参数bug -> develop)
Merge Request: 修改库位变更接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/854#mr-854-review-127659
2024-02-23 18:20:34 +08:00
qihao.gong@jikimo.com
8c8aa63b3a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-02-23 18:15:45 +08:00
qihao.gong@jikimo.com
5e97f0ef2d 修改库位变更接口 2024-02-23 18:15:28 +08:00
禹翔辉
a255155b4d Accept Merge Request #853: (feature/中控接口优化1 -> develop)
Merge Request: 优化中控接口

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/853
2024-02-23 17:35:45 +08:00
yuxianghui
97165a0a82 Merge branch 'feature/刀具组接口18-19优化' into feature/中控接口优化1
# Conflicts:
#	sf_warehouse/models/model.py
2024-02-23 17:33:32 +08:00
yuxianghui
db48ef396e 1、优化中控接口14-16 2024-02-23 17:29:04 +08:00
马广威
1cd05f53b1 Accept Merge Request #852: (feature/ftp添加新的注释 -> develop)
Merge Request: ftp添加新的注释

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/852#mr-852-review-127619
2024-02-23 17:26:33 +08:00
jinling.yang
e126b812b6 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-23 17:25:08 +08:00
jinling.yang
4fcbf57e97 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-23 17:24:58 +08:00
jinling.yang
6b2608e419 ftp添加新的注释 2024-02-23 17:24:46 +08:00
马广威
9c1365f45e Accept Merge Request #851: (feature/修改机床参数bug -> develop)
Merge Request: 修改库存信息接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/851#mr-851-review-127615
2024-02-23 17:21:32 +08:00
qihao.gong@jikimo.com
acf99d3e05 修改库存信息接口 2024-02-23 17:20:25 +08:00
jinling.yang
73ee29246f Merge branch 'feature/ftp添加输出' into develop 2024-02-23 16:51:08 +08:00
jinling.yang
73e4106dc9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/ftp添加输出 2024-02-23 16:50:25 +08:00
马广威
96cdc2aba8 Accept Merge Request #850: (feature/ftp添加输出 -> develop)
Merge Request: ftp添加输出

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/850
2024-02-23 16:48:02 +08:00
马广威
342ff9e025 Accept Merge Request #849: (feature/修改机床参数bug -> develop)
Merge Request: 修改库位信息接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/849#mr-849-review-127596
2024-02-23 16:47:40 +08:00
jinling.yang
c2ad923581 ftp添加输出 2024-02-23 16:46:52 +08:00
qihao.gong@jikimo.com
6a7cff656b 修改库位信息接口 2024-02-23 16:46:30 +08:00
龚启豪
7a00108852 Accept Merge Request #848: (feature/修改机床参数bug -> develop)
Merge Request: 修改库区信息方法

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/848?initial=true
2024-02-23 16:42:53 +08:00
qihao.gong@jikimo.com
e1d6726d8b 修改库区信息方法 2024-02-23 16:41:09 +08:00
杨金灵
dcd0f5f892 Accept Merge Request #847: (feature/修复质检接口 -> develop)
Merge Request: 修复质检接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/847?initial=true
2024-02-23 16:33:21 +08:00
龚启豪
40fdc1f804 Accept Merge Request #846: (feature/修改机床参数bug -> develop)
Merge Request: 修改获取库区接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/846
2024-02-23 16:33:19 +08:00
jinling.yang
33e88eb9cc 修复质检接口 2024-02-23 16:31:56 +08:00
qihao.gong@jikimo.com
8b8c8ebd26 修改获取库区接口 2024-02-23 16:29:23 +08:00
杨金灵
bfe7005962 Accept Merge Request #845: (feature/优化ftp -> develop)
Merge Request: 优化ftp

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/845?initial=true
2024-02-23 16:18:57 +08:00
jinling.yang
45fa6931d7 新增下拉检测文件 2024-02-23 16:16:49 +08:00
杨金灵
6f82feddeb Accept Merge Request #844: (feature/修复质检接口 -> develop)
Merge Request: 修复质检接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/844?initial=true
2024-02-23 16:03:32 +08:00
jinling.yang
998900955d 修复质检接口 2024-02-23 16:01:19 +08:00
龚启豪
1c2b50a343 Accept Merge Request #843: (feature/修改机床参数bug -> develop)
Merge Request: 新增获取库区信息定时器,完善库区变更接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/843?initial=true
2024-02-23 15:34:37 +08:00
杨金灵
49d77c736e Accept Merge Request #842: (feature/优化检测文件 -> develop)
Merge Request: 优化质检接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/842
2024-02-23 15:33:59 +08:00
jinling.yang
6711543567 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化检测文件 2024-02-23 15:33:24 +08:00
qihao.gong@jikimo.com
397cae4f87 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-02-23 15:31:44 +08:00
qihao.gong@jikimo.com
c726bb614c 新增获取库区信息定时器
修改库存变更接口
2024-02-23 15:31:25 +08:00
黄焱
6fa8bfffe7 Accept Merge Request #841: (feature/前端样式修改 -> develop)
Merge Request: 扫码RFID实时显示功能

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/841?initial=true
2024-02-23 15:31:04 +08:00
jinling.yang
2e62915b41 通过质检接口的质检文件路径获取 2024-02-23 15:29:21 +08:00
黄焱
a80f62c87f 扫码RFID实时显示功能 2024-02-23 15:28:30 +08:00
qihao.gong@jikimo.com
99ba2d0a4d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-02-23 11:58:26 +08:00
qihao.gong@jikimo.com
b045854a63 修改库位变更接口 2024-02-23 11:58:12 +08:00
马广威
f015cbb9fd Accept Merge Request #839: (feature/修改机床参数bug -> develop)
Merge Request: 修改工单开始接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/839
2024-02-23 11:12:11 +08:00
杨金灵
2b9c088d1d Accept Merge Request #840: (feature/修复agv接口 -> develop)
Merge Request: 修复agv接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/840?initial=true
2024-02-23 11:12:05 +08:00
jinling.yang
9ecd95faa0 1.修复质量模块的权限2.修复agv接口 2024-02-23 11:09:57 +08:00
qihao.gong@jikimo.com
7062289c89 修改工单开始 2024-02-23 10:41:28 +08:00
qihao.gong@jikimo.com
d2b80ea42c 修改工单开始接口 2024-02-23 10:32:51 +08:00
jinling.yang
39381ac5b0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-23 10:20:11 +08:00
jinling.yang
cc7b3ea25e Merge branch 'feature/优化后置三元检测' into develop 2024-02-23 10:19:50 +08:00
杨金灵
85a4fa49a4 Accept Merge Request #838: (feature/优化后置三元检测 -> develop)
Merge Request: 优化后置三元检测

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/838?initial=true
2024-02-23 10:19:25 +08:00
jinling.yang
935b317fe6 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化后置三元检测 2024-02-23 10:17:46 +08:00
jinling.yang
ad0b9983bf 1.新增检测报告链接地址字段
2.优化rfid码扫描
3.优化工单页面
2024-02-23 10:17:20 +08:00
龚启豪
648954faa3 Accept Merge Request #837: (feature/修改机床参数bug -> develop)
Merge Request: 修改开始结束工单

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/837?initial=true
2024-02-23 10:15:16 +08:00
qihao.gong@jikimo.com
e885d7b372 修改开始结束工单 2024-02-23 10:13:41 +08:00
龚启豪
5fcff90c01 Accept Merge Request #836: (feature/修改机床参数bug -> develop)
Merge Request: 修改工单开始结束接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/836?initial=true
2024-02-23 09:58:12 +08:00
马广威
8c4c8b0323 Accept Merge Request #835: (feature/制造代码优化 -> develop)
Merge Request: 修改货位编码规则

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/835?initial=true
2024-02-23 09:57:34 +08:00
mgw
f8101c2a16 修改货位编码规则 2024-02-23 09:57:02 +08:00
qihao.gong@jikimo.com
b7c64d9eb4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-02-23 09:56:16 +08:00
qihao.gong@jikimo.com
e456b811f2 修改工单开始结束接口 2024-02-23 09:56:01 +08:00
杨金灵
01c4e13198 Accept Merge Request #834: (feature/优化接口和工单 -> develop)
Merge Request: 优化接口和工单

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/834
2024-02-22 19:41:54 +08:00
jinling.yang
7bf2316c09 优化接口和工单 2024-02-22 19:40:25 +08:00
杨金灵
e55f7c59e6 Accept Merge Request #833: (feature/修复日计划工单接口和http -> develop)
Merge Request: 修复日计划工单接口和http

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/833?initial=true
2024-02-22 18:54:15 +08:00
jinling.yang
5916b4a740 修复日计划工单接口和http 2024-02-22 18:52:36 +08:00
jinling.yang
a3f6946823 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-22 18:26:41 +08:00
jinling.yang
87cda7e641 Merge branch 'feature/修复日计划工单和工件预调接口' into develop 2024-02-22 18:24:54 +08:00
杨金灵
247b82e816 Accept Merge Request #832: (feature/修复日计划工单和工件预调接口 -> develop)
Merge Request: 修复日计划工单和工件预调接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/832?initial=true
2024-02-22 18:24:31 +08:00
jinling.yang
4d745b48cf Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复日计划工单和工件预调接口 2024-02-22 18:23:14 +08:00
jinling.yang
fc2588140b 修复日计划工单和工件预调接口 2024-02-22 18:22:56 +08:00
禹翔辉
e619e6660e Accept Merge Request #831: (feature/刀具组接口18-19优化 -> develop)
Merge Request: 刀具组接口优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/831?initial=true
2024-02-22 18:16:51 +08:00
yuxianghui
475b45b293 Merge branch 'feature/中控接口14-16优化' into feature/刀具组接口18-19优化 2024-02-22 18:14:56 +08:00
yuxianghui
3c4a2b58b1 1、优化刀具接口 2024-02-22 18:12:51 +08:00
杨金灵
a8fb541568 Accept Merge Request #830: (feature/修复日计划工单接口 -> develop)
Merge Request: 修复日计划工单

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/830
2024-02-22 18:03:09 +08:00
jinling.yang
90c499f9c7 修复日计划工单 2024-02-22 18:00:16 +08:00
马广威
e6bef9d1ab Accept Merge Request #829: (feature/新增agv反馈接口 -> develop)
Merge Request: 新增agv接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/829#mr-829-review-127286
2024-02-22 17:18:31 +08:00
jinling.yang
5d22318f7d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增agv反馈接口
# Conflicts:
#	sf_manufacturing/controllers/controllers.py
2024-02-22 17:17:02 +08:00
jinling.yang
da97fce6d5 新增agv相关接口 2024-02-22 17:16:16 +08:00
龚启豪
b34611d1b3 Accept Merge Request #828: (feature/修改机床参数bug -> develop)
Merge Request: 修改接口

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/828?initial=true
2024-02-22 16:55:55 +08:00
qihao.gong@jikimo.com
75e2b2fabe Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_manufacturing/controllers/controllers.py
2024-02-22 16:54:15 +08:00
qihao.gong@jikimo.com
df57b33e19 修改接口 2024-02-22 16:52:48 +08:00
jinling.yang
0ca4165219 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-22 16:00:03 +08:00
jinling.yang
9ce4cf779b Merge branch 'feature/新增cmm程序' into develop 2024-02-22 15:58:53 +08:00
杨金灵
4ccebfac29 Accept Merge Request #827: (feature/新增cmm程序 -> develop)
Merge Request: 新增cmm程序及接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/827?initial=true
2024-02-22 15:58:35 +08:00
jinling.yang
1142400e9c 新增库位接口(启豪的代码) 2024-02-22 15:56:34 +08:00
jinling.yang
abcada8466 新增cmm程序对象及新增cmm接口 2024-02-22 15:55:35 +08:00
qihao.gong@jikimo.com
a8bedd0425 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-02-22 15:35:48 +08:00
jinling.yang
fe89a971a6 Merge branch 'feature/优化工件预调接口' into develop 2024-02-22 15:23:33 +08:00
jinling.yang
6df562a8ab Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化工件预调接口 2024-02-22 15:20:13 +08:00
jinling.yang
c086bd03f0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-22 15:19:58 +08:00
jinling.yang
9e591c3813 修复工件预调接口 2024-02-22 15:18:40 +08:00
jinling.yang
0be75bc54f Merge branch 'feature/优化中控接口' into develop 2024-02-22 14:44:06 +08:00
杨金灵
d94e4469f6 Accept Merge Request #825: (feature/优化中控接口 -> develop)
Merge Request: 优化中控接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/825
2024-02-22 14:43:48 +08:00
jinling.yang
4b4fd649e6 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化中控接口 2024-02-22 14:42:06 +08:00
jinling.yang
fad44a5413 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-22 14:41:47 +08:00
禹翔辉
8910b3493e Accept Merge Request #824: (feature/中控刀具接口优化 -> develop)
Merge Request: 刀具组接口优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/824
2024-02-22 14:35:44 +08:00
yuxianghui
20fe65c73c Merge branch 'feature/刀具组接口优化' into feature/中控刀具接口优化 2024-02-22 14:34:16 +08:00
qihao.gong@jikimo.com
3fe9c9e532 修改接口方法 2024-02-22 14:30:51 +08:00
yuxianghui
259d723ec9 优化刀具组接口 2024-02-22 14:30:38 +08:00
jinling.yang
0d755a50ae 优化工单相关接口 2024-02-22 14:26:56 +08:00
禹翔辉
e27f2f72bf Accept Merge Request #823: (feature/刀具组接口优化 -> develop)
Merge Request: 刀具组接口优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/823
2024-02-22 14:26:26 +08:00
yuxianghui
b6ea81d07f Merge branch 'feature/中控接口14-19优化' into feature/刀具组接口优化 2024-02-22 14:24:26 +08:00
yuxianghui
ed8cbb1f81 1、优化刀具组接口 2024-02-22 14:23:19 +08:00
jinling.yang
65b5f7f30a Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-22 13:44:25 +08:00
杨金灵
bc30c0558d Accept Merge Request #822: (feature/修复中控接口 -> develop)
Merge Request: 修复中控接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/822
2024-02-22 11:56:38 +08:00
jinling.yang
8913d2f65f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复中控接口 2024-02-22 11:54:18 +08:00
jinling.yang
907f5db4e2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-22 11:54:01 +08:00
jinling.yang
79c6459adf 1.cnc工单新增程序文件字段2.优化获取编程单接口3.修复与中控对接的接口 2024-02-22 11:53:50 +08:00
qihao.gong@jikimo.com
87e9ecb9e2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-02-22 10:24:03 +08:00
禹翔辉
e5129fe55f Accept Merge Request #821: (feature/中控接口14-19优化 -> develop)
Merge Request: 接口优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/821
2024-02-22 10:20:15 +08:00
yuxianghui
5f760cf94b Merge branch 'feature/新增中控接口' into feature/中控接口14-19优化 2024-02-22 10:17:24 +08:00
yuxianghui
ce01127664 中控对接接口优化 2024-02-22 10:15:07 +08:00
jinling.yang
ef3219a098 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-22 09:35:37 +08:00
qihao.gong@jikimo.com
473a8ea6fe Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_warehouse/views/shelf_location.xml
2024-02-21 16:40:24 +08:00
禹翔辉
8695a66e3d Accept Merge Request #820: (feature/新增中控接口 -> develop)
Merge Request: 1、新增刀具组、机床刀具组接口,修改中控相关接口名称

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/820?initial=true
2024-02-21 16:28:39 +08:00
yuxianghui
410b384fd6 Merge branch 'feature/中控接口优化' into feature/新增中控接口 2024-02-21 16:26:27 +08:00
qihao.gong@jikimo.com
bb321f90a5 处理库存报错bug 2024-02-21 16:26:18 +08:00
yuxianghui
51b7bcac8a 1、新增刀具组、机床刀具组接口,修改中控相关接口名称 2024-02-21 16:24:10 +08:00
马广威
36ce43cf8a Accept Merge Request #819: (feature/制造代码优化 -> develop)
Merge Request: 修复序列号问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/819?initial=true
2024-02-21 15:26:42 +08:00
mgw
b4538a3f9d 修复序列号问题 2024-02-21 15:25:55 +08:00
jinling.yang
af725fa363 Merge branch 'feature/优化快速订单' into develop 2024-02-21 14:54:58 +08:00
杨金灵
7d3a320893 Accept Merge Request #818: (feature/优化快速订单 -> develop)
Merge Request: 优化快速订单和工单

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/818?initial=true
2024-02-21 14:54:40 +08:00
jinling.yang
0354f6b136 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化快速订单 2024-02-21 14:52:36 +08:00
jinling.yang
1e006b0bd7 1.工单新增rfid字段
2.修改中控对接的工单接口
3.快速订单材料,型号,客户修改为可选择
2024-02-21 14:52:14 +08:00
马广威
50b0204cc6 Accept Merge Request #817: (feature/制造代码优化 -> develop)
Merge Request: 修复物流方式导致的分配工厂失败问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/817?initial=true
2024-02-21 11:33:18 +08:00
mgw
72df0aa640 修复物流方式导致的分配工厂失败问题 2024-02-21 11:32:06 +08:00
马广威
02bf6a6764 Accept Merge Request #816: (feature/制造代码优化 -> develop)
Merge Request: 货架货位拆分测试异常问题修复

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/816?initial=true
2024-02-20 20:17:50 +08:00
mgw
64581abeb1 测试异常问题修复 2024-02-20 20:17:00 +08:00
马广威
82f80f1d15 Accept Merge Request #815: (feature/制造代码优化 -> develop)
Merge Request: 货架货位对象拆分

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/815
2024-02-20 17:40:01 +08:00
mgw
f324a9d471 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	sf_warehouse/views/shelf_location.xml
2024-02-20 17:37:52 +08:00
mgw
6103bca698 货架货位对象拆分 2024-02-20 17:35:31 +08:00
jinling.yang
9a4477de8b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化快速订单 2024-02-20 17:34:52 +08:00
jinling.yang
5646cc492e 1.快速订单新增特征识别路径字段
2.修复销售经理和销售总监看不到快速订单菜单
3.优化系统设置页面,新增特征识别路径展示,去掉重复的业务平台参数配置展示
4.快速订单去掉老版本的特征识别的代码及包,新增最新的特征识别方法
2024-02-20 17:33:06 +08:00
禹翔辉
d5c748db78 Accept Merge Request #814: (feature/序列号添加二维码 -> develop)
Merge Request: 序列号模型添加二维码字段,添加自动根据序列号名称生成二维码的功能,新增打印二维码功能;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/814?initial=true
2024-02-20 16:05:00 +08:00
yuxianghui
9c08021773 Merge branch 'feature/自动生成二维码' into feature/序列号添加二维码 2024-02-20 16:01:52 +08:00
yuxianghui
cf3ec1b6ae 1、序列号模型添加二维码字段,添加自动根据序列号名称生成二维码的功能,新增打印二维码功能; 2024-02-20 15:59:58 +08:00
禹翔辉
df89f40a24 Accept Merge Request #813: (feature/功能刀具组装优化 -> develop)
Merge Request: 1、删除功能刀具组装模型的打印二维码按钮,隐藏组装单打印按钮;2、添加功能刀具组装时的rfid验重功能;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/813?initial=true
2024-02-20 14:51:18 +08:00
yuxianghui
5c24cec4f6 Merge branch 'feature/刀具物料查询模型重构' into feature/功能刀具组装优化 2024-02-20 14:40:28 +08:00
杨金灵
4379854b89 Accept Merge Request #812: (feature/删除库存部分代码 -> develop)
Merge Request: 删除库存部分代码

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/812?initial=true
2024-02-20 14:39:18 +08:00
jinling.yang
3a076bbdd1 删除库存部分代码 2024-02-20 14:37:50 +08:00
yuxianghui
bb519b8ab8 1、序列号模型自动跟具序列号名称生成二维码(未完成) 2024-02-20 14:35:28 +08:00
杨金灵
de26109ccc Accept Merge Request #809: (feature/产品的加工参数的权限修复 -> develop)
Merge Request: 产品的加工参数的权限修复

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/809
2024-02-20 14:35:03 +08:00
yuxianghui
53e5aa2017 优化刀具组接口 2024-02-20 14:32:13 +08:00
yuxianghui
0183a5ab2b 1、删除功能刀具组装模型的打印二维码按钮,隐藏组装单打印按钮;2、添加功能刀具组装时的rfid验重功能; 2024-02-20 14:27:43 +08:00
马广威
54c5259ed9 Accept Merge Request #811: (feature/制造代码优化 -> develop)
Merge Request: 分配序列号时增加二维码生成及编码打印

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/811?initial=true
2024-02-20 13:11:39 +08:00
mgw
efdde5aef0 分配序列号时增加二维码生成及编码打印 2024-02-20 13:09:25 +08:00
马广威
584dd11c61 Accept Merge Request #810: (feature/制造代码优化 -> develop)
Merge Request: 代码优化

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/810?initial=true
2024-02-19 17:25:00 +08:00
mgw
635583826f 物流处bug修复 2024-02-19 17:23:57 +08:00
jinling.yang
cbd7b561de 产品的加工参数的权限修复 2024-02-19 17:07:42 +08:00
mgw
9c080e0cb4 权限控制增补 2024-02-19 15:26:36 +08:00
mgw
1c61a8ef1c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-02-19 14:36:13 +08:00
mgw
07ed60e8a7 刀具管理权限优化 2024-02-19 14:35:51 +08:00
禹翔辉
7207d7eb36 Accept Merge Request #808: (feature/重构刀具物料查询 -> develop)
Merge Request: 重构刀具物料查询模型及其相关功能

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/808?initial=true
2024-02-18 17:26:47 +08:00
yuxianghui
9ede024710 Merge branch 'feature/刀具物料查询模型重构' into feature/重构刀具物料查询 2024-02-18 17:23:44 +08:00
yuxianghui
cb8285d0ca 1、重构刀具物料查询模型;2、新增产品创建时产品类别为刀具时,创建刀具物料查询模型记录;3、新增序列号和刀具物料查询模型的关联字段,新增刀具物料是否可用状态字段;并在新增序列号记录时,如果关联的产品的产品类别为刀具时,对对应刀具物料查询记录进行关联; 2024-02-18 17:22:06 +08:00
马广威
3e3f49f8aa Accept Merge Request #807: (feature/制造代码优化 -> develop)
Merge Request: 优化排程单与制造订单生产线状态联动的问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/807
2024-02-18 15:43:32 +08:00
禹翔辉
35cc1ce6dc Accept Merge Request #806: (feature/优化驾驶舱 -> develop)
Merge Request: 优化生产线驾驶舱,将功能刀具组装中心的按键改成组装单的跳转按键

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/806
2024-02-18 10:32:36 +08:00
yuxianghui
b4b70e3cf0 Merge branch 'feature/生产线驾驶舱优化' into feature/优化驾驶舱 2024-02-18 10:28:40 +08:00
yuxianghui
39a2b1035a 优化生产线驾驶舱,将功能刀具组装中心的按键改成组装单的跳转按键 2024-02-18 10:24:21 +08:00
jinling.yang
b370e34dca Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-17 16:38:03 +08:00
jinling.yang
a6b5a823b8 Merge branch 'feature/产品相关岗位权限的修复' into develop 2024-02-17 16:37:33 +08:00
杨金灵
24bcec8646 Accept Merge Request #805: (feature/产品相关岗位权限的修复 -> develop)
Merge Request: 产品相关岗位权限的修复

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/805?initial=true
2024-02-17 16:37:11 +08:00
jinling.yang
5a74c346a7 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/产品相关岗位权限的修复 2024-02-17 16:35:16 +08:00
jinling.yang
1c64ee9b90 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-17 16:34:50 +08:00
jinling.yang
c867b3c7bc 产品相关岗位权限的修复 2024-02-17 16:34:32 +08:00
mgw
a4413af2f3 优化排程单与制造订单生产线状态联动的问题 2024-02-17 15:35:40 +08:00
禹翔辉
f726bbaef6 Accept Merge Request #804: (feature/刀具物料扫码录入验证 -> develop)
Merge Request: 添加功能刀具组装时刀具物料扫码录入验证

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/804?initial=true
2024-02-05 14:13:37 +08:00
yuxianghui
53ce27d623 Merge branch 'feature/功能刀具组装扫录入数据功能优化' into feature/刀具物料扫码录入验证 2024-02-05 14:11:14 +08:00
yuxianghui
b88e4af4e2 优化刀具物料扫码录入验证 2024-02-05 14:09:06 +08:00
jinling.yang
a12c81e60d Merge branch 'feature/修复同步刀具标准库相关接口' into develop 2024-02-05 11:05:56 +08:00
杨金灵
13415dd771 Accept Merge Request #803: (feature/修复同步刀具标准库相关接口 -> develop)
Merge Request: 修复同步刀具标准库相关接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/803
2024-02-05 11:05:33 +08:00
jinling.yang
7ea6a78fbd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复同步刀具标准库相关接口 2024-02-05 10:59:20 +08:00
jinling.yang
d5aaa70013 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-05 10:59:03 +08:00
jinling.yang
f05d0461c3 1.修复同步刀具标准库相关接口2.修复产品存档权限问题 2024-02-05 10:57:57 +08:00
yuxianghui
b525a45107 优化功能刀具组装的刀具物料验证 2024-02-04 17:30:26 +08:00
马广威
6ab0bf7b5d Accept Merge Request #802: (feature/制造代码优化 -> develop)
Merge Request: 控制oee对计划人员只读

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/802?initial=true
2024-02-04 17:25:29 +08:00
jinling.yang
f1335e8252 Merge branch 'feature/修复产品权限问题' into develop 2024-02-04 16:57:44 +08:00
mgw
f0c8a82b43 控制oee对计划人员只读 2024-02-04 16:57:39 +08:00
杨金灵
f435fe3577 Accept Merge Request #801: (feature/修复产品权限问题 -> develop)
Merge Request: 修复产品权限问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/801?initial=true
2024-02-04 16:56:05 +08:00
jinling.yang
9bae3a4e5f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复产品权限问题 2024-02-04 16:53:28 +08:00
jinling.yang
e7808216ca Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-04 16:53:12 +08:00
jinling.yang
e48c5e39ac 修复产品页面部分一对多字段的访问权限 2024-02-04 16:52:57 +08:00
龚启豪
0d2e043449 Accept Merge Request #799: (feature/修改机床参数bug -> develop)
Merge Request: 处理权限相关缺陷

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/799
2024-02-04 16:07:25 +08:00
马广威
f2a822aeda Accept Merge Request #800: (feature/制造代码优化 -> develop)
Merge Request: 机企猫 隐藏项目模块修改接入(可隐藏导出、新建等项目)

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/800?initial=true
2024-02-04 16:06:27 +08:00
qihao.gong@jikimo.com
6cdc547da5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-02-04 15:57:16 +08:00
qihao.gong@jikimo.com
c11dc4f9c4 修改权限相关缺陷 2024-02-04 15:56:53 +08:00
mgw
f6c121771f 机企猫 隐藏项目模块修改接入(可隐藏导出、新建等项目) 2024-02-04 15:32:25 +08:00
jinling.yang
db77b0b3ac Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-04 14:26:23 +08:00
jinling.yang
9565927ba6 Merge branch 'feature/修改客户编辑权限' into develop 2024-02-04 14:25:33 +08:00
杨金灵
18d8212c3f Accept Merge Request #798: (feature/修改客户编辑权限 -> develop)
Merge Request: 修改客户编辑权限

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/798?initial=true
2024-02-04 14:25:17 +08:00
jinling.yang
1ca5817379 客户页面优化编辑 2024-02-04 14:22:53 +08:00
jinling.yang
0185a3bc2b 修复客户页面除销售员和采购员字段可编辑,其余不可编辑 2024-02-02 17:27:08 +08:00
jinling.yang
0c4407ce8e Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-02 15:59:13 +08:00
jinling.yang
f11c88cf1b Merge branch 'feature/修复工件配送及权限' into develop 2024-02-02 15:59:00 +08:00
杨金灵
7e025e7ca1 Accept Merge Request #797: (feature/修复工件配送及权限 -> develop)
Merge Request: 修复工件配送及权限

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/797?initial=true
2024-02-02 15:58:45 +08:00
jinling.yang
4da7114655 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复工件配送及权限 2024-02-02 15:52:35 +08:00
jinling.yang
e3bac55346 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-02 15:52:19 +08:00
jinling.yang
8c52c42074 1.修复来自业务平台的自动生产的采购单状态
2.修复所有同步cloud的数据
2024-02-02 15:52:06 +08:00
jinling.yang
ab9fcf97e0 1.修复工件配送扫描工件(坯料)时,同运工件显示的是坯料对应的制造订单号,修改配送时长字段类型及对应的时长方法,修复工件装夹岗不能修改配送工件
2.修复产品中计划总监岗和调度总监岗不能访问切削速度的权限
2024-02-01 17:37:41 +08:00
禹翔辉
f270f683de Accept Merge Request #796: (feature/功能刀具组装扫录入数据功能优化 -> develop)
Merge Request: 添加功能刀具组装时扫描录入刀具物料时进行物料是否已入库和是否已经使用的判断

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/796?initial=true
2024-02-01 17:11:10 +08:00
yuxianghui
8e806225d0 添加功能刀具组装时扫描录入刀具物料时进行物料是否已入库和是否已经使用的判断 2024-02-01 17:07:19 +08:00
jinling.yang
56847c7a22 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-02-01 11:44:57 +08:00
jinling.yang
9973370fd6 Merge branch 'feature/优化工件配送列表' into develop 2024-02-01 11:44:39 +08:00
杨金灵
3cb71a8017 Accept Merge Request #795: (feature/优化工件配送列表 -> develop)
Merge Request: 优化工件配送列表

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/795
2024-02-01 11:44:16 +08:00
jinling.yang
cc72ddfad7 释放注释代码 2024-02-01 11:35:08 +08:00
jinling.yang
527ab396ee 1.新增工件配送向导2.修复采购审核按钮不可见3.配置中新增agv路径字段4.优化工单上按钮显示条件 2024-01-30 17:40:05 +08:00
jinling.yang
1c90c97b92 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-30 11:55:38 +08:00
jinling.yang
d70d3a9254 Merge branch 'feature/修改admin的访问权限' into develop 2024-01-30 11:55:03 +08:00
杨金灵
2d4ae18e64 Accept Merge Request #794: (feature/修改admin的访问权限 -> develop)
Merge Request: 修改访问权限和采购页面

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/794?initial=true
2024-01-30 11:54:21 +08:00
jinling.yang
92850fe34f 采购页面新增审核状态字段 2024-01-30 11:52:29 +08:00
jinling.yang
17bbe1414b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改admin的访问权限 2024-01-30 11:43:56 +08:00
jinling.yang
7f56a75722 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-30 11:43:39 +08:00
jinling.yang
51a9b55782 修改admin在同步模型的访问权限 2024-01-30 11:43:18 +08:00
马广威
addc68ed5a Accept Merge Request #793: (feature/制造代码优化 -> develop)
Merge Request: 优化货位颜色及启用货位

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/793
2024-01-30 09:49:25 +08:00
mgw
5e9d541239 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-01-30 09:48:38 +08:00
mgw
642a93c449 优化货位颜色及启用货位 2024-01-30 09:48:14 +08:00
jinling.yang
ff7151399f Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-30 09:45:28 +08:00
jinling.yang
a67f45f9d5 Merge branch 'feature/新增工件装夹预调工单任务' into develop 2024-01-30 09:45:07 +08:00
杨金灵
98ef86866a Accept Merge Request #791: (feature/新增工件装夹预调工单任务 -> develop)
Merge Request: 新增工件装夹预调工单任务

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/791
2024-01-30 09:44:40 +08:00
马广威
f2c70fa167 Accept Merge Request #792: (feature/制造代码优化 -> develop)
Merge Request: 修复货位问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/792?initial=true
2024-01-30 09:13:12 +08:00
mgw
1c0187d55b Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-01-30 09:12:27 +08:00
mgw
04244dd17a 修复货位问题 2024-01-30 09:12:02 +08:00
jinling.yang
da63b0b7ff Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增工件装夹预调工单任务 2024-01-29 19:45:46 +08:00
jinling.yang
a088ee9ed5 1.制造模块内配置下的所有模型增加管理员(admin)权限
2.工单上的工件配送优化验证及对应的页面上新增工件配送按钮
2024-01-29 19:43:57 +08:00
禹翔辉
ee78dda3a9 Accept Merge Request #790: (feature/功能刀具添加fid -> develop)
Merge Request: 功能刀具模块的功能刀具添加fid字段,隐藏序列号字段

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/790
2024-01-29 17:28:06 +08:00
yuxianghui
e13bd0dc61 修改功能刀具预警的rfid关联字段 2024-01-29 17:25:34 +08:00
yuxianghui
9f57ad6aaf 将fid改为rfid 2024-01-29 17:23:17 +08:00
yuxianghui
8c4996b7c2 功能刀具模块的功能刀具添加fid字段,隐藏序列号字段 2024-01-29 17:05:56 +08:00
jinling.yang
cf2aaa38fe 1.修复材料型号同步报验证问题2.优化工单的工件派送3.计划里新增生产线的优化 2024-01-26 17:46:53 +08:00
马广威
ac900dd3f0 Accept Merge Request #789: (feature/制造代码优化 -> develop)
Merge Request: 修复数据同步问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/789?initial=true
2024-01-26 15:09:07 +08:00
mgw
0e762f9cbc Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-01-26 15:08:29 +08:00
mgw
4ee4b28389 修复数据同步问题 2024-01-26 14:18:10 +08:00
龚启豪
d36acedaa3 Accept Merge Request #788: (feature/修改机床参数bug -> develop)
Merge Request: 增加设备运行日志,agv运行日志

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/788
2024-01-26 11:31:19 +08:00
龚启豪
1311d5be1e Merge branch refs/heads/develop into refs/heads/feature/修改机床参数bug 2024-01-26 11:28:51 +08:00
qihao.gong@jikimo.com
207cd83d3c 取消OCC注释 2024-01-26 11:27:12 +08:00
jinling.yang
37161e2e20 1.修改工单的托盘序列号,托盘名称,托盘品牌,托盘类型,托盘型号字段类型,且页面对应字段改为只读
2.装夹预调工单新增扫条形码,扫码时对该工单进行自动开始并将条码里对应的托盘产品信息回填到托盘序列号,托盘名称,托盘品牌,托盘类型,托盘型号字段上,点击完成时对前置三元定位检测参数进行验证
3.研究打印序列号(多个)
2024-01-25 17:51:57 +08:00
qihao.gong@jikimo.com
6461e3a423 修改货架货位看板颜色 2024-01-25 17:36:34 +08:00
黄焱
76393d438b Accept Merge Request #787: (feature/前端样式修改 -> develop)
Merge Request: 修改货架货位空闲颜色

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/787?initial=true
2024-01-25 10:09:48 +08:00
黄焱
50ced99785 修改货架货位空闲颜色 2024-01-25 10:03:53 +08:00
jinling.yang
8e3a316200 采购入库时,新增打印序列号方法 2024-01-24 17:30:59 +08:00
qihao.gong@jikimo.com
fc7c66c615 AGV增加运行日志
设备oee增加运行日志
2024-01-24 17:29:42 +08:00
jinling.yang
2daeb01c4d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增工件装夹预调工单任务 2024-01-24 16:04:53 +08:00
杨金灵
1818e97289 Accept Merge Request #786: (feature/修复平台派过来的销售订单缺少【取消】按钮 -> develop)
Merge Request: 修复采购和销售按钮显示问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/786?initial=true
2024-01-24 16:04:13 +08:00
jinling.yang
e661297b5d 修复采购总监审核菜单单-审核通过后没有反应-订单状态没有变 2024-01-24 15:59:58 +08:00
jinling.yang
926caeca97 工件配送文字修改 2024-01-24 14:54:07 +08:00
jinling.yang
403ba64e50 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增工件装夹预调工单任务
# Conflicts:
#	sf_manufacturing/views/mrp_production_addional_change.xml
2024-01-24 14:39:47 +08:00
jinling.yang
cdc3c52784 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-24 14:24:42 +08:00
马广威
7000b66683 Accept Merge Request #785: (feature/制造代码优化 -> develop)
Merge Request: 调整视图显隐控制逻辑

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/785?initial=true
2024-01-24 14:24:35 +08:00
jinling.yang
82f54b5d83 制造订单页面新增生产线和计划开始加工时间字段 2024-01-24 14:24:27 +08:00
mgw
1af08763ea 调整视图显隐控制逻辑 2024-01-24 14:24:01 +08:00
jinling.yang
8f379a2635 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增工件装夹预调工单任务
# Conflicts:
#	sf_manufacturing/models/mrp_workorder.py
2024-01-23 17:42:38 +08:00
马广威
96b0773c00 Accept Merge Request #784: (feature/制造代码优化 -> develop)
Merge Request: 物流相关增量开发,修改一些原生按钮,修改一些翻译。增加功能:当为非“自提”单时,必须进行物流下单才能进行出库操作。增加对字段的显隐控制

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/784
2024-01-23 17:32:53 +08:00
mgw
79f8cd21a9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-01-23 17:31:04 +08:00
mgw
5c129331e0 增加功能:当为非“自提”单时,必须进行物流下单才能进行出库操作。增加对字段的显隐控制 2024-01-23 16:13:53 +08:00
jinling.yang
cddb025e98 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-23 15:33:37 +08:00
jinling.yang
1e2272c13a 新增工件配送对象 2024-01-23 15:33:17 +08:00
禹翔辉
d955832bd8 Accept Merge Request #783: (feature/新增工件配送模型 -> develop)
Merge Request: 新增工件配送模型

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/783?initial=true
2024-01-23 15:32:18 +08:00
yuxianghui
4a52327acd Merge remote-tracking branch 'origin/feature/关闭接口的调用' into feature/新增工件配送模型 2024-01-23 15:30:10 +08:00
yuxianghui
136d0f5156 新增工件配送模型及其tree视图,search视图,添加自动计算配送时长功能; 2024-01-23 15:29:07 +08:00
mgw
0254387c03 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	sf_sale/models/sale_order.py
2024-01-23 10:36:21 +08:00
mgw
90f8c4143e 物流相关增量开发,修改一些原生按钮,修改一些翻译 2024-01-23 10:34:49 +08:00
qihao.gong@jikimo.com
0ef13504e7 修改货架货位关联移动历史调拨单关联 2024-01-22 17:33:40 +08:00
禹翔辉
40bf41c93d Accept Merge Request #782: (feature/关闭接口的调用 -> develop)
Merge Request: 注释接口的调用方法

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/782
2024-01-22 17:16:26 +08:00
yuxianghui
3f8aded61c Merge branch 'feature/CAM用刀优化及添加接口' into feature/关闭接口的调用 2024-01-22 17:14:19 +08:00
yuxianghui
f5c555ec86 注释新增接口的调用 2024-01-22 17:11:45 +08:00
禹翔辉
3e7f145255 Accept Merge Request #781: (feature/CAM用刀优化及添加接口 -> develop)
Merge Request: 1、添加机床刀位字段

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/781?initial=true
2024-01-22 15:55:40 +08:00
yuxianghui
2a5a9de3e3 1、添加机床刀位字段 2024-01-22 15:54:30 +08:00
jinling.yang
d2bca2ff51 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-22 15:45:19 +08:00
jinling.yang
f9d6a13d33 Merge branch 'feature/新增机台日计划,工件预调(前置三元检测),NC程序下载接口' into develop 2024-01-22 15:45:00 +08:00
杨金灵
adcd2c39fc Accept Merge Request #779: (feature/新增机台日计划,工件预调(前置三元检测),NC程序下载接口 -> develop)
Merge Request: 新增机台日计划,工件预调(前置三元检测),NC程序下载接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/779
2024-01-22 15:41:49 +08:00
jinling.yang
b37d547359 http验证代码还原 2024-01-22 15:41:20 +08:00
马广威
72f5496905 Accept Merge Request #780: (feature/制造代码优化 -> develop)
Merge Request: 增加刀具管理权限控制,刀具组权限控制,隐藏工单上原生按钮,修复只读权限后修改记录无权限问题等

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/780?initial=true
2024-01-22 15:40:23 +08:00
jinling.yang
daa7c467f9 注释代码还原 2024-01-22 15:37:06 +08:00
jinling.yang
12c6959ba4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增机台日计划,工件预调(前置三元检测),NC程序下载接口
# Conflicts:
#	sf_manufacturing/controllers/controllers.py
2024-01-22 15:35:13 +08:00
龚启豪
81fe1cf486 Accept Merge Request #778: (feature/修改机床参数bug -> develop)
Merge Request: 修改视图bug

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/778?initial=true
2024-01-22 14:49:20 +08:00
禹翔辉
b5a8379d52 Accept Merge Request #777: (feature/CAM用刀优化及添加接口 -> develop)
Merge Request: CAM用刀优化,新增接口

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/777
2024-01-22 14:48:57 +08:00
qihao.gong@jikimo.com
92fc988951 修改视图bug 2024-01-22 14:43:58 +08:00
yuxianghui
d03813db40 Merge remote-tracking branch 'origin/feature/接口及CAM用刀' into feature/CAM用刀优化及添加接口 2024-01-22 14:42:45 +08:00
龚启豪
1b3b80f735 Accept Merge Request #776: (feature/修改机床参数bug -> develop)
Merge Request: 合并后置三元和CNC工单

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/776
2024-01-22 14:39:06 +08:00
qihao.gong@jikimo.com
4efb6dc6d0 Merge branch 'feature/修改机床参数bug' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_warehouse/views/view.xml
2024-01-22 14:37:59 +08:00
yuxianghui
f58420ac46 Merge remote-tracking branch 'origin/feature/新增中控对接接口' into feature/接口及CAM用刀
# Conflicts:
#	sf_tool_management/models/base.py
2024-01-22 14:37:57 +08:00
qihao.gong@jikimo.com
7b2b15d601 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_warehouse/views/view.xml
2024-01-22 14:37:25 +08:00
qihao.gong@jikimo.com
b9ba29d276 取消OCC注释 2024-01-22 14:36:36 +08:00
龚启豪
e0baa2574a Merge branch refs/heads/develop into refs/heads/feature/修改机床参数bug 2024-01-22 14:33:26 +08:00
yuxianghui
fced85f530 1、删除无语字段 2024-01-22 14:32:33 +08:00
qihao.gong@jikimo.com
e80056938f 修改库存配置的审核按钮 2024-01-22 14:30:53 +08:00
yuxianghui
b5c7be8de0 1、新增机床刀具组接口,在刀具组新建和更新时调用接口;2、新增零件特采接口,在质量检测审核之后调用接口; 2024-01-19 17:26:45 +08:00
jinling.yang
b0104e7b93 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/新增机台日计划,工件预调(前置三元检测),NC程序下载接口 2024-01-19 17:18:59 +08:00
杨金灵
bd9b52e6ce Accept Merge Request #775: (feature/修复平台派单采购单无买家问题 -> develop)
Merge Request: 修复平台派单采购单无买家问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/775
2024-01-19 17:17:15 +08:00
jinling.yang
af348c4d8f 1.修复平台派单采购单无买家问题2.还原获取CNC程序代码 2024-01-19 17:11:20 +08:00
jinling.yang
9e65f947f9 Merge branch 'feature/修复缺陷' into develop 2024-01-19 16:03:44 +08:00
jinling.yang
3226942ed3 1.修复产品类别和计量单位去掉审核状态字段2.优化bfm派单至sf的销售订单流程3.工序增加编码字段 2024-01-19 15:45:15 +08:00
mgw
2dfd3c9128 增加刀具管理权限控制,刀具组权限控制,隐藏工单上原生按钮,修复只读权限后修改记录无权限问题等 2024-01-19 11:49:57 +08:00
jinling.yang
eb117aef86 1.修复采购总监审核采购单审核不通过后-还显示【审核】按钮2.新增采购总监审核采购单审核不通过后-还显示【审核】按钮3.产品详情界面的删除按钮要隐藏 2024-01-18 17:39:22 +08:00
yuxianghui
3575f0c5c9 1、工单的cnc加工模型添加功能刀具类型字段;2、添加根据刀具类型和刀具名称检索现有功能刀具是否满足需求,如果不满足则创建CAM工单程序用刀计划记录的功能记录;3、添加MES装刀指令接口,根据cnc加工所需的刀具类型和刀具名称检索现有机床内功能刀具是否满足需求,如果不满足则发送MES装刀指令;4、添加刀具组接口,新增功能刀具时传送功能刀具名称、编码、刀具组。 2024-01-18 17:33:54 +08:00
qihao.gong@jikimo.com
aa810bbda2 零件质检接口 修改coding缺陷 2024-01-18 17:26:31 +08:00
jinling.yang
2c12f5b9b6 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-18 14:26:51 +08:00
马广威
72b89288f2 Accept Merge Request #773: (feature/制造代码优化 -> develop)
Merge Request: 增加排程动作对销售订单状态的修改,对除能操作的用户外隐藏部分原生按钮

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/773
2024-01-18 09:19:34 +08:00
mgw
cffda26ed0 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-01-18 09:14:25 +08:00
mgw
eefabbd5b3 添加列表框,但暂时不启用 2024-01-18 09:13:41 +08:00
mgw
6bb46186b1 取消部分审核按钮 2024-01-17 17:56:15 +08:00
mgw
4ab1409b13 修改制造模块,使得原生操作按钮只对制造用户可见 2024-01-17 17:44:10 +08:00
jinling.yang
bba2c1d839 优化自动化传递工单号获取工单信息接口 2024-01-17 17:33:13 +08:00
yuxianghui
d9115333bf 1、优化CAM工单程序用刀计划模型,新增大量字段,优化tree视图及form视图字段及其布局;2、添加CAM换刀申请功能和撤销功能及其按钮;3、添加根据刀具类型和刀具名称检索现有功能刀具是否满足需求,如果不满足则创建CAM工单程序用刀计划记录的功能接口(进行中)。 2024-01-17 17:30:16 +08:00
qihao.gong@jikimo.com
2b7243f69c 合并cnc加工和后置检测工单,新增工单开始结束接口 2024-01-17 17:26:24 +08:00
mgw
a3c8082906 库存处隐藏退回按钮 2024-01-17 14:45:34 +08:00
mgw
9bab450af1 对除库存用户外,隐藏操作按钮 2024-01-17 09:56:40 +08:00
yuxianghui
7520d71adb 1、优化机床模型的标准刀库对象,删除了制造模块中机床刀位模型大部分字段,在刀具管理模块中通过继承机床刀位模型新增字段,同时前端机床from视图中的刀位的tree视图新增大量字段;2、刀具管理模块新增controllers模块文件,新增机床当前刀库实时信息接口。 2024-01-16 17:30:59 +08:00
jinling.yang
4f0c7ad274 1.新增机台日计划接口
2.新工件预调(前置三元检测)接口
3.,新NC程序下载接口接口
2024-01-16 17:25:25 +08:00
jinling.yang
d6e36eea99 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-16 14:39:01 +08:00
qihao.gong@jikimo.com
0ea69f41e2 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-01-16 14:30:26 +08:00
jinling.yang
de142bd371 Merge branch 'feature/新增与中控系统对接的接口' into develop 2024-01-16 14:23:10 +08:00
杨金灵
cb14bb4ea8 Accept Merge Request #771: (feature/新增与中控系统对接的接口 -> develop)
Merge Request: 新增自动化传递工单号获取工单信息接口

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/771
2024-01-16 14:22:42 +08:00
jinling.yang
22176eda69 接口优化 2024-01-16 11:00:01 +08:00
qihao.gong@jikimo.com
bb75b73247 新增设备OEE菜单 以及对象 2024-01-15 17:45:43 +08:00
jinling.yang
1b490951b1 1.新增自动化传递工单号获取工单信息接口 2024-01-15 17:31:15 +08:00
mgw
f19af2a33f 增加排程动作对销售订单状态的修改 2024-01-12 16:40:29 +08:00
杨金灵
d0e92a649a Accept Merge Request #770: (feature/修复产品bug -> develop)
Merge Request: 修复产品问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/770
2024-01-12 16:23:05 +08:00
jinling.yang
687af76372 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复产品bug 2024-01-12 16:19:16 +08:00
jinling.yang
3acb32a5c2 修复产品模版采购选未过滤供应商及产品Tree视图列表可删除问题 2024-01-12 16:18:57 +08:00
黄焱
8d7dcda582 Accept Merge Request #769: (feature/前端样式修改 -> develop)
Merge Request: 设置modal弹窗样式

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/769?initial=true
2024-01-11 15:51:04 +08:00
黄焱
fc2c1e06d9 设置modal弹窗样式 2024-01-11 15:47:39 +08:00
禹翔辉
6c57df8270 Accept Merge Request #768: (feature/夹具型号同步优化 -> develop)
Merge Request: 功能刀具优化,夹具型号同步功能优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/768
2024-01-11 14:14:34 +08:00
yuxianghui
d042de9e84 Merge remote-tracking branch 'origin/feature/功能刀具新增字段' into feature/夹具型号同步优化 2024-01-11 14:11:57 +08:00
yuxianghui
bc6303d1af 1、删除夹具xml中的无用代码;2、优化夹具物料同步功能 2024-01-11 14:10:49 +08:00
yuxianghui
077ce6d37f 1、删除夹具型号自动更新code值的方法;2、优化功能刀具安全库存创建功能刀具组装单方法;3、优化功能刀具列表中的能力数据的图文展示数据; 2024-01-10 17:42:59 +08:00
杨金灵
0cf3e6e7d6 Accept Merge Request #767: (feature/修复供应商重复验证 -> develop)
Merge Request: 修复供应商重复验证

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/767
2024-01-10 17:18:40 +08:00
jinling.yang
027537080d Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复供应商重复验证 2024-01-10 16:43:58 +08:00
jinling.yang
95d29bb20d 修复供应商名称,税,邮箱重复验证问题 2024-01-10 16:43:28 +08:00
龚启豪
461bc1f86e Accept Merge Request #766: (feature/修改机床参数bug -> develop)
Merge Request: 处理CNC文件下发失败的bug

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/766
2024-01-10 15:50:57 +08:00
qihao.gong@jikimo.com
1bc09a4424 制造订单 2024-01-10 15:50:09 +08:00
qihao.gong@jikimo.com
e6866552bc 处理CNC文件下发失败的bug 2024-01-10 15:48:03 +08:00
jinling.yang
fd7b0630fe Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-10 15:28:08 +08:00
jinling.yang
6e6575eadb Merge branch 'feature/修复采购库存销售模块问题' into develop 2024-01-10 15:27:19 +08:00
杨金灵
cc6ec38bfa Accept Merge Request #765: (feature/修复采购库存销售模块问题 -> develop)
Merge Request: 修复采购库存销售模块问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/765?initial=true
2024-01-10 15:27:01 +08:00
jinling.yang
8eefbeba54 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复采购库存销售模块问题 2024-01-10 15:25:19 +08:00
jinling.yang
94a24bb469 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-10 15:24:55 +08:00
jinling.yang
82c0269761 1.材料型号新增获取方式和供应商的输入验证2.每齿走刀量去掉切削速度字段 2024-01-10 15:24:31 +08:00
马广威
631f72bfe9 Accept Merge Request #764: (feature/制造代码优化 -> develop)
Merge Request: 修复排程时,工单时间未生成的问题

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/764?initial=true
2024-01-10 12:20:49 +08:00
mgw
b5147678b1 修复排程时,工单时间未生成的问题 2024-01-10 12:20:03 +08:00
杨金灵
9047e54afa Accept Merge Request #763: (feature/修复采购库存销售模块问题 -> develop)
Merge Request: 修复采购库存销售模块问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/763?initial=true
2024-01-09 17:34:53 +08:00
jinling.yang
8a15ce12d9 修复销售总监创建报价单时在其他信息中不能选择其他销售人员 2024-01-09 17:05:35 +08:00
jinling.yang
4c3e7e40cb Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复采购库存销售模块问题
# Conflicts:
#	sf_base/models/tool_base_new.py
2024-01-09 16:55:19 +08:00
jinling.yang
128dd60a89 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-09 16:54:33 +08:00
jinling.yang
f82cb462cf 1.去掉警告2.销售订单详情显示进度状态字段3.修复采购权限组没有存库模块包括以内的相关菜单的访问权限 2024-01-09 16:54:16 +08:00
马广威
7f6025afc0 Accept Merge Request #762: (feature/制造代码优化 -> develop)
Merge Request: 修改一些访问权限

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/762?initial=true
2024-01-09 16:10:24 +08:00
mgw
9bbe3f28a5 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	sf_manufacturing/security/ir.model.access.csv
2024-01-09 16:08:18 +08:00
mgw
3f2a13448d 修改一些访问权限 2024-01-09 16:02:41 +08:00
马广威
e11976bb61 Accept Merge Request #761: (feature/制造代码优化 -> develop)
Merge Request: 修复批量排程缺少工具包的问题,修改标签翻译

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/761?initial=true
2024-01-09 14:52:18 +08:00
龚启豪
00541c1c8f Accept Merge Request #760: (feature/修改机床参数bug -> develop)
Merge Request: 处理装夹和前置检测工单合并,以及储存完工产品就绪状态

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/760?initial=true
2024-01-09 14:50:20 +08:00
qihao.gong@jikimo.com
cac7815369 处理引入缺失报错 2024-01-09 14:47:06 +08:00
qihao.gong@jikimo.com
c336230287 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-01-09 14:17:50 +08:00
qihao.gong@jikimo.com
1a896a730e 拉取最新代码 2024-01-09 14:17:38 +08:00
jinling.yang
eaad8337d4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-09 14:16:41 +08:00
jinling.yang
b4ee93bc5a Merge branch 'feature/修复采购按钮显示及产品字段问题' into develop 2024-01-09 12:22:37 +08:00
杨金灵
3919290985 Accept Merge Request #759: (feature/修复采购按钮显示及产品字段问题 -> develop)
Merge Request: 修复采购按钮显示及产品字段问题

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/759?initial=true
2024-01-09 12:22:13 +08:00
jinling.yang
ec3f00f4a3 去掉待删除字段 2024-01-09 12:05:14 +08:00
jinling.yang
f15ac2c7fd Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-09 12:03:15 +08:00
jinling.yang
cc9e6fa3d1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复采购按钮显示及产品字段问题 2024-01-09 12:01:47 +08:00
jinling.yang
3c3ffa1ebc 1.修复采购订单确认按钮显示问题2.修复涉及适合冷却方式字段的相关模型内该字段的过滤查询条件3.修改产品的适合刀柄型号字段类型4.修改销售订单的输入验证 2024-01-09 12:01:20 +08:00
禹翔辉
776515a861 Accept Merge Request #758: (feature/功能刀具新增字段 -> develop)
Merge Request: 1、删除产品中和夹具相关的无用代码;2、添加夹具型号和联装类型必填判断条件

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/758
2024-01-09 11:18:04 +08:00
yuxianghui
8332c5d141 1、删除产品中和夹具相关的无用代码;2、添加夹具型号和联装类型必填判断条件 2024-01-09 11:15:48 +08:00
qihao.gong@jikimo.com
e6c77e7b35 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_manufacturing/models/product_template.py
2024-01-09 10:38:40 +08:00
qihao.gong@jikimo.com
1fab9ad253 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug
# Conflicts:
#	sf_manufacturing/models/product_template.py
2024-01-09 10:36:13 +08:00
禹翔辉
e4de4f2af0 Accept Merge Request #757: (feature/功能刀具新增字段 -> develop)
Merge Request: 功能刀具添加字段,夹具物料优化

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/757
2024-01-09 10:35:52 +08:00
yuxianghui
afdfde245a Merge remote-tracking branch 'origin/feature/产品添加夹具型号信息' into feature/功能刀具新增字段
# Conflicts:
#	sf_manufacturing/models/product_template.py
2024-01-09 10:33:16 +08:00
qihao.gong@jikimo.com
86366cc6cb 修改工单完成后,自动完成制造订单,完工产品就绪状态 2024-01-09 10:31:43 +08:00
yuxianghui
4e6a66c681 1、删除功能刀具组装单的加工工厂字段 2024-01-09 10:30:18 +08:00
mgw
f5805ce6ae 修改标签翻译 2024-01-09 10:11:13 +08:00
jinling.yang
8239e53a76 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-09 09:45:40 +08:00
jinling.yang
bbaede2166 Merge branch 'feature/修复销售和采购' into develop 2024-01-09 09:45:24 +08:00
杨金灵
6e68611f6e Accept Merge Request #756: (feature/修复销售和采购 -> develop)
Merge Request: 修复采购和销售

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/756?initial=true
2024-01-09 09:44:53 +08:00
jinling.yang
31dd710f6a 修改确认按钮名称 2024-01-09 09:40:56 +08:00
jinling.yang
8b2b58dfa1 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复销售和采购 2024-01-09 09:32:30 +08:00
jinling.yang
84f62ebe1c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-09 09:32:10 +08:00
jinling.yang
ce2f8714d0 修复bug 2024-01-09 09:31:44 +08:00
mgw
931b78ee03 修复批量排程缺少工具包的问题 2024-01-08 23:24:42 +08:00
马广威
61554bf3e5 Accept Merge Request #755: (feature/制造代码优化 -> develop)
Merge Request: 去掉tree视图的schedule_state字段

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/755?initial=true
2024-01-08 19:52:10 +08:00
mgw
0b070de19c 去掉tree视图的schedule_state字段 2024-01-08 19:34:24 +08:00
马广威
7077b8a297 Accept Merge Request #754: (feature/制造代码优化 -> develop)
Merge Request: tree视图中的"批量排程"按钮优化为向导的实现方式,修改制造订单的状态字段以及与排程单的交互逻辑,优化一些翻译

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/754
2024-01-08 19:06:45 +08:00
mgw
e8995acc87 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2024-01-08 19:03:34 +08:00
mgw
fbaa81fe7a 修改制造订单的状态字段以及与排程单的交互逻辑,优化一些翻译 2024-01-08 19:02:59 +08:00
qihao.gong@jikimo.com
3742a3b163 修改自动完成制造订单得方法,完工产品捡取需变成就绪状态 2024-01-08 17:51:16 +08:00
yuxianghui
498e1c12af 1、所有功能刀具相关模型添加刀具组字段对象,并且功能刀具名称根据规则自动生成;2、功能刀具组装时按规则自动生成功能刀具编码; 2024-01-08 17:42:34 +08:00
qihao.gong@jikimo.com
317b5d4ced Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-01-08 16:39:15 +08:00
黄焱
3c65b3e3df Accept Merge Request #753: (feature/前端样式修改 -> develop)
Merge Request: 修改sf表格样式

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/753?initial=true
2024-01-08 16:33:13 +08:00
黄焱
4dde30f9f9 修改sf表格样式 2024-01-08 16:28:49 +08:00
qihao.gong@jikimo.com
631d59f95e 处理本地报错 2024-01-08 16:18:15 +08:00
jinling.yang
8928d497ff Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop 2024-01-08 16:12:31 +08:00
qihao.gong@jikimo.com
99b1d5f534 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-01-08 15:56:44 +08:00
jinling.yang
61d13b90dc Merge branch 'feature/优化刀具基本参数同步' into develop 2024-01-08 15:56:22 +08:00
杨金灵
31bb7f0c97 Accept Merge Request #752: (feature/优化刀具基本参数同步 -> develop)
Merge Request: 优化刀具基本参数同步及刀具产品模版

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/752
2024-01-08 15:56:06 +08:00
jinling.yang
d980a036cd 还原代码 2024-01-08 15:52:33 +08:00
jinling.yang
f8c6c766cb 优化刀具模版和刀具标准库 2024-01-08 15:44:16 +08:00
qihao.gong@jikimo.com
41fe63d948 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-01-08 15:30:05 +08:00
qihao.gong@jikimo.com
ce53afe1b0 修改权限组访问权限 2024-01-08 15:29:48 +08:00
mgw
bc4a4df53e tree视图中的"批量排程"按钮优化为向导的实现方式 2024-01-08 14:52:29 +08:00
jinling.yang
3f448bc6da Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化刀具基本参数同步
# Conflicts:
#	sf_dlm_management/views/product_template_management_view.xml
2024-01-08 10:08:50 +08:00
yuxianghui
d1c10f56d1 1、sf_base新增刀具组模型;2、所以功能刀具相关模型添加刀具组对象字段(进行中); 2024-01-05 17:33:06 +08:00
jinling.yang
edf4699e9e 1.新增每日同步切削速度和每齿走刀量及切削宽度和深度的接口
2.优化产品模版
2024-01-05 17:30:13 +08:00
禹翔辉
ad025eb6da Accept Merge Request #751: (feature/产品添加夹具型号信息 -> develop)
Merge Request: 夹具物料同步,产品添加夹具物料信息;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/751?initial=true
2024-01-05 14:48:11 +08:00
yuxianghui
e5bf0d8205 Merge remote-tracking branch 'origin/feature/夹具型号同步' into feature/产品添加夹具型号信息 2024-01-05 14:43:48 +08:00
yuxianghui
831a91c925 1、产品新添七种夹具物料前端字段完成布局展示;2、产品选取夹具型号规格后自动带入规格数据到产品夹具物料参数; 2024-01-05 14:42:38 +08:00
黄焱
bc3325bd3b Accept Merge Request #750: (feature/前端样式修改 -> develop)
Merge Request: 修改表格,等样式

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/750?initial=true
2024-01-05 14:13:52 +08:00
黄焱
e29883d0de 修改表格,等样式 2024-01-05 14:10:43 +08:00
龚启豪
5b9b700372 Accept Merge Request #749: (feature/修改机床参数bug -> develop)
Merge Request: 修改获取cnc从工单到制造订单

Created By: @龚启豪
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/749
2024-01-05 14:03:31 +08:00
qihao.gong@jikimo.com
c81dc99aef 修改获取CNC程序从工单到制造订单 2024-01-05 11:23:27 +08:00
马广威
c0a3a550d7 Accept Merge Request #748: (feature/制造代码优化 -> develop)
Merge Request: 代码优化,权限问题修复

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/748
2024-01-05 10:29:32 +08:00
mgw
0c67b2b659 修复设备清单无法被计划人员看到的问题 2024-01-05 10:22:48 +08:00
mgw
974b112b3a 优化设备、库存权限相关问题 2024-01-05 08:53:39 +08:00
yuxianghui
57f5d138e8 1、修改夹装单元数修改成装夹单元数;2、重构产品的夹具物料信息(进行中);3、完善夹具物料的同步功能; 2024-01-04 17:44:22 +08:00
mgw
2b117e9192 产品序列号权限优化 2024-01-04 11:39:38 +08:00
马广威
688a39363b Accept Merge Request #747: (feature/制造代码优化 -> develop)
Merge Request: 一些优化事宜,包括批量排程,修复坯料单展示问题等

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/747
2024-01-04 08:56:12 +08:00
mgw
9443a07eb4 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化
# Conflicts:
#	sf_sale/security/ir.model.access.csv
2024-01-04 08:54:12 +08:00
mgw
ce58e989dd 基本的批量排程已实现 2024-01-04 08:51:25 +08:00
mgw
b9bb528db0 客户列表公司类型卡片增加税ID,计划处tree视图增加批量排程button 2024-01-03 23:03:08 +08:00
jinling.yang
da8cbe4cce 1.修改刀具标准库同步6个物料的方法
2.刀具基础参数的刃数和刀片的刃数两个字段新增选项,新增active字段,xml中修改适配刀片型号字段
2024-01-03 17:41:44 +08:00
yuxianghui
ce69127250 1、夹具型号同步(进行中);2、删除功能刀具组装的功能刀具切削类型字段; 2024-01-03 17:31:16 +08:00
qihao.gong@jikimo.com
583f6503ec 修改cnc获取在制造订单的逻辑,制造订单所有工单完成时 制造订单自动完成,以及组件自动消耗掉 2024-01-03 17:29:37 +08:00
jinling.yang
7f050b62f9 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化刀具基本参数同步 2024-01-03 14:39:20 +08:00
杨金灵
5d09d1585b Accept Merge Request #746: (feature/权限修复 -> develop)
Merge Request: 权限修复

Created By: @杨金灵
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @杨金灵
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/746?initial=true
2024-01-03 11:52:12 +08:00
jinling.yang
f373003d2c Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/权限修复 2024-01-03 11:42:41 +08:00
jinling.yang
45e8e380db 修复销售质量采购bug 2024-01-03 11:42:23 +08:00
禹翔辉
c2263c9318 Accept Merge Request #745: (feature/功能刀具相关模型及组装流程优化 -> develop)
Merge Request: 1、修改所以夹具物料信息转接板夹具为转接板(锁板)夹具;2、优化功能刀具安全库存触发生成功能刀具组装单时重复触发的问题;3、设置功能刀具安全库存模型相关字段只有在创建的时候可以修改,其他时候是只读;4、优化功能刀具组装单组装完成后功能刀具入库位置不是刀具房的问题;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/745
2024-01-03 09:40:23 +08:00
yuxianghui
f09a6cde3e Merge remote-tracking branch 'origin/feature/功能刀具优化' into feature/功能刀具相关模型及组装流程优化 2024-01-03 09:37:36 +08:00
mgw
ccdbfda019 优化代码,修复检测人功能 2024-01-02 17:55:02 +08:00
jinling.yang
ec9435bb82 修复销售和采购的部分bug 2024-01-02 17:42:06 +08:00
qihao.gong@jikimo.com
77db3d57c9 设备类别非必填 2024-01-02 17:31:48 +08:00
yuxianghui
73c3e06900 1、修改所以夹具物料信息转接板夹具为转接板(锁板)夹具;2、优化功能刀具安全库存触发生成功能刀具组装单时重复触发的问题;3、设置功能刀具安全库存模型相关字段只有在创建的时候可以修改,其他时候是只读;4、优化功能刀具组装单组装完成后功能刀具入库位置不是刀具房的问题; 2024-01-02 17:25:49 +08:00
mgw
56d8190fc6 修改业务逻辑:当主制造订单排程后,子bom自动改状态为已排 2024-01-02 11:47:40 +08:00
qihao.gong@jikimo.com
7fe7de46c6 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修改机床参数bug 2024-01-02 10:01:24 +08:00
mgw
2339f75517 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/制造代码优化 2023-12-29 15:28:40 +08:00
mgw
8ec038847a 优化权限 2023-12-29 15:28:15 +08:00
禹翔辉
e1118bd579 Accept Merge Request #744: (feature/功能刀具优化 -> develop)
Merge Request: 优化字段显示

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/744?initial=true
2023-12-29 14:20:35 +08:00
yuxianghui
c9af7a8cc4 Merge remote-tracking branch 'origin/feature/夹具型号优化' into feature/功能刀具优化 2023-12-29 14:18:39 +08:00
yuxianghui
4ab7e4db0f 1、优化字段显示问题 2023-12-29 14:17:32 +08:00
qihao.gong@jikimo.com
939a255c2e 修改设备注册接口 2023-12-29 14:17:27 +08:00
jinling.yang
1cf5cd41b4 1.刀具基本参数新增适配夹头尺寸字段,2.优化采购订单确认订单方法 2023-12-29 09:31:41 +08:00
黄焱
860e16659c Accept Merge Request #743: (feature/前端样式修改 -> develop)
Merge Request: // 加工能力\冷却方式 竖列展示改为横列展示

Created By: @黄焱
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @黄焱
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/743
2023-12-28 17:48:59 +08:00
黄焱
e9987fdcfa // 加工能力\冷却方式 竖列展示改为横列展示 2023-12-28 17:44:51 +08:00
qihao.gong@jikimo.com
98847a2c42 处理设备控制bug 2023-12-28 17:38:56 +08:00
禹翔辉
f81bf760d4 Accept Merge Request #742: (feature/夹具型号优化 -> develop)
Merge Request: 1、新增夹具物料基本参数模型,重构工厂的夹具型号模型,重新优化夹具物料form视图;2、优化刀具标准库模型,优化切削速度模型,优化每齿走刀量模型,新增切削宽度和深度模型,新增坡铣角度模型;3、优化功能刀具安全库存最低安全库存可以高于最高库存的bug;

Created By: @禹翔辉
Reviewed By: @马广威
Approved By: @马广威 
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/742?initial=true
2023-12-28 17:09:00 +08:00
yuxianghui
b2bb2e33de 1、新增夹具物料基本参数模型,重构工厂的夹具型号模型,重新优化夹具物料form视图;2、优化刀具标准库模型,优化切削速度模型,优化每齿走刀量模型,新增切削宽度和深度模型,新增坡铣角度模型;3、优化功能刀具安全库存最低安全库存可以高于最高库存的bug; 2023-12-28 17:06:34 +08:00
jinling.yang
8be6373b77 Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/优化刀具基本参数同步 2023-12-28 16:39:09 +08:00
jinling.yang
a9c2d1aa5c 1.新增刀具物料参数的同步接口及方法
2.修改刀具物料参数的适配刀片型号及适配刀柄型号字段类型及新增刀柄长度,刀柄直径,法兰直径,动平衡等级,适配夹头型号,适用锁紧螺母型号,编码字段
2023-12-28 16:27:40 +08:00
mgw
8e61d5f87c 优化权限相关 2023-12-28 10:50:44 +08:00
248 changed files with 16569 additions and 6285 deletions

View File

@@ -10,9 +10,9 @@
""", """,
'category': 'sf', 'category': 'sf',
'website': 'https://www.sf.jikimo.com', 'website': 'https://www.sf.jikimo.com',
'depends': ['web', 'purchase'], 'depends': ['web', 'purchase', 'base_setup'],
'data': [ 'data': [
'views/bye_odoo.xml',
], ],
'demo': [ 'demo': [
], ],
@@ -23,6 +23,8 @@
'web.assets_backend': [ 'web.assets_backend': [
'jikimo_frontend/static/src/fields/custom_many2many_checkboxes/*', 'jikimo_frontend/static/src/fields/custom_many2many_checkboxes/*',
'jikimo_frontend/static/src/fields/Many2OneRadioField/*', 'jikimo_frontend/static/src/fields/Many2OneRadioField/*',
# 移除odoo相关标识
'jikimo_frontend/static/src/bye_odoo/*',
'jikimo_frontend/static/src/scss/custom_style.scss', 'jikimo_frontend/static/src/scss/custom_style.scss',
# 'jikimo_frontend/static/src/views/list_nums/list_nbCols.js', # 'jikimo_frontend/static/src/views/list_nums/list_nbCols.js',
'jikimo_frontend/static/src/views/list_nums/list_nums.xml', 'jikimo_frontend/static/src/views/list_nums/list_nums.xml',
@@ -36,6 +38,7 @@
# 'jikimo_frontend/static/src/list/custom_import.js', # 'jikimo_frontend/static/src/list/custom_import.js',
# 'jikimo_frontend/static/src/list/custom_width.js', # 'jikimo_frontend/static/src/list/custom_width.js',
'jikimo_frontend/static/src/views/list_nums/extent_purchase.xml', 'jikimo_frontend/static/src/views/list_nums/extent_purchase.xml',
'jikimo_frontend/static/src/css/list_border_styles.css',
], ],

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="partner_demo_company" model="res.partner">
<field name="name">JKM</field>
<field name="street">B-25</field>
<field name="city">USA</field>
<!-- Use the correct reference or actual ID for the country -->
<field name="country_id" ref="base.bd"/>
<field name="zip">1229</field>
<field name="phone">+8801-712901764</field>
<field name="email">info@kolpolok.com</field>
<field name="website">www.kolpoloktechnologies.com</field>
</record>
<record id="demo_company" model="res.company">
<field name="name">Custom</field>
<field name="logo" type="base64" file="kolpolok_custom_title_and_favicon/static/src/img/favicon.ico"/>
<field name="favicon" type="base64" file="kolpolok_custom_title_and_favicon/static/src/img/favicon.ico"/>
<field name="partner_id" ref="partner_demo_company"/>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,16 @@
/** @odoo-module **/
import { UserMenu } from "@web/webclient/user_menu/user_menu";
import { patch } from "@web/core/utils/patch";
import { registry } from "@web/core/registry";
const userMenuRegistry = registry.category("user_menuitems");
patch(UserMenu.prototype, "legion_hide_odoo.UserMenu", {
setup() {
this._super.apply(this, arguments);
userMenuRegistry.remove("documentation");
userMenuRegistry.remove("support");
userMenuRegistry.remove("odoo_account");
},
});

View File

@@ -0,0 +1,11 @@
/** @odoo-module **/
import { WebClient } from "@web/webclient/webclient";
import { patch } from "web.utils";
patch(WebClient.prototype, "kolpolok_custom_title_and_favicon.WebClient", {
setup() {
this._super();
this.title.setParts({ zopenerp: "JIKIMO" });
},
});

View File

@@ -0,0 +1,3 @@
.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell):not(.o_list_button):not(.o_list_record_remove){
border:1px solid #dee2e6 !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -4,9 +4,52 @@ import {patch} from '@web/core/utils/patch';
// import { Dialog } from "@web/core/dialog/dialog"; // import { Dialog } from "@web/core/dialog/dialog";
import {_t} from "@web/core/l10n/translation"; import {_t} from "@web/core/l10n/translation";
import {FormStatusIndicator} from "@web/views/form/form_status_indicator/form_status_indicator"; import {FormStatusIndicator} from "@web/views/form/form_status_indicator/form_status_indicator";
import {ListRenderer} from "@web/views/list/list_renderer";
import {Field} from "@web/views/fields/field";
var Dialog = require('web.Dialog'); var Dialog = require('web.Dialog');
// var {patch} = require("web.utils") 这句话也行 // var {patch} = require("web.utils") 这句话也行
const filedRequiredList = {
// 设备大模块
'control_system_id': { multiple: false, noLabel: false },
'workbench_L': { multiple: true, noLabel: false },
'number_of_axles': { multiple: true, noLabel: false },
'x_axis': { multiple: true, noLabel: false },
'number_of_knife_library': { multiple: false, noLabel: false },
'brand_id': { multiple: false, noLabel: false },
'type_id': { multiple: false, noLabel: false },
'taper_type_id': { multiple: false, noLabel: false },
'eq_maintenance_id': { multiple: false, noLabel: false },
'overhaul_id': { multiple: false, noLabel: false },
'overhaul_period': { multiple: false, noLabel: false },
'maintenance_equipment_category_id': { multiple: false, noLabel: false },
'maintenance_type': { multiple: false, noLabel: false },
// 销售大模块
'partner_id': { multiple: false, noLabel: false },
'validity_date': { multiple: false, noLabel: false },
'vat': { multiple: false, noLabel: false },
'phone': { multiple: false, noLabel: false },
'mobile': { multiple: false, noLabel: false },
'email': { multiple: false, noLabel: false },
'category_id': { multiple: false, noLabel: false },
'radio_field_1_person': { multiple: false, noLabel: true },
// 采购大模块
'date_order': { multiple: false, noLabel: false },
'picking_type_id': { multiple: false, noLabel: false },
// 制造大模块
'production_line_id': { multiple: false, noLabel: false },
'date_approve': { multiple: false, noLabel: false },
'date_planned_start': { multiple: false, noLabel: false },
'date_planned_finished': { multiple: false, noLabel: false },
}
const tableRequiredList = [
'product_template_id', 'product_uom_qty', 'price_unit','product_id','product_qty',
'name', 'fault_type', 'maintenance_standards', 'Period'
]
patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', { patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
// 你可以重写或者添加一些方法和属性 // 你可以重写或者添加一些方法和属性
@@ -46,6 +89,66 @@ patch(FormStatusIndicator.prototype, 'jikimo_frontend.FormStatusIndicator', {
} }
); );
patch(Field.prototype, 'jikimo_frontend.Field', {
setup() {
owl.onMounted(this.setRequired);
return this._super(...arguments);
},
setRequired() {
const id = this.props.id
const isRequired = filedRequiredList[id]
if(id == 'number_of_axles') {
console.log(isRequired)
}
if(isRequired) {
let dom;
dom = $(`label[for=${id}]`)
if(isRequired.multiple && dom.length > 1) {
dom = dom.eq(-1)
dom = dom.parent().parent().next().find('label')
}
if(isRequired.noLabel) {
dom = dom.parent().parent()
}
let t = dom.html()
t = '<i class="c* r" style="color: red;margin-left: -4px">*</i>' + t
dom.html(t)
}
}
})
patch(ListRenderer.prototype, 'jikimo_frontend.ListRenderer', {
setup(){
owl.onMounted(() => {
this.activeElement = this.uiService.activeElement;
this.setRequired()
})
return this._super(...arguments);
},
setRequired() {
this.allColumns.forEach(_ => {
if( tableRequiredList.indexOf(_.name) >= 0 ) {
const dom = $(`th[data-name=${_.name}]`)
dom.addClass('addRequired')
}
})
try {
const dom = this.tableRef.el
if(dom ) {
const tfoot = $(dom).children('tfoot')
const tbooy = $(dom).children('tbody')
if(tfoot.length) {
const tfoot_tr = tfoot.children().eq(0)
const tbody_tr = tbooy.children().eq(0)
if(tfoot_tr.children().length < tbody_tr.children().length) {
tfoot_tr.prepend('<td class="prepend">')
}
}
}
} catch (e) {
console.log(e)
}
}
})
$(function () { $(function () {
document.addEventListener('click', function () { document.addEventListener('click', function () {
@@ -59,4 +162,49 @@ $(function (){
} }
} }
}) })
function customRequired() {
let timer = null
let timer_count = 0
clearInterval(timer)
timer = setInterval(() => {
timer_count++
const dom = $('.custom_required')
let tableDom = $('.table_custom_required')
if (tableDom.length) {
tableDom = tableDom.eq(0).parents('tr').children('.table_custom_required')
tableDom.each(function () {
const i = $(this).index()
const requiredDom = $(this).parents('table').find('thead').find('th').eq(i).find('span').eq(0)
const t = requiredDom.text().replace('*', '')
requiredDom.html('<i style="color: red;margin-left: -4px">*</i>' + t)
})
clearInterval(timer)
}
if (dom.length) {
dom.each(function () {
const requiredDom = $(this).parent().prev().find('label')
let t = requiredDom.html()
if (t && t.indexOf('c*') < 0) {
t = '<i class="c*" style="color: red;margin-left: -4px">*</i>' + t
}
requiredDom.html(t)
})
clearInterval(timer)
}
if (timer_count == 20) {
clearInterval(timer)
}
}, 500)
}
var currentUrl = location.href
const listenerUrl = setInterval(() => {
const isChange = currentUrl != location.href
if (isChange) {
currentUrl = location.href
customRequired()
}
}, 500)
customRequired()
}) })

View File

@@ -3,6 +3,15 @@
import { registry } from "@web/core/registry"; import { registry } from "@web/core/registry";
import { url } from "@web/core/utils/urls"; import { url } from "@web/core/utils/urls";
import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field'; import { ImageField, imageCacheKey } from '@web/views/fields/image/image_field';
import { isBinarySize } from "@web/core/utils/binary";
export const fileTypeMagicWordMap = {
"/": "jpg",
R: "gif",
i: "png",
P: "svg+xml",
};
const placeholder = "/web/static/img/placeholder.png";
export class CustomImageField extends ImageField { export class CustomImageField extends ImageField {
setup() { setup() {
@@ -13,7 +22,7 @@ export class CustomImageField extends ImageField {
getUrl(previewFieldName) { getUrl(previewFieldName) {
console.log('8888888888886666666666666666666') console.log('8888888888886666666666666666666')
if (this.state.isValid && this.props.value) { if (this.state.isValid && this.props.value) {
if (1) { if (isBinarySize(this.props.value) || this.props.value.length < 50) {
if (!this.rawCacheKey) { if (!this.rawCacheKey) {
this.rawCacheKey = this.props.record.data.__last_update; this.rawCacheKey = this.props.record.data.__last_update;
} }

View File

@@ -13,7 +13,7 @@ div:has(.o_required_modifier) > label::before {
color: red !important; color: red !important;
padding: 0 4px !important; padding: 0 4px !important;
vertical-align: top !important; vertical-align: top !important;
font-size: 1.5rem !important; font-size: unset !important;
} }
.my-image div { .my-image div {
@@ -79,9 +79,9 @@ td.o_required_modifier {
} }
.oe_kanban_card.kanban_color_1 { .oe_kanban_card.kanban_color_1 {
background-color: #27FEA9 !important; background-color: #fff !important;
opacity: 0.7; opacity: 0.7;
color: #fff; color: #777;
} }
.oe_kanban_card.kanban_color_3 { .oe_kanban_card.kanban_color_3 {
@@ -135,7 +135,7 @@ td.o_required_modifier {
.text-truncate { .text-truncate {
overflow: unset !important; overflow: unset !important;
text-overflow: unset !important; text-overflow: unset !important;
white-space: nowrap!important; //white-space: nowrap!important;
} }
.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell):not(.o_list_button):not(.o_list_record_remove) { .o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell):not(.o_list_button):not(.o_list_record_remove) {
@@ -325,7 +325,7 @@ div[class="o_content o_component_with_search_panel"] .show_state span {
div:has(.o_required_modifier) > label::before { div:has(.o_required_modifier) > label::before {
position: absolute; position: absolute;
left: -3px; left: 24px;
} }
//.o_form_view .o_form_label { //.o_form_view .o_form_label {
@@ -383,7 +383,9 @@ div:has(.o_required_modifier) > label::before {
} }
} }
} }
.oe_kanban_details li.o_text_overflow {
display: block;
}
.o_stock_kanban .o_kanban_card_content { .o_stock_kanban .o_kanban_card_content {
.row { .row {
align-items: center; align-items: center;
@@ -401,3 +403,92 @@ div:has(.o_required_modifier) > label::before {
.o_list_table_ungrouped { .o_list_table_ungrouped {
min-width: 1089px; min-width: 1089px;
} }
// 加工能力\冷却方式 竖列展示改为横列展示
.processingMethod {
.o_cell.flex-grow-1.flex-sm-grow-0 {
width: 100%!important;
}
}
@media (min-width: 576px) {
.o_inner_group.processingMethod {
grid-template-columns: auto;
}
}
// 设置所有表格序号列padding为0
.o_form_view .o_notebook > .tab-content > .tab-pane > :first-child:not(.o_group) .o_field_x2many.o_field_x2many_list tr > :first-child, .o_form_view .o_notebook > .tab-content > .tab-pane > :first-child.o_invisible_modifier + .o_field_widget .o_field_x2many.o_field_x2many_list tr > :first-child {
padding: 0;
text-align: center;
}
// 设置剩余number类型数据表格列 left
.o_list_renderer .o_list_table thead .o_list_number_th {
text-align:left;
}
.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector).o_list_number {
text-align: left;
}
.o_list_renderer .flex-row-reverse {
flex-direction: unset!important;
}
.o_list_renderer .flex-row-reverse > .text-end {
text-align: left!important;
}
// 设置modal弹窗样式
.modal.o_technical_modal {
.modal-lg {
@media (min-width: 992px) {
max-width: 1200px;
}
@media (min-width: 576px) {
.o_form_view .o_inner_group {
grid-template-columns: auto;
}
}
}
}
// 更改表格底部按钮样式
.o_list_renderer .o_field_x2many_list_row_add a,.treeHeaderBtn,.o_x2m_control_panel .o_cp_buttons .btn{
display: inline-block;
margin: 5px 0;
font-size: 14px;
color: #71639e;
border: 1px solid #71639e;
padding: 0.2rem 0.6rem;
font-size: 1.08333333rem;
border-radius: 0.25rem;
transition: all .3s;
}
.o_list_renderer .o_field_x2many_list_row_add a:hover,.treeHeaderBtn:hover,.o_x2m_control_panel .o_cp_buttons .btn:hover{
background: #71639e;
color: #fff
}
// 修改时间输入框宽度
.o_datepicker_input.o_input.datetimepicker-input {
width: 200px;
}
.o_form_view .o_form_editable .o_row > .o_field_widget, .o_form_view .o_form_editable .o_row > .o_field_widget.o_field_float_time {
width: auto !important;
flex: unset;
}
.addRequired {
padding-left: calc(0.3rem + 2px)!important;
}
.addRequired:before {
content: '*';
color: red;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.o_list_renderer .o_list_table tfoot .o_list_number {
text-align: left;
}

View File

@@ -1,4 +1,4 @@
.row_no { .row_no {
width: 3.2% !important; width: 35px !important;
vertical-align: middle; vertical-align: middle;
} }

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- 修改页面头部图标及文字 -->
<template id="favicon_icon" inherit_id="web.layout" name="Web layout">
<!-- change the title with reliance partner -->
<xpath expr="//head//title" position="before">
<title t-esc="'JIKIMO'"/>
</xpath>
<!-- change the default favicon icon with -->
<xpath expr="//head//link[@rel='shortcut icon']" position="replace">
<link type="image/x-icon" rel="shortcut icon" href="/jikimo_frontend/static/src/img/jikimo-logo.ico"/>
</xpath>
</template>
<!-- hide 登录页面 powerd by odoo 及管理数据库 -->
<template id="login_page_layout" inherit_id="web.login_layout" name="Login Page Layout">
<xpath expr="//div[@class='card-body']//div[last()]" position="replace"></xpath>
</template>
<!-- 隐藏odoo版本信息 -->
<record id="jikimo_res_config_settings_view_form" model="ir.ui.view">
<field name="name">jikimo.res.config.settings.view.form.inherit.base.setup</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@id='about']" position="replace">
</xpath>
</field>
</record>
</data>
</odoo>

View File

@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
from . import models
from odoo import api, SUPERUSER_ID
def uninstall_hook(cr, registry):
# 使用cr来执行数据库操作
with api.Environment.manage():
env = api.Environment(cr, SUPERUSER_ID, {})
# 执行数据清理操作
access_rights = env['access.right'].search([])
access_rights.unlink()
followers = env['mail.followers'].search([('res_model', '=', 'access.right')])
followers.unlink()

View File

@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
{
'name': '机企猫 隐藏项目',
'version': '16.0.1.0.0',
'category': 'Extra Tools, Productivity',
'summary': """ Can hide options from user """,
'description': """ By using this module we can hide the options like create,
delete,export,and archive/un archive in the model which we want. Here we
are also able to select the user groups except Administrator which we want
to apply the above hiding functionality """,
'author': '机企猫-MGW',
'company': '机企猫',
'depends': ['base_setup', 'mail'],
'data': [
'security/security.xml',
'security/ir.model.access.csv',
'views/model_access_rights_views.xml',
],
'assets': {
'web.assets_backend': [
'jikimo_hide_options/static/src/js/form_controller.js',
'jikimo_hide_options/static/src/js/list_controller.js',
'jikimo_hide_options/static/src/js/kanban_controller.js'
]
},
'images': ['static/description/banner.jpg'],
'license': 'LGPL-3',
'installable': True,
'auto_install': False,
'application': False,
'uninstall_hook': 'uninstall_hook',
}

View File

@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import model_access_rights
from . import models

View File

@@ -0,0 +1,107 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models, _
class ModelAccessRights(models.Model):
"""This class is used to detect, which all options want to hide from the
specified group and model"""
_name = 'access.right'
_inherit = 'mail.thread'
_description = 'Manage Modules Access Control'
_rec_name = 'model_id'
model_id = fields.Many2one('ir.model', ondelete='cascade', required=True,
help="select the model")
groups_id = fields.Many2one('res.groups', required=True,
help="select the group")
is_delete = fields.Boolean(string="Delete", help="hide the delete option")
is_export = fields.Boolean(string="Export",
help="hide the 'Export All'"
" option from list view")
is_create_or_update = fields.Boolean(string="Create/Update",
help="hide the create option from list"
" as well as form view")
is_archive = fields.Boolean(string="Archive/UnArchive",
help="hide the archive option")
@api.model
def hide_buttons(self):
"""This function contains a query that detects which all options want
to hide, in which model,and to which user groups"""
access_right_rec = self.sudo().search_read([], ['model_id', 'is_delete',
'is_export',
'is_create_or_update',
'is_archive',
'groups_id'])
for dic in access_right_rec:
model = self.env['ir.model'].sudo().browse(dic['model_id'][0]).model
group_name = self.env['ir.model.data'].sudo().search([
('model', '=', 'res.groups'),
('res_id', '=', dic['groups_id'][0])
]).name
module_name = self.env['ir.model.data'].sudo().search([
('model', '=', 'res.groups'),
('res_id', '=', dic['groups_id'][0])
]).module
dic.update({
'model': model,
'group_name': group_name,
'module': module_name
})
return access_right_rec
# @api.model
# def hide_buttons(self):
# """This function contains a query that detects which all options want
# to hide, in which model,and to which user groups"""
# access_right_rec = self.sudo().search_read([], ['model_id', 'is_delete',
# 'is_export',
# 'is_create_or_update',
# 'is_archive',
# 'groups_id'])
# for dic in access_right_rec:
# model = self.env['ir.model'].sudo().browse(dic['model_id']).model
# group_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', dic['groups_id'])
# ]).name
# module_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', dic['groups_id'])
# ]).module
# dic.update({
# 'model': model,
# 'group_name': group_name,
# 'module': module_name
# })
# return access_right_rec
# class AccessRightCleanup(models.Model):
# _name = 'access.right.cleanup' # 定义一个新的模型名
# _description = 'Access Right Cleanup'
# @api.model
# def _module_uninstall(self):
# """在模块卸载时执行清理操作"""
# super(AccessRightCleanup, self)._module_uninstall()
# # 这里执行你的清理逻辑
#
# # 获取access.right模型的所有记录
# access_rights = self.env['access.right'].search([])
# for access_right in access_rights:
# # 删除access.right模型的所有记录
# access_right.unlink()
#
# # 查找所有关联到access.right模型的关注者记录
# followers = self.env['mail.followers'].search([('res_model', '=', 'access.right')])
# for follower in followers:
# # 删除关注者记录
# follower.unlink()
#
# # # 示例:删除自定义数据表(确保先检查外键约束等)
# # self.env.cr.execute('DROP TABLE IF EXISTS access_right CASCADE;')
#
# # 其他清理工作...

View File

@@ -0,0 +1,353 @@
# -*- coding: utf-8 -*-
from collections import defaultdict
from operator import attrgetter
from odoo import api, _
from odoo.exceptions import UserError
from odoo.models import BaseModel, _unlink, LOG_ACCESS_COLUMNS, \
INSERT_BATCH_SIZE, SQL_DEFAULT
# from odoo.tools import OrderedSet, split_every, attrgetter, clean_context
from odoo.tools import OrderedSet, split_every, clean_context
@api.model
def _create(self, data_list):
""" Create records from the stored field values in ``data_list``. """
assert data_list
cr = self.env.cr
# insert rows in batches of maximum INSERT_BATCH_SIZE
ids = [] # ids of created records
other_fields = OrderedSet() # non-column fields
for data_sublist in split_every(INSERT_BATCH_SIZE, data_list):
stored_list = [data['stored'] for data in data_sublist]
fnames = sorted({name for stored in stored_list for name in stored})
columns = []
rows = [[] for _ in stored_list]
for fname in fnames:
field = self._fields[fname]
if field.column_type:
columns.append(fname)
for stored, row in zip(stored_list, rows):
if fname in stored:
colval = field.convert_to_column(stored[fname], self,
stored)
if field.translate is True and colval:
if 'en_US' not in colval.adapted:
colval.adapted['en_US'] = next(
iter(colval.adapted.values()))
row.append(colval)
else:
row.append(SQL_DEFAULT)
else:
other_fields.add(field)
if field.type == 'properties':
# force calling fields.create for properties field because
# we might want to update the parent definition
other_fields.add(field)
if not columns:
# manage the case where we create empty records
columns = ['id']
for row in rows:
row.append(SQL_DEFAULT)
header = ", ".join(f'"{column}"' for column in columns)
template = ", ".join("%s" for _ in rows)
cr.execute(
f'INSERT INTO "{self._table}" ({header}) VALUES {template} RETURNING "id"',
[tuple(row) for row in rows],
)
ids.extend(id_ for id_, in cr.fetchall())
# put the new records in cache, and update inverse fields, for many2one
#
# cachetoclear is an optimization to avoid modified()'s cost until other_fields are processed
cachetoclear = []
records = self.browse(ids)
inverses_update = defaultdict(list) # {(field, value): ids}
common_set_vals = set(
LOG_ACCESS_COLUMNS + [self.CONCURRENCY_CHECK_FIELD, 'id',
'parent_path'])
for data, record in zip(data_list, records):
data['record'] = record
# DLE P104: test_inherit.py, test_50_search_one2many
vals = dict(
{k: v for d in data['inherited'].values() for k, v in d.items()},
**data['stored'])
set_vals = common_set_vals.union(vals)
for field in self._fields.values():
if field.type in ('one2many', 'many2many'):
self.env.cache.set(record, field, ())
elif field.related and not field.column_type:
self.env.cache.set(record, field,
field.convert_to_cache(None, record))
# DLE P123: `test_adv_activity`, `test_message_assignation_inbox`, `test_message_log`, `test_create_mail_simple`, ...
# Set `mail.message.parent_id` to False in cache so it doesn't do the useless SELECT when computing the modified of `child_ids`
# in other words, if `parent_id` is not set, no other message `child_ids` are impacted.
# + avoid the fetch of fields which are False. e.g. if a boolean field is not passed in vals and as no default set in the field attributes,
# then we know it can be set to False in the cache in the case of a create.
elif field.name not in set_vals and not field.compute:
self.env.cache.set(record, field,
field.convert_to_cache(None, record))
for fname, value in vals.items():
field = self._fields[fname]
if field.type in ('one2many', 'many2many'):
cachetoclear.append((record, field))
else:
cache_value = field.convert_to_cache(value, record)
self.env.cache.set(record, field, cache_value)
if field.type in ('many2one', 'many2one_reference') and \
self.pool.field_inverses[field]:
inverses_update[(field, cache_value)].append(record.id)
for (field, value), record_ids in inverses_update.items():
field._update_inverses(self.browse(record_ids), value)
# update parent_path
records._parent_store_create()
# protect fields being written against recomputation
protected = [(data['protected'], data['record']) for data in data_list]
with self.env.protecting(protected):
# mark computed fields as todo
records.modified(self._fields, create=True)
if other_fields:
# discard default values from context for other fields
others = records.with_context(clean_context(self._context))
for field in sorted(other_fields, key=attrgetter('_sequence')):
field.create([
(other, data['stored'][field.name])
for other, data in zip(others, data_list)
if field.name in data['stored']
])
# mark fields to recompute
records.modified([field.name for field in other_fields],
create=True)
# if value in cache has not been updated by other_fields, remove it
for record, field in cachetoclear:
if self.env.cache.contains(record,
field) and not self.env.cache.get(
record, field):
self.env.cache.remove(record, field)
# check Python constraints for stored fields
records._validate_fields(
name for data in data_list for name in data['stored'])
records.check_access_rule('create')
# This is used to restrict the access right to create a record
current_model_id = self.env['ir.model'].sudo().search(
[('model', '=', self._name)]).id
# access_right_rec = self.env['access.right'].sudo().search_read(
# [('model_id', '=', current_model_id)],
# ['model_id', 'is_create_or_update',
# 'groups_id'])
# if access_right_rec and not self.env.is_admin():
# for rec in access_right_rec:
# group_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', rec['groups_id'][0])
# ]).name
# module_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', rec['groups_id'][0])
# ]).module
# group = module_name + "." + group_name
# if self.env.user.has_group(group):
# if rec['is_create_or_update']:
# raise UserError('You are restricted from performing this'
# ' operation. Please contact the'
# ' administrator.')
# 检查 'access.right' 模型是否存在于环境中
if 'access.right' in self.env:
access_right_rec = self.env['access.right'].sudo().search_read(
[('model_id', '=', current_model_id)],
['model_id', 'is_create_or_update', 'groups_id']
)
# 如果找到相关记录,并且当前用户不是管理员
if access_right_rec and not self.env.is_admin():
for rec in access_right_rec:
# 获取与权限相关的用户组信息
group_data = self.env['ir.model.data'].sudo().search_read(
[('model', '=', 'res.groups'), ('res_id', '=', rec['groups_id'][0])],
['name', 'module']
)
# 如果找到了用户组数据
if group_data:
group_name = group_data[0]['name']
module_name = group_data[0]['module']
group_xml_id = f"{module_name}.{group_name}"
# 检查当前用户是否属于该组
if self.env.user.has_group(group_xml_id):
# 如果该用户组被限制创建或更新操作
if rec['is_create_or_update']:
raise UserError(
_("You are restricted from performing this operation. Please contact the administrator."))
else:
# 如果 'access.right' 模型不存在,可以在这里定义备选逻辑
# 例如,记录日志、发送通知或者简单地跳过这部分逻辑
pass
return records
@api.model
def unlink(self):
""" unlink()
Deletes the records in ``self``.
:raise AccessError: if the user is not allowed to delete all the given records
:raise UserError: if the record is default property for other records
"""
if not self:
return True
self.check_access_rights('unlink')
self.check_access_rule('unlink')
from odoo.addons.base.models.ir_model import MODULE_UNINSTALL_FLAG
for func in self._ondelete_methods:
# func._ondelete is True if it should be called during uninstallation
if func._ondelete or not self._context.get(MODULE_UNINSTALL_FLAG):
func(self)
# TOFIX: this avoids an infinite loop when trying to recompute a
# field, which triggers the recomputation of another field using the
# same compute function, which then triggers again the computation
# of those two fields
for field in self._fields.values():
self.env.remove_to_compute(field, self)
self.env.flush_all()
cr = self._cr
Data = self.env['ir.model.data'].sudo().with_context({})
Defaults = self.env['ir.default'].sudo()
Property = self.env['ir.property'].sudo()
Attachment = self.env['ir.attachment'].sudo()
ir_property_unlink = Property
ir_model_data_unlink = Data
ir_attachment_unlink = Attachment
# mark fields that depend on 'self' to recompute them after 'self' has
# been deleted (like updating a sum of lines after deleting one line)
with self.env.protecting(self._fields.values(), self):
self.modified(self._fields, before=True)
for sub_ids in cr.split_for_in_conditions(self.ids):
records = self.browse(sub_ids)
# Check if the records are used as default properties.
refs = [f'{self._name},{id_}' for id_ in sub_ids]
if Property.search(
[('res_id', '=', False), ('value_reference', 'in', refs)],
limit=1):
raise UserError(
_('Unable to delete this document because it is used as a default property'))
# Delete the records' properties.
ir_property_unlink |= Property.search([('res_id', 'in', refs)])
query = f'DELETE FROM "{self._table}" WHERE id IN %s'
cr.execute(query, (sub_ids,))
# Removing the ir_model_data reference if the record being deleted
# is a record created by xml/csv file, as these are not connected
# with real database foreign keys, and would be dangling references.
#
# Note: the following steps are performed as superuser to avoid
# access rights restrictions, and with no context to avoid possible
# side-effects during admin calls.
data = Data.search(
[('model', '=', self._name), ('res_id', 'in', sub_ids)])
ir_model_data_unlink |= data
# For the same reason, remove the defaults having some of the
# records as value
Defaults.discard_records(records)
# For the same reason, remove the relevant records in ir_attachment
# (the search is performed with sql as the search method of
# ir_attachment is overridden to hide attachments of deleted
# records)
query = 'SELECT id FROM ir_attachment WHERE res_model=%s AND res_id IN %s'
cr.execute(query, (self._name, sub_ids))
ir_attachment_unlink |= Attachment.browse(
row[0] for row in cr.fetchall())
# invalidate the *whole* cache, since the orm does not handle all
# changes made in the database, like cascading delete!
self.env.invalidate_all(flush=False)
if ir_property_unlink:
ir_property_unlink.unlink()
if ir_model_data_unlink:
ir_model_data_unlink.unlink()
if ir_attachment_unlink:
ir_attachment_unlink.unlink()
# DLE P93: flush after the unlink, for recompute fields depending on
# the modified of the unlink
self.env.flush_all()
# auditing: deletions are infrequent and leave no trace in the database
_unlink.info('User #%s deleted %s records with IDs: %r', self._uid,
self._name, self.ids)
# This is used to restrict the access right to unlink a record
current_model_id = self.env['ir.model'].sudo().search(
[('model', '=', self._name)]).id
# access_right_rec = self.env['access.right'].sudo().search_read(
# [('model_id', '=', current_model_id)], ['model_id', 'is_delete',
# 'groups_id'])
# if access_right_rec and not self.env.is_admin():
# for rec in access_right_rec:
# group_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', rec['groups_id'][0])
# ]).name
# module_name = self.env['ir.model.data'].sudo().search([
# ('model', '=', 'res.groups'),
# ('res_id', '=', rec['groups_id'][0])
# ]).module
# group = module_name + "." + group_name
# if self.env.user.has_group(group):
# if rec['is_delete']:
# raise UserError(_('You are restricted from performing this'
# ' operation. Please contact the'
# ' administrator.'))
# 检查 'access.right' 模型是否存在于环境中
if 'access.right' in self.env:
# current_model_id = self.env['ir.model'].sudo().search([('model', '=', self._name)]).id
access_right_rec = self.env['access.right'].sudo().search_read(
[('model_id', '=', current_model_id)], ['model_id', 'is_delete', 'groups_id']
)
if access_right_rec and not self.env.is_admin():
for rec in access_right_rec:
group_data = self.env['ir.model.data'].sudo().search_read(
[('model', '=', 'res.groups'), ('res_id', '=', rec['groups_id'][0])],
['name', 'module']
)
if group_data:
group_name = group_data[0]['name']
module_name = group_data[0]['module']
group_xml_id = f"{module_name}.{group_name}"
if self.env.user.has_group(group_xml_id) and rec['is_delete']:
raise UserError(
_('You are restricted from performing this operation. Please contact the administrator.'))
else:
# 如果 'access.right' 模型不存在,可以在这里定义备选逻辑
pass
return True
BaseModel._create = _create
BaseModel.unlink = unlink

View File

@@ -0,0 +1,2 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_access_right,access.access.right,model_access_right,jikimo_hide_options.model_access_rights_groups_configure_model_access,1,1,1,1
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
2 access_access_right access.access.right model_access_right jikimo_hide_options.model_access_rights_groups_configure_model_access 1 1 1 1

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--Add a group named Configure Model Access in res.groups-->
<odoo>
<record id="model_access_rights_groups_configure_model_access" model="res.groups">
<field name="name">配置隐藏项目</field>
<field name="category_id" ref="base.module_category_usability"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,596 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;">
<!-- TITLE BAR -->
<div class="d-flex align-items-center justify-content-between"
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42" style="width: 42px; height: 42px;" />
<div>
<div
style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Community
</div>
<div
style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise
</div>
<div
style="color: #017E84; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Odoo.sh
</div>
</div>
</div>
<!-- END OF TITLE BAR -->
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<!-- APP HERO -->
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;">
Hide Create|Delete|Archive|Export Options - Model Wise</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">Hide Create, Delete, Archive, Export Options in Models</p>
<!-- END OF APP HERO -->
<img src="assets/screenshots/hero.gif" class="img-responsive"
style="width: 100%; margin-left: auto; margin-right: auto;" />
</div>
</div>
</div>
</div>
<!-- NAVIGATION SECTION -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Explore This
Module</h2>
</div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;">
<div class="col-sm-12 col-md-6 my-3">
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36" />
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#features">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
features of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36" />
</div>
</a>
</div>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span
style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots of this
module</span>
</div>
<img src="assets/misc/right-arrow.png" width="36" height="36" />
</div>
</a>
</div>
</div>
<!-- END OF NAVIGATION SECTION -->
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pie-chart.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Overview
</h2>
</div>
<div class="row" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4">
By using this module we can hide the options like create,delete,export,and archive/un archive in the model
which we want. Here we are also able to select the user groups except Administrator which we want to apply the
above hiding functionality </div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/features.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Features
</h2>
</div>
<div class="row" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 col-md-6">
<div class="d-flex align-items-center" style="margin-top: 40px; margin-bottom: 40px">
<img src="assets/misc/check-box.png" class="mr-2" />
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Easily hide the options like Create,Delete,Export and Archive/UnArchive</span>
</div>
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2" />
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Can hide the options for specific model</span>
</div>
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2" />
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Can hide the options for specific user group</span>
</div>
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2" />
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">No additional configuration needed</span>
</div>
</div>
</div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="screenshots">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pictures.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Screenshots
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Go to Settings > Users and there you can see the Configure Model Access, by enabling that
option and refresh the page, you can see a new menu named 'Restrict Access Rights'</h3>
<img src="assets/screenshots/model_access_right_01.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> User in the Purchase module</h3>
<img src="assets/screenshots/model_access_right_02.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Select the Model, Groups and the options which we want to hide</h3>
<img src="assets/screenshots/model_access_right_03.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> We can see Create option is hidden in purchase.order to those who are User
in purchase module</h3>
<img src="assets/screenshots/model_access_right_04.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">User in Project module</h3>
<img src="assets/screenshots/model_access_right_05.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> By default, we can see Export and Archive/UnArchive options</h3>
<img src="assets/screenshots/model_access_right_06.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Select the options which we want to hide</h3>
<img src="assets/screenshots/model_access_right_07.png" class="img-thumbnail">
</div>
<div style="display: block; margin: 30px auto;">
<h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> Export and Archive/UnArchive functionality are hidden</h3>
<img src="assets/screenshots/model_access_right_08.png" class="img-thumbnail">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center"
style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png"/>
</div>
<h2 class="mt-2"
style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">
Related
Products
</h2>
</div>
<div class="row">
<div class="col-sm-12">
<div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow -->
<div class="carousel-inner" style="padding: 30px;">
<div class="carousel-item" style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/openai_odoo_base/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/1.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/woo_commerce/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/l2.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/shopify_odoo_connector/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/l3.png">
</div>
</a>
</div>
</div>
<div class="carousel-item active"
style="min-height: 198.656px;">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/hr_zk_attendance/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/l4.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_redirect/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/l5.png">
</div>
</a>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16"
style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/openai_website_product_media/"
target="_blank">
<div style="border-radius:10px">
<img class="img img-responsive center-block"
style="border-radius: 0px;"
src="assets/modules/l6.png">
</div>
</a>
</div>
</div>
</div>
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev"
style="width:35px; color:#000"> <span
class="carousel-control-prev-icon"><i
class="fa fa-chevron-left"
style="font-size:24px"></i></span>
</a> <a class="carousel-control-next" href="#demo1"
data-slide="next" style="width:35px; color:#000">
<span class="carousel-control-next-icon"><i
class="fa fa-chevron-right"
style="font-size:24px"></i></span>
</a>
</div>
</div>
</div>
<!-- END OF RELATED PRODUCTS -->
<!-- OUR SERVICES -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/star.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our Services
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/cogs.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Customization</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/wrench.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/lifebuoy.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/user.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Hire
Odoo
Developer</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/puzzle.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Integration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/update.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/consultation.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Consultancy</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/training.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Implementation</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
<img src="assets/icons/license.png" class="img-responsive" height="48px" width="48px">
</div>
<h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;">
Odoo
Licensing Consultancy</h6>
</div>
</div>
</div>
<!-- END OF OUR SERVICES -->
<!-- OUR INDUSTRIES -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/corporate.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our
Industries
</h2>
</div>
<div class="container my-5">
<div class="row">
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easily procure
and
sell your products</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Easy
configuration
and convivial experience</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/education-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
A platform for
educational management</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px"
width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Plan, track and
schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Mobile
friendly,
awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Keep track of
services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
Run your bar or
restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">
An
all-inclusive
hotel management application</p>
</div>
</div>
</div>
</div>
<!-- END OF OUR INDUSTRIES -->
<!-- SUPPORT -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/customer-support.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Support
</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/support.png" height="48" width="48" style="width: 42px; height: 42px;" />
</div>
<div>
<h4>Need Help?</h4>
<p style="line-height: 100%;">Got questions or need help? Get in touch.</p>
<a href="mailto:odoo@cybrosys.com">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p>
</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/whatsapp.png" height="52" width="52" style="width: 52px; height: 52px;" />
</div>
<div>
<h4>WhatsApp</h4>
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p>
<a href="https://api.whatsapp.com/send?phone=918606827707">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">+91 86068
27707</p>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center">
<img src="assets/misc/logo.png" width="144" height="31"
style="width:144px; height: 31px; margin-top: 40px;" />
</div>
</div>
</div>
<!-- END OF SUPPORT -->

View File

@@ -0,0 +1,46 @@
/** @odoo-module */
/**
* This file will used to hide the selected options from the form view
*/
import { FormController} from "@web/views/form/form_controller";
import { patch} from "@web/core/utils/patch";
var rpc = require('web.rpc');
const { onWillStart} = owl;
patch(FormController.prototype, 'jikimo_hide_options/static/src/js/form_controller.js.FormController', {
/**
* This function will used to hide the selected options from the form view
*/
setup() {
this._super();
onWillStart(async () => {
var self = this
var result;
await rpc.query({
model: 'access.right',
method: 'hide_buttons',
}).then(function(data) {
result = data;
});
for (var i = 0; i < result.length; i++) {
var group = result[i].module + "." + result[i].group_name
if (self.props.resModel == result[i].model) {
if (await self.user.hasGroup(group)) {
if (!this.user.isAdmin) {
if (result[i].is_create_or_update) {
self.canCreate = false
}
if (result[i].is_delete) {
this.archInfo.activeActions.delete = false
}
if (result[i].is_archive) {
self.archiveEnabled = false
} else {
self.archiveEnabled = true;
}
}
}
}
}
});
}
});

View File

@@ -0,0 +1,42 @@
/** @odoo-module */
/**
* This file will used to hide the selected options from the list view
*/
import { KanbanController } from '@web/views/kanban/kanban_controller';
import { patch} from "@web/core/utils/patch";
var rpc = require('web.rpc');
const {onWillStart} = owl;
patch(KanbanController.prototype, 'jikimo_hide_options/static/src/js/list_controller.js.KanbanController', {
/**
* This function will used to hide the selected options from the Kanban view
*/
setup() {
this._super();
onWillStart(async () => {
var self = this
var result;
await rpc.query({
model: 'access.right',
method: 'hide_buttons',
}).then(function(data) {
result = data;
});
for (var i = 0; i < result.length; i++) {
var group = result[i].module + "." + result[i].group_name
if (self.props.resModel == result[i].model) {
if (await self.model.user.hasGroup(group)) {
if (!self.model.user.isAdmin) {
if (result[i].is_create_or_update) {
self.props.archInfo.activeActions.create=false
self.props.archInfo.activeActions.edit=false
}
if (result[i].is_delete) {
self.props.archInfo.activeActions.delete=false
}
}
}
}
}
});
}
});

View File

@@ -0,0 +1,50 @@
/** @odoo-module */
/**
* This file will used to hide the selected options from the list view
*/
import { ListController} from '@web/views/list/list_controller';
import { patch} from "@web/core/utils/patch";
var rpc = require('web.rpc');
const {onWillStart} = owl;
patch(ListController.prototype, 'jikimo_hide_options/static/src/js/list_controller.js.ListController', {
/**
* This function will used to hide the selected options from the list view
*/
setup() {
this._super();
onWillStart(async () => {
var self = this
var result;
await rpc.query({
model: 'access.right',
method: 'hide_buttons',
}).then(function(data) {
result = data;
});
for (var i = 0; i < result.length; i++) {
var group = result[i].module + "." + result[i].group_name
if (self.props.resModel == result[i].model) {
if (await self.userService.hasGroup(group)) {
if (!this.userService.isAdmin) {
if (result[i].is_create_or_update) {
self.activeActions.create = false;
}
if (result[i].is_export) {
self.isExportEnable = false
self.isExportEnable = false
}
if (result[i].is_delete) {
self.activeActions.delete = false;
}
if (result[i].is_archive) {
self.archiveEnabled = false;
} else {
self.archiveEnabled = true;
}
}
}
}
}
});
}
});

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Action for the menu Restrict Model Access-->
<record id="access_right_action" model="ir.actions.act_window">
<field name="name">隐藏项目</field>
<field name="res_model">access.right</field>
<field name='view_mode'>tree,form</field>
</record>
<!-- Tree view for the model access.right-->
<record id="access_right_view_tree" model="ir.ui.view">
<field name="name">access.right.view.tree</field>
<field name="model">access.right</field>
<field name="arch" type="xml">
<tree>
<field name="model_id" string="模型"/>
<field name="groups_id" string="用户组"/>
<field name="is_delete" string="删除"/>
<field name="is_export" string="导出"/>
<field name="is_create_or_update" string="创建或更新"/>
<field name="is_archive" string="归档"/>
</tree>
</field>
</record>
<!-- Form view for the model access.right-->
<record id="access_right_view_form" model="ir.ui.view">
<field name="name">access.right.view.form</field>
<field name="model">access.right</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
<field name="model_id" string="模型"/>
<field name="groups_id" string="用户组"/>
</group>
<group>
<field name="is_delete" string="删除"/>
<field name="is_export" string="导出"/>
<field name="is_create_or_update" string="创建或更新"/>
<field name="is_archive" string="归档"/>
</group>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<!-- Creating a menu named Restrict Model Access-->
<menuitem id="access_right_menu"
name="隐藏项目"
parent="base.menu_administration"
action="access_right_action"
sequence="6"
groups="jikimo_hide_options.model_access_rights_groups_configure_model_access"/>
</odoo>

View File

@@ -263,6 +263,8 @@ class QualityCheck(models.Model):
picture = fields.Binary('Picture', attachment=True) picture = fields.Binary('Picture', attachment=True)
additional_note = fields.Text( additional_note = fields.Text(
'Additional Note', help="Additional remarks concerning this check.") 'Additional Note', help="Additional remarks concerning this check.")
report_result = fields.Char('检测结果', readonly=True)
report_pdf = fields.Binary('检测报告', readonly=True)
def _compute_alert_count(self): def _compute_alert_count(self):
alert_data = self.env['quality.alert'].read_group([('check_id', 'in', self.ids)], ['check_id'], ['check_id']) alert_data = self.env['quality.alert'].read_group([('check_id', 'in', self.ids)], ['check_id'], ['check_id'])
@@ -408,3 +410,5 @@ class QualityAlert(models.Model):
domain = [('team_ids', '=', False)] domain = [('team_ids', '=', False)]
stage_ids = stages._search(domain, order=order, access_rights_uid=SUPERUSER_ID) stage_ids = stages._search(domain, order=order, access_rights_uid=SUPERUSER_ID)
return stages.browse(stage_ids) return stages.browse(stage_ids)

View File

@@ -9,8 +9,10 @@ access_quality_point_user,quality.point,quality.model_quality_point,quality.grou
access_quality_point_test_type_user,quality.point.test_type,quality.model_quality_point_test_type,quality.group_quality_user,1,0,0,0 access_quality_point_test_type_user,quality.point.test_type,quality.model_quality_point_test_type,quality.group_quality_user,1,0,0,0
access_quality_check_stock_user,quality.check,quality.model_quality_check,stock.group_stock_user,1,1,1,0 access_quality_check_stock_user,quality.check,quality.model_quality_check,stock.group_stock_user,1,1,1,0
access_stock_lot_user,stock.lot,stock.model_stock_lot,quality.group_quality_user,1,0,0,0 access_stock_lot_user,stock.lot,stock.model_stock_lot,quality.group_quality_user,1,0,0,0
access_stock_pack_user,stock.move.line,stock.model_stock_move_line,quality.group_quality_user,1,0,0,0 access_stock_pack_user,stock.move.line,stock.model_stock_move_line,quality.group_quality_user,1,0,0,0
access_stock_picking,stock.move.line,stock.model_stock_picking,quality.group_quality_user,1,0,0,0 access_stock_picking_group_quality_user,stock_picking_group_quality_user,stock.model_stock_picking,quality.group_quality_user,1,0,0,0
access_quality_alert_team_manager,quality.alert.team,quality.model_quality_alert_team,quality.group_quality_manager,1,1,1,1 access_quality_alert_team_manager,quality.alert.team,quality.model_quality_alert_team,quality.group_quality_manager,1,1,1,1
access_quality_check_manager,quality.check,quality.model_quality_check,quality.group_quality_manager,1,1,1,1 access_quality_check_manager,quality.check,quality.model_quality_check,quality.group_quality_manager,1,1,1,1
access_quality_alert_manager,quality.alert,quality.model_quality_alert,quality.group_quality_manager,1,1,1,1 access_quality_alert_manager,quality.alert,quality.model_quality_alert,quality.group_quality_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
9 access_quality_point_test_type_user quality.point.test_type quality.model_quality_point_test_type quality.group_quality_user 1 0 0 0
10 access_quality_check_stock_user quality.check quality.model_quality_check stock.group_stock_user 1 1 1 0
11 access_stock_lot_user stock.lot stock.model_stock_lot quality.group_quality_user 1 0 0 0
12 access_stock_pack_user stock.move.line stock.model_stock_move_line quality.group_quality_user 1 0 0 0
13 access_stock_pack_user access_stock_picking_group_quality_user stock.move.line stock_picking_group_quality_user stock.model_stock_move_line stock.model_stock_picking quality.group_quality_user 1 0 0 0
14 access_stock_picking access_quality_alert_team_manager stock.move.line quality.alert.team stock.model_stock_picking quality.model_quality_alert_team quality.group_quality_user quality.group_quality_manager 1 0 1 0 1 0 1
15 access_quality_check_manager quality.check quality.model_quality_check quality.group_quality_manager 1 1 1 1
16 access_quality_alert_team_manager access_quality_alert_manager quality.alert.team quality.alert quality.model_quality_alert_team quality.model_quality_alert quality.group_quality_manager 1 1 1 1
17 access_quality_check_manager access_quality_reason_manager quality.check quality.reason quality.model_quality_check quality.model_quality_reason quality.group_quality_manager 1 1 1 1
18 access_quality_alert_manager access_quality_tag_manager quality.alert quality.tag quality.model_quality_alert quality.model_quality_tag quality.group_quality_manager 1 1 1 1

View File

@@ -32,7 +32,9 @@
<field name="tag_ids"/> <field name="tag_ids"/>
</div> </div>
<div> <div>
<strong><field name="product_tmpl_id"/></strong> <strong>
<field name="product_tmpl_id"/>
</strong>
</div> </div>
<div> <div>
<field name="display_name"/> <field name="display_name"/>
@@ -65,20 +67,28 @@
<field name="company_id" invisible="1"/> <field name="company_id" invisible="1"/>
<field name="product_id" invisible="1"/> <field name="product_id" invisible="1"/>
<div class="oe_button_box"> <div class="oe_button_box">
<button name="action_see_check" type="object" attrs="{'invisible': [('check_id', '=', False)]}" class="oe_stat_button" icon="fa-check-square-o"> <button name="action_see_check" type="object" attrs="{'invisible': [('check_id', '=', False)]}"
class="oe_stat_button" icon="fa-check-square-o">
<div class="o_field_widget o_stat_info"> <div class="o_field_widget o_stat_info">
<span class="o_stat_value"><field name="check_id" readonly="1"/></span> <span class="o_stat_value">
<field name="check_id" readonly="1"/>
</span>
<span class="o_stat_text">Quality Check</span> <span class="o_stat_text">Quality Check</span>
</div> </div>
</button> </button>
</div> </div>
<div class="oe_title"><h1><field name="name" readonly="1"/></h1></div> <div class="oe_title">
<h1>
<field name="name" readonly="1"/>
</h1>
</div>
<group> <group>
<group> <group>
<field name="title"/> <field name="title"/>
<field name="product_tmpl_id"/> <field name="product_tmpl_id"/>
<field name="product_id" groups="product.group_product_variant"/> <field name="product_id" groups="product.group_product_variant"/>
<field name="lot_id" context="{'default_product_id': product_id}" groups="stock.group_production_lot"/> <field name="lot_id" context="{'default_product_id': product_id}"
groups="stock.group_production_lot"/>
<field name="picking_id"/> <field name="picking_id"/>
</group> </group>
<group> <group>
@@ -186,7 +196,8 @@
<field name="view_mode">kanban,tree,form,pivot,graph,calendar</field> <field name="view_mode">kanban,tree,form,pivot,graph,calendar</field>
<field name="domain">[('team_id', '=', active_id)]</field> <field name="domain">[('team_id', '=', active_id)]</field>
<field name="context">{'default_team_id': active_id, <field name="context">{'default_team_id': active_id,
'search_default_team_id': [active_id]}</field> 'search_default_team_id': [active_id]}
</field>
</record> </record>
<record id="quality_alert_action_check" model="ir.actions.act_window"> <record id="quality_alert_action_check" model="ir.actions.act_window">
@@ -218,18 +229,29 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form> <form>
<header> <header>
<button name="do_pass" type="object" class="btn-primary" attrs="{'invisible': [('quality_state', '!=', 'none')]}" string="Pass" data-hotkey="q"/> <button name="do_pass" type="object" class="btn-primary"
<button name="do_pass" type="object" attrs="{'invisible': [('quality_state', '!=', 'fail')]}" groups="quality.group_quality_manager" string="Pass" data-hotkey="q"/> attrs="{'invisible': [('quality_state', '!=', 'none')]}" string="Pass" data-hotkey="q"/>
<button name="do_fail" type="object" class="btn-primary" attrs="{'invisible': [('quality_state', '!=', 'none')]}" string="Fail" data-hotkey="w"/> <button name="do_pass" type="object" attrs="{'invisible': [('quality_state', '!=', 'fail')]}"
<button name="do_fail" type="object" attrs="{'invisible': [('quality_state', '!=', 'pass')]}" groups="quality.group_quality_manager" string="Fail" data-hotkey="w"/> groups="quality.group_quality_manager" string="Pass" data-hotkey="q"/>
<button name="do_measure" type="object" attrs="{'invisible': ['|', ('test_type', '!=', 'measure'), ('quality_state', '!=', 'none')]}" string="Measure" data-hotkey="v"/> <button name="do_fail" type="object" class="btn-primary"
<button name="do_alert" type="object" attrs="{'invisible': ['|', ('alert_ids', '!=', []), ('quality_state', '!=', 'pass')]}" string="Create Alert" data-hotkey="g"/> attrs="{'invisible': [('quality_state', '!=', 'none')]}" string="Fail" data-hotkey="w"/>
<button name="do_alert" type="object" class="btn-primary" attrs="{'invisible': ['|', ('alert_ids', '!=', []), ('quality_state', '!=', 'fail')]}" string="Create Alert" data-hotkey="g"/> <button name="do_fail" type="object" attrs="{'invisible': [('quality_state', '!=', 'pass')]}"
groups="quality.group_quality_manager" string="Fail" data-hotkey="w"/>
<button name="do_measure" type="object"
attrs="{'invisible': ['|', ('test_type', '!=', 'measure'), ('quality_state', '!=', 'none')]}"
string="Measure" data-hotkey="v"/>
<button name="do_alert" type="object"
attrs="{'invisible': ['|', ('alert_ids', '!=', []), ('quality_state', '!=', 'pass')]}"
string="Create Alert" data-hotkey="g"/>
<button name="do_alert" type="object" class="btn-primary"
attrs="{'invisible': ['|', ('alert_ids', '!=', []), ('quality_state', '!=', 'fail')]}"
string="Create Alert" data-hotkey="g"/>
<field name="quality_state" widget="statusbar"/> <field name="quality_state" widget="statusbar"/>
</header> </header>
<sheet> <sheet>
<div class="oe_button_box" name="button_box"> <div class="oe_button_box" name="button_box">
<button name="action_see_alerts" icon="fa-bell" type="object" class="oe_stat_button" attrs="{'invisible': [('alert_count', '=', 0)]}"> <button name="action_see_alerts" icon="fa-bell" type="object" class="oe_stat_button"
attrs="{'invisible': [('alert_count', '=', 0)]}">
<field name="alert_count" string="Alerts" widget="statinfo"/> <field name="alert_count" string="Alerts" widget="statinfo"/>
</button> </button>
</div> </div>
@@ -242,20 +264,26 @@
<field name="move_line_id" invisible="1"/> <field name="move_line_id" invisible="1"/>
<field name="product_tracking" invisible="1"/> <field name="product_tracking" invisible="1"/>
<field name="is_lot_tested_fractionally" invisible="1"/> <field name="is_lot_tested_fractionally" invisible="1"/>
<field name="lot_name" attrs="{'invisible': ['|', ('product_tracking', '=', 'none'), '|', ('show_lot_text', '=', False), '|', ('measure_on', '!=', 'move_line'), ('move_line_id', '=', False)]}"/> <field name="lot_name"
<field name="lot_id" attrs="{'invisible': ['|', ('product_tracking', '=', 'none'), '|', ('show_lot_text', '=', True), ('measure_on', '!=', 'move_line')]}"/> attrs="{'invisible': ['|', ('product_tracking', '=', 'none'), '|', ('show_lot_text', '=', False), '|', ('measure_on', '!=', 'move_line'), ('move_line_id', '=', False)]}"/>
<field name="lot_id"
attrs="{'invisible': ['|', ('product_tracking', '=', 'none'), '|', ('show_lot_text', '=', True), ('measure_on', '!=', 'move_line')]}"/>
<label for="qty_line" attrs="{'invisible': [('move_line_id', '=', False)]}"/> <label for="qty_line" attrs="{'invisible': [('move_line_id', '=', False)]}"/>
<div class="o_row" attrs="{'invisible': [('move_line_id', '=', False)]}"> <div class="o_row" attrs="{'invisible': [('move_line_id', '=', False)]}">
<field name="qty_line"/> <field name="qty_line"/>
<field name="uom_id"/> <field name="uom_id"/>
</div> </div>
<label for="qty_to_test" attrs="{'invisible': ['|', ('move_line_id', '=', False), '|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}"/> <label for="qty_to_test"
<div class="o_row" attrs="{'invisible': ['|', ('move_line_id', '=', False), '|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}"> attrs="{'invisible': ['|', ('move_line_id', '=', False), '|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}"/>
<div class="o_row"
attrs="{'invisible': ['|', ('move_line_id', '=', False), '|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}">
<field name="qty_to_test"/> <field name="qty_to_test"/>
<field name="uom_id"/> <field name="uom_id"/>
</div> </div>
<label for="qty_tested" attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}"/> <label for="qty_tested"
<div class="o_row" attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}"> attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}"/>
<div class="o_row"
attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '=', False)]}">
<field name="qty_tested" attrs="{'readonly': [('quality_state', '!=', 'none')]}"/> <field name="qty_tested" attrs="{'readonly': [('quality_state', '!=', 'none')]}"/>
<field name="uom_id"/> <field name="uom_id"/>
</div> </div>
@@ -264,14 +292,17 @@
<field name="alert_ids" invisible="1"/> <field name="alert_ids" invisible="1"/>
</group> </group>
<group> <group>
<field name="picking_id" attrs="{'invisible': [('quality_state', 'in', ('pass', 'fail')), ('picking_id', '=', False)]}"/> <field name="picking_id"
attrs="{'invisible': [('quality_state', 'in', ('pass', 'fail')), ('picking_id', '=', False)]}"/>
<field name="point_id"/> <field name="point_id"/>
<field string="Type" name="test_type_id" options="{'no_open': True, 'no_create': True}" attrs="{'readonly': [('point_id', '!=', False)]}"/> <field string="Type" name="test_type_id" options="{'no_open': True, 'no_create': True}"
attrs="{'readonly': [('point_id', '!=', False)]}"/>
<field name="control_date" invisible="1"/> <field name="control_date" invisible="1"/>
<field name="team_id"/> <field name="team_id"/>
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company"/>
<field name="user_id" string="Control Person" invisible="1"/> <field name="user_id" string="Control Person" invisible="1"/>
<field name="partner_id" string="Partner" attrs="{'invisible': [('partner_id', '=', False)]}"/> <field name="partner_id" string="Partner"
attrs="{'invisible': [('partner_id', '=', False)]}"/>
</group> </group>
</group> </group>
<group attrs="{'invisible': [('test_type', '!=', 'picture')]}"> <group attrs="{'invisible': [('test_type', '!=', 'picture')]}">
@@ -280,8 +311,11 @@
<notebook> <notebook>
<page string="Notes" name="notes"> <page string="Notes" name="notes">
<group> <group>
<field name="report_result"/>
<field name="report_pdf" widget="pdf_viewer"/>
<field string="Instructions" name="note"/> <field string="Instructions" name="note"/>
<field string="Notes" name="additional_note"/> <field string="Notes" name="additional_note"/>
</group> </group>
</page> </page>
</notebook> </notebook>
@@ -311,18 +345,30 @@
<div t-attf-class="oe_kanban_card oe_kanban_global_click"> <div t-attf-class="oe_kanban_card oe_kanban_global_click">
<div class="row"> <div class="row">
<div class="col-6"> <div class="col-6">
<strong><span><t t-esc="record.name.value"/></span></strong> <strong>
<span>
<t t-esc="record.name.value"/>
</span>
</strong>
</div> </div>
<div class="col-6"> <div class="col-6">
<strong><span t-attf-class="float-end text-end badge #{['none'].indexOf(record.quality_state.raw_value) > -1 ? 'text-bg-secondary' : ['fail'].indexOf(record.quality_state.raw_value) > -1 ? 'text-bg-danger' : ['done'].indexOf(record.quality_state.raw_value) > -1 ? 'text-bg-primary' : 'text-bg-success'}"><t t-esc="record.quality_state.value"/></span></strong> <strong>
<span t-attf-class="float-end text-end badge #{['none'].indexOf(record.quality_state.raw_value) > -1 ? 'text-bg-secondary' : ['fail'].indexOf(record.quality_state.raw_value) > -1 ? 'text-bg-danger' : ['done'].indexOf(record.quality_state.raw_value) > -1 ? 'text-bg-primary' : 'text-bg-success'}">
<t t-esc="record.quality_state.value"/>
</span>
</strong>
</div> </div>
</div> </div>
<div class="row text-muted"> <div class="row text-muted">
<div class="col-8"> <div class="col-8">
<span><t t-esc="record.product_id.value"/></span> <span>
<t t-esc="record.product_id.value"/>
</span>
</div> </div>
<div class="col-4"> <div class="col-4">
<span><t t-esc="record.lot_id.value"/></span> <span>
<t t-esc="record.lot_id.value"/>
</span>
</div> </div>
</div> </div>
<div class="oe_kanban_bottom_right float-end"> <div class="oe_kanban_bottom_right float-end">
@@ -350,7 +396,8 @@
<field name="user_id" string="Checked By" optional="show" widget='many2one_avatar_user'/> <field name="user_id" string="Checked By" optional="show" widget='many2one_avatar_user'/>
<field name="point_id" optional="hide"/> <field name="point_id" optional="hide"/>
<field name="team_id" optional="show"/> <field name="team_id" optional="show"/>
<field name="quality_state" optional="show" widget='badge' decoration-success="quality_state == 'pass'" decoration-info="quality_state == 'none'" decoration-danger="quality_state == 'fail'"/> <field name="quality_state" optional="show" widget='badge' decoration-success="quality_state == 'pass'"
decoration-info="quality_state == 'none'" decoration-danger="quality_state == 'fail'"/>
<field name="company_id" groups="base.main_company"/> <field name="company_id" groups="base.main_company"/>
</tree> </tree>
</field> </field>
@@ -383,7 +430,8 @@
<field name="model">quality.check</field> <field name="model">quality.check</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search> <search>
<field name="product_id" string="Product" filter_domain="['|', ('product_id', 'ilike', self), ('lot_id', 'ilike', self)]"/> <field name="product_id" string="Product"
filter_domain="['|', ('product_id', 'ilike', self), ('lot_id', 'ilike', self)]"/>
<field name="picking_id"/> <field name="picking_id"/>
<field name="lot_id"/> <field name="lot_id"/>
<field name="team_id"/> <field name="team_id"/>
@@ -427,7 +475,8 @@
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
No quality check found No quality check found
</p><p> </p>
<p>
Define Quality Control Points in order to automatically generate Define Quality Control Points in order to automatically generate
quality checks at the right logistic operation: transfers, manufacturing orders. quality checks at the right logistic operation: transfers, manufacturing orders.
</p> </p>
@@ -459,7 +508,8 @@
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
No quality check found No quality check found
</p><p> </p>
<p>
Define Quality Control Points in order to automatically generate Define Quality Control Points in order to automatically generate
quality checks at the right logistic operation: transfers, manufacturing orders. quality checks at the right logistic operation: transfers, manufacturing orders.
</p> </p>
@@ -485,17 +535,25 @@
<field name="inherit_id" ref="stock.product_template_form_view_procurement_button"/> <field name="inherit_id" ref="stock.product_template_form_view_procurement_button"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//button[@name='action_view_related_putaway_rules']" position="after"> <xpath expr="//button[@name='action_view_related_putaway_rules']" position="after">
<button name="action_see_quality_control_points" type="object" class="oe_stat_button" icon="fa-list" attrs="{'invisible':[('type', 'not in', ['product', 'consu'])]}" groups="quality.group_quality_user"> <button name="action_see_quality_control_points" type="object" class="oe_stat_button" icon="fa-list"
attrs="{'invisible':[('type', 'not in', ['product', 'consu'])]}"
groups="quality.group_quality_user">
<field string="Quality Points" name="quality_control_point_qty" widget="statinfo"/> <field string="Quality Points" name="quality_control_point_qty" widget="statinfo"/>
</button> </button>
<button name="action_see_quality_checks" type="object" class="oe_stat_button" icon="fa-check" attrs="{'invisible':['|', ('type', 'not in', ['product', 'consu']), ('quality_pass_qty', '=', 0),('quality_fail_qty', '=', 0)]}" groups="quality.group_quality_user"> <button name="action_see_quality_checks" type="object" class="oe_stat_button" icon="fa-check"
attrs="{'invisible':['|', ('type', 'not in', ['product', 'consu']), ('quality_pass_qty', '=', 0),('quality_fail_qty', '=', 0)]}"
groups="quality.group_quality_user">
<div class="o_field_widget o_stat_info mr4"> <div class="o_field_widget o_stat_info mr4">
<span class="o_stat_text">Pass:</span> <span class="o_stat_text">Pass:</span>
<span class="o_stat_text">Fail:</span> <span class="o_stat_text">Fail:</span>
</div> </div>
<div class="o_field_widget o_stat_info"> <div class="o_field_widget o_stat_info">
<span class="o_stat_value"><field name="quality_pass_qty"/></span> <span class="o_stat_value">
<span class="o_stat_value"><field name="quality_fail_qty"/></span> <field name="quality_pass_qty"/>
</span>
<span class="o_stat_value">
<field name="quality_fail_qty"/>
</span>
</div> </div>
</button> </button>
</xpath> </xpath>
@@ -509,17 +567,25 @@
<field name="inherit_id" ref="stock.product_form_view_procurement_button"/> <field name="inherit_id" ref="stock.product_form_view_procurement_button"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//button[@name='action_view_related_putaway_rules']" position="after"> <xpath expr="//button[@name='action_view_related_putaway_rules']" position="after">
<button name="action_see_quality_control_points" type="object" icon="fa-list" class="oe_stat_button" attrs="{'invisible':[('type', 'not in', ['product', 'consu'])]}" groups="quality.group_quality_user"> <button name="action_see_quality_control_points" type="object" icon="fa-list" class="oe_stat_button"
attrs="{'invisible':[('type', 'not in', ['product', 'consu'])]}"
groups="quality.group_quality_user">
<field string="Quality Points" name="quality_control_point_qty" widget="statinfo"/> <field string="Quality Points" name="quality_control_point_qty" widget="statinfo"/>
</button> </button>
<button name="action_see_quality_checks" type="object" class="oe_stat_button" icon="fa-check" groups="quality.group_quality_user" attrs="{'invisible':[ ('quality_pass_qty', '=', 0),('quality_fail_qty', '=', 0)]}" > <button name="action_see_quality_checks" type="object" class="oe_stat_button" icon="fa-check"
groups="quality.group_quality_user"
attrs="{'invisible':[ ('quality_pass_qty', '=', 0),('quality_fail_qty', '=', 0)]}">
<div class="o_field_widget o_stat_info mr4"> <div class="o_field_widget o_stat_info mr4">
<span class="o_stat_text">Pass:</span> <span class="o_stat_text">Pass:</span>
<span class="o_stat_text">Fail:</span> <span class="o_stat_text">Fail:</span>
</div> </div>
<div class="o_field_widget o_stat_info"> <div class="o_field_widget o_stat_info">
<span class="o_stat_value"><field name="quality_pass_qty"/></span> <span class="o_stat_value">
<span class="o_stat_value"><field name="quality_fail_qty"/></span> <field name="quality_pass_qty"/>
</span>
<span class="o_stat_value">
<field name="quality_fail_qty"/>
</span>
</div> </div>
</button> </button>
</xpath> </xpath>
@@ -557,24 +623,36 @@
<templates> <templates>
<t t-name="kanban-box"> <t t-name="kanban-box">
<div t-attf-class="#{kanban_color(record.color.raw_value)}"> <div t-attf-class="#{kanban_color(record.color.raw_value)}">
<span class="oe_kanban_color_help" t-attf-title="In #{kanban_getcolorname(record.color.raw_value)}" role="img" t-attf-aria-label="In #{kanban_getcolorname(record.color.raw_value)}"/> <span class="oe_kanban_color_help"
t-attf-title="In #{kanban_getcolorname(record.color.raw_value)}" role="img"
t-attf-aria-label="In #{kanban_getcolorname(record.color.raw_value)}"/>
<div t-attf-class="o_kanban_card_header"> <div t-attf-class="o_kanban_card_header">
<div class="o_kanban_card_header_title"> <div class="o_kanban_card_header_title">
<div class="o_primary"><field name="name"/></div> <div class="o_primary">
<field name="name"/>
</div>
<div t-if="record.alias_name.value and record.alias_domain.value"> <div t-if="record.alias_name.value and record.alias_domain.value">
<small><i class="fa fa-envelope-o" role="img" aria-label="Domain alias" title="Domain alias"></i>&amp;nbsp; <field name="alias_id"/></small> <small><i class="fa fa-envelope-o" role="img" aria-label="Domain alias"
title="Domain alias"></i>&amp;nbsp;
<field name="alias_id"/>
</small>
</div> </div>
</div> </div>
</div> </div>
<div class="container o_kanban_card_content"> <div class="container o_kanban_card_content">
<div class="row"> <div class="row">
<div class="col-6 o_kanban_primary_left"> <div class="col-6 o_kanban_primary_left">
<button class="btn btn-primary" name="%(quality_alert_action_team)d" type="action"> <button class="btn btn-primary" name="%(quality_alert_action_team)d"
<span><field name="alert_count"/> Quality Alerts</span> type="action">
<span>
<field name="alert_count"/>
Quality Alerts
</span>
</button> </button>
</div> </div>
<div class="col-6 o_kanban_primary_right"> <div class="col-6 o_kanban_primary_right">
<a class="oe_kanban_stock_picking_type_list" name="%(quality_check_action_team)d" type="action"> <a class="oe_kanban_stock_picking_type_list"
name="%(quality_check_action_team)d" type="action">
<field name="check_count"/> <field name="check_count"/>
Checks In Progress Checks In Progress
</a> </a>
@@ -585,11 +663,14 @@
<div t-if="widget.editable" role="menuitem"> <div t-if="widget.editable" role="menuitem">
<a class="dropdown-item ps-0" type="edit">Configuration</a> <a class="dropdown-item ps-0" type="edit">Configuration</a>
</div> </div>
<div t-if="widget.editable" role="menuitem" aria-haspopup="true" class="o_no_padding_kanban_colorpicker"> <div t-if="widget.editable" role="menuitem" aria-haspopup="true"
class="o_no_padding_kanban_colorpicker">
<ul class="oe_kanban_colorpicker" data-field="color" role="popup"/> <ul class="oe_kanban_colorpicker" data-field="color" role="popup"/>
</div> </div>
</div> </div>
<a class="o_kanban_manage_toggle_button o_left" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a> <a class="o_kanban_manage_toggle_button o_left" href="#">
<i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/>
</a>
</div> </div>
</t> </t>
</templates> </templates>
@@ -617,7 +698,8 @@
<field name="alias_id" class="oe_read_only oe_inline" <field name="alias_id" class="oe_read_only oe_inline"
string="Email Alias" required="0"/> string="Email Alias" required="0"/>
<div class="oe_edit_only oe_inline" name="edit_alias" style="display: inline;"> <div class="oe_edit_only oe_inline" name="edit_alias" style="display: inline;">
<field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline" readonly="1"/> <field name="alias_name" class="oe_inline"/>@
<field name="alias_domain" class="oe_inline" readonly="1"/>
</div> </div>
</div> </div>
<field name="alias_contact" class="oe_inline" groups="base.group_no_one" <field name="alias_contact" class="oe_inline" groups="base.group_no_one"
@@ -658,7 +740,9 @@
<div t-attf-class="oe_kanban_content oe_kanban_global_click"> <div t-attf-class="oe_kanban_content oe_kanban_global_click">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<strong><field name="name"/></strong> <strong>
<field name="name"/>
</strong>
</div> </div>
</div> </div>
</div> </div>
@@ -675,7 +759,8 @@
<field name="view_id" ref="quality_alert_team_dashboard_view_kanban"/> <field name="view_id" ref="quality_alert_team_dashboard_view_kanban"/>
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_empty_folder"> <p class="o_view_nocontent_empty_folder">
</p><p> </p>
<p>
Quality Teams group the different quality alerts/checks Quality Teams group the different quality alerts/checks
according to the roles (teams) that need them. according to the roles (teams) that need them.
</p> </p>
@@ -747,7 +832,9 @@
<t t-name="kanban-box"> <t t-name="kanban-box">
<div t-attf-class="oe_kanban_global_click"> <div t-attf-class="oe_kanban_global_click">
<div> <div>
<strong><field name="name"/></strong> <strong>
<field name="name"/>
</strong>
</div> </div>
</div> </div>
</t> </t>
@@ -763,7 +850,8 @@
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
Create a new quality alert stage Create a new quality alert stage
</p><p> </p>
<p>
Quality Alert stages define the different steps a quality alert should go through. Quality Alert stages define the different steps a quality alert should go through.
</p> </p>
</field> </field>
@@ -816,9 +904,19 @@
<templates> <templates>
<t t-name="kanban-box"> <t t-name="kanban-box">
<div t-attf-class="oe_kanban_card oe_kanban_global_click"> <div t-attf-class="oe_kanban_card oe_kanban_global_click">
<div><strong><t t-esc="record.name.value"/></strong></div> <div>
<div><strong>Products :</strong> <t t-esc="record.product_ids.value"/></div> <strong>
<div><strong>Operations :</strong> <t t-esc="record.picking_type_ids.value"/></div> <t t-esc="record.name.value"/>
</strong>
</div>
<div>
<strong>Products :</strong>
<t t-esc="record.product_ids.value"/>
</div>
<div>
<strong>Operations :</strong>
<t t-esc="record.picking_type_ids.value"/>
</div>
</div> </div>
</t> </t>
</templates> </templates>
@@ -837,14 +935,19 @@
</button> </button>
<button name="action_see_spc_control" type="object" class="oe_stat_button" <button name="action_see_spc_control" type="object" class="oe_stat_button"
attrs="{'invisible': ['|', ('check_count', '=', 0), ('test_type', '!=', 'measure')]}"> attrs="{'invisible': ['|', ('check_count', '=', 0), ('test_type', '!=', 'measure')]}">
<span class="fa fa-2x" data-icon="&#x2211;" style="padding-left: 10px;" role="img" aria-label="Statistics" title="Statistics"/> <span class="fa fa-2x" data-icon="&#x2211;" style="padding-left: 10px;" role="img"
aria-label="Statistics" title="Statistics"/>
<div class="o_field_widget o_stat_info mr4"> <div class="o_field_widget o_stat_info mr4">
<span class="o_stat_text">AVG:</span> <span class="o_stat_text">AVG:</span>
<span class="o_stat_text">STD:</span> <span class="o_stat_text">STD:</span>
</div> </div>
<div class="o_field_widget o_stat_info"> <div class="o_field_widget o_stat_info">
<span class="o_stat_value"><field name="average"/></span> <span class="o_stat_value">
<span class="o_stat_value"><field name="standard_deviation"/></span> <field name="average"/>
</span>
<span class="o_stat_value">
<field name="standard_deviation"/>
</span>
</div> </div>
</button> </button>
</xpath> </xpath>
@@ -857,18 +960,28 @@
<xpath expr="//field[@name='test_type']" position="before"> <xpath expr="//field[@name='test_type']" position="before">
<field name="measure_on"/> <field name="measure_on"/>
<field name="measure_frequency_type" string="Control Frequency"/> <field name="measure_frequency_type" string="Control Frequency"/>
<label for="measure_frequency_value" string="" attrs="{'invisible': [('measure_frequency_type', '=', 'all')]}"/> <label for="measure_frequency_value" string=""
attrs="{'invisible': [('measure_frequency_type', '=', 'all')]}"/>
<div class="o_row" attrs="{'invisible': [('measure_frequency_type', '=', 'all')]}"> <div class="o_row" attrs="{'invisible': [('measure_frequency_type', '=', 'all')]}">
<span attrs="{'invisible': [('measure_frequency_type', '=', 'all')]}">Every</span> <span attrs="{'invisible': [('measure_frequency_type', '=', 'all')]}">Every</span>
<field name="measure_frequency_value" nolabel="1" attrs="{'invisible': [('measure_frequency_type', '!=', 'random')]}"/> <field name="measure_frequency_value" nolabel="1"
<label for="measure_frequency_value" string="% of Operations" attrs="{'invisible': ['|', ('measure_on', '=', 'move_line'), ('measure_frequency_type', '!=', 'random')]}"/> attrs="{'invisible': [('measure_frequency_type', '!=', 'random')]}"/>
<label for="measure_frequency_value" string="% of Transfers" attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('measure_frequency_type', '!=', 'random')]}"/> <label for="measure_frequency_value" string="% of Operations"
<field name="measure_frequency_unit_value" string="Frequency" nolabel="1" attrs="{'invisible': [('measure_frequency_type', '!=', 'periodical')]}"/> attrs="{'invisible': ['|', ('measure_on', '=', 'move_line'), ('measure_frequency_type', '!=', 'random')]}"/>
<field name="measure_frequency_unit" attrs="{'invisible': [('measure_frequency_type', '!=', 'periodical')], 'required': [('measure_frequency_type', '=', 'periodical')]}"/> <label for="measure_frequency_value" string="% of Transfers"
attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('measure_frequency_type', '!=', 'random')]}"/>
<field name="measure_frequency_unit_value" string="Frequency" nolabel="1"
attrs="{'invisible': [('measure_frequency_type', '!=', 'periodical')]}"/>
<field name="measure_frequency_unit"
attrs="{'invisible': [('measure_frequency_type', '!=', 'periodical')], 'required': [('measure_frequency_type', '=', 'periodical')]}"/>
</div> </div>
<field name="is_lot_tested_fractionally" attrs="{'invisible': [('measure_on', '!=', 'move_line')]}" string="Partial Transfer Test"/> <field name="is_lot_tested_fractionally" attrs="{'invisible': [('measure_on', '!=', 'move_line')]}"
<label for="testing_percentage_within_lot" attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '!=', True)]}" string="Percentage"/> string="Partial Transfer Test"/>
<div class="o_row" attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '!=', True)]}"> <label for="testing_percentage_within_lot"
attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '!=', True)]}"
string="Percentage"/>
<div class="o_row"
attrs="{'invisible': ['|', ('measure_on', '!=', 'move_line'), ('is_lot_tested_fractionally', '!=', True)]}">
<field name="testing_percentage_within_lot" nolabel="1"/> <field name="testing_percentage_within_lot" nolabel="1"/>
<label for="testing_percentage_within_lot" string="%"/> <label for="testing_percentage_within_lot" string="%"/>
</div> </div>
@@ -877,12 +990,15 @@
<label for="norm" attrs="{'invisible': [('test_type', '!=', 'measure')]}"/> <label for="norm" attrs="{'invisible': [('test_type', '!=', 'measure')]}"/>
<div class="o_row" attrs="{'invisible': [('test_type', '!=', 'measure')]}"> <div class="o_row" attrs="{'invisible': [('test_type', '!=', 'measure')]}">
<field name="norm" attrs="{'required': [('test_type', '=', 'measure')]}"/> <field name="norm" attrs="{'required': [('test_type', '=', 'measure')]}"/>
<field name="norm_unit" string="Unit of Measure" attrs="{'required': [('test_type', '=', 'measure')]}"/> <field name="norm_unit" string="Unit of Measure"
attrs="{'required': [('test_type', '=', 'measure')]}"/>
</div> </div>
<label for="tolerance_min" string="Tolerance" attrs="{'invisible': [('test_type', '!=', 'measure')]}"/> <label for="tolerance_min" string="Tolerance" attrs="{'invisible': [('test_type', '!=', 'measure')]}"/>
<div attrs="{'invisible': [('test_type', '!=', 'measure')]}" class="o_row"> <div attrs="{'invisible': [('test_type', '!=', 'measure')]}" class="o_row">
<span>from </span> <field name="tolerance_min"/> <span>from</span>
<span>to </span> <field name="tolerance_max"/> <field name="tolerance_min"/>
<span>to</span>
<field name="tolerance_max"/>
</div> </div>
</xpath> </xpath>
</field> </field>
@@ -896,7 +1012,8 @@
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
No quality control point found No quality control point found
</p><p> </p>
<p>
Quality control points define the quality checks which should be Quality control points define the quality checks which should be
performed at each operation, for your different products. performed at each operation, for your different products.
</p> </p>

View File

@@ -1,2 +1,3 @@
from . import models from . import models
from . import commons from . import commons
from . import controllers

View File

@@ -23,6 +23,8 @@
'views/tool_basic_param.xml', 'views/tool_basic_param.xml',
'views/tool_menu.xml', 'views/tool_menu.xml',
'views/menu_fixture_view.xml', 'views/menu_fixture_view.xml',
'views/change_base_view.xml',
'views/Printer.xml',
], ],
'demo': [ 'demo': [

View File

@@ -0,0 +1,28 @@
from odoo import models, fields
class Printer(models.Model):
_name = 'printer'
_description = 'Printer'
name = fields.Char(string='名称', required=True)
ip_address = fields.Char(string='IP 地址', required=True)
port = fields.Integer(string='端口', default=9100)
class TableStyle(models.Model):
_name = 'table.style'
_description = '标签样式'
name = fields.Char(string='名称', required=True)
# todo
class PrinterConfiguration(models.Model):
_name = 'printer.configuration'
_description = 'Printer Configuration'
name = fields.Char(string='名称', required=True)
printer_id = fields.Many2one('printer', string='打印机')
model = fields.Many2one('ir.model', string='模型名称')
# # 其他相关字段...

View File

@@ -1 +1,2 @@
from . import common from . import common
from . import Printer

View File

@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import time import time, datetime
import hashlib import hashlib
from odoo import models from odoo import models
import socket
class Common(models.Model): class Common(models.Model):
_name = 'sf.sync.common' _name = 'sf.sync.common'
@@ -19,3 +19,76 @@ class Common(models.Model):
'TIMESTAMP': str(timestamp), 'TIMESTAMP': str(timestamp),
'checkstr': check_sf_str} 'checkstr': check_sf_str}
return headers return headers
def get_add_time(self, parse_time):
"""
把时间增加8小时
:return:
"""
dt = datetime.datetime.strptime(parse_time, "%Y-%m-%d %H:%M:%S")
d = dt + datetime.timedelta(hours=8)
nTime = d.strftime("%Y-%m-%d %H:%M:%S")
return nTime
class PrintingUtils(models.AbstractModel):
_name = 'printing.utils'
_description = 'Utility class for printing functionalities'
def generate_zpl_code(self, code):
# 实现生成ZPL代码的逻辑
# 初始化ZPL代码字符串
zpl_code = "^XA\n"
zpl_code += "^CW1,E:SIMSUN.TTF^FS\n"
zpl_code += "^CI28\n"
# 设置二维码位置
zpl_code += "^FO50,50\n" # 调整二维码位置,使其与资产编号在同一行
zpl_code += f"^BQN,2,6^FDLM,B0093{code}^FS\n"
# 设置资产编号文本位置
zpl_code += "^FO300,60\n" # 资产编号文本的位置,与二维码在同一行
zpl_code += "^A1N,45,45^FD编码名称: ^FS\n"
# 设置{code}文本位置
# 假设{code}文本需要位于资产编号和二维码下方,中间位置
# 设置{code}文本位置并启用自动换行
zpl_code += "^FO300,120\n" # {code}文本的起始位置
zpl_code += "^FB400,4,0,L,0\n" # 定义一个宽度为500点的文本框最多4行左对齐
zpl_code += f"^A1N,40,40^FD{code}^FS\n"
# 在{code}文本框周围绘制线框
# 假设线框的外部尺寸为宽度500点高度200点
# zpl_code += "^FO300,110^GB500,200,2^FS\n" # 绘制线框边框粗细为2点
zpl_code += "^PQ1,0,1,Y\n"
zpl_code += "^XZ\n"
return zpl_code
def send_to_printer(self, host, port, zpl_code):
# 实现发送ZPL代码到打印机的逻辑
# 将ZPL代码转换为字节串
print('zpl_code', zpl_code)
zpl_bytes = zpl_code.encode('utf-8')
print(zpl_bytes)
# 创建socket对象
mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
mysocket.connect((host, port)) # 连接到打印机
mysocket.send(zpl_bytes) # 发送ZPL代码
print("ZPL code sent to printer successfully.")
except Exception as e:
print(f"Error with the connection: {e}")
finally:
mysocket.close() # 关闭连接
def print_qr_code(self, lot_name, host, port):
# 实现打印二维码的逻辑
# 这里需要传入 lot_name 参数,因为我们不能直接访问 self.lot_id.name
zpl_code = self.generate_zpl_code(lot_name)
# 发送ZPL代码到打印机
# host = "192.168.50.110" # 可以作为参数传入,或者在此配置
# port = 9100 # 可以作为参数传入,或者在此配置
self.send_to_printer(host, port, zpl_code)

View File

@@ -0,0 +1 @@
from . import controllers

View File

@@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
import logging
import json
import base64
from odoo import http
from odoo.http import request
class Manufacturing_Connect(http.Controller):
@http.route('/AutoDeviceApi/MachineToolGroup', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def get_maintenance_tool_groups_Info(self, **kw):
"""
机床刀具组接口
:param kw:
:return:
"""
logging.info('get_maintenance_tool_groups_Info:%s' % kw)
try:
datas = request.httprequest.data
ret = json.loads(datas)
# ret = json.loads(ret['result'])
logging.info('DeviceId:%s' % ret)
tool_groups = request.env['sf.tool.groups'].sudo().search([])
res = {'Succeed': True, 'Datas': []}
if tool_groups:
for item in tool_groups:
device_id = ''
for equipment_id in item.equipment_ids:
device_id = '%s,%s' % (device_id, equipment_id.name)
res['Datas'].append({
'GroupName': item.name,
'DeviceId': device_id
})
except Exception as e:
res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
logging.info('get_maintenance_tool_groups_Info error:%s' % e)
return json.JSONEncoder().encode(res)

View File

@@ -4,3 +4,4 @@ from . import tool_base_new
from . import fixture from . import fixture
from . import functional_fixture from . import functional_fixture
from . import tool_other_features from . import tool_other_features
from . import basic_parameters_fixture

View File

@@ -92,7 +92,8 @@ class MachineTool(models.Model):
type_id = fields.Many2one('sf.machine_tool.type', '型号') type_id = fields.Many2one('sf.machine_tool.type', '型号')
brand_id = fields.Many2one('sf.machine.brand', string='品牌') brand_id = fields.Many2one('sf.machine.brand', string='品牌')
state = fields.Selection( state = fields.Selection(
[("正常", "正常"), ("故障", "故障"), ("不可用", "不可用")], [("正常", "正常"), ("故障停机", "故障停机"), ("计划维保", "计划维保"), ("空闲", "空闲"),
("封存(报废)", "封存(报废)")],
default='正常', string="机床状态") default='正常', string="机床状态")
# 0606新增字段 # 0606新增字段
machine_tool_picture = fields.Binary('图片') machine_tool_picture = fields.Binary('图片')
@@ -105,6 +106,7 @@ class MachineTool(models.Model):
lead_screw = fields.Char('丝杆') lead_screw = fields.Char('丝杆')
workbench_L = fields.Char('工作台长度(mm)') workbench_L = fields.Char('工作台长度(mm)')
workbench_W = fields.Char('工作台宽度(mm)') workbench_W = fields.Char('工作台宽度(mm)')
workbench_H = fields.Char('工作台高度(mm)')
guide_rail = fields.Char('导轨') guide_rail = fields.Char('导轨')
machine_tool_L = fields.Char('机床长度(mm)') machine_tool_L = fields.Char('机床长度(mm)')
machine_tool_W = fields.Char('机床宽度(mm)') machine_tool_W = fields.Char('机床宽度(mm)')
@@ -192,6 +194,7 @@ class MachineTool(models.Model):
item.lead_screw = item.type_id.lead_screw item.lead_screw = item.type_id.lead_screw
item.workbench_L = item.type_id.workbench_L item.workbench_L = item.type_id.workbench_L
item.workbench_W = item.type_id.workbench_W item.workbench_W = item.type_id.workbench_W
item.workbench_H = item.type_id.workbench_H
item.guide_rail = item.type_id.guide_rail item.guide_rail = item.type_id.guide_rail
item.machine_tool_L = item.type_id.machine_tool_L item.machine_tool_L = item.type_id.machine_tool_L
item.machine_tool_W = item.type_id.machine_tool_W item.machine_tool_W = item.type_id.machine_tool_W
@@ -279,6 +282,7 @@ class MachineToolType(models.Model):
workpiece_load = fields.Char('工件最大负载(kg)') workpiece_load = fields.Char('工件最大负载(kg)')
workbench_L = fields.Char('工作台长度(mm)') workbench_L = fields.Char('工作台长度(mm)')
workbench_W = fields.Char('工作台宽度(mm)') workbench_W = fields.Char('工作台宽度(mm)')
workbench_H = fields.Char('工作台高度(mm)')
machine_tool_L = fields.Char('机床长度(mm)') machine_tool_L = fields.Char('机床长度(mm)')
machine_tool_W = fields.Char('机床宽度(mm)') machine_tool_W = fields.Char('机床宽度(mm)')
machine_tool_H = fields.Char('机床高度(mm)') machine_tool_H = fields.Char('机床高度(mm)')
@@ -294,8 +298,9 @@ class MachineToolType(models.Model):
x_axis = fields.Integer('X轴') x_axis = fields.Integer('X轴')
y_axis = fields.Integer('Y轴') y_axis = fields.Integer('Y轴')
z_axis = fields.Integer('Z轴') z_axis = fields.Integer('Z轴')
b_axis = fields.Integer('B') a_axis = fields.Char('a')
c_axis = fields.Integer('C') b_axis = fields.Char('B')
c_axis = fields.Char('C轴')
remark = fields.Char('备注') remark = fields.Char('备注')
control_system_id = fields.Many2one('sf.machine.control_system', control_system_id = fields.Many2one('sf.machine.control_system',
string="控制系统") string="控制系统")
@@ -308,7 +313,7 @@ class MachineToolType(models.Model):
default="", string="轴数") default="", string="轴数")
# 1212新增字段 # 1212新增字段
a_axis = fields.Integer('a轴')
function_type = fields.Selection( function_type = fields.Selection(
[("ZXJGZX", "钻铣加工中心"), ("CXJGZX", "车削加工中心"), ("FHJGZX", "复合加工中心")], [("ZXJGZX", "钻铣加工中心"), ("CXJGZX", "车削加工中心"), ("FHJGZX", "复合加工中心")],
default="", string="功能类型") default="", string="功能类型")
@@ -334,30 +339,29 @@ class MachineToolType(models.Model):
straight_cutting_feed_rate = fields.Char('直线切削进给速度(mm/min)') straight_cutting_feed_rate = fields.Char('直线切削进给速度(mm/min)')
rotary_cutting_feed_rate = fields.Char('回转切削进给速度(mm/min)') rotary_cutting_feed_rate = fields.Char('回转切削进给速度(mm/min)')
X_precision = fields.Float('X轴定位精度(mm)', digits=(12, 3)) X_precision = fields.Char('X轴定位精度(mm)')
X_precision_repeat = fields.Float('X轴重复定位精度(mm)', digits=(12, 3)) X_precision_repeat = fields.Char('X轴重复定位精度(mm)')
Y_precision = fields.Float('Y轴定位精度(mm)', digits=(12, 3)) Y_precision = fields.Char('Y轴定位精度(mm)')
Y_precision_repeat = fields.Float('Y轴重复定位精度(mm)', digits=(12, 3)) Y_precision_repeat = fields.Char('Y轴重复定位精度(mm)')
Z_precision = fields.Float('Z轴定位精度(mm)', digits=(12, 3)) Z_precision = fields.Char('Z轴定位精度(mm)')
Z_precision_repeat = fields.Float('Z轴重复定位精度(mm)', digits=(12, 3)) Z_precision_repeat = fields.Char('Z轴重复定位精度(mm)')
a_precision = fields.Float('a轴定位精度(mm)', digits=(12, 3)) a_precision = fields.Char('a轴定位精度(mm)')
a_precision_repeat = fields.Float('a轴重复定位精度(mm)', digits=(12, 3)) a_precision_repeat = fields.Char('a轴重复定位精度(mm)')
b_precision = fields.Float('b轴定位精度(mm)', digits=(12, 3)) b_precision = fields.Char('b轴定位精度(mm)')
b_precision_repeat = fields.Float('b轴重复定位精度(mm)', digits=(12, 3)) b_precision_repeat = fields.Char('b轴重复定位精度(mm)')
c_precision = fields.Float('c轴定位精度(mm)', digits=(12, 3)) c_precision = fields.Char('c轴定位精度(mm)')
c_precision_repeat = fields.Float('c轴重复定位精度(mm)', digits=(12, 3)) c_precision_repeat = fields.Char('c轴重复定位精度(mm)')
tool_full_diameter_max = fields.Float('刀具满刀最大直径(mm)') tool_full_diameter_max = fields.Float('刀具满刀最大直径(mm)')
tool_perimeter_diameter_max = fields.Float('刀具邻空刀最大直径(mm)') tool_perimeter_diameter_max = fields.Float('刀具邻空刀最大直径(mm)')
T_tool_time = fields.Integer('T-T换刀时间(s)') T_tool_time = fields.Float('T-T换刀时间(s)', digits=(12, 1))
C_tool_time = fields.Integer('C-C换刀时间(s)') C_tool_time = fields.Float('C-C换刀时间(s)', digits=(12, 1))
jg_image_id = fields.Many2many('maintenance.equipment.image', 'jg_equipment_id', string='加工能力', jg_image_id = fields.Many2many('maintenance.equipment.image', 'jg_equipment_id', string='加工能力',
domain="[('type', '=', '加工能力')]") domain="[('type', '=', '加工能力')]")
lq_image_id = fields.Many2many('maintenance.equipment.image', 'lq_equipment_id', string='冷却方式', lq_image_id = fields.Many2many('maintenance.equipment.image', 'lq_equipment_id', string='冷却方式',
domain="[('type', '=', '冷却方式')]") domain="[('type', '=', '冷却方式')]")
# 待删除字段 # 待删除字段
precision_min = fields.Float('X轴定位精度min(mm)', digits=(12, 3)) precision_min = fields.Float('X轴定位精度min(mm)', digits=(12, 3))
precision_max = fields.Float('X轴定位精度max(mm)', digits=(12, 3)) precision_max = fields.Float('X轴定位精度max(mm)', digits=(12, 3))

View File

@@ -0,0 +1,286 @@
from odoo import models, fields
class BasicParametersFixture(models.Model):
_name = 'sf.fixture.materials.basic.parameters'
_description = '夹具物料基本参数'
fixture_model_id = fields.Many2one('sf.fixture.model', '夹具型号')
name = fields.Char('物料号', size=20)
length = fields.Float('长度(mm)', digits=(16, 2))
width = fields.Float('宽度(mm)', digits=(16, 2))
height = fields.Float('高度(mm)', digits=(16, 2))
diameter = fields.Float('直径(mm)', digits=(16, 2))
# '零点卡盘' 字段
weight = fields.Float('重量(mm)', digits=(16, 2))
orientation_dish_diameter = fields.Float('定位盘直径(mm)', digits=(16, 2))
clamping_diameter = fields.Float('装夹直径(mm)', digits=(16, 2))
clamping_num = fields.Selection([('1', '1'), ('2', '2'), ('4', '4'), ('6', '6'), ('8', '8')], string='装夹单元数')
chucking_power_max = fields.Float('最大夹持力(KN)', digits=(16, 2))
repeated_positioning_accuracy = fields.Char('重复定位精度(mm)', size=20)
boolean_transposing_hole = fields.Boolean('是否有转位孔')
unlocking_method = fields.Selection(
[('手动', '手动'), ('气动', '气动'), ('液压', '液压'), ('电动', '电动'), ('其他', '其他')], string='解锁方式')
boolean_chip_blowing_function = fields.Boolean('是否有吹屑功能')
carrying_capacity_max = fields.Float('最大承载重量(kg)', digits=(16, 2))
rigidity = fields.Integer('硬度HRC')
materials_model_id = fields.Many2one('sf.materials.model', '夹具材质')
machine_tool_type_id = fields.Many2one('sf.machine_tool.type', '适用机床型号')
# ’零点托盘‘ 字段
connector_diameter = fields.Selection([('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('8', '8')],
string='连接头直径(mm)')
way_to_install = fields.Selection(
[('接口式', '接口式'), ('螺栓固定', '螺栓固定'), ('磁吸式', '磁吸式'), ('其他', '其他')], string='安装方式')
type_of_drive = fields.Selection(
[('气动式', '气动式'), ('液压式', '液压式'), ('机械式', '机械式'), ('电动式', '电动式'), ('其他', '其他')],
string='驱动方式')
# ’气动夹具‘ 字段
gripper_length_min = fields.Float('夹持工件最小长度(mm)', digits=(16, 2))
gripper_width_min = fields.Float('夹持工件最小宽度(mm)', digits=(16, 2))
gripper_height_min = fields.Float('夹持工件最小高度(mm)', digits=(16, 2))
gripper_diameter_min = fields.Float('夹持工件最小直径(mm)', digits=(16, 2))
gripper_length_max = fields.Float('夹持工件最大长度(mm)', digits=(16, 2))
gripper_width_max = fields.Float('夹持工件最大宽度(mm)', digits=(16, 2))
gripper_height_max = fields.Float('夹持工件最大高度(mm)', digits=(16, 2))
gripper_diameter_max = fields.Float('夹持工件最大直径(mm)', digits=(16, 2))
rated_air_pressure = fields.Float('额定气压(Mpa)', digits=(16, 2))
interface_materials_model_id = fields.Many2one('sf.materials.model', '接口类型')
# ‘虎钳夹具' 字段
transverse_groove = fields.Float('横向配合槽n(mm)', digits=(16, 2))
longitudinal_fitting_groove = fields.Float('纵向配合槽l(mm)', digits=(16, 2))
# '磁吸夹具' 字段
height_tolerance_value = fields.Char('高度公差(mm)')
rated_adsorption_force = fields.Float('额定吸附力(N/cm²)', digits=(16, 2))
magnetic_field_height = fields.Float('磁场高度(mm)', digits=(16, 2))
magnetic_pole_plate_grinding_allowance = fields.Float('磁极板磨削余量(mm)', digits=(16, 2))
# '转接板(锁板)夹具' 字段
screw_size = fields.Float('螺牙大小(mm)', digits=(16, 2))
via_hole_diameter = fields.Float('过孔直径(mm)', digits=(16, 2))
# '三爪卡盘' 字段
mounting_hole_depth = fields.Float('安装孔深度(mm)', digits=(16, 2))
centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2))
code = fields.Char('编码')
active = fields.Boolean('有效', default=True)
def _get_basic_parameters_list(self, fixture_materials_data, fixture_materials_name):
if fixture_materials_name == '零点卡盘':
return self._json_zero_chuck_param(fixture_materials_data)
elif fixture_materials_name == '零点托盘':
return self._json_zero_tray_param(fixture_materials_data)
elif fixture_materials_name == '气动夹具':
return self._json_pneumatic_fixture_param(fixture_materials_data)
elif fixture_materials_name == '虎钳夹具':
return self._json_jaw_vice_fixture_param(fixture_materials_data)
elif fixture_materials_name == '磁吸夹具':
return self._json_magnet_fixture_param(fixture_materials_data)
elif fixture_materials_name == '转接板(锁板)夹具':
return self._json_adapter_board_fixture_param(fixture_materials_data)
elif fixture_materials_name == '三爪卡盘':
return self._json_scroll_chuck_param(fixture_materials_data)
return {}
def _json_zero_chuck_param(self, obj):
"""零点卡盘将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
'height': obj['height'],
'diameter': obj['diameter'],
'weight': obj['weight'],
'orientation_dish_diameter': obj['orientation_dish_diameter'],
'clamping_diameter': obj['clamping_diameter'],
'clamping_num': obj['clamping_num'],
'chucking_power_max': obj['chucking_power_max'],
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
'boolean_transposing_hole': obj['boolean_transposing_hole'],
'unlocking_method': obj['unlocking_method'],
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
'carrying_capacity_max': obj['carrying_capacity_max'],
'rigidity': obj['rigidity'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'machine_tool_type_id': self.env['sf.machine_tool.type'].sudo().search(
[('code', '=', obj['machine_tool_type_id']), ('active', '=', True)]).id,
'active': obj['active']}
def _json_zero_tray_param(self, obj):
"""零点托盘将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
'height': obj['height'],
'diameter': obj['diameter'],
'weight': obj['weight'],
'clamping_diameter': obj['clamping_diameter'],
'connector_diameter': obj['connector_diameter'],
'chucking_power_max': obj['chucking_power_max'],
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
'way_to_install': obj['way_to_install'],
'type_of_drive': obj['type_of_drive'],
'carrying_capacity_max': obj['carrying_capacity_max'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'rigidity': obj['rigidity'],
'active': obj['active']}
def _json_pneumatic_fixture_param(self, obj):
"""气动夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
'height': obj['height'],
'weight': obj['weight'],
'gripper_length_min': obj['gripper_length_min'],
'gripper_width_min': obj['gripper_width_min'],
'gripper_height_min': obj['gripper_height_min'],
'gripper_diameter_min': obj['gripper_diameter_min'],
'gripper_length_max': obj['gripper_length_max'],
'gripper_width_max': obj['gripper_width_max'],
'gripper_height_max': obj['gripper_height_max'],
'gripper_diameter_max': obj['gripper_diameter_max'],
'chucking_power_max': obj['chucking_power_max'],
'carrying_capacity_max': obj['carrying_capacity_max'],
'rated_air_pressure': obj['rated_air_pressure'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'rigidity': obj['rigidity'],
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_jaw_vice_fixture_param(self, obj):
"""虎钳夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
'height': obj['height'],
'weight': obj['weight'],
'gripper_length_min': obj['gripper_length_min'],
'gripper_width_min': obj['gripper_width_min'],
'gripper_height_min': obj['gripper_height_min'],
'gripper_diameter_min': obj['gripper_diameter_min'],
'gripper_length_max': obj['gripper_length_max'],
'gripper_width_max': obj['gripper_width_max'],
'gripper_height_max': obj['gripper_height_max'],
'gripper_diameter_max': obj['gripper_diameter_max'],
'chucking_power_max': obj['chucking_power_max'],
'carrying_capacity_max': obj['carrying_capacity_max'],
'transverse_groove': obj['transverse_groove'],
'longitudinal_fitting_groove': obj['longitudinal_fitting_groove'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'rigidity': obj['rigidity'],
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_magnet_fixture_param(self, obj):
"""磁吸夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
'height': obj['height'],
'height_tolerance_value': obj['height_tolerance_value'],
'weight': obj['weight'],
'gripper_length_min': obj['gripper_length_min'],
'gripper_width_min': obj['gripper_width_min'],
'gripper_height_min': obj['gripper_height_min'],
'gripper_diameter_min': obj['gripper_diameter_min'],
'gripper_length_max': obj['gripper_length_max'],
'gripper_width_max': obj['gripper_width_max'],
'gripper_height_max': obj['gripper_height_max'],
'gripper_diameter_max': obj['gripper_diameter_max'],
'rated_adsorption_force': obj['rated_adsorption_force'],
'magnetic_field_height': obj['magnetic_field_height'],
'magnetic_pole_plate_grinding_allowance': obj['magnetic_pole_plate_grinding_allowance'],
'carrying_capacity_max': obj['carrying_capacity_max'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'rigidity': obj['rigidity'],
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_adapter_board_fixture_param(self, obj):
"""转接板(锁板)夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
'height': obj['height'],
'weight': obj['weight'],
'gripper_length_min': obj['gripper_length_min'],
'gripper_width_min': obj['gripper_width_min'],
'gripper_height_min': obj['gripper_height_min'],
'gripper_diameter_min': obj['gripper_diameter_min'],
'gripper_length_max': obj['gripper_length_max'],
'gripper_width_max': obj['gripper_width_max'],
'gripper_height_max': obj['gripper_height_max'],
'gripper_diameter_max': obj['gripper_diameter_max'],
'chucking_power_max': obj['chucking_power_max'],
'carrying_capacity_max': obj['carrying_capacity_max'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'rigidity': obj['rigidity'],
'screw_size': obj['screw_size'],
'via_hole_diameter': obj['via_hole_diameter'],
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}
def _json_scroll_chuck_param(self, obj):
"""转接板(锁板)夹具将data数据转换成list数据"""
return {'code': obj['code'],
'fixture_model_id': self.env['sf.fixture.model'].sudo().search(
[('code', '=', obj.get('fixture_model_code'))]).id,
'name': obj['name'],
'length': obj['length'],
'width': obj['width'],
'height': obj['height'],
'diameter': obj['diameter'],
'weight': obj['weight'],
'gripper_length_min': obj['gripper_length_min'],
'gripper_width_min': obj['gripper_width_min'],
'gripper_height_min': obj['gripper_height_min'],
'gripper_diameter_min': obj['gripper_diameter_min'],
'gripper_length_max': obj['gripper_length_max'],
'gripper_width_max': obj['gripper_width_max'],
'gripper_height_max': obj['gripper_height_max'],
'gripper_diameter_max': obj['gripper_diameter_max'],
'chucking_power_max': obj['chucking_power_max'],
'carrying_capacity_max': obj['carrying_capacity_max'],
'materials_model_id': self.env['sf.materials.model'].sudo().search(
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
'rigidity': obj['rigidity'],
'mounting_hole_depth': obj['mounting_hole_depth'],
'centering_diameter': obj['centering_diameter'],
'type_of_drive': obj['type_of_drive'],
'active': obj['active']}

View File

@@ -1,7 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import logging import logging
from urllib.parse import urlencode from urllib.parse import urlencode
from odoo import fields, models from odoo import fields, models, api
from odoo.exceptions import UserError
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@@ -59,6 +61,14 @@ class MrsMaterialModel(models.Model):
supplier_ids = fields.One2many('sf.supplier.sort', 'materials_model_id', string='供应商') supplier_ids = fields.One2many('sf.supplier.sort', 'materials_model_id', string='供应商')
active = fields.Boolean('有效', default=True) active = fields.Boolean('有效', default=True)
@api.onchange('gain_way')
def _check_gain_way(self):
if not self.gain_way:
raise UserError("请选择获取方式")
if self.gain_way in ['外协', '采购']:
if not self.supplier_ids:
raise UserError("请添加供应商")
class MrsProductionProcessCategory(models.Model): class MrsProductionProcessCategory(models.Model):
_name = 'sf.production.process.category' _name = 'sf.production.process.category'
@@ -80,7 +90,7 @@ class MrsProductionProcess(models.Model):
code = fields.Char("编码") code = fields.Char("编码")
name = fields.Char('名称') name = fields.Char('名称')
remark = fields.Text("备注") remark = fields.Text("备注")
processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序') # processing_order_ids = fields.One2many('sf.processing.order', 'production_process_id', string='工序')
partner_process_ids = fields.Many2many('res.partner', 'process_ids', '加工工厂') partner_process_ids = fields.Many2many('res.partner', 'process_ids', '加工工厂')
active = fields.Boolean('有效', default=True) active = fields.Boolean('有效', default=True)
parameter_ids = fields.One2many('sf.production.process.parameter', 'process_id', string='可选参数') parameter_ids = fields.One2many('sf.production.process.parameter', 'process_id', string='可选参数')
@@ -88,25 +98,25 @@ class MrsProductionProcess(models.Model):
# workcenter_ids = fields.Many2many('mrp.workcenter', 'rel_workcenter_process', required=True) # workcenter_ids = fields.Many2many('mrp.workcenter', 'rel_workcenter_process', required=True)
class MrsProcessingTechnology(models.Model): # class MrsProcessingTechnology(models.Model):
_name = 'sf.processing.technology' # _name = 'sf.processing.technology'
_description = '加工工艺' # _description = '加工工艺'
#
name = fields.Char('名称', index=True) # name = fields.Char('名称', index=True)
remark = fields.Text('备注', index=True) # remark = fields.Text('备注', index=True)
code = fields.Char("编码") # code = fields.Char("编码")
processing_order_ids = fields.Many2many('sf.processing.order', 'sf_associated_processes', # processing_order_ids = fields.Many2many('sf.processing.order', 'sf_associated_processes',
index=True, string='工序') # index=True, string='工序')
active = fields.Boolean('有效', default=True) # active = fields.Boolean('有效', default=True)
class MrsProcessingOrder(models.Model): # class MrsProcessingOrder(models.Model):
_name = 'sf.processing.order' # _name = 'sf.processing.order'
_description = '工序' # _description = '工序'
sequence = fields.Integer('Sequence') # sequence = fields.Integer('Sequence')
processing_technology_ids = fields.Many2many('sf.processing.technology', 'sf_associated_processes', # processing_technology_ids = fields.Many2many('sf.processing.technology', 'sf_associated_processes',
index=True, string='加工工艺') # index=True, string='加工工艺')
production_process_id = fields.Many2one('sf.production.process', string="表面工艺") # production_process_id = fields.Many2one('sf.production.process', string="表面工艺")
class SupplierSort(models.Model): class SupplierSort(models.Model):

View File

@@ -26,66 +26,65 @@ class FixtureModel(models.Model):
_name = 'sf.fixture.model' _name = 'sf.fixture.model'
_description = "夹具型号" _description = "夹具型号"
name = fields.Char(string="名称", size=15) name = fields.Char(string="名称", size=50)
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", ) fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料")
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name', store=True) fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name')
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型") multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型")
brand_id = fields.Many2one('sf.machine.brand', string="品牌", domain="[('tag_ids.name', 'ilike', '夹具')]") brand_id = fields.Many2one('sf.machine.brand', string="品牌")
clamping_way = fields.Char(string="装夹方式") model_file = fields.Binary(string="图片")
port_type = fields.Char(string="接口类型") status = fields.Boolean('状态')
model_file = fields.Binary(string="3D模型图") active = fields.Boolean('有效', default=False)
length = fields.Char(string="长度(mm)")
width = fields.Char(string="宽度(mm)")
height = fields.Char(string="高度(mm)")
weight = fields.Char(string="重量(kg)")
clamp_workpiece_length_max = fields.Integer(string="夹持工件长度max(mm)")
clamp_workpiece_width_max = fields.Integer(string="夹持工件宽度max(mm)")
clamp_workpiece_height_max = fields.Integer(string="夹持工件高度max(mm)")
clamp_workpiece_diameter_max = fields.Float(string="夹持工件直径max(mm)")
maximum_carrying_weight = fields.Float(string="最大承载重量(kg)")
maximum_clamping_force = fields.Integer(string="最大夹持力(n)")
materials_model_id = fields.Many2one('sf.materials.model', string="材料型号")
driving_way = fields.Selection([('气动', '气动'), ('液压', '液压'), ('机械', '机械')], string="驱动方式")
apply_machine_tool_type_ids = fields.Many2many('sf.machine_tool.type', 'rel_fixture_model_machine_tool_type',
string="适用机床型号")
through_hole_size = fields.Integer(string="过孔大小[mm]")
screw_size = fields.Integer(string="螺牙大小[mm]")
active = fields.Boolean('有效', default=True)
def _get_code(self, fixture_model_type_code):
fixture_model = self.env['sf.fixture.model'].sudo().search(
[('code', 'ilike', fixture_model_type_code)],
limit=1,
order="id desc")
if not fixture_model:
num = "%03d" % 1
else:
m = int(fixture_model.code[-3:]) + 1
num = "%03d" % m
return "%s%s" % (fixture_model_type_code, num)
zero_chuck_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='零点卡盘基本参数')
zero_tray_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='零点托盘基本参数')
pneumatic_fixture_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='气动夹具基本参数')
jaw_vice_fixture_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='虎钳夹具基本参数')
magnet_fixture_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='磁吸夹具基本参数')
adapter_board_fixture_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='转接板(锁板)夹具基本参数')
scroll_chuck_ids = fields.One2many('sf.fixture.materials.basic.parameters', 'fixture_model_id',
string='三爪卡盘基本参数')
code = fields.Char(string='编码', readonly=True) code = fields.Char(string='编码', readonly=True)
def _onchange_fixture_material_id(self, fixture_material_id): # def _get_code(self, fixture_model_type_code):
if fixture_material_id: # fixture_model = self.env['sf.fixture.model'].sudo().search(
if fixture_material_id.name == "气动夹具": # [('code', 'ilike', fixture_model_type_code)],
code = self._get_code("JKM-C-JJWL-QDJJ-") # limit=1,
elif fixture_material_id.name == "转接板(锁板)夹具": # order="id desc")
code = self._get_code("JKM-C-JJWL-ZJBJJ-") # if not fixture_model:
elif fixture_material_id.name == "磁吸夹具": # num = "%03d" % 1
code = self._get_code("JKM-C-JJWL-CXJJ-") # else:
elif fixture_material_id.name == "虎钳夹具": # m = int(fixture_model.code[-3:]) + 1
code = self._get_code("JKM-C-JJWL-HQJJ-") # num = "%03d" % m
else: # return "%s%s" % (fixture_model_type_code, num)
code = self._get_code("JKM-C-JJWL-LDKP-") #
return code # def _onchange_fixture_material_id(self, fixture_material_id):
# if fixture_material_id:
@api.model_create_multi # if self.fixture_material_id.name == "气动夹具":
def create(self, vals): # code = self._get_code("JKM-C-JJWL-QDJJ-")
obj = super(FixtureModel, self).create(vals) # elif self.fixture_material_id.name == "转接板(锁板)夹具":
if obj.fixture_material_id: # code = self._get_code("JKM-C-JJWL-ZJJJ-")
code = self._onchange_fixture_material_id(obj.fixture_material_id) # elif self.fixture_material_id.name == "磁吸夹具":
obj.code = code # code = self._get_code("JKM-C-JJWL-CXJJ-")
return obj # elif self.fixture_material_id.name == "虎钳夹具":
# code = self._get_code("JKM-C-JJWL-HQJJ-")
# elif self.fixture_material_id.name == "零点托盘":
# code = self._get_code("JKM-C-JJWL-LDTP-")
# elif self.fixture_material_id.name == "三爪卡盘":
# code = self._get_code("JKM-C-JJWL-SZKP-")
# else:
# code = self._get_code("JKM-C-JJWL-LDKP-")
# return code
#
# @api.model_create_multi
# def create(self, vals):
# obj = super(FixtureModel, self).create(vals)
# if obj.fixture_material_id:
# code = self._onchange_fixture_material_id(obj.fixture_material_id)
# obj.code = code
# return obj

View File

@@ -1,5 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from datetime import date
from odoo import fields, models, api from odoo import fields, models, api
from odoo.exceptions import UserError
class CuttingToolMaterial(models.Model): class CuttingToolMaterial(models.Model):
@@ -75,6 +77,8 @@ class CuttingToolModel(models.Model):
integral_coarse_medium_fine = fields.Selection([('', ''), ('', ''), ('', '')], '粗/中/精') integral_coarse_medium_fine = fields.Selection([('', ''), ('', ''), ('', '')], '粗/中/精')
integral_run_out_accuracy_max = fields.Char('整体式刀具端跳精度max') integral_run_out_accuracy_max = fields.Char('整体式刀具端跳精度max')
integral_run_out_accuracy_min = fields.Char('整体式刀具端跳精度min') integral_run_out_accuracy_min = fields.Char('整体式刀具端跳精度min')
ramping_angle_ids = fields.One2many('sf.ramping.angle', 'standard_library_id', '坡铣角度',
domain=lambda self: [('standard_library_id', '=', self.id)])
fit_blade_shape_id = fields.Many2one('maintenance.equipment.image', fit_blade_shape_id = fields.Many2one('maintenance.equipment.image',
'适配刀片形状', domain=[('type', '=', '刀片形状')]) '适配刀片形状', domain=[('type', '=', '刀片形状')])
@@ -87,8 +91,8 @@ class CuttingToolModel(models.Model):
'柄部类型', domain=[('type', '=', '柄部类型')]) '柄部类型', domain=[('type', '=', '柄部类型')])
cutting_direction_ids = fields.Many2many('maintenance.equipment.image', 'cutting_direction_library_rel', cutting_direction_ids = fields.Many2many('maintenance.equipment.image', 'cutting_direction_library_rel',
'走刀方向', domain=[('type', '=', '走刀方向')]) '走刀方向', domain=[('type', '=', '走刀方向')])
suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'suitable_coolant_library_rel', suitable_coolant_ids = fields.Many2many('maintenance.equipment.image', 'suitable_coolants_library_rel',
'适合冷却', domain=[('type', '=', '冷却')]) '适合冷却方式', domain=[('type', '=', '冷却方式')])
compaction_way_id = fields.Many2one('maintenance.equipment.image', compaction_way_id = fields.Many2one('maintenance.equipment.image',
'压紧方式', domain=[('type', '=', '压紧方式')]) '压紧方式', domain=[('type', '=', '压紧方式')])
integral_tool_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', integral_tool_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
@@ -104,21 +108,38 @@ class CuttingToolModel(models.Model):
chuck_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters', chuck_basic_parameters_ids = fields.One2many('sf.tool.materials.basic.parameters',
'standard_library_id', string='夹头基本参数') 'standard_library_id', string='夹头基本参数')
cutting_speed_ids = fields.One2many('sf.cutting.speed', 'standard_library_id', string='切削速度Vc') cutting_speed_ids = fields.One2many('sf.cutting.speed', 'standard_library_id', string='切削速度Vc')
feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz', feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz(整体式刀具)')
domain=[('cutting_speed', '!=', False)]) feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz(刀片)')
feed_per_tooth_ids_2 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz',
domain=[('machining_method', '!=', False)])
feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz',
domain=[('cutting_speed', '!=', False)])
feed_per_tooth_ids_4 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz',
domain=[('machining_method', '!=', False)])
material_model_id = fields.Many2one('sf.materials.model', '材料型号') material_model_id = fields.Many2one('sf.materials.model', '材料型号')
@api.onchange('cutting_tool_material_id')
def _get_code(self):
if self.is_cloud is False:
today = date.today().strftime("%Y%m%d")
today_code = 'T-DJWL-%s-%s' % (self.cutting_tool_material_id.code, today)
cutting_tool_model = self.search(
[('code', 'ilike', today_code), ('is_cloud', '=', False),
('active', 'in', [True, False])],
limit=1,
order="id desc")
if not cutting_tool_model:
num = "%03d" % 1
else:
m = int(today_code[-3:]) + 1
num = "%03d" % m
self.code = "%s%s" % (today_code, num)
# 适用夹头型号可以多选 # 适用夹头型号可以多选
chuck_ids = fields.Many2many( # chuck_ids = fields.Many2many(
# 'sf.cutting_tool.standard.library',
# relation='cutting_tool_type_library_handle_chuck_rel',
# column1='model_id_1',
# column2='model_id_2',
# domain="[('cutting_tool_material_id.name', '=', '夹头')]",
# string='适用夹头型号')
chuck_id = fields.Many2one(
'sf.cutting_tool.standard.library', 'sf.cutting_tool.standard.library',
relation='cutting_tool_type_library_handle_chuck_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '夹头')]", domain="[('cutting_tool_material_id.name', '=', '夹头')]",
string='适用夹头型号') string='适用夹头型号')
cutter_bar_ids = fields.Many2many( cutter_bar_ids = fields.Many2many(
@@ -138,22 +159,28 @@ class CuttingToolModel(models.Model):
string='适用刀盘型号' # 使用空列表作为默认值 string='适用刀盘型号' # 使用空列表作为默认值
) )
# 刀杆/参数 # 刀杆/参数
blade_ids = fields.Many2many( # blade_ids = fields.Many2many(
# 'sf.cutting_tool.standard.library',
# relation='cutting_tool_type_library_pad_blade_rel',
# column1='model_id_1',
# column2='model_id_2',
# domain="[('cutting_tool_material_id.name', '=', '刀片')]",
# string='适用刀片型号' # 使用空列表作为默认值
# )
handle_id = fields.Many2one(
'sf.cutting_tool.standard.library', 'sf.cutting_tool.standard.library',
relation='cutting_tool_type_library_pad_blade_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀片')]",
string='适用刀片型号' # 使用空列表作为默认值
)
handle_ids = fields.Many2many(
'sf.cutting_tool.standard.library',
relation='cutting_tool_type_library_chuck_handle_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀柄')]", domain="[('cutting_tool_material_id.name', '=', '刀柄')]",
string='适用刀柄型号' string='适用刀柄型号'
) )
# handle_ids = fields.Many2many(
# 'sf.cutting_tool.standard.library',
# relation='cutting_tool_type_library_chuck_handle_rel',
# column1='model_id_1',
# column2='model_id_2',
# domain="[('cutting_tool_material_id.name', '=', '刀柄')]",
# string='适用刀柄型号'
# )
active = fields.Boolean('有效', default=True) active = fields.Boolean('有效', default=True)
is_cloud = fields.Boolean('云端数据', default=False) is_cloud = fields.Boolean('云端数据', default=False)
@@ -175,12 +202,12 @@ class MaintenanceStandardImage(models.Model):
image = fields.Binary(string='图文') image = fields.Binary(string='图文')
type = fields.Selection( type = fields.Selection(
[('加工能力', '加工能力'), ('刀尖特征', '刀尖特征'), ('柄部类型', '柄部类型'), ('走刀方向', '走刀方向'), [('加工能力', '加工能力'), ('刀尖特征', '刀尖特征'), ('柄部类型', '柄部类型'), ('走刀方向', '走刀方向'),
('冷却液', '冷却液'), ('压紧方式', '压紧方式'), ('刀片形状', '刀片形状'), ('冷却方式', '冷却方式')], ('压紧方式', '压紧方式'), ('刀片形状', '刀片形状'), ('冷却方式', '冷却方式')],
string='特征') string='特征')
equipment_id = fields.Many2many('maintenance.equipment', 'image_id', string='设备') equipment_id = fields.Many2many('maintenance.equipment', 'image_id', string='设备')
equipment_lq_id = fields.Many2many('maintenance.equipment', 'image_lq_id', string='设备') equipment_lq_id = fields.Many2many('maintenance.equipment', 'image_lq_id', string='设备能力特征')
jg_equipment_id = fields.Many2many('sf.machine_tool.type', 'jg_image_id', string='机床型号') jg_equipment_id = fields.Many2many('sf.machine_tool.type', 'jg_image_id', string='机床型号')
lq_equipment_id = fields.Many2many('sf.machine_tool.type', 'lq_image_id', string='机床型号') lq_equipment_id = fields.Many2many('sf.machine_tool.type', 'lq_image_id', string='机床型号能力特征')
def _get_ids(self, name_arr): def _get_ids(self, name_arr):
ability_feature_ids = [] ability_feature_ids = []
@@ -233,3 +260,90 @@ class MaintenanceStandardImage(models.Model):
else: else:
record['image'] = "" record['image'] = ""
return records return records
class ToolGroups(models.Model):
_name = 'sf.tool.groups'
_description = '刀具组'
name = fields.Char('名称')
equipment_ids = fields.Many2many('maintenance.equipment', 'ref_maintenance_equipment', string='机台号')
remark = fields.Char('备注', size=50)
active = fields.Boolean(string='已归档', default=True)
# ==========机床刀具组接口==========
# def _register_tool_groups(self, obj):
# # create_url = '/AutoDeviceApi/MachineToolGroup'
# sf_sync_config = self.env['res.config.settings'].get_values()
# token = sf_sync_config['token']
# sf_secret_key = sf_sync_config['sf_secret_key']
# headers = Common.get_headers(obj, token, sf_secret_key)
# strurl = "https://x24467i973.zicp.fun/AutoDeviceApi/MachineToolGroup"
# device_id = ''
# name = None
# if obj:
# for equipment_id in obj.equipment_ids:
# device_id = '%s,%s' % (device_id, equipment_id.name)
# name = obj.name
# val = {
# 'DeviceId': device_id,
# 'GroupName': name,
# }
# kw = json.dumps(val, ensure_ascii=False)
# r = requests.post(strurl, json={}, data={'kw': kw, 'token': token}, headers=headers)
# print(r)
# ret = r.json()
# if r == 200:
# return "机床刀具组发送成功"
# else:
# raise ValidationError("机床刀具组发送失败")
# def write(self, vals):
# obj = super().write(vals)
# self._register_tool_groups(self)
# return obj
#
# @api.model_create_multi
# def create(self, vals_list):
# records = super(ToolGroups, self).create(vals_list)
# self._register_tool_groups(records)
# return records
class ToolInventory(models.Model):
_name = 'sf.tool.inventory'
_description = '功能刀具清单'
name = fields.Char('功能刀具名称', required=True)
type = fields.Char('类型')
functional_cutting_tool_model_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型')
prefix = fields.Char('前缀')
postfix = fields.Char('后缀')
diameter = fields.Float('直径(mm)')
angle = fields.Float('R角(mm)')
tool_length = fields.Float('刀具总长(mm)')
blade_length = fields.Float('避空长/刃长(mm)')
knife_head_name = fields.Char('刀头名称')
cutter_number = fields.Char('刀号')
blade_number = fields.Integer('刃数(个)')
extension = fields.Float('伸出长度(mm)')
work_material = fields.Selection([('', ''), ('', '')], string='加工材料')
life_span = fields.Float('寿命(h)')
tool_groups_id = fields.Many2one('sf.tool.groups', string='刀具组')
active = fields.Boolean('已归档', default=True)
@api.model_create_multi
def create(self, vals_list):
# 名称重复校验
name_list = []
for val in vals_list:
tool_inventory = self.search([('name', '=', val['name'])])
if tool_inventory:
name_list.append(val['name'])
if name_list:
raise UserError("功能刀具名称%s已存在,请重新输入" % name_list)
records = super(ToolInventory, self).create(vals_list)
return records

View File

@@ -0,0 +1,10 @@
diff a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py (rejected hunks)
@@ -108,6 +108,4 @@
cutting_speed_ids = fields.One2many('sf.cutting.speed', 'standard_library_id', string='切削速度Vc')
- feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz',
- domain=[('cutting_speed', '!=', False)])
- feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz',
- domain=[('cutting_speed', '!=', False)])
+ feed_per_tooth_ids = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz')
+ feed_per_tooth_ids_3 = fields.One2many('sf.feed.per.tooth', 'standard_library_id', '每齿走刀量fz')

View File

@@ -6,21 +6,23 @@ class ToolMaterialsBasicParameters(models.Model):
_description = '刀具物料基本参数' _description = '刀具物料基本参数'
name = fields.Char('物料号', size=50) name = fields.Char('物料号', size=50)
code = fields.Char('编码', size=50)
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='刀具标准库') standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='刀具标准库')
cutting_tool_type = fields.Char(related='standard_library_id.cutting_tool_type', string='刀具物料类型', cutting_tool_type = fields.Char(related='standard_library_id.cutting_tool_type', string='刀具物料类型',
store=True) store=True)
is_cloud = fields.Boolean(related='standard_library_id.is_cloud', string='云端数据')
# 整体式刀具参数 # 整体式刀具参数
total_length = fields.Float('总长度(mm)') total_length = fields.Float('总长度(mm)')
blade_number = fields.Selection( blade_number = fields.Selection(
[('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')], [('0', '0'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8')],
string='刃数(个)') string='刃数(个)', default='0')
neck_diameter = fields.Float('颈部直径(mm)') neck_diameter = fields.Float('颈部直径(mm)')
neck_length = fields.Float('颈部长度(mm)') neck_length = fields.Float('颈部长度(mm)')
handle_diameter = fields.Float('柄部直径(mm)') handle_diameter = fields.Float('柄部直径(mm)')
handle_length = fields.Float('柄部长度(mm)') handle_length = fields.Float('柄部长度(mm)')
blade_tip_diameter = fields.Integer('刀尖直径(mm)') blade_tip_diameter = fields.Integer('刀尖直径(mm)')
blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角)', size=20) blade_tip_working_size = fields.Char('刀尖处理尺寸(R半径mm/倒角)', size=20)
blade_tip_taper = fields.Integer('刀尖锥度(°)') blade_tip_taper = fields.Integer('刀尖锥度(°)')
blade_diameter = fields.Float('刃部直径(mm)') blade_diameter = fields.Float('刃部直径(mm)')
blade_length = fields.Float('刃部长度(mm)') blade_length = fields.Float('刃部长度(mm)')
@@ -36,23 +38,23 @@ class ToolMaterialsBasicParameters(models.Model):
cutting_blade_length = fields.Float('切削刃长(mm)') cutting_blade_length = fields.Float('切削刃长(mm)')
relief_angle = fields.Integer('后角(°)') relief_angle = fields.Integer('后角(°)')
blade_tip_circular_arc_radius = fields.Char('刀尖圆弧半径(mm)', size=20) blade_tip_circular_arc_radius = fields.Char('刀尖圆弧半径(mm)', size=20)
inscribed_circle_diameter = fields.Float('内接圆直径(mm)') inscribed_circle_diameter = fields.Float('内接圆直径IC/D(mm)')
install_aperture_diameter = fields.Float('安装孔直径(mm)') install_aperture_diameter = fields.Float('安装孔直径(mm)')
chip_breaker_groove = fields.Selection([('', ''), ('单面', '单面'), ('双面', '双面')], chip_breaker_groove = fields.Selection([('', ''), ('单面', '单面'), ('双面', '双面')],
string='有无断屑槽') string='有无断屑槽')
chip_breaker_type_code = fields.Char('断屑槽型代号')
blade_teeth_model = fields.Selection( blade_teeth_model = fields.Selection(
[('', ''), ('V牙型', 'V牙型'), ('米制全牙型', '米制全牙型'), ('美制全牙型', '美制全牙型'), [('', ''), ('V牙型', 'V牙型'), ('米制全牙型', '米制全牙型'), ('美制全牙型', '美制全牙型'),
('惠氏全牙型', '惠氏全牙型'), ('BSPT全牙型', 'BSPT全牙型'), ('NPT全牙型', 'NPT全牙型'), ('惠氏全牙型', '惠氏全牙型'), ('BSPT全牙型', 'BSPT全牙型'), ('NPT全牙型', 'NPT全牙型'),
('UNJ全牙型', 'UNJ全牙型'), ('DIN405圆牙型', 'DIN405圆牙型'), ('ACME梯形', 'ACME梯形'), ('UNJ全牙型', 'UNJ全牙型'), ('DIN405圆牙型', 'DIN405圆牙型'), ('ACME梯形', 'ACME梯形'),
('石油管螺纹刀片', '石油管螺纹刀片'), ('矮牙ACME梯形', '矮牙ACME梯形'), ('石油管螺纹刀片', '石油管螺纹刀片'), ('矮牙ACME梯形', '矮牙ACME梯形'),
('Trapeze30° 103', 'Trapeze30° 103')], string='刀片牙型', default='') ('Trapeze30° 103', 'Trapeze30° 103')], string='刀片牙型', default='')
blade_blade_number = fields.Selection([('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), blade_blade_number = fields.Selection(
('7', '7'), ('8', '8'), ('9', '9'), ('10', '10')], [('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'),
string='刀片的刃数(个)') ('9', '9'), ('10', '10')],
string='刀片的刃数(个)', default='0')
main_included_angle = fields.Integer('主偏角(°)') main_included_angle = fields.Integer('主偏角(°)')
top_angle = fields.Integer('顶角(°)') top_angle = fields.Integer('顶角(°)')
blade_tip_dip_angle = fields.Integer('刀尖倾角(°)')
side_cutting_edge_angle = fields.Integer('侧切削角(°)')
thread_model = fields.Selection([('', ''), ('外螺纹', '外螺纹'), ('内螺纹', '内螺纹')], string='螺纹类型', thread_model = fields.Selection([('', ''), ('外螺纹', '外螺纹'), ('内螺纹', '内螺纹')], string='螺纹类型',
default='') default='')
thread_num = fields.Float('每英寸螺纹数(tpi)') thread_num = fields.Float('每英寸螺纹数(tpi)')
@@ -73,11 +75,8 @@ class ToolMaterialsBasicParameters(models.Model):
is_cooling_hole = fields.Boolean('有无冷却孔') is_cooling_hole = fields.Boolean('有无冷却孔')
locating_slot_code = fields.Char('定位槽代号', size=20) locating_slot_code = fields.Char('定位槽代号', size=20)
installing_structure = fields.Char('安装结构', size=20) installing_structure = fields.Char('安装结构', size=20)
blade_ids = fields.Many2many( blade_id = fields.Many2one(
'sf.cutting.tool.type', 'sf.cutting_tool.standard.library',
relation='basic_param_pad_blade_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀片')]", domain="[('cutting_tool_material_id.name', '=', '刀片')]",
string='适配刀片型号' # 使用空列表作为默认值 string='适配刀片型号' # 使用空列表作为默认值
) )
@@ -90,295 +89,105 @@ class ToolMaterialsBasicParameters(models.Model):
cutter_head_diameter = fields.Float('刀盘直径(mm)') cutter_head_diameter = fields.Float('刀盘直径(mm)')
interface_diameter = fields.Float('接口直径(mm)') interface_diameter = fields.Float('接口直径(mm)')
# 刀柄参数 # 刀柄参数
flange_shank_length = fields.Float('法兰长(mm)') flange_shank_length = fields.Float('法兰长(mm)')
flange_diameter = fields.Float('法兰直径(mm)')
fit_chuck_size = fields.Char('适配夹头尺寸')
handle_external_diameter = fields.Float('柄部外径(mm)') handle_external_diameter = fields.Float('柄部外径(mm)')
handle_inside_diameter = fields.Float('柄部内径(mm)') handle_inside_diameter = fields.Float('柄部内径(mm)')
dynamic_balance_class = fields.Char('动平衡等级')
min_clamping_diameter = fields.Float('最小夹持直径(mm)') min_clamping_diameter = fields.Float('最小夹持直径(mm)')
max_clamping_diameter = fields.Float('最大夹持直径(mm)') max_clamping_diameter = fields.Float('最大夹持直径(mm)')
clamping_mode = fields.Char('夹持方式', size=20) clamping_mode = fields.Char('夹持方式', size=20)
max_load_capacity = fields.Float('最大负载能力(kg)') max_load_capacity = fields.Float('最大负载能力(kg)')
taper = fields.Integer('锥度(°)') taper = fields.Integer('锥度(°)')
shank_length = fields.Float('刀柄长度(mm)', digits=(3, 2))
shank_diameter = fields.Float('刀柄直径(mm)')
tool_changing_time = fields.Integer('换刀时间(s)') tool_changing_time = fields.Integer('换刀时间(s)')
standard_rotate_speed = fields.Integer('标准转速(n/min)') standard_rotate_speed = fields.Integer('标准转速(n/min)')
max_rotate_speed = fields.Integer('最大转速(n/min)') max_rotate_speed = fields.Integer('最大转速(n/min)')
diameter_slip_accuracy = fields.Char('径跳精度(mm)', size=20) diameter_slip_accuracy = fields.Char('径跳精度(mm)', size=20)
cooling_model = fields.Char('冷却类型', size=20) cooling_model = fields.Char('冷却类型', size=20)
is_rough_machining = fields.Boolean('可粗加工', default=False) taper_shank_model = fields.Char('锥柄型号')
is_finish_machining = fields.Boolean('可精加工', default=False)
is_quick_cutting = fields.Boolean('可高速切削', default=False) is_quick_cutting = fields.Boolean('可高速切削', default=False)
is_drill_hole = fields.Boolean('可钻孔', default=False)
is_safe_lock = fields.Boolean('有无安全锁', default=False) is_safe_lock = fields.Boolean('有无安全锁', default=False)
chuck_id = fields.Many2one(
'sf.cutting_tool.standard.library',
domain="[('cutting_tool_material_id.name', '=', '夹头')]",
string='适配夹头型号' # 使用空列表作为默认值
)
nut = fields.Char('适配锁紧螺母型号')
# 夹头参数 # 夹头参数
er_size_model = fields.Char('ER尺寸型号', size=20) er_size_model = fields.Char('ER尺寸型号', size=20)
outer_diameter = fields.Float('外径(mm)') outer_diameter = fields.Float('外径(mm)')
inner_diameter = fields.Float('内径(mm)') inner_diameter = fields.Float('内径(mm)')
run_out_accuracy = fields.Char('跳动精度(mm)', size=20) run_out_accuracy = fields.Char('跳动精度(mm)', size=20)
top_diameter = fields.Float('顶部直径(mm)') top_diameter = fields.Float('顶部直径(mm)')
weight = fields.Float('重量(kg)', size=20) weight = fields.Float('重量(kg)')
clamping_length = fields.Float('夹持长度(mm)') clamping_length = fields.Float('夹持长度(mm)')
clamping_tolerance = fields.Char('夹持公差(mm)', size=20) clamping_tolerance = fields.Char('夹持公差(mm)', size=20)
cooling_jacket = fields.Char('适用冷却套型号', size=50) cooling_jacket = fields.Char('适用冷却套型号', size=50)
handle_ids = fields.Many2many( active = fields.Boolean(string='有效', default=True)
'sf.cutting.tool.type',
relation='basic_param_chuck_handle_rel',
column1='model_id_1',
column2='model_id_2',
domain="[('cutting_tool_material_id.name', '=', '刀柄')]",
string='适用刀柄型号'
)
def _json_integral_tool_basic_param(self, obj):
integral_tool_basic_param_str = (0, '', {
'name': obj['name'],
'cutting_tool_type': obj['cutting_tool_type'],
'total_length': obj['total_length'],
'blade_diameter': obj['blade_diameter'],
'blade_length': obj['blade_length'],
'blade_number': obj['blade_number'],
'neck_length': obj['neck_length'],
'neck_diameter': obj['neck_diameter'],
'handle_diameter': obj['handle_diameter'],
'handle_length': obj['handle_length'],
'blade_tip_diameter': obj['blade_tip_diameter'],
'blade_tip_working_size': obj['blade_tip_working_size'],
'blade_tip_taper': obj['blade_tip_taper'],
'blade_helix_angle': obj['blade_helix_angle'],
'blade_width': obj['blade_width'],
'blade_depth': obj['blade_depth'],
'pitch': obj['pitch'],
'cutting_depth': obj['cutting_depth'],
})
return integral_tool_basic_param_str
def _json_blade_basic_param(self, obj):
blade_basic_param_str = (0, '', {
'name': obj['name'],
'cutting_tool_type': obj['cutting_tool_type'],
'length': obj['length'],
'thickness': obj['thickness'],
'width': obj['width'],
'cutting_blade_length': obj['cutting_blade_length'],
'relief_angle': obj['relief_angle'],
'blade_tip_circular_arc_radius': obj['blade_tip_circular_arc_radius'],
'inscribed_circle_diameter': obj['inscribed_circle_diameter'],
'install_aperture_diameter': obj['install_aperture_diameter'],
'pitch': obj['pitch'],
'chip_breaker_groove': obj['chip_breaker_groove'],
'blade_teeth_model': '' if not obj['bladed_teeth_model'] else obj['bladed_teeth_model'],
'blade_blade_number': obj['blade_blade_number'],
'cutting_depth': obj['cutting_depth'],
'blade_width': obj['blade_width'],
'main_included_angle': obj['main_included_angle'],
'top_angle': obj['top_angle'],
'blade_tip_dip_angle': obj['blade_tip_dip_angle'],
'side_cutting_edge_angle': obj['side_cutting_edge_angle'],
'thread_model': '' if not obj['thread_model'] else obj['thread_model'],
'thread_num': obj['thread_num'],
'blade_tip_height_tolerance': obj['blade_tip_height_tolerance'],
'inscribed_circle_tolerance': obj['inscribed_circle_tolerance'],
'thickness_tolerance': obj['thickness_tolerance'],
})
return blade_basic_param_str
def _json_cutter_arbor_basic_param(self, obj):
cutter_arbor_basic_param_str = (0, '', {
'name': obj['name'],
'cutting_tool_type': obj['cutting_tool_type'],
'height': obj['height'],
'width': obj['width'],
'total_length': obj['total_length'],
'knife_head_height': obj['knife_head_height'],
'knife_head_width': obj['knife_head_width'],
'knife_head_length': obj['knife_head_length'],
'cutter_arbor_diameter': obj['cutter_arbor_diameter'],
'main_included_angle': obj['main_included_angle'],
'relief_angle': obj['relief_angle'],
'cutting_depth': obj['cutting_depth'],
'min_machining_aperture': obj['min_machining_aperture'],
'install_blade_tip_num': obj['install_blade_tip_num'],
'cutting_blade_model': obj['cutting_blade_model'],
'is_cooling_hole': obj['is_cooling_hole'],
'locating_slot_code': obj['locating_slot_code'],
'installing_structure': obj['installing_structure'],
'blade_ids': [(6, 0, [])] if not obj.get('blade_codes') else
self.evn['sf.cutting_tool.standard.library']._get_ids(obj['blade_codes']),
'tool_shim': obj['tool_shim'],
'cotter_pin': obj['cotter_pin'],
'pressing_plate': obj['pressing_plate'],
'screw': obj['screw'],
'spanner': obj['spanner'],
})
return cutter_arbor_basic_param_str
def _json_cutter_head_basic_param(self, obj):
cutter_head_basic_param_str = (0, '', {
'name': obj['name'],
'cutting_tool_type': obj['cutting_tool_type'],
'install_blade_tip_num': obj['install_blade_tip_num'],
'blade_diameter': obj['blade_diameter'],
'cutter_head_diameter': obj['cutter_head_diameter'],
'interface_diameter': obj['interface_diameter'],
'total_length': obj['total_length'],
'blade_length': obj['blade_length'],
'cutting_depth': obj['cutting_depth'],
'main_included_angle': obj['main_included_angle'],
'installing_structure': obj['installing_structure'],
'blade_ids': [(6, 0, [])] if not obj.get('blade_codes') else
self.evn['sf.cutting_tool.standard.library']._get_ids(obj['blade_codes']),
'screw': obj['screw'],
'spanner': obj['spanner'],
'cutting_blade_model': obj['cutting_blade_model'],
'is_cooling_hole': obj['is_cooling_hole'],
'locating_slot_code': obj['locating_slot_code'],
})
return cutter_head_basic_param_str
def _json_knife_handle_basic_param(self, obj):
knife_handle_basic_param_str = (0, '', {
'name': obj['name'],
'cutting_tool_type': obj['cutting_tool_type'],
'total_length': obj['total_length'],
'flange_shank_length': obj['flange_shank_length'],
'handle_external_diameter': obj['handle_external_diameter'],
'handle_inside_diameter': obj['handle_inside_diameter'],
'min_clamping_diameter': obj['min_clamping_diameter'],
'max_clamping_diameter': obj['max_clamping_diameter'],
'clamping_mode': obj['clamping_mode'],
'max_load_capacity': obj['max_load_capacity'],
'taper': obj['taper'],
'tool_changing_time': obj['tool_changing_time'],
'standard_rotate_speed': obj['standard_rotate_speed'],
'max_rotate_speed': obj['max_rotate_speed'],
'diameter_slip_accuracy': obj['diameter_slip_accuracy'],
'cooling_model': obj['cooling_model'],
'is_rough_machining': obj['is_rough_machining'],
'is_finish_machining': obj['is_finish_machining'],
'is_quick_cutting': obj['is_quick_cutting'],
'is_drill_hole': obj['is_drill_hole'],
'is_safe_lock': obj['is_safe_lock'],
'screw': obj['screw'],
'spanner': obj['spanner'],
})
return knife_handle_basic_param_str
def _json_chuck_basic_param(self, obj):
chuck_basic_param_str = (0, '', {
'name': obj['name'],
'cutting_tool_type': obj['cutting_tool_type'],
'er_size_model': obj['er_size_model'],
'min_clamping_diameter': obj['min_clamping_diameter'],
'max_clamping_diameter': obj['max_clamping_diameter'],
'outer_diameter': obj['outer_diameter'],
'inner_diameter': obj['inner_diameter'],
'run_out_accuracy': obj['run_out_accuracy'],
'total_length': obj['total_length'],
'taper': obj['taper'],
'run_out_accuracy': obj['run_out_accuracy'],
'top_diameter': obj['top_diameter'],
'weight': obj['weight'],
'clamping_mode': obj['clamping_mode'],
'clamping_length': obj['clamping_length'],
'clamping_tolerance': obj['clamping_tolerance'],
'max_load_capacity': obj['max_load_capacity'],
'handle_ids': [(6, 0, [])] if not obj.get(
'handle_codes') else self.evn['sf.cutting_tool.standard.library']._get_ids(obj['handle_codes']),
'cooling_jacket': obj['cooling_jacket'],
})
return chuck_basic_param_str
class CuttingSpeed(models.Model): class CuttingSpeed(models.Model):
_name = 'sf.cutting.speed' _name = 'sf.cutting.speed'
_description = '切削速度Vc' _description = '切削速度Vc'
name = fields.Char('名称')
product_template_id = fields.Many2one('product.template') product_template_id = fields.Many2one('product.template')
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库') standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
execution_standard_id = fields.Many2one('sf.international.standards', string='执行标准', store=True) execution_standard_id = fields.Many2one('sf.international.standards', string='执行标准', store=True)
material_code = fields.Char('材料代号') material_code = fields.Char('材料代号')
material_id = fields.Many2one('sf.materials.model', '材料名称', material_name_id = fields.Many2one('sf.materials.model', '材料名称',
domain="[('standards_id', '=', execution_standard_id)]") domain="[('standards_id', '=', execution_standard_id)]")
slope_milling_angle = fields.Integer('坡铣角度(°)')
material_grade = fields.Char('材料牌号') material_grade = fields.Char('材料牌号')
tensile_strength = fields.Char('拉伸强度 (N/mm²)') tensile_strength = fields.Char('拉伸强度 (N/mm²)')
hardness = fields.Integer('硬度(HRC)') hardness = fields.Integer('硬度(hrc)')
cutting_speed_n1 = fields.Char('径向切宽 ae=100%D1 ap=1*D1 切削速度Vc') ability_feature_library = fields.Many2one('maintenance.equipment.image', '加工方式',
cutting_speed_n2 = fields.Char('径向切宽 ae=50%D1 ap=1.5*D1 切削速度Vc') domain="[('type', '=', '加工能力')]")
cutting_speed_n3 = fields.Char('径向切宽 ae=25%D1 ap=L1max 切削速度Vc') cutting_width_depth_id = fields.Many2one('sf.cutting.width.depth', '切削宽度和深度')
cutting_speed_n4 = fields.Char('径向切宽 ae=15%D1 ap=L1max 切削速度Vc') process_capability = fields.Selection([('粗加工', '粗加工'), ('精加工', '精加工')], string='粗/精加工')
cutting_speed_n5 = fields.Char('径向切宽 ae=5%D1 ap=L1max 切削速度Vc') cutting_speed = fields.Char('切削速度', required=True)
rough_machining = fields.Char('粗加工 Vc(m/min)') cutting_speed_max = fields.Float('最大值')
precision_machining = fields.Char('精加工 Vc(m/min)') cutting_speed_min = fields.Float('最小值')
application = fields.Selection([('主应用', '主应用'), ('次应用', '次应用')], '主/次应用')
def _json_cutting_speed(self, obj): application = fields.Selection([('主应用', '主应用'), ('次应用', '次应用')], '主/次应用')
cutting_speed_str = (0, '', { active = fields.Boolean(string='有效', default=True)
'execution_standard_id': self.env['sf.international.standards'].search(
[('code', '=', obj['execution_standard_code'])]).id,
'material_code': obj['material_code'],
'material_id': self.env['sf.materials.model'].search([('materials_no', '=', obj['material_name_code'])]).id,
'material_grade': obj['material_grade'],
'tensile_strength': obj['tensile_strength'],
'hardness': obj['hardness'],
'cutting_speed_n1': obj['cutting_speed_n1'],
'cutting_speed_n2': obj['cutting_speed_n2'],
'cutting_speed_n3': obj['cutting_speed_n3'],
'cutting_speed_n4': obj['cutting_speed_n4'],
'cutting_speed_n5': obj['cutting_speed_n5'],
'rough_machining': obj['rough_machining'],
'precision_machining': obj['precision_machining'],
'application': obj['application'],
})
return cutting_speed_str
class FeedPerTooth(models.Model): class FeedPerTooth(models.Model):
_name = 'sf.feed.per.tooth' _name = 'sf.feed.per.tooth'
_description = '每齿走刀量fz' _description = '每齿走刀量fz'
_order = 'machining_method desc, blade_diameter, materials_type_id' _order = 'blade_diameter,cutting_width_depth_id,materials_type_id'
name = fields.Char('名称')
product_template_id = fields.Many2one('product.template') product_template_id = fields.Many2one('product.template')
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库') standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', string='标准库')
cutting_speed = fields.Char('径向切宽 ae(mm)')
machining_method = fields.Selection([('直铣', '直铣'), ('坡铣', '坡铣')], string='加工方式')
materials_type_id = fields.Many2one('sf.materials.model', string='材料型号')
blade_diameter = fields.Integer('刃部直径(mm)', readonly=True) blade_diameter = fields.Integer('刃部直径(mm)', readonly=True)
feed_per_tooth = fields.Char('每齿走刀量 (mm/z)') materials_type_id = fields.Many2one('sf.materials.model', string='材料名称', readonly=True)
cutting_width_depth_id = fields.Many2one('sf.cutting.width.depth', '切削宽度和深度', readonly=True)
def _json_feed_per_tooth(self, obj): feed_per_tooth = fields.Char('每齿走刀量 (mm/z)', size=20)
feed_per_tooth_str = (0, '', { active = fields.Boolean(string='有效', default=True)
'cutting_speed': obj['cutting_speed'],
'blade_diameter': obj['blade_diameter'],
'feed_per_tooth': obj['feed_per_tooth'],
})
return feed_per_tooth_str
def _json_feed_per_tooth_2(self, obj):
feed_per_tooth_2_str = (0, '', {
'machining_method': obj['machining_method'],
'materials_type_id': self.env['sf.materials.model'].search(
[('materials_no', '=', obj['materials_type_code'])]).id,
'blade_diameter': obj['blade_diameter'],
'feed_per_tooth': obj['feed_per_tooth'],
})
return feed_per_tooth_2_str
def _json_feed_per_tooth_3(self, obj):
feed_per_tooth_3_str = (0, '', {
'cutting_speed': obj['cutting_speed'],
'feed_per_tooth': obj['feed_per_tooth'],
})
return feed_per_tooth_3_str
def _json_feed_per_tooth_4(self, obj):
feed_per_tooth_4_str = (0, '', {
'machining_method': obj['machining_method'],
'materials_type_id': self.env['sf.materials.model'].search(
[('materials_no', '=', obj['materials_type_code'])]).id,
'feed_per_tooth': obj['feed_per_tooth'],
})
return feed_per_tooth_4_str
# @api.depends('product_template_id') # @api.depends('product_template_id')
# def _compute_product_template_id(self): # def _compute_product_template_id(self):
# if self.product_template_id is not None: # if self.product_template_id is not None:
# self.blade_diameter = self.product_template_id.cutting_tool_blade_diameter # self.blade_diameter = self.product_template_id.cutting_tool_blade_diameter
class CuttingWidthDepth(models.Model):
_name = 'sf.cutting.width.depth'
_description = '切削宽度和深度'
name = fields.Char('名称')
class RampingAngle(models.Model):
_name = 'sf.ramping.angle'
_description = '坡铣角度'
standard_library_id = fields.Many2one('sf.cutting_tool.standard.library', '刀具标准库')
name = fields.Char('坡铣角度')

View File

@@ -65,13 +65,13 @@
<record id="group_plan_dispatch" model="res.groups"> <record id="group_plan_dispatch" model="res.groups">
<field name="name">计划调度岗</field> <field name="name">计划调度岗</field>
<field name="category_id" ref="module_category_plan"/> <field name="category_id" ref="module_category_plan"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> <!-- <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> -->
</record> </record>
<record id="group_plan_director" model="res.groups"> <record id="group_plan_director" model="res.groups">
<field name="name">计划总监</field> <field name="name">计划总监</field>
<field name="category_id" ref="module_category_plan"/> <field name="category_id" ref="module_category_plan"/>
<!-- <field name="implied_ids" eval="[(4, ref('sf_base.group_plan_dispatch'))]"/>--> <field name="implied_ids" eval="[(4, ref('sf_base.group_plan_dispatch'))]"/>
</record> </record>
<record id="group_purchase" model="res.groups"> <record id="group_purchase" model="res.groups">

View File

@@ -1,54 +1,229 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sf_machine_tool,sf_machine_tool,model_sf_machine_tool,base.group_user,1,1,1,1 access_sf_machine_tool,sf_machine_tool,model_sf_machine_tool,base.group_user,1,1,1,0
access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,base.group_user,1,1,1,1 access_sf_machine_tool_admin,sf_machine_tool_admin,model_sf_machine_tool,base.group_system,1,1,1,0
access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,base.group_user,1,1,1,1 access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,base.group_user,1,1,1,0
access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,1 access_sf_machine_tool_type_admin,sf_machine_tool_type_admin,model_sf_machine_tool_type,base.group_system,1,1,1,0
access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,base.group_user,1,1,1,1 access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,base.group_user,1,1,1,0
access_sf_processing_order,sf_processing_order,model_sf_processing_order,base.group_user,1,1,1,1 access_sf_machine_brand_admin,sf_machine_brand_admin,model_sf_machine_brand,base.group_system,1,1,1,0
access_sf_production_process,sf_production_process,model_sf_production_process,base.group_user,1,1,1,1 access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,0
access_sf_production_materials,sf_production_materials,model_sf_production_materials,base.group_user,1,1,1,1 access_sf_machine_brand_tags_admin,sf_machine_brand_tags_admin,model_sf_machine_brand_tags,base.group_system,1,1,1,0
access_sf_materials_model,sf_materials_model,model_sf_materials_model,base.group_user,1,1,1,1 access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,base.group_user,1,1,1,0
access_sf_processing_technology,sf_processing_technology,model_sf_processing_technology,base.group_user,1,1,1,1 access_sf_machine_control_system_admin,sf_machine_control_system_admin,model_sf_machine_control_system,base.group_system,1,1,1,0
access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,base.group_user,1,1,1,1 access_sf_production_process_group_sale_director,sf_production_process_group_sale_director,model_sf_production_process,sf_base.group_sale_director,1,0,0,0
access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,base.group_user,1,1,1,1 access_sf_production_process_group_sale_salemanager,sf_production_process_group_sale_salemanager,model_sf_production_process,sf_base.group_sale_salemanager,1,0,0,0
access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,base.group_user,1,1,1,1
access_sf_machine_tool_category,sf_machine_tool_category,model_sf_machine_tool_category,base.group_user,1,1,1,1 access_sf_production_process,sf_production_process,model_sf_production_process,base.group_user,1,1,1,0
access_sf_cutting_tool_material,sf_cutting_tool_material,model_sf_cutting_tool_material,base.group_user,1,1,1,1 access_sf_production_process_admin,sf_production_process_admin,model_sf_production_process,base.group_system,1,1,1,0
access_sf_cutting_tool_type,sf_cutting_tool_type,model_sf_cutting_tool_type,base.group_user,1,1,1,1 access_sf_production_materials,sf_production_materials,model_sf_production_materials,base.group_user,1,1,1,0
access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional_cutting_tool,base.group_user,1,1,1,1 access_sf_production_materials_group_sale_director,sf_production_materials_group_sale_director,model_sf_production_materials,sf_base.group_sale_director,1,0,0,0
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,base.group_user,1,1,1,1 access_sf_production_materials_group_sale_salemanager,sf_production_materials_group_sale_salemanager,model_sf_production_materials,sf_base.group_sale_salemanager,1,0,0,0
access_sf_fixture_material,sf_fixture_material,model_sf_fixture_material,base.group_user,1,1,1,1
access_sf_multi_mounting_type,sf_multi_mounting_type,model_sf_multi_mounting_type,base.group_user,1,1,1,1 access_sf_production_materials_admin,sf_production_materials_admin,model_sf_production_materials,base.group_system,1,1,1,0
access_sf_fixture_model,sf_fixture_model,model_sf_fixture_model,base.group_user,1,1,1,1 access_sf_materials_model,sf_materials_model,model_sf_materials_model,base.group_user,1,1,1,0
access_sf_materials_model_admin,sf_materials_model_admin,model_sf_materials_model,base.group_system,1,1,1,0
access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,base.group_user,1,1,1,0
access_sf_supplier_sort_admin,sf_supplier_sort_admin,model_sf_supplier_sort,base.group_system,1,1,1,0
access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,base.group_user,1,1,1,0
access_sf_production_process_parameter_group_sale_director,sf_production_process_parameter_group_sale_director,model_sf_production_process_parameter,sf_base.group_sale_director,1,0,0,0
access_sf_production_process_parameter_group_sale_salemanager,sf_production_process_parameter_group_sale_salemanager,model_sf_production_process_parameter,sf_base.group_sale_salemanager,1,0,0,0
access_sf_production_process_parameter_group_plan_director,sf_production_process_parameter_group_plan_director,model_sf_production_process_parameter,sf_base.group_plan_director,1,0,0,0
access_sf_production_process_parameter_group_purchase_director,sf_production_process_parameter_group_purchase_director,model_sf_production_process_parameter,sf_base.group_purchase_director,1,0,0,0
access_sf_production_process_parameter_group_sale_director,sf_production_process_parameter_group_sale_director,model_sf_production_process_parameter,sf_base.group_sale_director,1,0,0,0
access_sf_production_process_parameter_admin,sf_production_process_parameter_admin,model_sf_production_process_parameter,base.group_system,1,1,1,0
access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,base.group_user,1,1,1,0
access_sf_production_process_category_admin,sf_production_process_category_admin,model_sf_production_process_category,base.group_system,1,1,1,0
access_sf_machine_tool_category,sf_machine_tool_category,model_sf_machine_tool_category,base.group_user,1,1,1,0
access_sf_machine_tool_category_admin,sf_machine_tool_category_admin,model_sf_machine_tool_category,base.group_system,1,1,1,0
access_sf_cutting_tool_material,sf_cutting_tool_material,model_sf_cutting_tool_material,base.group_user,1,1,1,0
access_sf_cutting_tool_material_admin,sf_cutting_tool_material_admin,model_sf_cutting_tool_material,base.group_system,1,1,1,0
access_sf_cutting_tool_type,sf_cutting_tool_type,model_sf_cutting_tool_type,base.group_user,1,1,1,0
access_sf_cutting_tool_type_admin,sf_cutting_tool_type_admin,model_sf_cutting_tool_type,base.group_system,1,1,1,0
access_sf_cutting_tool_type_group_purchase_director,sf_cutting_tool_type_group_purchase_director,model_sf_cutting_tool_type,sf_base.group_purchase_director,1,1,0,0
access_sf_cutting_tool_type_group_sale_director,sf_cutting_tool_type_group_sale_director,model_sf_cutting_tool_type,sf_base.group_sale_director,1,1,0,0
access_sf_cutting_tool_type_group_plan_director,sf_cutting_tool_type_group_plan_director,model_sf_cutting_tool_type,sf_base.group_plan_director,1,1,0,0
access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional_cutting_tool,base.group_user,1,1,1,0
access_sf_functional_cutting_tool_admin,sf_functional_cutting_tool_admin,model_sf_functional_cutting_tool,base.group_system,1,1,1,0
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,base.group_user,1,1,1,0
access_sf_functional_cutting_tool_model_admin,sf_functional_cutting_tool_model_admin,model_sf_functional_cutting_tool_model,base.group_system,1,1,1,0
access_sf_fixture_material,sf_fixture_material,model_sf_fixture_material,base.group_user,1,1,1,0
access_sf_fixture_material_admin,sf_fixture_material_admin,model_sf_fixture_material,base.group_system,1,1,1,0
access_sf_fixture_materials_basic_parameters,sf_fixture_materials_basic_parameters,model_sf_fixture_materials_basic_parameters,base.group_user,1,1,1,0
access_sf_fixture_materials_basic_parameters_admin,sf_fixture_materials_basic_parameters_admin,model_sf_fixture_materials_basic_parameters,base.group_system,1,1,1,0
access_sf_multi_mounting_type,sf_multi_mounting_type,model_sf_multi_mounting_type,base.group_user,1,1,1,0
access_sf_multi_mounting_type_admin,sf_multi_mounting_type_admin,model_sf_multi_mounting_type,base.group_system,1,1,1,0
access_sf_fixture_model,sf_fixture_model,model_sf_fixture_model,base.group_user,1,1,1,0
access_sf_fixture_model_admin,sf_fixture_model_admin,model_sf_fixture_model,base.group_system,1,1,1,0
access_sf_functional_fixture_type,sf_functional_fixture_type,model_sf_functional_fixture_type,base.group_user,1,1,1,1 access_sf_functional_fixture_type,sf_functional_fixture_type,model_sf_functional_fixture_type,base.group_user,1,1,1,1
access_sf_functional_fixture,sf_functional_fixture,model_sf_functional_fixture,base.group_user,1,1,1,1 access_sf_functional_fixture_type_admin,sf_functional_fixture_type_admin,model_sf_functional_fixture_type,base.group_system,1,1,1,0
access_sf_sync_common,sf_sync_common,model_sf_sync_common,base.group_user,1,1,1,1 access_sf_functional_fixture,sf_functional_fixture,model_sf_functional_fixture,base.group_user,1,1,1,0
access_sf_international_standards,sf_international_standards,model_sf_international_standards,base.group_user,1,1,1,1 access_sf_functional_fixture_admin,sf_functional_fixture_admin,model_sf_functional_fixture,base.group_system,1,1,1,0
access_material_apply,material_apply,model_material_apply,base.group_user,1,1,1,1 access_sf_sync_common,sf_sync_common,model_sf_sync_common,base.group_user,1,1,1,0
access_sf_cutting_tool_standard_library,sf_cutting_tool_standard_library,model_sf_cutting_tool_standard_library,base.group_user,1,1,1,1 access_sf_sync_common,sf_sync_common_admin,model_sf_sync_common,base.group_system,1,1,1,0
access_sf_tool_materials_basic_parameters,sf_tool_materials_basic_parameters,model_sf_tool_materials_basic_parameters,base.group_user,1,1,1,1 access_sf_international_standards,sf_international_standards,model_sf_international_standards,base.group_user,1,1,1,0
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,1 access_sf_international_standards_admin,sf_international_standards_admin,model_sf_international_standards,base.group_system,1,1,1,0
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,base.group_user,1,1,1,1 access_material_apply,material_apply,model_material_apply,base.group_user,1,1,1,0
access_material_apply_admin,material_apply_admin,model_material_apply,base.group_system,1,1,1,0
access_material_apply_group_purchase_director,material_apply_group_purchase_director,model_material_apply,sf_base.group_purchase_director,1,0,0,0
access_material_apply_group_sale_director,material_apply_group_sale_director,model_material_apply,sf_base.group_sale_director,1,0,0,0
access_material_apply_group_plan_director,material_apply_group_plan_director,model_material_apply,sf_base.group_plan_director,1,0,0,0
access_material_apply_group_purchase_director,material_apply_group_purchase_director,model_material_apply,sf_base.group_purchase_director,1,0,0,0
access_material_apply_group_sale_salemanager,material_apply_group_sale_salemanager,model_material_apply,sf_base.group_sale_salemanager,1,0,0,0
access_sf_cutting_tool_standard_library,sf_cutting_tool_standard_library,model_sf_cutting_tool_standard_library,base.group_user,1,1,1,0
access_sf_cutting_tool_standard_library_admin,sf_cutting_tool_standard_library_admin,model_sf_cutting_tool_standard_library,base.group_system,1,1,1,0
access_sf_tool_materials_basic_parameters,sf_tool_materials_basic_parameters,model_sf_tool_materials_basic_parameters,base.group_user,1,1,1,0
access_sf_tool_materials_basic_parameters_admin,sf_tool_materials_basic_parameters_admin,model_sf_tool_materials_basic_parameters,base.group_system,1,1,1,0
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,0
access_sf_cutting_speed_admin,sf_cutting_speed_admin,model_sf_cutting_speed,base.group_system,1,1,1,0
access_sf_cutting_speed_group_purchase_director,sf_cutting_speed_group_purchase_director,model_sf_cutting_speed,sf_base.group_purchase_director,1,1,1,0
access_sf_cutting_speed_group_sale_director,sf_cutting_speed_group_sale_director,model_sf_cutting_speed,sf_base.group_sale_director,1,1,1,0
access_sf_cutting_speed_group_plan_dispatch,sf_cutting_speed_group_plan_dispatch,model_sf_cutting_speed,sf_base.group_plan_dispatch,1,0,0,0
access_sf_cutting_speed_group_plan_director,sf_cutting_speed_group_plan_director,model_sf_cutting_speed,sf_base.group_plan_director,1,1,1,0
access_sf_cutting_speed_group_quality_director,sf_cutting_speed_group_quality_director,model_sf_cutting_speed,sf_base.group_quality_director,1,1,1,0
access_sf_cutting_speed_group_quality,sf_cutting_speed_group_quality,model_sf_cutting_speed,sf_base.group_quality,1,1,1,0
access_sf_feed_per_tooth_group_purchase_director,sf_feed_per_tooth_group_purchase_director,model_sf_feed_per_tooth,sf_base.group_purchase_director,1,1,0,0
access_sf_feed_per_tooth_group_sale_director,sf_feed_per_tooth_group_sale_director,model_sf_feed_per_tooth,sf_base.group_sale_director,1,1,0,0
access_sf_feed_per_tooth_group_plan_dispatch,sf_feed_per_tooth_group_plan_dispatch,model_sf_feed_per_tooth,sf_base.group_plan_dispatch,1,0,0,0
access_sf_feed_per_tooth_group_plan_director,sf_feed_per_tooth_group_plan_director,model_sf_feed_per_tooth,sf_base.group_plan_director,1,1,0,0
access_sf_feed_per_tooth_group_sale_salemanager,sf_feed_per_tooth_group_sale_salemanager,model_sf_feed_per_tooth,sf_base.group_sale_salemanager,1,0,0,0
access_sf_feed_per_tooth_group_quality,sf_feed_per_tooth_group_quality,model_sf_feed_per_tooth,sf_base.group_quality,1,1,1,0
access_sf_feed_per_tooth_group_quality_director,sf_feed_per_tooth_group_quality_director,model_sf_feed_per_tooth,sf_base.group_quality_director,1,1,1,0
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,base.group_user,1,1,1,0
access_sf_feed_per_tooth_admin,sf_feed_per_tooth_admin,model_sf_feed_per_tooth,base.group_system,1,1,1,0
access_sf_ramping_angle,sf_ramping_angle,model_sf_ramping_angle,base.group_user,1,1,1,1
access_sf_ramping_angle_admin,sf_ramping_angle_admin,model_sf_ramping_angle,base.group_system,1,1,1,1
access_sf_cutting_width_depth,sf_cutting_width_depth,model_sf_cutting_width_depth,base.group_user,1,1,1,1
access_sf_cutting_width_depth_admin,sf_cutting_width_depth_admin,model_sf_cutting_width_depth,base.group_system,1,1,1,1
access_sf_machine_tool,sf_machine_tool,model_sf_machine_tool,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_machine_brand_group_plan_director,sf_machine_brand_group_plan_director,model_sf_machine_brand,sf_base.group_plan_director,1,0,0,0
access_sf_machine_brand_group_purchase_director,sf_machine_brand_group_purchase_director,model_sf_machine_brand,sf_base.group_purchase_director,1,0,0,0
access_sf_machine_brand_group_sale_director,sf_machine_brand_group_sale_director,model_sf_machine_brand,sf_base.group_sale_director,1,0,0,0
access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,base.group_user,1,1,1,1
access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_production_materials_group_plan_director,sf_production_materials_group_plan_director,model_sf_production_materials,sf_base.group_plan_director,1,1,0,0
access_sf_production_materials_group_purchase_director,sf_production_materials_group_purchase_director,model_sf_production_materials,sf_base.group_purchase_director,1,1,0,0
access_sf_production_materials_group_sale_director,sf_production_materials_group_sale_director,model_sf_production_materials,sf_base.group_sale_director,1,1,0,0
access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_materials_model_group_sale_salemanager,sf_materials_model_group_sale_salemanager,model_sf_materials_model,sf_base.group_sale_salemanager,1,0,0,0
access_sf_materials_model_group_sale_director,sf_materials_model_group_sale_director,model_sf_materials_model,sf_base.group_sale_director,1,0,0,0
access_sf_materials_model_group_plan_director,sf_materials_model_group_plan_director,model_sf_materials_model,sf_base.group_plan_director,1,0,0,0
access_sf_materials_model_group_purchase_director,sf_materials_model_group_purchase_director,model_sf_materials_model,sf_base.group_purchase_director,1,0,0,0
access_sf_materials_model_group_sale_director,sf_materials_model_group_sale_director,model_sf_materials_model,sf_base.group_sale_director,1,0,0,0
access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_machine_tool_category,sf_machine_tool_category,model_sf_machine_tool_category,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_cutting_tool_material_group_purchase_director,sf_cutting_tool_material_group_purchase_director,model_sf_cutting_tool_material,sf_base.group_purchase_director,1,0,1,0
access_sf_cutting_tool_material_group_sale_director,sf_cutting_tool_material_group_sale_director,model_sf_cutting_tool_material,sf_base.group_sale_director,1,0,1,0
access_sf_cutting_tool_material_group_plan_director,sf_cutting_tool_material_group_plan_director,model_sf_cutting_tool_material,sf_base.group_plan_director,1,0,1,0
access_sf_cutting_tool_type,sf_cutting_tool_type,model_sf_cutting_tool_type,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional_cutting_tool,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_fixture_material,sf_fixture_material,model_sf_fixture_material,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_fixture_materials_basic_parameters,sf_fixture_materials_basic_parameters,model_sf_fixture_materials_basic_parameters,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_multi_mounting_type,sf_multi_mounting_type,model_sf_multi_mounting_type,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_fixture_model,sf_fixture_model,model_sf_fixture_model,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_functional_fixture_type,sf_functional_fixture_type,model_sf_functional_fixture_type,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_functional_fixture,sf_functional_fixture,model_sf_functional_fixture,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_sync_common,sf_sync_common,model_sf_sync_common,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_international_standards,sf_international_standards,model_sf_international_standards,sf_base.group_sf_mrp_user,1,0,0,0
access_material_apply,material_apply,model_material_apply,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_cutting_tool_standard_library_group_sf_mrp_user,sf_cutting_tool_standard_library_group_sf_mrp_user,model_sf_cutting_tool_standard_library,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_cutting_tool_standard_library_group_purchase_director,sf_cutting_tool_standard_library_group_purchase_director,model_sf_cutting_tool_standard_library,sf_base.group_purchase_director,1,0,1,0
access_sf_cutting_tool_standard_library_group_plan_director,sf_cutting_tool_standard_library_group_plan_director,model_sf_cutting_tool_standard_library,sf_base.group_plan_director,1,0,1,0
access_sf_cutting_tool_standard_library_group_sale_director,sf_cutting_tool_standard_library_group_sale_director,model_sf_cutting_tool_standard_library,sf_base.group_sale_director,1,0,1,0
access_sf_tool_groups,sf_tool_groups,model_sf_tool_groups,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_tool_materials_basic_parameters_group_sale_director,sf_tool_materials_basic_parameters_group_sale_director,model_sf_tool_materials_basic_parameters,sf_base.group_sale_director,1,0,1,0
access_sf_tool_materials_basic_parameters_group_plan_director,sf_tool_materials_basic_parameters_group_plan_director,model_sf_tool_materials_basic_parameters,sf_base.group_plan_director,1,0,1,0
access_sf_tool_materials_basic_parameters_group_purchase_director,sf_tool_materials_basic_parameters_group_purchase_director,model_sf_tool_materials_basic_parameters,sf_base.group_purchase_director,1,0,1,0
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_cutting_speed_group_purchase,sf_cutting_speed_group_purchase,model_sf_cutting_speed,sf_base.group_purchase,1,0,0,0
access_sf_cutting_speed_group_sale_salemanager,sf_cutting_speed_group_sale_salemanager,model_sf_cutting_speed,sf_base.group_sale_salemanager,1,0,0,0
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_feed_per_tooth_group_purchase,sf_feed_per_tooth_group_purchase,model_sf_feed_per_tooth,sf_base.group_purchase,1,0,0,0
access_sf_ramping_angle,sf_ramping_angle,model_sf_ramping_angle,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_ramping_angle_group_purchase,sf_ramping_angle_group_purchase,model_sf_ramping_angle,sf_base.group_purchase,1,0,0,0
access_sf_cutting_width_depth,sf_cutting_width_depth,model_sf_cutting_width_depth,sf_base.group_sf_mrp_user,1,0,0,0
access_sf_cutting_width_depth_group_purchase,sf_cutting_width_depth_group_purchase,model_sf_cutting_width_depth,sf_base.group_purchase,1,0,0,0
access_maintenance_equipment_image,maintenance_equipment_image,model_maintenance_equipment_image,base.group_user,1,1,1,1 access_maintenance_equipment_image,maintenance_equipment_image,model_maintenance_equipment_image,base.group_user,1,1,1,1
access_purchase_order_group_purchase,access_purchase_order_group_purchase,purchase.model_purchase_order,sf_base.group_purchase,1,1,1,0 access_purchase_order_group_purchase,access_purchase_order_group_purchase,purchase.model_purchase_order,sf_base.group_purchase,1,1,1,0
access_purchase_order_group_purchase_director,access_purchase_order_group_purchase_director,purchase.model_purchase_order,sf_base.group_purchase_director,1,1,1,0
access_purchase_order_line_group_purchase,access_purchase_order_line_group_purchase,purchase.model_purchase_order_line,sf_base.group_purchase,1,1,1,0 access_purchase_order_line_group_purchase,access_purchase_order_line_group_purchase,purchase.model_purchase_order_line,sf_base.group_purchase,1,1,1,0
access_purchase_order_line_group_purchase_director,access_purchase_order_line_group_purchase_director,purchase.model_purchase_order_line,sf_base.group_purchase_director,1,1,1,0
access_spindle_taper_type,spindle_taper_type,model_spindle_taper_type,base.group_user,1,1,1,1 access_spindle_taper_type,spindle_taper_type,model_spindle_taper_type,base.group_user,1,1,1,1
access_sf_tool_groups_group_plan_dispatch,sf_tool_groups,model_sf_tool_groups,sf_base.group_plan_dispatch,1,0,0,0
access_sf_tool_groups_group_plan_director,sf_tool_groups,model_sf_tool_groups,sf_base.group_plan_director,1,1,1,0
access_sf_tool_groups_group_sf_tool_user,sf_tool_groups,model_sf_tool_groups,sf_base.group_sf_tool_user,1,1,1,1
access_purchase_order,purchase.order,purchase.model_purchase_order,sf_base.group_plan_dispatch,1,0,0,0 access_purchase_order,purchase.order,purchase.model_purchase_order,sf_base.group_plan_dispatch,1,0,0,0
access_res_partner,res.partner,base.model_res_partner,sf_base.group_plan_dispatch,1,0,0,0 access_res_partner,res.partner,base.model_res_partner,sf_base.group_plan_dispatch,1,0,0,0
access_purchase_order_line,purchase.order.line,purchase.model_purchase_order_line,sf_base.group_plan_dispatch,1,0,0,0 access_purchase_order_line,purchase.order.line,purchase.model_purchase_order_line,sf_base.group_plan_dispatch,1,0,0,0
access_account_move_line,account.move.line,account.model_account_move_line,sf_base.group_plan_dispatch,1,0,0,0 access_account_move_line,account.move.line,account.model_account_move_line,sf_base.group_plan_dispatch,1,0,0,0
access_sf_machine_tool_type_group_plan_dispatch,sf.machine_tool.type,model_sf_machine_tool_type,sf_base.group_plan_dispatch,1,0,0,0
access_sf_machine_tool,sf_machine_tool,model_sf_machine_tool,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_machine_tool_type,sf_machine_tool_type,model_sf_machine_tool_type,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_machine_brand,sf_machine_brand,model_sf_machine_brand,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_machine_brand_tags,sf_machine_brand_tags,model_sf_machine_brand_tags,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_machine_control_system,sf_machine_control_system,model_sf_machine_control_system,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_production_process,sf_production_process,model_sf_production_process,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_production_materials,sf_production_materials,model_sf_production_materials,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_materials_model,sf_materials_model,model_sf_materials_model,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_supplier_sort,sf_supplier_sort,model_sf_supplier_sort,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_production_process_parameter,sf_production_process_parameter,model_sf_production_process_parameter,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_production_process_category,sf_production_process_category,model_sf_production_process_category,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_machine_tool_category,sf_machine_tool_category,model_sf_machine_tool_category,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_cutting_tool_material,sf_cutting_tool_material,model_sf_cutting_tool_material,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_cutting_tool_type,sf_cutting_tool_type,model_sf_cutting_tool_type,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_functional_cutting_tool,sf_functional_cutting_tool,model_sf_functional_cutting_tool,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_functional_cutting_tool_model,sf_functional_cutting_tool_model,model_sf_functional_cutting_tool_model,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_fixture_material,sf_fixture_material,model_sf_fixture_material,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_fixture_materials_basic_parameters,sf_fixture_materials_basic_parameters,model_sf_fixture_materials_basic_parameters,sf_base.group_sf_mrp_user,1,1,0,0
access_mrp_production_group_sale_salemanager,mrp_production_group_sale_salemanager,mrp.model_mrp_production,sf_base.group_sale_salemanager,1,0,0,0
access_mrp_production_group_sale_director,mrp_production_group_sale_director,mrp.model_mrp_production,sf_base.group_sale_director,1,0,0,0
access_material_apply_group_plan_dispatch,material_apply,model_material_apply,sf_base.group_plan_dispatch,1,0,0,0
access_sf_machine_brand_tags_group_plan_dispatch,sf_machine_brand_tags,model_sf_machine_brand_tags,sf_base.group_plan_dispatch,1,0,0,0
access_ir_actions_act_window_group_plan_dispatch,ir.actions.act_window,base.model_ir_actions_act_window,sf_base.group_plan_dispatch,1,0,0,0
access_ir_actions_act_window_view_group_plan_dispatch,ir.actions.act_window.view,base.model_ir_actions_act_window_view,sf_base.group_plan_dispatch,1,0,0,0
access_sf_supplier_sort_group_plan_dispatch,sf.supplier.sort,model_sf_supplier_sort,sf_base.group_plan_dispatch,1,0,0,0
access_sf_international_standards_group_sale_salemanager,sf_international_standards_group_sale_salemanager,model_sf_international_standards,sf_base.group_sale_salemanager,1,0,0,0
access_sf_international_standards_group_sale_director,sf_international_standards_group_sale_director,model_sf_international_standards,sf_base.group_sale_director,1,0,0,0
access_sf_international_standards_group_plan_director,sf_international_standards_group_plan_director,model_sf_international_standards,sf_base.group_plan_director,1,0,0,0
access_sf_international_standards_group_purchase,sf_international_standards_group_purchase,model_sf_international_standards,sf_base.group_purchase,1,0,0,0
access_sf_international_standards_group_purchase_director,sf_international_standards_group_purchase_director,model_sf_international_standards,sf_base.group_purchase_director,1,0,0,0
access_sf_machine_brand_tags_group_sale_salemanager,sf_machine_brand_tags_group_sale_salemanager,model_sf_machine_brand_tags,sf_base.group_sale_salemanager,1,0,0,0
access_sf_machine_brand_tags_group_sale_director,sf_machine_brand_tags_group_sale_director,model_sf_machine_brand_tags,sf_base.group_sale_director,1,0,0,0
access_sf_machine_brand_tags_group_plan_director,sf_machine_brand_tags_group_plan_director,model_sf_machine_brand_tags,sf_base.group_plan_director,1,0,0,0
access_sf_machine_brand_tags_group_purchase,sf_machine_brand_tags_group_purchase,model_sf_machine_brand_tags,sf_base.group_purchase,1,0,0,0
access_sf_machine_brand_tags_group_purchase_director,sf_machine_brand_tags_group_purchase_director,model_sf_machine_brand_tags,sf_base.group_purchase_director,1,0,0,0
access_printer,printer,model_printer,base.group_user,1,1,1,1
access_printer_configuration,printer.configuration,model_printer_configuration,base.group_user,1,1,1,1
access_group_sf_mrp_user,sf_tool_inventory,model_sf_tool_inventory,base.group_user,1,1,1,0
access_group_sf_mrp_user_admin,sf_tool_inventory_admin,model_sf_tool_inventory,base.group_system,1,1,1,0
access_group_sf_mrp_user_group_purchase_director,sf_tool_inventory_group_purchase_director,model_sf_tool_inventory,sf_base.group_purchase_director,1,0,1,0
access_group_sf_mrp_user_group_sale_director,sf_tool_inventory_group_sale_director,model_sf_tool_inventory,sf_base.group_sale_director,1,0,1,0
access_sf_cutting_tool_material_group_plan_director,sf_tool_inventory_group_plan_director,model_sf_tool_inventory,sf_base.group_plan_director,1,0,1,0
access_group_sf_mrp_user_group_sf_mrp_user,sf_tool_inventory_group_sf_mrp_user,model_sf_tool_inventory,sf_base.group_sf_mrp_user,1,1,0,0
access_sf_fixture_material_group_purchase_director,sf_fixture_material_group_purchase_director,model_sf_fixture_material,sf_base.group_purchase_director,1,0,0,0
access_sf_multi_mounting_type_group_purchase_director,sf_multi_mounting_type_group_purchase_director,model_sf_multi_mounting_type,sf_base.group_purchase_director,1,0,0,0
access_sf_fixture_model_group_purchase_director,sf_fixture_model_group_purchase_director,model_sf_fixture_model,sf_base.group_purchase_director,1,0,0,0
access_sf_fixture_materials_basic_parameters_group_purchase_director,sf_fixture_materials_basic_parameters_group_purchase_director,model_sf_fixture_materials_basic_parameters,sf_base.group_purchase_director,1,0,0,0
access_sf_machine_tool_type_group_purchase_director,sf_machine_tool_type_group_purchase_director,model_sf_machine_tool_type,sf_base.group_purchase_director,1,0,0,0
access_sf_fixture_material_group_sale_director,sf_fixture_material_group_sale_director,model_sf_fixture_material,sf_base.group_sale_director,1,0,0,0
access_sf_multi_mounting_type_group_sale_director,sf_multi_mounting_type_group_sale_director,model_sf_multi_mounting_type,sf_base.group_sale_director,1,0,0,0
access_sf_fixture_model_group_sale_director,sf_fixture_model_group_sale_director,model_sf_fixture_model,sf_base.group_sale_director,1,0,0,0
access_sf_fixture_materials_basic_parameters_group_sale_director,sf_fixture_materials_basic_parameters_group_sale_director,model_sf_fixture_materials_basic_parameters,sf_base.group_sale_director,1,0,0,0
access_sf_machine_tool_type_group_sale_director,sf_machine_tool_type_group_sale_director,model_sf_machine_tool_type,sf_base.group_sale_director,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_sf_machine_tool sf_machine_tool model_sf_machine_tool base.group_user 1 1 1 1 0
3 access_sf_machine_tool_type access_sf_machine_tool_admin sf_machine_tool_type sf_machine_tool_admin model_sf_machine_tool_type model_sf_machine_tool base.group_user base.group_system 1 1 1 1 0
4 access_sf_machine_brand access_sf_machine_tool_type sf_machine_brand sf_machine_tool_type model_sf_machine_brand model_sf_machine_tool_type base.group_user 1 1 1 1 0
5 access_sf_machine_brand_tags access_sf_machine_tool_type_admin sf_machine_brand_tags sf_machine_tool_type_admin model_sf_machine_brand_tags model_sf_machine_tool_type base.group_user base.group_system 1 1 1 1 0
6 access_sf_machine_control_system access_sf_machine_brand sf_machine_control_system sf_machine_brand model_sf_machine_control_system model_sf_machine_brand base.group_user 1 1 1 1 0
7 access_sf_processing_order access_sf_machine_brand_admin sf_processing_order sf_machine_brand_admin model_sf_processing_order model_sf_machine_brand base.group_user base.group_system 1 1 1 1 0
8 access_sf_production_process access_sf_machine_brand_tags sf_production_process sf_machine_brand_tags model_sf_production_process model_sf_machine_brand_tags base.group_user 1 1 1 1 0
9 access_sf_production_materials access_sf_machine_brand_tags_admin sf_production_materials sf_machine_brand_tags_admin model_sf_production_materials model_sf_machine_brand_tags base.group_user base.group_system 1 1 1 1 0
10 access_sf_materials_model access_sf_machine_control_system sf_materials_model sf_machine_control_system model_sf_materials_model model_sf_machine_control_system base.group_user 1 1 1 1 0
11 access_sf_processing_technology access_sf_machine_control_system_admin sf_processing_technology sf_machine_control_system_admin model_sf_processing_technology model_sf_machine_control_system base.group_user base.group_system 1 1 1 1 0
12 access_sf_supplier_sort access_sf_production_process_group_sale_director sf_supplier_sort sf_production_process_group_sale_director model_sf_supplier_sort model_sf_production_process base.group_user sf_base.group_sale_director 1 1 0 1 0 1 0
13 access_sf_production_process_parameter access_sf_production_process_group_sale_salemanager sf_production_process_parameter sf_production_process_group_sale_salemanager model_sf_production_process_parameter model_sf_production_process base.group_user sf_base.group_sale_salemanager 1 1 0 1 0 1 0
14 access_sf_production_process_category access_sf_production_process sf_production_process_category sf_production_process model_sf_production_process_category model_sf_production_process base.group_user 1 1 1 1 0
15 access_sf_machine_tool_category access_sf_production_process_admin sf_machine_tool_category sf_production_process_admin model_sf_machine_tool_category model_sf_production_process base.group_user base.group_system 1 1 1 1 0
16 access_sf_cutting_tool_material access_sf_production_materials sf_cutting_tool_material sf_production_materials model_sf_cutting_tool_material model_sf_production_materials base.group_user 1 1 1 1 0
17 access_sf_cutting_tool_type access_sf_production_materials_group_sale_director sf_cutting_tool_type sf_production_materials_group_sale_director model_sf_cutting_tool_type model_sf_production_materials base.group_user sf_base.group_sale_director 1 1 0 1 0 1 0
18 access_sf_functional_cutting_tool access_sf_production_materials_group_sale_salemanager sf_functional_cutting_tool sf_production_materials_group_sale_salemanager model_sf_functional_cutting_tool model_sf_production_materials base.group_user sf_base.group_sale_salemanager 1 1 0 1 0 1 0
19 access_sf_functional_cutting_tool_model access_sf_production_materials_admin sf_functional_cutting_tool_model sf_production_materials_admin model_sf_functional_cutting_tool_model model_sf_production_materials base.group_user base.group_system 1 1 1 1 0
20 access_sf_fixture_material access_sf_materials_model sf_fixture_material sf_materials_model model_sf_fixture_material model_sf_materials_model base.group_user 1 1 1 1 0
21 access_sf_multi_mounting_type access_sf_materials_model_admin sf_multi_mounting_type sf_materials_model_admin model_sf_multi_mounting_type model_sf_materials_model base.group_user base.group_system 1 1 1 1 0
22 access_sf_fixture_model access_sf_supplier_sort sf_fixture_model sf_supplier_sort model_sf_fixture_model model_sf_supplier_sort base.group_user 1 1 1 1 0
23 access_sf_supplier_sort_admin sf_supplier_sort_admin model_sf_supplier_sort base.group_system 1 1 1 0
24 access_sf_production_process_parameter sf_production_process_parameter model_sf_production_process_parameter base.group_user 1 1 1 0
25 access_sf_production_process_parameter_group_sale_director sf_production_process_parameter_group_sale_director model_sf_production_process_parameter sf_base.group_sale_director 1 0 0 0
26 access_sf_production_process_parameter_group_sale_salemanager sf_production_process_parameter_group_sale_salemanager model_sf_production_process_parameter sf_base.group_sale_salemanager 1 0 0 0
27 access_sf_production_process_parameter_group_plan_director sf_production_process_parameter_group_plan_director model_sf_production_process_parameter sf_base.group_plan_director 1 0 0 0
28 access_sf_production_process_parameter_group_purchase_director sf_production_process_parameter_group_purchase_director model_sf_production_process_parameter sf_base.group_purchase_director 1 0 0 0
29 access_sf_production_process_parameter_group_sale_director sf_production_process_parameter_group_sale_director model_sf_production_process_parameter sf_base.group_sale_director 1 0 0 0
30 access_sf_production_process_parameter_admin sf_production_process_parameter_admin model_sf_production_process_parameter base.group_system 1 1 1 0
31 access_sf_production_process_category sf_production_process_category model_sf_production_process_category base.group_user 1 1 1 0
32 access_sf_production_process_category_admin sf_production_process_category_admin model_sf_production_process_category base.group_system 1 1 1 0
33 access_sf_machine_tool_category sf_machine_tool_category model_sf_machine_tool_category base.group_user 1 1 1 0
34 access_sf_machine_tool_category_admin sf_machine_tool_category_admin model_sf_machine_tool_category base.group_system 1 1 1 0
35 access_sf_cutting_tool_material sf_cutting_tool_material model_sf_cutting_tool_material base.group_user 1 1 1 0
36 access_sf_cutting_tool_material_admin sf_cutting_tool_material_admin model_sf_cutting_tool_material base.group_system 1 1 1 0
37 access_sf_cutting_tool_type sf_cutting_tool_type model_sf_cutting_tool_type base.group_user 1 1 1 0
38 access_sf_cutting_tool_type_admin sf_cutting_tool_type_admin model_sf_cutting_tool_type base.group_system 1 1 1 0
39 access_sf_cutting_tool_type_group_purchase_director sf_cutting_tool_type_group_purchase_director model_sf_cutting_tool_type sf_base.group_purchase_director 1 1 0 0
40 access_sf_cutting_tool_type_group_sale_director sf_cutting_tool_type_group_sale_director model_sf_cutting_tool_type sf_base.group_sale_director 1 1 0 0
41 access_sf_cutting_tool_type_group_plan_director sf_cutting_tool_type_group_plan_director model_sf_cutting_tool_type sf_base.group_plan_director 1 1 0 0
42 access_sf_functional_cutting_tool sf_functional_cutting_tool model_sf_functional_cutting_tool base.group_user 1 1 1 0
43 access_sf_functional_cutting_tool_admin sf_functional_cutting_tool_admin model_sf_functional_cutting_tool base.group_system 1 1 1 0
44 access_sf_functional_cutting_tool_model sf_functional_cutting_tool_model model_sf_functional_cutting_tool_model base.group_user 1 1 1 0
45 access_sf_functional_cutting_tool_model_admin sf_functional_cutting_tool_model_admin model_sf_functional_cutting_tool_model base.group_system 1 1 1 0
46 access_sf_fixture_material sf_fixture_material model_sf_fixture_material base.group_user 1 1 1 0
47 access_sf_fixture_material_admin sf_fixture_material_admin model_sf_fixture_material base.group_system 1 1 1 0
48 access_sf_fixture_materials_basic_parameters sf_fixture_materials_basic_parameters model_sf_fixture_materials_basic_parameters base.group_user 1 1 1 0
49 access_sf_fixture_materials_basic_parameters_admin sf_fixture_materials_basic_parameters_admin model_sf_fixture_materials_basic_parameters base.group_system 1 1 1 0
50 access_sf_multi_mounting_type sf_multi_mounting_type model_sf_multi_mounting_type base.group_user 1 1 1 0
51 access_sf_multi_mounting_type_admin sf_multi_mounting_type_admin model_sf_multi_mounting_type base.group_system 1 1 1 0
52 access_sf_fixture_model sf_fixture_model model_sf_fixture_model base.group_user 1 1 1 0
53 access_sf_fixture_model_admin sf_fixture_model_admin model_sf_fixture_model base.group_system 1 1 1 0
54 access_sf_functional_fixture_type sf_functional_fixture_type model_sf_functional_fixture_type base.group_user 1 1 1 1
55 access_sf_functional_fixture_type_admin sf_functional_fixture_type_admin model_sf_functional_fixture_type base.group_system 1 1 1 0
56 access_sf_functional_fixture sf_functional_fixture model_sf_functional_fixture base.group_user 1 1 1 0
57 access_sf_functional_fixture_admin sf_functional_fixture_admin model_sf_functional_fixture base.group_system 1 1 1 0
58 access_sf_functional_fixture_type access_sf_sync_common sf_functional_fixture_type sf_sync_common model_sf_functional_fixture_type model_sf_sync_common base.group_user 1 1 1 1 0
59 access_sf_functional_fixture access_sf_sync_common sf_functional_fixture sf_sync_common_admin model_sf_functional_fixture model_sf_sync_common base.group_user base.group_system 1 1 1 1 0
60 access_sf_sync_common access_sf_international_standards sf_sync_common sf_international_standards model_sf_sync_common model_sf_international_standards base.group_user 1 1 1 1 0
61 access_sf_international_standards access_sf_international_standards_admin sf_international_standards sf_international_standards_admin model_sf_international_standards base.group_user base.group_system 1 1 1 1 0
62 access_material_apply material_apply model_material_apply base.group_user 1 1 1 1 0
63 access_sf_cutting_tool_standard_library access_material_apply_admin sf_cutting_tool_standard_library material_apply_admin model_sf_cutting_tool_standard_library model_material_apply base.group_user base.group_system 1 1 1 1 0
64 access_sf_tool_materials_basic_parameters access_material_apply_group_purchase_director sf_tool_materials_basic_parameters material_apply_group_purchase_director model_sf_tool_materials_basic_parameters model_material_apply base.group_user sf_base.group_purchase_director 1 1 0 1 0 1 0
65 access_sf_cutting_speed access_material_apply_group_sale_director sf_cutting_speed material_apply_group_sale_director model_sf_cutting_speed model_material_apply base.group_user sf_base.group_sale_director 1 1 0 1 0 1 0
66 access_sf_feed_per_tooth access_material_apply_group_plan_director sf_feed_per_tooth material_apply_group_plan_director model_sf_feed_per_tooth model_material_apply base.group_user sf_base.group_plan_director 1 1 0 1 0 1 0
67 access_material_apply_group_purchase_director material_apply_group_purchase_director model_material_apply sf_base.group_purchase_director 1 0 0 0
68 access_material_apply_group_sale_salemanager material_apply_group_sale_salemanager model_material_apply sf_base.group_sale_salemanager 1 0 0 0
69 access_sf_cutting_tool_standard_library sf_cutting_tool_standard_library model_sf_cutting_tool_standard_library base.group_user 1 1 1 0
70 access_sf_cutting_tool_standard_library_admin sf_cutting_tool_standard_library_admin model_sf_cutting_tool_standard_library base.group_system 1 1 1 0
71 access_sf_tool_materials_basic_parameters sf_tool_materials_basic_parameters model_sf_tool_materials_basic_parameters base.group_user 1 1 1 0
72 access_sf_tool_materials_basic_parameters_admin sf_tool_materials_basic_parameters_admin model_sf_tool_materials_basic_parameters base.group_system 1 1 1 0
73 access_sf_cutting_speed sf_cutting_speed model_sf_cutting_speed base.group_user 1 1 1 0
74 access_sf_cutting_speed_admin sf_cutting_speed_admin model_sf_cutting_speed base.group_system 1 1 1 0
75 access_sf_cutting_speed_group_purchase_director sf_cutting_speed_group_purchase_director model_sf_cutting_speed sf_base.group_purchase_director 1 1 1 0
76 access_sf_cutting_speed_group_sale_director sf_cutting_speed_group_sale_director model_sf_cutting_speed sf_base.group_sale_director 1 1 1 0
77 access_sf_cutting_speed_group_plan_dispatch sf_cutting_speed_group_plan_dispatch model_sf_cutting_speed sf_base.group_plan_dispatch 1 0 0 0
78 access_sf_cutting_speed_group_plan_director sf_cutting_speed_group_plan_director model_sf_cutting_speed sf_base.group_plan_director 1 1 1 0
79 access_sf_cutting_speed_group_quality_director sf_cutting_speed_group_quality_director model_sf_cutting_speed sf_base.group_quality_director 1 1 1 0
80 access_sf_cutting_speed_group_quality sf_cutting_speed_group_quality model_sf_cutting_speed sf_base.group_quality 1 1 1 0
81 access_sf_feed_per_tooth_group_purchase_director sf_feed_per_tooth_group_purchase_director model_sf_feed_per_tooth sf_base.group_purchase_director 1 1 0 0
82 access_sf_feed_per_tooth_group_sale_director sf_feed_per_tooth_group_sale_director model_sf_feed_per_tooth sf_base.group_sale_director 1 1 0 0
83 access_sf_feed_per_tooth_group_plan_dispatch sf_feed_per_tooth_group_plan_dispatch model_sf_feed_per_tooth sf_base.group_plan_dispatch 1 0 0 0
84 access_sf_feed_per_tooth_group_plan_director sf_feed_per_tooth_group_plan_director model_sf_feed_per_tooth sf_base.group_plan_director 1 1 0 0
85 access_sf_feed_per_tooth_group_sale_salemanager sf_feed_per_tooth_group_sale_salemanager model_sf_feed_per_tooth sf_base.group_sale_salemanager 1 0 0 0
86 access_sf_feed_per_tooth_group_quality sf_feed_per_tooth_group_quality model_sf_feed_per_tooth sf_base.group_quality 1 1 1 0
87 access_sf_feed_per_tooth_group_quality_director sf_feed_per_tooth_group_quality_director model_sf_feed_per_tooth sf_base.group_quality_director 1 1 1 0
88 access_sf_feed_per_tooth sf_feed_per_tooth model_sf_feed_per_tooth base.group_user 1 1 1 0
89 access_sf_feed_per_tooth_admin sf_feed_per_tooth_admin model_sf_feed_per_tooth base.group_system 1 1 1 0
90 access_sf_ramping_angle sf_ramping_angle model_sf_ramping_angle base.group_user 1 1 1 1
91 access_sf_ramping_angle_admin sf_ramping_angle_admin model_sf_ramping_angle base.group_system 1 1 1 1
92 access_sf_cutting_width_depth sf_cutting_width_depth model_sf_cutting_width_depth base.group_user 1 1 1 1
93 access_sf_cutting_width_depth_admin sf_cutting_width_depth_admin model_sf_cutting_width_depth base.group_system 1 1 1 1
94 access_sf_machine_tool sf_machine_tool model_sf_machine_tool sf_base.group_sf_mrp_user 1 0 0 0
95 access_sf_machine_tool_type sf_machine_tool_type model_sf_machine_tool_type sf_base.group_sf_mrp_user 1 0 0 0
96 access_sf_machine_brand sf_machine_brand model_sf_machine_brand sf_base.group_sf_mrp_user 1 0 0 0
97 access_sf_machine_brand_group_plan_director sf_machine_brand_group_plan_director model_sf_machine_brand sf_base.group_plan_director 1 0 0 0
98 access_sf_machine_brand_group_purchase_director sf_machine_brand_group_purchase_director model_sf_machine_brand sf_base.group_purchase_director 1 0 0 0
99 access_sf_machine_brand_group_sale_director sf_machine_brand_group_sale_director model_sf_machine_brand sf_base.group_sale_director 1 0 0 0
100 access_sf_machine_brand_tags sf_machine_brand_tags model_sf_machine_brand_tags base.group_user 1 1 1 1
101 access_sf_machine_control_system sf_machine_control_system model_sf_machine_control_system sf_base.group_sf_mrp_user 1 0 0 0
102 access_sf_production_process sf_production_process model_sf_production_process sf_base.group_sf_mrp_user 1 0 0 0
103 access_sf_production_materials sf_production_materials model_sf_production_materials sf_base.group_sf_mrp_user 1 0 0 0
104 access_sf_production_materials_group_plan_director sf_production_materials_group_plan_director model_sf_production_materials sf_base.group_plan_director 1 1 0 0
105 access_sf_production_materials_group_purchase_director sf_production_materials_group_purchase_director model_sf_production_materials sf_base.group_purchase_director 1 1 0 0
106 access_sf_production_materials_group_sale_director sf_production_materials_group_sale_director model_sf_production_materials sf_base.group_sale_director 1 1 0 0
107 access_sf_materials_model sf_materials_model model_sf_materials_model sf_base.group_sf_mrp_user 1 0 0 0
108 access_sf_materials_model_group_sale_salemanager sf_materials_model_group_sale_salemanager model_sf_materials_model sf_base.group_sale_salemanager 1 0 0 0
109 access_sf_materials_model_group_sale_director sf_materials_model_group_sale_director model_sf_materials_model sf_base.group_sale_director 1 0 0 0
110 access_sf_materials_model_group_plan_director sf_materials_model_group_plan_director model_sf_materials_model sf_base.group_plan_director 1 0 0 0
111 access_sf_materials_model_group_purchase_director sf_materials_model_group_purchase_director model_sf_materials_model sf_base.group_purchase_director 1 0 0 0
112 access_sf_materials_model_group_sale_director sf_materials_model_group_sale_director model_sf_materials_model sf_base.group_sale_director 1 0 0 0
113 access_sf_supplier_sort sf_supplier_sort model_sf_supplier_sort sf_base.group_sf_mrp_user 1 0 0 0
114 access_sf_production_process_parameter sf_production_process_parameter model_sf_production_process_parameter sf_base.group_sf_mrp_user 1 0 0 0
115 access_sf_production_process_category sf_production_process_category model_sf_production_process_category sf_base.group_sf_mrp_user 1 0 0 0
116 access_sf_machine_tool_category sf_machine_tool_category model_sf_machine_tool_category sf_base.group_sf_mrp_user 1 0 0 0
117 access_sf_cutting_tool_material_group_purchase_director sf_cutting_tool_material_group_purchase_director model_sf_cutting_tool_material sf_base.group_purchase_director 1 0 1 0
118 access_sf_cutting_tool_material_group_sale_director sf_cutting_tool_material_group_sale_director model_sf_cutting_tool_material sf_base.group_sale_director 1 0 1 0
119 access_sf_cutting_tool_material_group_plan_director sf_cutting_tool_material_group_plan_director model_sf_cutting_tool_material sf_base.group_plan_director 1 0 1 0
120 access_sf_cutting_tool_type sf_cutting_tool_type model_sf_cutting_tool_type sf_base.group_sf_mrp_user 1 0 0 0
121 access_sf_functional_cutting_tool sf_functional_cutting_tool model_sf_functional_cutting_tool sf_base.group_sf_mrp_user 1 0 0 0
122 access_sf_functional_cutting_tool_model sf_functional_cutting_tool_model model_sf_functional_cutting_tool_model sf_base.group_sf_mrp_user 1 0 0 0
123 access_sf_fixture_material sf_fixture_material model_sf_fixture_material sf_base.group_sf_mrp_user 1 0 0 0
124 access_sf_fixture_materials_basic_parameters sf_fixture_materials_basic_parameters model_sf_fixture_materials_basic_parameters sf_base.group_sf_mrp_user 1 0 0 0
125 access_sf_multi_mounting_type sf_multi_mounting_type model_sf_multi_mounting_type sf_base.group_sf_mrp_user 1 0 0 0
126 access_sf_fixture_model sf_fixture_model model_sf_fixture_model sf_base.group_sf_mrp_user 1 0 0 0
127 access_sf_functional_fixture_type sf_functional_fixture_type model_sf_functional_fixture_type sf_base.group_sf_mrp_user 1 0 0 0
128 access_sf_functional_fixture sf_functional_fixture model_sf_functional_fixture sf_base.group_sf_mrp_user 1 0 0 0
129 access_sf_sync_common sf_sync_common model_sf_sync_common sf_base.group_sf_mrp_user 1 0 0 0
130 access_sf_international_standards sf_international_standards model_sf_international_standards sf_base.group_sf_mrp_user 1 0 0 0
131 access_material_apply material_apply model_material_apply sf_base.group_sf_mrp_user 1 0 0 0
132 access_sf_cutting_tool_standard_library_group_sf_mrp_user sf_cutting_tool_standard_library_group_sf_mrp_user model_sf_cutting_tool_standard_library sf_base.group_sf_mrp_user 1 0 0 0
133 access_sf_cutting_tool_standard_library_group_purchase_director sf_cutting_tool_standard_library_group_purchase_director model_sf_cutting_tool_standard_library sf_base.group_purchase_director 1 0 1 0
134 access_sf_cutting_tool_standard_library_group_plan_director sf_cutting_tool_standard_library_group_plan_director model_sf_cutting_tool_standard_library sf_base.group_plan_director 1 0 1 0
135 access_sf_cutting_tool_standard_library_group_sale_director sf_cutting_tool_standard_library_group_sale_director model_sf_cutting_tool_standard_library sf_base.group_sale_director 1 0 1 0
136 access_sf_tool_groups sf_tool_groups model_sf_tool_groups sf_base.group_sf_mrp_user 1 0 0 0
137 access_sf_tool_materials_basic_parameters_group_sale_director sf_tool_materials_basic_parameters_group_sale_director model_sf_tool_materials_basic_parameters sf_base.group_sale_director 1 0 1 0
138 access_sf_tool_materials_basic_parameters_group_plan_director sf_tool_materials_basic_parameters_group_plan_director model_sf_tool_materials_basic_parameters sf_base.group_plan_director 1 0 1 0
139 access_sf_tool_materials_basic_parameters_group_purchase_director sf_tool_materials_basic_parameters_group_purchase_director model_sf_tool_materials_basic_parameters sf_base.group_purchase_director 1 0 1 0
140 access_sf_cutting_speed sf_cutting_speed model_sf_cutting_speed sf_base.group_sf_mrp_user 1 0 0 0
141 access_sf_cutting_speed_group_purchase sf_cutting_speed_group_purchase model_sf_cutting_speed sf_base.group_purchase 1 0 0 0
142 access_sf_cutting_speed_group_sale_salemanager sf_cutting_speed_group_sale_salemanager model_sf_cutting_speed sf_base.group_sale_salemanager 1 0 0 0
143 access_sf_feed_per_tooth sf_feed_per_tooth model_sf_feed_per_tooth sf_base.group_sf_mrp_user 1 0 0 0
144 access_sf_feed_per_tooth_group_purchase sf_feed_per_tooth_group_purchase model_sf_feed_per_tooth sf_base.group_purchase 1 0 0 0
145 access_sf_ramping_angle sf_ramping_angle model_sf_ramping_angle sf_base.group_sf_mrp_user 1 0 0 0
146 access_sf_ramping_angle_group_purchase sf_ramping_angle_group_purchase model_sf_ramping_angle sf_base.group_purchase 1 0 0 0
147 access_sf_cutting_width_depth sf_cutting_width_depth model_sf_cutting_width_depth sf_base.group_sf_mrp_user 1 0 0 0
148 access_sf_cutting_width_depth_group_purchase sf_cutting_width_depth_group_purchase model_sf_cutting_width_depth sf_base.group_purchase 1 0 0 0
149 access_maintenance_equipment_image maintenance_equipment_image model_maintenance_equipment_image base.group_user 1 1 1 1
150 access_purchase_order_group_purchase access_purchase_order_group_purchase purchase.model_purchase_order sf_base.group_purchase 1 1 1 0
151 access_purchase_order_line_group_purchase access_purchase_order_line_group_purchase purchase.model_purchase_order_line sf_base.group_purchase 1 1 1 0
152 access_spindle_taper_type spindle_taper_type model_spindle_taper_type base.group_user 1 1 1 1
153 access_sf_tool_groups_group_plan_dispatch sf_tool_groups model_sf_tool_groups sf_base.group_plan_dispatch 1 0 0 0
154 access_sf_tool_groups_group_plan_director sf_tool_groups model_sf_tool_groups sf_base.group_plan_director 1 1 1 0
155 access_sf_tool_groups_group_sf_tool_user sf_tool_groups model_sf_tool_groups sf_base.group_sf_tool_user 1 1 1 1
156 access_maintenance_equipment_image access_purchase_order maintenance_equipment_image purchase.order model_maintenance_equipment_image purchase.model_purchase_order base.group_user sf_base.group_plan_dispatch 1 1 0 1 0 1 0
157 access_purchase_order_group_purchase access_res_partner access_purchase_order_group_purchase res.partner purchase.model_purchase_order base.model_res_partner sf_base.group_purchase sf_base.group_plan_dispatch 1 1 0 1 0 0
access_purchase_order_group_purchase_director access_purchase_order_group_purchase_director purchase.model_purchase_order sf_base.group_purchase_director 1 1 1 0
158 access_purchase_order_line_group_purchase access_purchase_order_line access_purchase_order_line_group_purchase purchase.order.line purchase.model_purchase_order_line sf_base.group_purchase sf_base.group_plan_dispatch 1 1 0 1 0 0
access_purchase_order_line_group_purchase_director access_purchase_order_line_group_purchase_director purchase.model_purchase_order_line sf_base.group_purchase_director 1 1 1 0
159 access_spindle_taper_type access_account_move_line spindle_taper_type account.move.line model_spindle_taper_type account.model_account_move_line base.group_user sf_base.group_plan_dispatch 1 1 0 1 0 1 0
160 access_purchase_order access_sf_machine_tool_type_group_plan_dispatch purchase.order sf.machine_tool.type purchase.model_purchase_order model_sf_machine_tool_type sf_base.group_plan_dispatch 1 0 0 0
161 access_res_partner access_sf_machine_tool res.partner sf_machine_tool base.model_res_partner model_sf_machine_tool sf_base.group_plan_dispatch sf_base.group_sf_mrp_user 1 0 1 0 0
162 access_purchase_order_line access_sf_machine_tool_type purchase.order.line sf_machine_tool_type purchase.model_purchase_order_line model_sf_machine_tool_type sf_base.group_plan_dispatch sf_base.group_sf_mrp_user 1 0 1 0 0
163 access_account_move_line access_sf_machine_brand account.move.line sf_machine_brand account.model_account_move_line model_sf_machine_brand sf_base.group_plan_dispatch sf_base.group_sf_mrp_user 1 0 1 0 0
164 access_sf_machine_brand_tags sf_machine_brand_tags model_sf_machine_brand_tags sf_base.group_sf_mrp_user 1 1 0 0
165 access_sf_machine_control_system sf_machine_control_system model_sf_machine_control_system sf_base.group_sf_mrp_user 1 1 0 0
166 access_sf_production_process sf_production_process model_sf_production_process sf_base.group_sf_mrp_user 1 1 0 0
167 access_sf_production_materials sf_production_materials model_sf_production_materials sf_base.group_sf_mrp_user 1 1 0 0
168 access_sf_materials_model sf_materials_model model_sf_materials_model sf_base.group_sf_mrp_user 1 1 0 0
169 access_sf_supplier_sort sf_supplier_sort model_sf_supplier_sort sf_base.group_sf_mrp_user 1 1 0 0
170 access_sf_production_process_parameter sf_production_process_parameter model_sf_production_process_parameter sf_base.group_sf_mrp_user 1 1 0 0
171 access_sf_production_process_category sf_production_process_category model_sf_production_process_category sf_base.group_sf_mrp_user 1 1 0 0
172 access_sf_machine_tool_category sf_machine_tool_category model_sf_machine_tool_category sf_base.group_sf_mrp_user 1 1 0 0
173 access_sf_cutting_tool_material sf_cutting_tool_material model_sf_cutting_tool_material sf_base.group_sf_mrp_user 1 1 0 0
174 access_sf_cutting_tool_type sf_cutting_tool_type model_sf_cutting_tool_type sf_base.group_sf_mrp_user 1 1 0 0
175 access_sf_functional_cutting_tool sf_functional_cutting_tool model_sf_functional_cutting_tool sf_base.group_sf_mrp_user 1 1 0 0
176 access_sf_functional_cutting_tool_model sf_functional_cutting_tool_model model_sf_functional_cutting_tool_model sf_base.group_sf_mrp_user 1 1 0 0
177 access_sf_fixture_material sf_fixture_material model_sf_fixture_material sf_base.group_sf_mrp_user 1 1 0 0
178 access_sf_fixture_materials_basic_parameters sf_fixture_materials_basic_parameters model_sf_fixture_materials_basic_parameters sf_base.group_sf_mrp_user 1 1 0 0
179 access_mrp_production_group_sale_salemanager mrp_production_group_sale_salemanager mrp.model_mrp_production sf_base.group_sale_salemanager 1 0 0 0
180 access_mrp_production_group_sale_director mrp_production_group_sale_director mrp.model_mrp_production sf_base.group_sale_director 1 0 0 0
181 access_material_apply_group_plan_dispatch material_apply model_material_apply sf_base.group_plan_dispatch 1 0 0 0
182 access_sf_machine_brand_tags_group_plan_dispatch sf_machine_brand_tags model_sf_machine_brand_tags sf_base.group_plan_dispatch 1 0 0 0
183 access_ir_actions_act_window_group_plan_dispatch ir.actions.act_window base.model_ir_actions_act_window sf_base.group_plan_dispatch 1 0 0 0
184 access_ir_actions_act_window_view_group_plan_dispatch ir.actions.act_window.view base.model_ir_actions_act_window_view sf_base.group_plan_dispatch 1 0 0 0
185 access_sf_supplier_sort_group_plan_dispatch sf.supplier.sort model_sf_supplier_sort sf_base.group_plan_dispatch 1 0 0 0
186 access_sf_international_standards_group_sale_salemanager sf_international_standards_group_sale_salemanager model_sf_international_standards sf_base.group_sale_salemanager 1 0 0 0
187 access_sf_international_standards_group_sale_director sf_international_standards_group_sale_director model_sf_international_standards sf_base.group_sale_director 1 0 0 0
188 access_sf_international_standards_group_plan_director sf_international_standards_group_plan_director model_sf_international_standards sf_base.group_plan_director 1 0 0 0
189 access_sf_international_standards_group_purchase sf_international_standards_group_purchase model_sf_international_standards sf_base.group_purchase 1 0 0 0
190 access_sf_international_standards_group_purchase_director sf_international_standards_group_purchase_director model_sf_international_standards sf_base.group_purchase_director 1 0 0 0
191 access_sf_machine_brand_tags_group_sale_salemanager sf_machine_brand_tags_group_sale_salemanager model_sf_machine_brand_tags sf_base.group_sale_salemanager 1 0 0 0
192 access_sf_machine_brand_tags_group_sale_director sf_machine_brand_tags_group_sale_director model_sf_machine_brand_tags sf_base.group_sale_director 1 0 0 0
193 access_sf_machine_brand_tags_group_plan_director sf_machine_brand_tags_group_plan_director model_sf_machine_brand_tags sf_base.group_plan_director 1 0 0 0
194 access_sf_machine_brand_tags_group_purchase sf_machine_brand_tags_group_purchase model_sf_machine_brand_tags sf_base.group_purchase 1 0 0 0
195 access_sf_machine_brand_tags_group_purchase_director sf_machine_brand_tags_group_purchase_director model_sf_machine_brand_tags sf_base.group_purchase_director 1 0 0 0
196 access_printer printer model_printer base.group_user 1 1 1 1
197 access_printer_configuration printer.configuration model_printer_configuration base.group_user 1 1 1 1
198 access_group_sf_mrp_user sf_tool_inventory model_sf_tool_inventory base.group_user 1 1 1 0
199 access_group_sf_mrp_user_admin sf_tool_inventory_admin model_sf_tool_inventory base.group_system 1 1 1 0
200 access_group_sf_mrp_user_group_purchase_director sf_tool_inventory_group_purchase_director model_sf_tool_inventory sf_base.group_purchase_director 1 0 1 0
201 access_group_sf_mrp_user_group_sale_director sf_tool_inventory_group_sale_director model_sf_tool_inventory sf_base.group_sale_director 1 0 1 0
202 access_sf_cutting_tool_material_group_plan_director sf_tool_inventory_group_plan_director model_sf_tool_inventory sf_base.group_plan_director 1 0 1 0
203 access_group_sf_mrp_user_group_sf_mrp_user sf_tool_inventory_group_sf_mrp_user model_sf_tool_inventory sf_base.group_sf_mrp_user 1 1 0 0
204 access_sf_fixture_material_group_purchase_director sf_fixture_material_group_purchase_director model_sf_fixture_material sf_base.group_purchase_director 1 0 0 0
205 access_sf_multi_mounting_type_group_purchase_director sf_multi_mounting_type_group_purchase_director model_sf_multi_mounting_type sf_base.group_purchase_director 1 0 0 0
206 access_sf_fixture_model_group_purchase_director sf_fixture_model_group_purchase_director model_sf_fixture_model sf_base.group_purchase_director 1 0 0 0
207 access_sf_fixture_materials_basic_parameters_group_purchase_director sf_fixture_materials_basic_parameters_group_purchase_director model_sf_fixture_materials_basic_parameters sf_base.group_purchase_director 1 0 0 0
208 access_sf_machine_tool_type_group_purchase_director sf_machine_tool_type_group_purchase_director model_sf_machine_tool_type sf_base.group_purchase_director 1 0 0 0
209 access_sf_fixture_material_group_sale_director sf_fixture_material_group_sale_director model_sf_fixture_material sf_base.group_sale_director 1 0 0 0
210 access_sf_multi_mounting_type_group_sale_director sf_multi_mounting_type_group_sale_director model_sf_multi_mounting_type sf_base.group_sale_director 1 0 0 0
211 access_sf_fixture_model_group_sale_director sf_fixture_model_group_sale_director model_sf_fixture_model sf_base.group_sale_director 1 0 0 0
212 access_sf_fixture_materials_basic_parameters_group_sale_director sf_fixture_materials_basic_parameters_group_sale_director model_sf_fixture_materials_basic_parameters sf_base.group_sale_director 1 0 0 0
213 access_sf_machine_tool_type_group_sale_director sf_machine_tool_type_group_sale_director model_sf_machine_tool_type sf_base.group_sale_director 1 0 0 0
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229

View File

@@ -189,3 +189,6 @@ td.o_required_modifier {
flex-direction: row !important; flex-direction: row !important;
} }
.supplier_ids_set_css thead th[data-name=partner_id]{
width: 500px!important;
}

112
sf_base/views/Printer.xml Normal file
View File

@@ -0,0 +1,112 @@
<odoo>
<data>
<record id="view_printer_tree" model="ir.ui.view">
<field name="name">printer.tree</field>
<field name="model">printer</field>
<field name="arch" type="xml">
<tree string="Printer">
<field name="name"/>
<field name="ip_address"/>
<field name="port"/>
<!-- 其他字段... -->
</tree>
</field>
</record>
<record id="view_printer_form" model="ir.ui.view">
<field name="name">printer.form</field>
<field name="model">printer</field>
<field name="arch" type="xml">
<form string="Printer">
<sheet>
<group>
<field name="name"/>
<field name="ip_address"/>
<field name="port"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_printer_configuration_tree" model="ir.ui.view">
<field name="name">printer.configuration.tree</field>
<field name="model">printer.configuration</field>
<field name="arch" type="xml">
<tree string="Printer Configuration">
<field name="name"/>
<field name="printer_id"/>
<field name="model"/>
<!-- 其他字段... -->
</tree>
</field>
</record>
<record id="view_printer_configuration_form" model="ir.ui.view">
<field name="name">printer.configuration.form</field>
<field name="model">printer.configuration</field>
<field name="arch" type="xml">
<form string="Printer Configuration">
<sheet>
<group>
<field name="name"/>
<field name="printer_id"/>
<field name="model"/>
<!-- 其他字段... -->
</group>
</sheet>
</form>
</field>
</record>
<!-- 其他视图... -->
<record id="action_printer" model="ir.actions.act_window">
<field name="name">打印机</field>
<field name="res_model">printer</field>
<field name="view_mode">tree,form</field>
</record>
<!-- Action to open the printer configuration list -->
<record id="action_printer_configuration" model="ir.actions.act_window">
<field name="name">打印配置</field>
<field name="res_model">printer.configuration</field>
<field name="view_mode">tree,form</field>
</record>
<!-- Add a menu item for the printer configuration -->
<!-- <record id="menu_printer_configuration" model="ir.ui.menu"> -->
<!-- <field name="name">打印配置</field> -->
<!-- <field name="action" ref="action_printer_configuration"/> -->
<!-- <field name="parent_id" ref="base.menu_administration"/> -->
<!-- </record> -->
<!-- <record id="menu_printer" model="ir.ui.menu"> -->
<!-- <field name="name">打印机</field> -->
<!-- <field name="action" ref="action_printer"/> -->
<!-- <field name="parent_id" ref="menu_printer"/> -->
<!-- </record> -->
<menuitem
id="printer_main_menu"
name="打印配置"
sequence="10"
parent="base.menu_administration"/>
<menuitem
id="menu_printer"
name="打印机"
action="action_printer"
sequence="1"
parent="printer_main_menu"/>
<menuitem
id="menu_printer_configuration"
name="打印配置"
action="action_printer_configuration"
sequence="2"
parent="printer_main_menu"/>
</data>
</odoo>

View File

@@ -98,6 +98,7 @@
<field name="name" string="名称"/> <field name="name" string="名称"/>
<field name="machine_tool_category"/> <field name="machine_tool_category"/>
<field name="brand_id"/> <field name="brand_id"/>
<field name="function_type"/>
<field name="machine_tool_picture" widget="image"/> <field name="machine_tool_picture" widget="image"/>
<field name="remark"/> <field name="remark"/>
</tree> </tree>
@@ -122,6 +123,7 @@
domain="[('tag_ids', '=', '机床')]" domain="[('tag_ids', '=', '机床')]"
options="{'no_create': True}"/> options="{'no_create': True}"/>
<field name="machine_tool_category" required="1"/> <field name="machine_tool_category" required="1"/>
<field name="function_type" required="1"/>
</group> </group>
<group> <group>
<field name="machine_tool_picture" widget="image" nolabel="1"/> <field name="machine_tool_picture" widget="image" nolabel="1"/>
@@ -171,6 +173,10 @@
<label for="workbench_W" string="宽"/> <label for="workbench_W" string="宽"/>
<field name="workbench_W" class="o_address_zip" required="1" <field name="workbench_W" class="o_address_zip" required="1"
options="{'format': false}"/> options="{'format': false}"/>
<span>&amp;nbsp;</span>
<label for="workbench_H" string="高"/>
<field name="workbench_H" class="o_address_zip" required="1"
options="{'format': false}"/>
</div> </div>
<field name="workpiece_load"/> <field name="workpiece_load"/>
<label for="machine_tool_L" string="机床尺寸(mm)"/> <label for="machine_tool_L" string="机床尺寸(mm)"/>
@@ -237,15 +243,15 @@
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}" attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"
options="{'format': false}"/> options="{'format': false}"/>
<span>&amp;nbsp;</span> <span>&amp;nbsp;</span>
<label for="b_axis" string="b" <label for="c_axis" string="c"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"/> attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"/>
<field name="b_axis" class="o_address_zip" <field name="c_axis" class="o_address_zip"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}" attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"
options="{'format': false}"/> options="{'format': false}"/>
<span>&amp;nbsp;</span> <span>&amp;nbsp;</span>
<label for="c_axis" string="c" <label for="b_axis" string="b"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴','五轴'])]}"/> attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴','五轴'])]}"/>
<field name="c_axis" class="o_address_zip" <field name="b_axis" class="o_address_zip"
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴','五轴'])]}" attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴','五轴'])]}"
options="{'format': false}"/> options="{'format': false}"/>
</div> </div>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<record model="ir.ui.view" id="sf_base_res_partner_kanban_view">
<field name="name">sf.base.res.partner.kanban</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.res_partner_kanban_view"/>
<field name="arch" type="xml">
<xpath expr="//kanban//templates//t//div//div//div//ul//li[last()]" position="after">
<li t-if="record.vat.raw_value" class="o_text_overflow"><field name="vat"/></li>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@@ -1,6 +1,61 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<data> <data>
<!--表面工艺可选参数-->
<record model="ir.ui.view" id="mrs_production_process_parameter_tree">
<field name="model">sf.production.process.parameter</field>
<field name="arch" type="xml">
<tree string="表面工艺可选参数" create="0" delete="0">
<field name="code"/>
<field name="name"/>
<field name="gain_way"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="mrs_production_process_parameter_form">
<field name="model">sf.production.process.parameter</field>
<field name="arch" type="xml">
<form string="表面工艺可选参数" create="0" delete="0">
<sheet>
<div class="oe_title">
<h1>
<field name="name" required="1" placeholder="名称"/>
</h1>
</div>
<group>
<group>
<field name="code" readonly="1"/>
<field name="process_id" readonly="1"/>
<field name="gain_way"/>
</group>
</group>
<notebook>
<page string="适用材料">
<field name="materials_model_ids" readonly="1"></field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="search_mrs_production_process_parameter_view">
<field name="name">search.mrs.production.process.parameter</field>
<field name="model">sf.production.process.parameter</field>
<field name="arch" type="xml">
<search>
<filter name="filter_active" string="已归档" domain="[('active','=',False)]"/>
<field name="name" string="名称" filter_domain="[('name','ilike',self)]"/>
<field name="code" string="编码" filter_domain="[('codeNum','ilike',self)]"/>
<searchpanel class="account_root">
<field name="process_id" icon="fa-filter"/>
</searchpanel>
</search>
</field>
</record>
<!--加工工艺--> <!--加工工艺-->
<!-- <record model="ir.ui.view" id="sf_processing_technology_form">--> <!-- <record model="ir.ui.view" id="sf_processing_technology_form">-->
<!-- <field name="model">sf.processing.technology</field>--> <!-- <field name="model">sf.processing.technology</field>-->
@@ -20,26 +75,26 @@
<!-- </form>--> <!-- </form>-->
<!-- </field>--> <!-- </field>-->
<!-- </record>--> <!-- </record>-->
<record model="ir.ui.view" id="sf_processing_technology_tree"> <!-- <record model="ir.ui.view" id="sf_processing_technology_tree">-->
<field name="model">sf.processing.technology</field> <!-- <field name="model">sf.processing.technology</field>-->
<field name="arch" type="xml"> <!-- <field name="arch" type="xml">-->
<tree string="加工工艺" create="0" edit="0" delete="1"> <!-- <tree string="加工工艺" create="0" edit="0" delete="1">-->
<field name="code"/> <!-- <field name="code"/>-->
<field name="name"/> <!-- <field name="name"/>-->
</tree> <!-- </tree>-->
</field> <!-- </field>-->
</record> <!-- </record>-->
<record model="ir.ui.view" id="search_sf_processing_technology_view"> <!-- <record model="ir.ui.view" id="search_sf_processing_technology_view">-->
<field name="name">search.sf.processing.technology.type</field> <!-- <field name="name">search.sf.processing.technology.type</field>-->
<field name="model">sf.processing.technology</field> <!-- <field name="model">sf.processing.technology</field>-->
<field name="arch" type="xml"> <!-- <field name="arch" type="xml">-->
<search> <!-- <search>-->
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/> <!-- <field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>-->
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/> <!-- <field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>-->
<filter name="filter_active" string="已归档" domain="[('active','=',False)]"/> <!-- <filter name="filter_active" string="已归档" domain="[('active','=',False)]"/>-->
</search> <!-- </search>-->
</field> <!-- </field>-->
</record> <!-- </record>-->
<!--表面工艺类别--> <!--表面工艺类别-->
<record model="ir.ui.view" id="sf_production_process_category_form"> <record model="ir.ui.view" id="sf_production_process_category_form">
@@ -156,19 +211,7 @@
</form> </form>
</field> </field>
</page> </page>
<page string="工序">
<field name='processing_order_ids' options="{'no_create':True}" widget="one2many">
<tree editable='bottom'>
<field name="sequence" widget="handle"/>
<field name="processing_technology_ids" widget="many2many_tags">
</field>
</tree>
<form>
<field name="processing_technology_ids" widget="many2many">
</field>
</form>
</field>
</page>
</notebook> </notebook>
</group> </group>
<group> <group>
@@ -188,6 +231,9 @@
<field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/> <field name="name" string="名称搜索" filter_domain="[('name','ilike',self)]"/>
<field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/> <field name="code" string="编码搜索" filter_domain="[('code','ilike',self)]"/>
<filter name="filter_active" string="已归档" domain="[('active','=',False)]"/> <filter name="filter_active" string="已归档" domain="[('active','=',False)]"/>
<searchpanel>
<field name="category_id" icon="fa-building" enable_counters="1"/>
</searchpanel>
</search> </search>
</field> </field>
</record> </record>
@@ -223,7 +269,7 @@
</group> </group>
<notebook> <notebook>
<page string="供应商"> <page string="供应商">
<field name='supplier_ids'> <field name='supplier_ids' class="supplier_ids_set_css">
<tree editable='bottom'> <tree editable='bottom'>
<field name="sequence" widget="handle" string="序号"/> <field name="sequence" widget="handle" string="序号"/>
<field name="partner_id" string="名称"/> <field name="partner_id" string="名称"/>
@@ -350,12 +396,12 @@
<field name="res_model">sf.materials.model</field> <field name="res_model">sf.materials.model</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
</record> </record>
<record id="sf_processing_technology" model="ir.actions.act_window"> <!-- <record id="sf_processing_technology" model="ir.actions.act_window">-->
<field name="name">加工工艺</field> <!-- <field name="name">加工工艺</field>-->
<field name="type">ir.actions.act_window</field> <!-- <field name="type">ir.actions.act_window</field>-->
<field name="res_model">sf.processing.technology</field> <!-- <field name="res_model">sf.processing.technology</field>-->
<field name="view_mode">tree</field> <!-- <field name="view_mode">tree</field>-->
</record> <!-- </record>-->
<record id="sf_production_process_category" model="ir.actions.act_window"> <record id="sf_production_process_category" model="ir.actions.act_window">
<field name="name">表面工艺类别</field> <field name="name">表面工艺类别</field>
@@ -363,6 +409,12 @@
<field name="res_model">sf.production.process.category</field> <field name="res_model">sf.production.process.category</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
</record> </record>
<record id="mrs_production_process_parameter_action" model="ir.actions.act_window">
<field name="name">表面工艺可选参数</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sf.production.process.parameter</field>
<field name="view_mode">tree,form</field>
</record>
</data> </data>

Some files were not shown because too many files have changed in this diff Show More